tests: remove segment accumulation checks
[platform/upstream/gstreamer.git] / tests / check / gst / gstsegment.c
index ecd8b06..8763be5 100644 (file)
@@ -41,18 +41,6 @@ GST_START_TEST (segment_seek_nosize)
   fail_unless (segment.stop == -1);
   fail_unless (update == TRUE);
 
-#if 0
-  /* configure segment to stop relative, should not do anything since 
-   * size is unknown. */
-  gst_segment_do_seek (&segment, 1.0,
-      GST_FORMAT_BYTES,
-      GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_NONE, 200, GST_SEEK_TYPE_CUR, -100, &update);
-  fail_unless (segment.start == 100);
-  fail_unless (segment.stop == -1);
-  fail_unless (update == FALSE);
-#endif
-
   /* do some clipping on the open range */
   /* completely outside */
   res = gst_segment_clip (&segment, GST_FORMAT_BYTES, 0, 50, &cstart, &cstop);
@@ -451,43 +439,6 @@ GST_START_TEST (segment_seek_rate)
   fail_unless (segment.rate == 2.0);
   fail_unless (update == FALSE);
 
-#if 0
-  /* 0 is the same in all formats and should not fail */
-  gst_segment_do_seek (&segment, 2.0,
-      GST_FORMAT_TIME, GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_SET, 0, GST_SEEK_TYPE_NONE, -1, &update);
-  fail_unless (segment.format == GST_FORMAT_BYTES);
-
-  /* set to -1 means start from 0 */
-  gst_segment_do_seek (&segment, 2.0,
-      GST_FORMAT_TIME, GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_SET, -1, GST_SEEK_TYPE_NONE, -1, &update);
-  fail_unless (segment.format == GST_FORMAT_BYTES);
-  fail_unless (segment.start == 0);
-
-  gst_segment_do_seek (&segment, 2.0,
-      GST_FORMAT_TIME, GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_CUR, 0, GST_SEEK_TYPE_NONE, -1, &update);
-
-  gst_segment_do_seek (&segment, 2.0,
-      GST_FORMAT_TIME, GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_END, 0, GST_SEEK_TYPE_NONE, -1, &update);
-
-  /* -1 for end is fine too in all formats */
-  gst_segment_do_seek (&segment, 2.0,
-      GST_FORMAT_TIME, GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_NONE, -1, GST_SEEK_TYPE_SET, -1, &update);
-
-  /* 0 as relative end is fine too */
-  gst_segment_do_seek (&segment, 2.0,
-      GST_FORMAT_TIME, GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_NONE, -1, GST_SEEK_TYPE_CUR, 0, &update);
-
-  gst_segment_do_seek (&segment, 2.0,
-      GST_FORMAT_TIME, GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_NONE, -1, GST_SEEK_TYPE_END, 0, &update);
-#endif
-
   /* set a real stop position, this must happen in bytes */
   gst_segment_do_seek (&segment, 3.0,
       GST_FORMAT_BYTES,
@@ -501,25 +452,6 @@ GST_START_TEST (segment_seek_rate)
    * playback mode.*/
   fail_unless (update == FALSE);
 
-#if 0
-  /* 0 as relative end is fine too */
-  gst_segment_do_seek (&segment, 2.0,
-      GST_FORMAT_TIME, GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_NONE, -1, GST_SEEK_TYPE_CUR, 0, &update);
-  fail_unless (segment.stop == 100);
-
-  gst_segment_do_seek (&segment, 2.0,
-      GST_FORMAT_TIME, GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_NONE, -1, GST_SEEK_TYPE_END, 0, &update);
-  fail_unless (segment.stop == 100);
-
-  /* -1 for end is fine too in all formats */
-  gst_segment_do_seek (&segment, 2.0,
-      GST_FORMAT_TIME, GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_NONE, -1, GST_SEEK_TYPE_SET, -1, &update);
-  fail_unless (segment.stop == -1);
-#endif
-
   /* set some duration, stop -1 END seeks will now work with the
    * duration, if the formats match */
   segment.duration = 200;
@@ -545,1182 +477,9 @@ GST_START_TEST (segment_seek_rate)
       GST_SEEK_TYPE_NONE, -1, GST_SEEK_TYPE_END, 100, &update);
   fail_unless (segment.stop == 200);
   fail_unless (segment.duration == 200);
-
-#if 0
-  /* add 300 to the start, this should be clamped to the duration */
-  gst_segment_do_seek (&segment, 2.0,
-      GST_FORMAT_BYTES, GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_CUR, 300, GST_SEEK_TYPE_END, 0, &update);
-  fail_unless (segment.start == 200);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.duration == 200);
-
-  /* subtract 300 from the start, this should be clamped to 0 */
-  gst_segment_do_seek (&segment, 2.0,
-      GST_FORMAT_BYTES, GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_CUR, -300, GST_SEEK_TYPE_END, 0, &update);
-  GST_DEBUG ("%" G_GINT64_FORMAT, segment.start);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.duration == 200);
-#endif
-}
-
-GST_END_TEST;
-
-#if 0
-/* mess with the segment structure in the bytes format */
-GST_START_TEST (segment_newsegment_open)
-{
-  GstSegment segment;
-
-  gst_segment_init (&segment, GST_FORMAT_BYTES);
-
-  /* time should also work for starting from 0 */
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 1.0, GST_FORMAT_TIME, 0, -1,
-      0);
-
-  fail_unless (segment.rate == 1.0);
-  fail_unless (segment.format == GST_FORMAT_BYTES);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == -1);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 0);
-  fail_unless (segment.position == 0);
-  fail_unless (segment.duration == -1);
-
-  /* we set stop but in the wrong format, stop stays open. */
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 1.0, GST_FORMAT_TIME, 0,
-      200, 0);
-
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == -1);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 0);
-  fail_unless (segment.position == 0);
-
-  /* update, nothing changes */
-  gst_segment_set_newsegment (&segment, TRUE, 1.0, 1.0, GST_FORMAT_BYTES, 0, -1,
-      0);
-
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == -1);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 0);
-  fail_unless (segment.position == 0);
-
-  /* update */
-  gst_segment_set_newsegment (&segment, TRUE, 1.0, 1.0,
-      GST_FORMAT_BYTES, 100, -1, 100);
-
-  fail_unless (segment.start == 100);
-  fail_unless (segment.stop == -1);
-  fail_unless (segment.time == 100);
-  fail_unless (segment.base == 100);
-  fail_unless (segment.position == 100);
-
-  /* last_stop 0, base does not change */
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 1.0, GST_FORMAT_BYTES, 0,
-      -1, 0);
-
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == -1);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 100);
-
-  gst_segment_set_last_stop (&segment, GST_FORMAT_BYTES, 200);
-
-  fail_unless (segment.position == 200);
-
-  /* last_stop 200, base changes */
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 1.0, GST_FORMAT_BYTES, 0,
-      -1, 0);
-
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == -1);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 300);
-  fail_unless (segment.position == 0);
-}
-
-GST_END_TEST;
-
-
-/* mess with the segment structure in the bytes format */
-GST_START_TEST (segment_newsegment_closed)
-{
-  GstSegment segment;
-
-  gst_segment_init (&segment, GST_FORMAT_BYTES);
-
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 1.0,
-      GST_FORMAT_BYTES, 0, 200, 0);
-
-  fail_unless (segment.rate == 1.0);
-  fail_unless (segment.format == GST_FORMAT_BYTES);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 0);
-  fail_unless (segment.position == 0);
-  fail_unless (segment.duration == -1);
-
-  /* assume we advanced to position 40 */
-  gst_segment_set_last_stop (&segment, GST_FORMAT_BYTES, 40);
-  fail_unless (segment.position == 40);
-
-  /* do an update to the start, last_stop is unchanged because it's bigger */
-  gst_segment_set_newsegment (&segment, TRUE, 1.0, 1.0, GST_FORMAT_BYTES, 20,
-      200, 20);
-
-  fail_unless (segment.start == 20);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 20);
-  fail_unless (segment.base == 20);
-  fail_unless (segment.position == 40);
-
-  /* do an update past our last_stop, it should be updated now */
-  gst_segment_set_newsegment (&segment, TRUE, 1.0, 1.0, GST_FORMAT_BYTES, 50,
-      300, 50);
-
-  fail_unless (segment.start == 50);
-  fail_unless (segment.stop == 300);
-  fail_unless (segment.time == 50);
-  fail_unless (segment.base == 50);
-  fail_unless (segment.position == 50);
-
-  /* and a new accumulated one */
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 1.0,
-      GST_FORMAT_BYTES, 100, 400, 300);
-
-  fail_unless (segment.start == 100);
-  fail_unless (segment.stop == 400);
-  fail_unless (segment.time == 300);
-  fail_unless (segment.base == 300);
-
-  /* and a new updated one */
-  gst_segment_set_newsegment (&segment, TRUE, 1.0, 1.0,
-      GST_FORMAT_BYTES, 100, 500, 300);
-
-  fail_unless (segment.start == 100);
-  fail_unless (segment.stop == 500);
-  fail_unless (segment.time == 300);
-  fail_unless (segment.base == 300);
-
-  /* and a new partially updated one */
-  gst_segment_set_newsegment (&segment, TRUE, 1.0, 1.0,
-      GST_FORMAT_BYTES, 200, 500, 400);
-
-  fail_unless (segment.start == 200);
-  fail_unless (segment.stop == 500);
-  fail_unless (segment.time == 400);
-  fail_unless (segment.base == 400);
-}
-
-GST_END_TEST;
-
-/* mess with the segment structure in the time format */
-GST_START_TEST (segment_newsegment_streamtime)
-{
-  GstSegment segment;
-  guint64 result;
-
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-
-  /***************************
-   * Normal segment
-   ***************************/
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 1.0,
-      GST_FORMAT_TIME, 0, 200, 0);
-
-  fail_unless (segment.rate == 1.0);
-  fail_unless (segment.applied_rate == 1.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 0);
-  fail_unless (segment.position == 0);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 0);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 100);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 200);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-
-  /*********************
-   * time shifted by 500
-   *********************/
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 1.0,
-      GST_FORMAT_TIME, 0, 200, 500);
-
-  fail_unless (segment.base == 200);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 500);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 600);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 500);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-
-  /*********************
-   * time offset by 500
-   *********************/
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 1.0,
-      GST_FORMAT_TIME, 500, 700, 0);
-
-  fail_unless (segment.base == 400);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  /* before segment is invalid */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 400);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 500);
-  fail_unless (result == 0);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 600);
-  fail_unless (result == 100);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 700);
-  fail_unless (result == 200);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 800);
-  fail_unless (result == -1);
-
-  /*************************************
-   * time offset by 500, shifted by 200
-   *************************************/
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 1.0,
-      GST_FORMAT_TIME, 500, 700, 200);
-
-  fail_unless (segment.base == 600);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  /* before segment is invalid */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 400);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 500);
-  fail_unless (result == 200);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 600);
-  fail_unless (result == 300);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 700);
-  fail_unless (result == 400);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 800);
-  fail_unless (result == -1);
-}
-
-GST_END_TEST;
-
-/* mess with the segment structure in the time format */
-GST_START_TEST (segment_newsegment_streamtime_rate)
-{
-  GstSegment segment;
-  guint64 result;
-
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-
-  /***************************
-   * Normal segment rate 2.0
-   ***************************/
-  gst_segment_set_newsegment (&segment, FALSE, 2.0, 1.0,
-      GST_FORMAT_TIME, 0, 200, 0);
-
-  fail_unless (segment.rate == 2.0);
-  fail_unless (segment.applied_rate == 1.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 0);
-  fail_unless (segment.position == 0);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 0);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 100);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 150);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 200);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-
-  /***************************************
-   * Normal segment rate 2.0, offset
-   ***************************************/
-  gst_segment_set_newsegment (&segment, FALSE, 2.0, 1.0,
-      GST_FORMAT_TIME, 100, 300, 0);
-
-  fail_unless (segment.base == 100);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 0);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 100);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 250);
-  fail_unless (result == 150);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == 200);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 400);
-  fail_unless (result == -1);
-
-  /***************************************
-   * Normal segment rate -1.0, offset
-   ***************************************/
-
-  /* buffers will arrive from 300 to 100 in a sink, stream time
-   * calculation is unaffected by the rate */
-  gst_segment_set_newsegment (&segment, FALSE, -1.0, 1.0,
-      GST_FORMAT_TIME, 100, 300, 0);
-
-  fail_unless (segment.base == 200);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 0);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 100);
-
-  /***********************************************
-   * Normal segment rate -1.0, offset, time = 200
-   ***********************************************/
-  gst_segment_set_newsegment (&segment, FALSE, -1.0, 1.0,
-      GST_FORMAT_TIME, 100, 300, 200);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 200);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 300);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == 400);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 400);
-  fail_unless (result == -1);
-}
-
-GST_END_TEST;
-
-/* mess with the segment structure in the time format */
-GST_START_TEST (segment_newsegment_streamtime_applied_rate)
-{
-  GstSegment segment;
-  guint64 result;
-
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-
-  /***********************************************************
-   * Normal segment rate 1.0, applied rate -1.0
-   * This means the timestamps represents a stream going backwards
-   * starting from @time to 0.
-   ************************************************************/
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, -1.0,
-      GST_FORMAT_TIME, 0, 200, 200);
-
-  fail_unless (segment.rate == 1.0);
-  fail_unless (segment.applied_rate == -1.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 200);
-  fail_unless (segment.base == 0);
-  fail_unless (segment.position == 0);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  /* we count backwards from 200 */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 200);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 100);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 50);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 0);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-
-  /***********************************************************
-   * Normal segment rate 1.0, applied rate 2.0
-   * This means the timestamps represents a stream at twice the
-   * normal rate
-   ************************************************************/
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 2.0,
-      GST_FORMAT_TIME, 0, 200, 0);
-
-  fail_unless (segment.rate == 1.0);
-  fail_unless (segment.applied_rate == 2.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 200);
-  fail_unless (segment.position == 0);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 0);
-
-  /* the stream prepresents a stream going twice as fast, the position 
-   * in the segment is therefore scaled by the applied rate */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 200);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 300);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 400);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-
-  /***********************************************************
-   * Normal segment rate 1.0, applied rate -2.0
-   * This means the timestamps represents a stream at twice the
-   * reverse rate
-   ************************************************************/
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, -2.0,
-      GST_FORMAT_TIME, 0, 200, 400);
-
-  fail_unless (segment.rate == 1.0);
-  fail_unless (segment.applied_rate == -2.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 400);
-  /* previous segment lasted 200, rate of 2.0 was already applied */
-  fail_unless (segment.base == 400);
-  fail_unless (segment.position == 0);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  /* we count backwards from 400 */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 400);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 200);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 100);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 0);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-
-  /***********************************************************
-   * Normal segment rate 1.0, applied rate -2.0
-   * This means the timestamps represents a stream at twice the
-   * reverse rate, start time cannot compensate the complete
-   * duration of the segment so we stop at 0
-   ************************************************************/
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, -2.0,
-      GST_FORMAT_TIME, 0, 200, 200);
-
-  fail_unless (segment.rate == 1.0);
-  fail_unless (segment.applied_rate == -2.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 200);
-  fail_unless (segment.base == 600);
-  fail_unless (segment.position == 0);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  /* we count backwards from 200 */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 200);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 0);
-
-  /* clamp at 0 */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 0);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 0);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-}
-
-GST_END_TEST;
-
-/* mess with the segment structure in the time format */
-GST_START_TEST (segment_newsegment_streamtime_applied_rate_rate)
-{
-  GstSegment segment;
-  guint64 result;
-
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-
-  /***********************************************************
-   * Segment rate 2.0, applied rate 2.0
-   * this means we have a double speed stream that we should
-   * speed up by a factor of 2.0 some more. the resulting
-   * stream will be played at four times the speed. 
-   ************************************************************/
-  gst_segment_set_newsegment (&segment, FALSE, 2.0, 2.0,
-      GST_FORMAT_TIME, 0, 200, 0);
-
-  fail_unless (segment.rate == 2.0);
-  fail_unless (segment.applied_rate == 2.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 0);
-  fail_unless (segment.position == 0);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  /* only applied rate affects our calculation of the stream time */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 0);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 200);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 300);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 400);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-
-  /***********************************************************
-   * Segment rate 2.0, applied rate -1.0
-   * this means we have a reverse stream that we should
-   * speed up by a factor of 2.0
-   ************************************************************/
-  gst_segment_set_newsegment (&segment, FALSE, 2.0, -1.0,
-      GST_FORMAT_TIME, 0, 200, 200);
-
-  fail_unless (segment.rate == 2.0);
-  fail_unless (segment.applied_rate == -1.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 200);
-  /* previous segment lasted 100 */
-  fail_unless (segment.base == 100);
-  fail_unless (segment.position == 0);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  /* only applied rate affects our calculation of the stream time */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 200);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 100);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 50);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 0);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-
-  /***********************************************************
-   * Segment rate -1.0, applied rate -1.0
-   * this means we have a reverse stream that we should
-   * reverse to get the normal stream again.
-   ************************************************************/
-  gst_segment_set_newsegment (&segment, FALSE, -1.0, -1.0,
-      GST_FORMAT_TIME, 0, 200, 200);
-
-  fail_unless (segment.rate == -1.0);
-  fail_unless (segment.applied_rate == -1.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 200);
-  /* accumulated 100 of previous segment to make 200 */
-  fail_unless (segment.base == 200);
-  fail_unless (segment.position == 200);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  /* only applied rate affects our calculation of the stream time */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 200);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 100);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 50);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 0);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-
-  /***********************************************************
-   * Segment rate -1.0, applied rate -1.0
-   * this means we have a reverse stream that we should
-   * reverse to get the normal stream again.
-   ************************************************************/
-  gst_segment_set_newsegment (&segment, FALSE, -1.0, 2.0,
-      GST_FORMAT_TIME, 0, 200, 0);
-
-  fail_unless (segment.rate == -1.0);
-  fail_unless (segment.applied_rate == 2.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 400);
-  fail_unless (segment.position == 200);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  /* only applied rate affects our calculation of the stream time */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 0);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 200);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 300);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 400);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-}
-
-GST_END_TEST;
-
-/* mess with the segment structure in the time format */
-GST_START_TEST (segment_newsegment_runningtime)
-{
-  GstSegment segment;
-  guint64 result;
-
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-
-  /***************************
-   * Normal segment
-   ***************************/
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 1.0,
-      GST_FORMAT_TIME, 0, 200, 0);
-
-  fail_unless (segment.rate == 1.0);
-  fail_unless (segment.applied_rate == 1.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 0);
-  fail_unless (segment.position == 0);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 0);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 0);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 100);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 100);
-
-  /* at edge is exactly the segment duration */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 200);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 200);
-
-  /* outside of the segment */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-
-  /***********************************************************
-   * time shifted by 500, check if accumulation worked.
-   * Rate convert to twice the speed which means scaling down
-   * all positions by 2.0 in this segment.
-   * Then time argument is not used at all here.
-   ***********************************************************/
-  gst_segment_set_newsegment (&segment, FALSE, 2.0, 1.0,
-      GST_FORMAT_TIME, 0, 200, 500);
-
-  /* normal speed gives elapsed of 200 */
-  fail_unless (segment.base == 200);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 200);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 0);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 250);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 100);
-
-  /* outside of the segment */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 500);
-  fail_unless (result == -1);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, 310);
-  fail_unless (result == -1);
-
-  /********************************************
-   * time offset by 500
-   * applied rate is not used for running time
-   ********************************************/
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 2.0,
-      GST_FORMAT_TIME, 500, 700, 0);
-
-  /* previous segment played at double speed gives elapsed time of
-   * 100 added to previous accum of 200 gives 300. */
-  fail_unless (segment.base == 300);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  /* before segment is invalid */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 400);
-  fail_unless (result == -1);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 500);
-  fail_unless (result == 300);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 500);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 600);
-  fail_unless (result == 400);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 600);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 700);
-  fail_unless (result == 500);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 700);
-
-  /* outside of the segment */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 800);
-  fail_unless (result == -1);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, 600);
-  fail_unless (result == -1);
-
-  /**********************************************************
-   * time offset by 500, shifted by 200
-   * Negative rate makes the running time go backwards 
-   * relative to the segment stop position. again time
-   * is ignored.
-   **********************************************************/
-  gst_segment_set_newsegment (&segment, FALSE, -1.0, 1.0,
-      GST_FORMAT_TIME, 500, 700, 200);
-
-  fail_unless (segment.base == 500);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  /* before segment is invalid */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 400);
-  fail_unless (result == -1);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, 400);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 500);
-  fail_unless (result == 700);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 500);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 600);
-  fail_unless (result == 600);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 600);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 700);
-  fail_unless (result == 500);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 700);
-
-  /* outside of the segment */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 800);
-  fail_unless (result == -1);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, 800);
-  fail_unless (result == -1);
-
-  /**********************************************************
-   * time offset by 500, shifted by 200
-   * Negative rate makes the running time go backwards at
-   * twice speed relative to the segment stop position. again 
-   * time is ignored.
-   **********************************************************/
-  gst_segment_set_newsegment (&segment, FALSE, -2.0, -2.0,
-      GST_FORMAT_TIME, 500, 700, 200);
-
-  fail_unless (segment.base == 700);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  /* before segment is invalid */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 400);
-  fail_unless (result == -1);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, 600);
-  fail_unless (result == -1);
-
-  /* total scaled segment time is 100, accum is 700, so we get 800 */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 500);
-  fail_unless (result == 800);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 500);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 600);
-  fail_unless (result == 750);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 600);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 700);
-  fail_unless (result == 700);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 700);
-
-  /* outside of the segment */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 800);
-  fail_unless (result == -1);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, 900);
-  fail_unless (result == -1);
-
-  /* see if negative rate closed segment correctly */
-  gst_segment_set_newsegment (&segment, FALSE, -2.0, -1.0,
-      GST_FORMAT_TIME, 500, 700, 200);
-
-  /* previous segment lasted 100, and was at 700 so we should get 800 */
-  fail_unless (segment.base == 800);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, 800);
-  fail_unless (result == 700);
-}
-
-GST_END_TEST;
-
-/* mess with the segment structure in the time format */
-GST_START_TEST (segment_newsegment_accum)
-{
-  GstSegment segment;
-  guint64 result;
-
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-
-  /***************************
-   * Normal reverse segment
-   ***************************/
-  gst_segment_set_newsegment (&segment, FALSE, -1.0, 1.0,
-      GST_FORMAT_TIME, 0, 200, 0);
-
-  fail_unless (segment.rate == -1.0);
-  fail_unless (segment.applied_rate == 1.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 0);
-  fail_unless (segment.position == 200);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 0);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 200);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 50);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 150);
-
-  /* update segment, this accumulates 50 from the previous segment. */
-  gst_segment_set_newsegment (&segment, TRUE, -2.0, 1.0,
-      GST_FORMAT_TIME, 0, 150, 0);
-
-  fail_unless (segment.rate == -2.0);
-  fail_unless (segment.applied_rate == 1.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 150);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 50);
-  fail_unless (segment.position == 150);
-  fail_unless (segment.duration == -1);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 50);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 150);
-
-  /* 50 accumulated + 50 / 2 */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 75);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 100);
-
-  /* update segment, this does not accumulate anything. */
-  gst_segment_set_newsegment (&segment, TRUE, 1.0, 1.0,
-      GST_FORMAT_TIME, 100, 200, 100);
-
-  fail_unless (segment.rate == 1.0);
-  fail_unless (segment.applied_rate == 1.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 100);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 100);
-  fail_unless (segment.base == 50);
-  fail_unless (segment.position == 150);
-  fail_unless (segment.duration == -1);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 50);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 100);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 100);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 150);
-}
-
-GST_END_TEST;
-
-/* mess with the segment structure in the time format */
-GST_START_TEST (segment_newsegment_accum2)
-{
-  GstSegment segment;
-  guint64 result;
-
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-
-  /***************************
-   * Normal reverse segment
-   ***************************/
-  gst_segment_set_newsegment (&segment, FALSE, -1.0, 1.0,
-      GST_FORMAT_TIME, 0, 200, 0);
-
-  fail_unless (segment.rate == -1.0);
-  fail_unless (segment.applied_rate == 1.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 0);
-  fail_unless (segment.position == 200);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 0);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 200);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 50);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 150);
-
-  /* close segment, this accumulates nothing. */
-  gst_segment_set_newsegment (&segment, TRUE, -1.0, 1.0,
-      GST_FORMAT_TIME, 150, 200, 0);
-
-  fail_unless (segment.rate == -1.0);
-  fail_unless (segment.applied_rate == 1.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 150);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 0);
-  fail_unless (segment.position == 200);
-  fail_unless (segment.duration == -1);
-
-  /* new segment, this accumulates 50. */
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 1.0,
-      GST_FORMAT_TIME, 150, 300, 150);
-
-  fail_unless (segment.rate == 1.0);
-  fail_unless (segment.applied_rate == 1.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 150);
-  fail_unless (segment.stop == 300);
-  fail_unless (segment.time == 150);
-  fail_unless (segment.base == 50);
-  fail_unless (segment.position == 150);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 50);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 150);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 100);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 200);
 }
 
 GST_END_TEST;
-#endif
 
 GST_START_TEST (segment_copy)
 {
@@ -1761,17 +520,6 @@ gst_segment_suite (void)
   tcase_add_test (tc_chain, segment_seek_size);
   tcase_add_test (tc_chain, segment_seek_reverse);
   tcase_add_test (tc_chain, segment_seek_rate);
-#if 0
-  tcase_add_test (tc_chain, segment_newsegment_open);
-  tcase_add_test (tc_chain, segment_newsegment_closed);
-  tcase_add_test (tc_chain, segment_newsegment_streamtime);
-  tcase_add_test (tc_chain, segment_newsegment_streamtime_rate);
-  tcase_add_test (tc_chain, segment_newsegment_streamtime_applied_rate);
-  tcase_add_test (tc_chain, segment_newsegment_streamtime_applied_rate_rate);
-  tcase_add_test (tc_chain, segment_newsegment_runningtime);
-  tcase_add_test (tc_chain, segment_newsegment_accum);
-  tcase_add_test (tc_chain, segment_newsegment_accum2);
-#endif
   tcase_add_test (tc_chain, segment_copy);
 
   return s;