⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gstsegment.c

📁 gnash 在pc和嵌入式下开发需要的源码
💻 C
📖 第 1 页 / 共 4 页
字号:
  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_full (&segment, FALSE, -1.0, 1.0,      GST_FORMAT_TIME, 100, 300, 0);  fail_unless (segment.accum == 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_full (&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;  gint64 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_full (&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.accum == 0);  fail_unless (segment.last_stop == 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_full (&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.accum == 200);  fail_unless (segment.last_stop == 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_full (&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.accum == 400);  fail_unless (segment.last_stop == 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_full (&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.accum == 600);  fail_unless (segment.last_stop == 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;  gint64 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_full (&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.accum == 0);  fail_unless (segment.last_stop == 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_full (&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.accum == 100);  fail_unless (segment.last_stop == 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_full (&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.accum == 200);  fail_unless (segment.last_stop == 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_full (&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.accum == 400);  fail_unless (segment.last_stop == 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);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -