videorate: Revive 'new-pref' property

The 'new-pref' property sets the preference to use the new (next)
instead of the old (previous) buffer. The default is set to 0.5 to get
a similar behaviour as before the change.

Value 0.0 makes sure that only frames are shown where it's known that
the frame content is visible at that time, always show the old frame
until the new frame timestamp is reached.

Then, if the next buffer replaces the previous buffer the new buffer
is pushed as often as possible until PTS is reached. Before the new
buffer was only pushed once the new next buffer arrived.

Use GstClockTimeDiff because it's known that the current buffer time
is inside the time interval of previous buffer and next buffer the
calculation can be done with building absolute values. Special macros
are not needed here.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8579>
This commit is contained in:
Jochen Henneberg 2025-01-22 11:33:25 +01:00 committed by GStreamer Marge Bot
parent 3a4990d965
commit 6f623af4d7
54 changed files with 843 additions and 604 deletions

View File

@ -15309,12 +15309,12 @@
"writable": true
},
"new-pref": {
"blurb": "Value indicating how much to prefer new frames (unused)",
"blurb": "Value indicating how much to prefer new frames",
"conditionally-available": false,
"construct": false,
"construct-only": false,
"controllable": false,
"default": "1",
"default": "0.5",
"max": "1",
"min": "0",
"mutable": "null",

View File

@ -75,6 +75,7 @@
*
*/
#include "gst/gstcaps.h"
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
@ -93,7 +94,7 @@ enum
};
#define DEFAULT_SILENT TRUE
#define DEFAULT_NEW_PREF 1.0
#define DEFAULT_NEW_PREF 0.5
#define DEFAULT_SKIP_TO_FIRST FALSE
#define DEFAULT_DROP_ONLY FALSE
#define DEFAULT_AVERAGE_PERIOD 0
@ -139,7 +140,7 @@ static GstStaticPadTemplate gst_video_rate_sink_template =
);
static void gst_video_rate_swap_prev (GstVideoRate * videorate,
GstBuffer * buffer, gint64 time);
GstBuffer * buffer, gint64 time, GstCaps * restore_caps);
static gboolean gst_video_rate_sink_event (GstBaseTransform * trans,
GstEvent * event);
static gboolean gst_video_rate_src_event (GstBaseTransform * trans,
@ -171,6 +172,8 @@ static void gst_video_rate_set_property (GObject * object,
static void gst_video_rate_get_property (GObject * object,
guint prop_id, GValue * value, GParamSpec * pspec);
static gboolean gst_video_rate_past_buffer (GstVideoRate * videorate);
static GParamSpec *pspec_drop = NULL;
static GParamSpec *pspec_duplicate = NULL;
@ -220,9 +223,16 @@ gst_video_rate_class_init (GstVideoRateClass * klass)
g_param_spec_boolean ("silent", "silent",
"Don't emit notify for dropped and duplicated frames", DEFAULT_SILENT,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
/**
* GstVideoRate:new-pref:
*
* Decide when to switch from last to next buffer for output.
*
* Since: 1.28
*/
g_object_class_install_property (object_class, PROP_NEW_PREF,
g_param_spec_double ("new-pref", "New Pref",
"Value indicating how much to prefer new frames (unused)", 0.0, 1.0,
"Value indicating how much to prefer new frames", 0.0, 1.0,
DEFAULT_NEW_PREF, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
/**
@ -655,6 +665,7 @@ gst_video_rate_reset (GstVideoRate * videorate, gboolean on_flush)
videorate->drop = 0;
videorate->dup = 0;
videorate->next_ts = GST_CLOCK_TIME_NONE;
videorate->next_end_ts = GST_CLOCK_TIME_NONE;
videorate->last_ts = GST_CLOCK_TIME_NONE;
videorate->discont = TRUE;
videorate->average = 0;
@ -663,7 +674,7 @@ gst_video_rate_reset (GstVideoRate * videorate, gboolean on_flush)
/* Do not clear caps on flush events as those are still valid */
gst_clear_caps (&videorate->in_caps);
}
gst_video_rate_swap_prev (videorate, NULL, 0);
gst_video_rate_swap_prev (videorate, NULL, 0, NULL);
gst_segment_init (&videorate->segment, GST_FORMAT_TIME);
}
@ -721,6 +732,7 @@ gst_video_rate_push_buffer (GstVideoRate * videorate, GstBuffer * outbuf,
videorate->out++;
videorate->out_frame_count++;
if (videorate->segment.rate < 0.0) {
videorate->next_end_ts = push_ts;
if (videorate->to_rate_numerator) {
/* interpolate next expected timestamp in the segment */
GstClockTimeDiff next_ts = videorate->base_ts -
@ -728,7 +740,10 @@ gst_video_rate_push_buffer (GstVideoRate * videorate, GstBuffer * outbuf,
videorate->to_rate_denominator * GST_SECOND,
videorate->to_rate_numerator);
videorate->next_ts = next_ts < 0 ? GST_CLOCK_TIME_NONE : next_ts;
if (next_ts < 0 || next_ts < videorate->segment.start)
videorate->next_ts = GST_CLOCK_TIME_NONE;
else
videorate->next_ts = next_ts;
GST_BUFFER_DURATION (outbuf) =
gst_util_uint64_scale (videorate->out_frame_count,
@ -743,6 +758,7 @@ gst_video_rate_push_buffer (GstVideoRate * videorate, GstBuffer * outbuf,
GST_FIXME_OBJECT (videorate, "No next intime for reverse playback");
}
} else {
videorate->next_end_ts = GST_CLOCK_TIME_NONE;
if (videorate->to_rate_numerator) {
/* interpolate next expected timestamp in the segment */
videorate->next_ts = videorate->base_ts +
@ -767,10 +783,6 @@ gst_video_rate_push_buffer (GstVideoRate * videorate, GstBuffer * outbuf,
GST_BUFFER_PTS (outbuf) = push_ts;
}
GST_LOG_OBJECT (videorate,
"old is best, dup, pushing buffer outgoing ts %" GST_TIME_FORMAT,
GST_TIME_ARGS (push_ts));
if (videorate->drop_out_of_segment
&& !gst_segment_clip (&videorate->segment, GST_FORMAT_TIME,
GST_BUFFER_PTS (outbuf),
@ -782,6 +794,9 @@ gst_video_rate_push_buffer (GstVideoRate * videorate, GstBuffer * outbuf,
return res;
}
GST_LOG_OBJECT (videorate,
"pushing buffer outgoing ts %" GST_TIME_FORMAT, GST_TIME_ARGS (push_ts));
res = gst_pad_push (GST_BASE_TRANSFORM_SRC_PAD (videorate), outbuf);
return res;
@ -812,22 +827,6 @@ eos_before_buffers:
}
}
static void
gst_video_rate_swap_prev (GstVideoRate * videorate, GstBuffer * buffer,
gint64 time)
{
GST_LOG_OBJECT (videorate, "swap_prev: storing buffer %p in prev", buffer);
gst_buffer_replace (&videorate->prevbuf, buffer);
/* Ensure that ->prev_caps always match ->prevbuf */
if (!buffer)
gst_caps_replace (&videorate->prev_caps, NULL);
else if (videorate->prev_caps != videorate->in_caps)
gst_caps_replace (&videorate->prev_caps, videorate->in_caps);
videorate->prev_ts = time;
}
static void
gst_video_rate_notify_drop (GstVideoRate * videorate)
{
@ -840,6 +839,57 @@ gst_video_rate_notify_duplicate (GstVideoRate * videorate)
g_object_notify_by_pspec ((GObject *) videorate, pspec_duplicate);
}
static void
gst_video_rate_swap_prev (GstVideoRate * videorate, GstBuffer * buffer,
gint64 time, GstCaps * restore_caps)
{
gboolean first_buf = !videorate->prevbuf;
gint count = 0;
GST_LOG_OBJECT (videorate, "swap_prev: storing buffer %p in prev", buffer);
/* If the caps on the src pad have been reverted to push old buffers
first restore the current caps now */
if (restore_caps) {
GST_LOG_OBJECT (videorate, "Restoring caps to current %"
GST_PTR_FORMAT, restore_caps);
gst_pad_send_event (GST_BASE_TRANSFORM_SINK_PAD (videorate),
gst_event_new_caps (restore_caps));
gst_caps_unref (restore_caps);
}
videorate->prevbuf_pushed = FALSE;
gst_buffer_replace (&videorate->prevbuf, buffer);
/* Ensure that ->prev_caps always match ->prevbuf */
if (!buffer)
gst_caps_replace (&videorate->prev_caps, NULL);
else if (videorate->prev_caps != videorate->in_caps)
gst_caps_replace (&videorate->prev_caps, videorate->in_caps);
videorate->prev_ts = time;
/* and push out as many copies of the new buffer as possible */
GST_LOG_OBJECT (videorate,
"swap_prev: try pushing new buffer %p as often as possible", buffer);
while (!first_buf && buffer && gst_video_rate_past_buffer (videorate)) {
GST_LOG_OBJECT (videorate,
"next %" GST_TIME_FORMAT " vs latest %"
GST_TIME_FORMAT, GST_TIME_ARGS (videorate->next_ts),
GST_TIME_ARGS (videorate->prev_ts));
gst_video_rate_flush_prev (videorate,
videorate->prevbuf_pushed, time, FALSE);
videorate->prevbuf_pushed = TRUE;
count++;
}
if (count > 1) {
videorate->dup += count - 1;
if (!videorate->silent)
gst_video_rate_notify_duplicate (videorate);
}
}
static gboolean
gst_video_rate_check_duplicate_to_close_segment (GstVideoRate * videorate,
GstClockTime last_input_ts, gboolean is_first)
@ -960,9 +1010,9 @@ gst_video_rate_rollback_to_prev_caps_if_needed (GstVideoRate * videorate)
)) {
GST_WARNING_OBJECT (videorate, "Could not send previous caps to close "
" segment, not closing it");
" segment or push old buffers, not closing it");
gst_video_rate_swap_prev (videorate, NULL, GST_CLOCK_TIME_NONE);
gst_video_rate_swap_prev (videorate, NULL, GST_CLOCK_TIME_NONE, NULL);
videorate->last_ts = GST_CLOCK_TIME_NONE;
videorate->average = 0;
}
@ -1029,7 +1079,7 @@ gst_video_rate_sink_event (GstBaseTransform * trans, GstEvent * event)
gst_video_rate_notify_duplicate (videorate);
}
/* clean up for the new one; _chain will resume from the new start */
gst_video_rate_swap_prev (videorate, NULL, 0);
gst_video_rate_swap_prev (videorate, NULL, 0, NULL);
}
if (rolled_back_caps) {
@ -1598,7 +1648,7 @@ gst_video_rate_switch_mode_if_needed (GstVideoRate * videorate)
/* enabling average mode */
videorate->average = 0;
/* make sure no cached buffers from regular mode are left */
gst_video_rate_swap_prev (videorate, NULL, 0);
gst_video_rate_swap_prev (videorate, NULL, 0, NULL);
} else {
/* enable regular mode */
videorate->next_ts = GST_CLOCK_TIME_NONE;
@ -1614,7 +1664,7 @@ gst_video_rate_switch_mode_if_needed (GstVideoRate * videorate)
static gboolean
gst_video_rate_do_max_duplicate (GstVideoRate * videorate, GstBuffer * buffer,
GstClockTime intime, GstClockTime prevtime, gint * count)
GstClockTime intime, GstClockTime prevtime)
{
if (videorate->max_duplication_time <= 0)
return TRUE;
@ -1629,27 +1679,6 @@ gst_video_rate_do_max_duplicate (GstVideoRate * videorate, GstBuffer * buffer,
") than max-duplication-time (%" GST_TIME_FORMAT ")",
GST_TIME_ARGS (intime), GST_TIME_ARGS (prevtime),
GST_TIME_ARGS (videorate->max_duplication_time));
/* First send out enough buffers to actually reach the time of the
* previous buffer */
if (videorate->segment.rate < 0.0) {
while (videorate->next_ts > prevtime) {
gst_video_rate_flush_prev (videorate, *count > 0, GST_CLOCK_TIME_NONE,
FALSE);
*count += 1;
}
} else {
while (videorate->next_ts <= prevtime) {
gst_video_rate_flush_prev (videorate, *count > 0, GST_CLOCK_TIME_NONE,
FALSE);
*count += 1;
}
}
if (*count > 1) {
videorate->dup += *count - 1;
if (!videorate->silent)
gst_video_rate_notify_duplicate (videorate);
}
/* The gap between the two buffers is too large. Don't fill it, just
* let a discont through */
@ -1663,7 +1692,7 @@ gst_video_rate_do_max_duplicate (GstVideoRate * videorate, GstBuffer * buffer,
videorate->next_ts = intime;
/* Swap in new buffer and get rid of old buffer so that starting with
* the next input buffer we output from the new position */
gst_video_rate_swap_prev (videorate, buffer, intime);
gst_video_rate_swap_prev (videorate, buffer, intime, NULL);
return FALSE;
}
@ -1697,6 +1726,50 @@ done:
return ret;
}
static gboolean
gst_video_rate_past_buffer (GstVideoRate * videorate)
{
GstClockTime next_ts, next_end_ts;
/* A new rate may have been set which must be considered here for
timestamp calculation */
gst_video_rate_apply_pending_rate (videorate);
/* On variable framerate we cannot push upfront */
if (videorate->force_variable_rate)
return FALSE;
if (videorate->segment.rate < 0.0) {
next_ts = videorate->next_ts;
if (!GST_CLOCK_TIME_IS_VALID (videorate->next_ts))
return FALSE;
if (videorate->to_rate_numerator) {
GstClockTime frame_duration = gst_util_uint64_scale (1,
videorate->to_rate_denominator * GST_SECOND,
videorate->to_rate_numerator);
next_end_ts = next_ts + frame_duration;
} else {
next_end_ts = next_ts + GST_BUFFER_DURATION (videorate->prevbuf);
}
next_ts = videorate->base_ts - ((videorate->base_ts -
next_ts) * videorate->rate);
if (videorate->base_ts > next_end_ts)
next_end_ts = videorate->base_ts - ((videorate->base_ts -
next_end_ts) * videorate->rate);
else
next_end_ts = videorate->base_ts;
return next_end_ts >= videorate->prev_ts;
} else {
next_ts = videorate->base_ts + ((videorate->next_ts -
videorate->base_ts) * videorate->rate);
return next_ts <= videorate->prev_ts;
}
}
static GstFlowReturn
gst_video_rate_transform_ip (GstBaseTransform * trans, GstBuffer * buffer)
{
@ -1704,18 +1777,18 @@ gst_video_rate_transform_ip (GstBaseTransform * trans, GstBuffer * buffer)
GstFlowReturn res = GST_BASE_TRANSFORM_FLOW_DROPPED;
GstClockTime in_ts, in_dur, last_ts;
gboolean skip;
GstCaps *restore_caps = NULL;
videorate = GST_VIDEO_RATE (trans);
if (videorate->prev_caps != videorate->in_caps) {
/* After caps where set we didn't reset the state so we could close
* the segment from previous caps if necessary, we got a buffer after the
* new caps so we can reset now */
GST_DEBUG_OBJECT (videorate, "Clearing old buffers now that we had a buffer"
" after receiving caps");
gst_video_rate_swap_prev (videorate, NULL, GST_CLOCK_TIME_NONE);
gst_clear_caps (&videorate->prev_caps);
videorate->average = 0;
/* In case of caps changes and if a buffer has been received and
it's not sure if it must still be pushed save the current caps
and set the previous caps again */
if (videorate->prev_caps != videorate->in_caps &&
videorate->new_pref < 1.0 && videorate->prevbuf != NULL) {
GST_LOG_OBJECT (videorate, "Restore previous caps %" GST_PTR_FORMAT,
videorate->prev_caps);
restore_caps = gst_video_rate_rollback_to_prev_caps_if_needed (videorate);
}
/* make sure the denominators are not 0 */
@ -1778,7 +1851,7 @@ gst_video_rate_transform_ip (GstBaseTransform * trans, GstBuffer * buffer)
GST_BUFFER_DURATION (buffer) = last_ts - in_ts;
}
gst_video_rate_swap_prev (videorate, buffer, in_ts);
gst_video_rate_swap_prev (videorate, buffer, in_ts, NULL);
videorate->in++;
if (!GST_CLOCK_TIME_IS_VALID (videorate->next_ts)) {
/* new buffer, we expect to output a buffer that matches the first
@ -1838,8 +1911,8 @@ gst_video_rate_transform_ip (GstBaseTransform * trans, GstBuffer * buffer)
}
} else {
GstClockTime prev_ts;
gint count = 0;
gint64 diff1 = 0, diff2 = 0;
gint count = videorate->prevbuf_pushed;
GstClockTimeDiff diff1 = 0, diff2 = 0;
prev_ts = videorate->prev_ts;
@ -1864,8 +1937,7 @@ gst_video_rate_transform_ip (GstBaseTransform * trans, GstBuffer * buffer)
goto done;
}
if (!gst_video_rate_do_max_duplicate (videorate, buffer, in_ts, prev_ts,
&count))
if (!gst_video_rate_do_max_duplicate (videorate, buffer, in_ts, prev_ts))
goto done;
/* got 2 buffers, see which one is the best */
@ -1889,11 +1961,6 @@ gst_video_rate_transform_ip (GstBaseTransform * trans, GstBuffer * buffer)
in_ts > prev_ts ? in_ts - prev_ts : 0;
}
#ifndef ABSDIFF
#define ABSDIFF(a, b) (((a) > (b)) ? (a) - (b) : (b) - (a))
#endif
/* take absolute diffs */
if (videorate->segment.rate < 0.0) {
GstClockTime next_end_ts;
GstClockTime prev_endtime;
@ -1928,26 +1995,30 @@ gst_video_rate_transform_ip (GstBaseTransform * trans, GstBuffer * buffer)
else
next_end_ts = videorate->base_ts;
diff1 = ABSDIFF (prev_endtime, next_end_ts);
diff2 = ABSDIFF (in_endtime, next_end_ts);
diff1 = GST_CLOCK_DIFF (next_end_ts, prev_endtime);
diff2 = GST_CLOCK_DIFF (in_endtime, next_end_ts);
diff1 *= (1.0 - videorate->new_pref);
diff2 *= videorate->new_pref;
GST_LOG_OBJECT (videorate,
"diff with prev %" GST_TIME_FORMAT " diff with new %"
GST_TIME_FORMAT " outgoing ts %" GST_TIME_FORMAT,
GST_TIME_ARGS (diff1), GST_TIME_ARGS (diff2),
"diff with prev %" GST_STIME_FORMAT " diff with new %"
GST_STIME_FORMAT " outgoing ts %" GST_TIME_FORMAT,
GST_STIME_ARGS (diff1), GST_STIME_ARGS (diff2),
GST_TIME_ARGS (next_end_ts));
} else {
next_ts =
videorate->base_ts + ((videorate->next_ts -
videorate->base_ts) * videorate->rate);
diff1 = ABSDIFF (prev_ts, next_ts);
diff2 = ABSDIFF (in_ts, next_ts);
diff1 = GST_CLOCK_DIFF (prev_ts, next_ts);
diff2 = GST_CLOCK_DIFF (next_ts, in_ts);
diff1 *= videorate->new_pref;
diff2 *= (1.0 - videorate->new_pref);
GST_LOG_OBJECT (videorate,
"diff with prev %" GST_TIME_FORMAT " diff with new %"
GST_TIME_FORMAT " outgoing ts %" GST_TIME_FORMAT,
GST_TIME_ARGS (diff1), GST_TIME_ARGS (diff2),
"diff with prev %" GST_STIME_FORMAT " diff with new %"
GST_STIME_FORMAT " outgoing ts %" GST_TIME_FORMAT,
GST_STIME_ARGS (diff1), GST_STIME_ARGS (diff2),
GST_TIME_ARGS (next_ts));
}
@ -1987,15 +2058,15 @@ gst_video_rate_transform_ip (GstBaseTransform * trans, GstBuffer * buffer)
GST_TIME_FORMAT, GST_TIME_ARGS (videorate->next_ts));
}
GST_LOG_OBJECT (videorate,
"END, putting new in old, diff1 %" GST_TIME_FORMAT
", diff2 %" GST_TIME_FORMAT ", next_ts %" GST_TIME_FORMAT
"END, putting new in old, diff1 %" GST_STIME_FORMAT
", diff2 %" GST_STIME_FORMAT ", next_ts %" GST_TIME_FORMAT
", in %" G_GUINT64_FORMAT ", out %" G_GUINT64_FORMAT ", drop %"
G_GUINT64_FORMAT ", dup %" G_GUINT64_FORMAT, GST_TIME_ARGS (diff1),
GST_TIME_ARGS (diff2), GST_TIME_ARGS (videorate->next_ts),
G_GUINT64_FORMAT ", dup %" G_GUINT64_FORMAT, GST_STIME_ARGS (diff1),
GST_STIME_ARGS (diff2), GST_TIME_ARGS (videorate->next_ts),
videorate->in, videorate->out, videorate->drop, videorate->dup);
/* swap in new one when it's the best */
gst_video_rate_swap_prev (videorate, buffer, in_ts);
gst_video_rate_swap_prev (videorate, buffer, in_ts, restore_caps);
}
done:
return res;

View File

@ -42,8 +42,11 @@ struct _GstVideoRate
gint from_rate_numerator, from_rate_denominator;
gint to_rate_numerator, to_rate_denominator;
guint64 next_ts; /* Timestamp of next buffer to output */
guint64 next_end_ts; /* Timestamp of end of next buffer to output */
GstBuffer *prevbuf;
gboolean prevbuf_pushed;
guint64 prev_ts; /* Previous buffer timestamp */
guint64 prev_end_ts; /* Previous buffer end timestamp */
guint64 out_frame_count; /* number of frames output since the beginning
* of the segment or the last frame rate caps
* change, whichever was later */

View File

@ -19,6 +19,7 @@
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#include "gst/gstclock.h"
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
@ -245,10 +246,11 @@ GST_START_TEST (test_more)
/* ... and a copy is now stuck inside videorate */
ASSERT_BUFFER_REFCOUNT (second, "second", 1);
/* ... and the first one is pushed out, with timestamp 0 */
fail_unless_equals_int (g_list_length (buffers), 1);
assert_videorate_stats (videorate, "second buffer", 2, 1, 0, 0);
/* ... and the first two are pushed out, with timestamp 0 and 1/25 */
fail_unless_equals_int (g_list_length (buffers), 2);
assert_videorate_stats (videorate, "second buffer", 2, 2, 0, 0);
ASSERT_BUFFER_REFCOUNT (first, "first", 1);
ASSERT_BUFFER_REFCOUNT (second, "second", 1);
outbuffer = buffers->data;
fail_unless_equals_uint64 (GST_BUFFER_TIMESTAMP (outbuffer), 0);
@ -267,8 +269,9 @@ GST_START_TEST (test_more)
/* ... and a copy is now stuck inside videorate */
ASSERT_BUFFER_REFCOUNT (third, "third", 1);
/* submitting the third buffer has triggered flushing of three more frames */
assert_videorate_stats (videorate, "third buffer", 3, 4, 0, 2);
/* submitting the third buffer has triggered flushing of five more frames,
everything until 1/25 -> 6/25 (12/50) */
assert_videorate_stats (videorate, "third buffer", 3, 7, 0, 4);
/* check timestamp and source correctness */
l = buffers;
@ -297,17 +300,16 @@ GST_START_TEST (test_more)
fail_unless_equals_uint64 (GST_BUFFER_OFFSET (l->data), 3);
fail_unless_equals_uint64 (GST_BUFFER_OFFSET_END (l->data), 4);
fail_unless_equals_int (g_list_length (buffers), 4);
fail_unless_equals_int (g_list_length (buffers), 7);
/* one held by us, three held by each output frame taken from the second */
ASSERT_BUFFER_REFCOUNT (second, "second", 1);
/* now send EOS */
fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
/* submitting eos should flush out two more frames for tick 8 and 10 */
/* FIXME: right now it only flushes out one, so out is 5 instead of 6 ! */
assert_videorate_stats (videorate, "eos", 3, 5, 0, 2);
fail_unless_equals_int (g_list_length (buffers), 5);
/* submitting eos flush out one more frame for the next tick */
assert_videorate_stats (videorate, "eos", 3, 8, 0, 4);
fail_unless_equals_int (g_list_length (buffers), 8);
/* cleanup */
g_rand_free (rand);
@ -379,19 +381,18 @@ GST_START_TEST (test_wrong_order_from_zero)
/* ... and a copy is now stuck inside videorate */
ASSERT_BUFFER_REFCOUNT (third, "third", 1);
/* and now the first one should be pushed once and dupped 24 + 13 times, to
* reach the half point between 1 s (first) and 2 s (third) */
fail_unless_equals_int (g_list_length (buffers), 38);
/* 26 buffer for 0s -> 1s and another 25 from 26/25s -> 2s */
fail_unless_equals_int (g_list_length (buffers), 51);
ASSERT_BUFFER_REFCOUNT (first, "first", 1);
ASSERT_BUFFER_REFCOUNT (second, "second", 1);
ASSERT_BUFFER_REFCOUNT (third, "third", 1);
assert_videorate_stats (videorate, "third", 3, 38, 1, 37);
assert_videorate_stats (videorate, "third", 3, 51, 1, 49);
/* verify last buffer */
outbuffer = g_list_last (buffers)->data;
fail_unless (GST_IS_BUFFER (outbuffer));
fail_unless_equals_uint64 (GST_BUFFER_TIMESTAMP (outbuffer),
GST_SECOND * 37 / 25);
GST_SECOND * 50 / 25);
/* cleanup */
gst_buffer_unref (first);
@ -445,9 +446,10 @@ GST_START_TEST (test_max_duplication_time)
fail_unless (gst_pad_push (mysrcpad, second) == GST_FLOW_OK);
/* ... and a copy is now stuck inside videorate */
ASSERT_BUFFER_REFCOUNT (second, "second", 1);
/* and it created 13 output buffers as copies of the first frame */
fail_unless_equals_int (g_list_length (buffers), 13);
assert_videorate_stats (videorate, "second", 2, 13, 0, 12);
/* and it created 26 output buffers as copies of the
first and second frame */
fail_unless_equals_int (g_list_length (buffers), 26);
assert_videorate_stats (videorate, "second", 2, 26, 0, 24);
ASSERT_BUFFER_REFCOUNT (first, "first", 1);
/* third buffer */
@ -463,14 +465,15 @@ GST_START_TEST (test_max_duplication_time)
ASSERT_BUFFER_REFCOUNT (third, "third", 1);
/* submitting a frame with 2 seconds triggers output of 25 more frames */
fail_unless_equals_int (g_list_length (buffers), 38);
fail_unless_equals_int (g_list_length (buffers), 51);
ASSERT_BUFFER_REFCOUNT (first, "first", 1);
ASSERT_BUFFER_REFCOUNT (second, "second", 1);
ASSERT_BUFFER_REFCOUNT (third, "third", 1);
/* three frames submitted; two of them output as is, and 36 duplicated */
assert_videorate_stats (videorate, "third", 3, 38, 0, 36);
/* three frames submitted; two of them output as is,
and 36 + 12 duplicated */
assert_videorate_stats (videorate, "third", 3, 51, 0, 48);
/* fourth buffer */
/* fourth buffer, this buffer exceeds max-duplication-time */
fourth = gst_buffer_new_and_alloc (4);
GST_BUFFER_TIMESTAMP (fourth) = 5 * GST_SECOND;
gst_buffer_memset (fourth, 0, 0, 4);
@ -482,18 +485,18 @@ GST_START_TEST (test_max_duplication_time)
/* ... and a copy is now stuck inside videorate */
ASSERT_BUFFER_REFCOUNT (fourth, "fourth", 1);
/* should now have drained everything up to the 2s buffer above */
fail_unless_equals_int (g_list_length (buffers), 51);
/* should now have drained everything up to the 5s buffer above */
fail_unless_equals_int (g_list_length (buffers), 52);
ASSERT_BUFFER_REFCOUNT (first, "first", 1);
ASSERT_BUFFER_REFCOUNT (second, "second", 1);
ASSERT_BUFFER_REFCOUNT (third, "third", 1);
ASSERT_BUFFER_REFCOUNT (fourth, "fourth", 1);
assert_videorate_stats (videorate, "fourth", 4, 51, 0, 48);
assert_videorate_stats (videorate, "fourth", 4, 52, 0, 48);
/* verify last buffer */
outbuffer = g_list_last (buffers)->data;
fail_unless (GST_IS_BUFFER (outbuffer));
fail_unless_equals_uint64 (GST_BUFFER_TIMESTAMP (outbuffer), 2 * GST_SECOND);
fail_unless_equals_uint64 (GST_BUFFER_TIMESTAMP (outbuffer), 5 * GST_SECOND);
/* fifth buffer */
fifth = gst_buffer_new_and_alloc (4);
@ -507,28 +510,28 @@ GST_START_TEST (test_max_duplication_time)
/* ... and a copy is now stuck inside videorate */
ASSERT_BUFFER_REFCOUNT (third, "fifth", 1);
/* submitting a frame with 6 seconds triggers output of 12 more frames */
fail_unless_equals_int (g_list_length (buffers), 63);
/* submitting a frame with 6 seconds triggers output of 23 more frames */
fail_unless_equals_int (g_list_length (buffers), 76);
ASSERT_BUFFER_REFCOUNT (first, "first", 1);
ASSERT_BUFFER_REFCOUNT (second, "second", 1);
ASSERT_BUFFER_REFCOUNT (third, "third", 1);
ASSERT_BUFFER_REFCOUNT (fourth, "fourth", 1);
ASSERT_BUFFER_REFCOUNT (fifth, "fifth", 1);
/* five frames submitted; two of them output as is, 63 and 59 duplicated */
assert_videorate_stats (videorate, "fifth", 5, 63, 0, 59);
/* five frames submitted; two of them output as is, 76 */
assert_videorate_stats (videorate, "fifth", 5, 76, 0, 71);
/* push EOS to drain */
fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
/* we should now have gotten one output for the last frame */
fail_unless_equals_int (g_list_length (buffers), 64);
fail_unless_equals_int (g_list_length (buffers), 77);
ASSERT_BUFFER_REFCOUNT (first, "first", 1);
ASSERT_BUFFER_REFCOUNT (second, "second", 1);
ASSERT_BUFFER_REFCOUNT (third, "third", 1);
ASSERT_BUFFER_REFCOUNT (fourth, "fourth", 1);
ASSERT_BUFFER_REFCOUNT (fifth, "fifth", 1);
/* five frames submitted; two of them output as is, 64 and 60 duplicated */
assert_videorate_stats (videorate, "fifth", 5, 64, 0, 59);
/* five frames submitted; two of them output as is, 77 */
assert_videorate_stats (videorate, "fifth", 5, 77, 0, 71);
/* cleanup */
gst_buffer_unref (first);
@ -583,9 +586,9 @@ GST_START_TEST (test_wrong_order)
fail_unless (gst_pad_push (mysrcpad, second) == GST_FLOW_OK);
/* ... and a copy is now stuck inside videorate */
ASSERT_BUFFER_REFCOUNT (second, "second", 1);
/* and it created 13 output buffers as copies of the first frame */
fail_unless_equals_int (g_list_length (buffers), 13);
assert_videorate_stats (videorate, "second", 2, 13, 0, 12);
/* and it created 26 output buffers as copies of the first frame */
fail_unless_equals_int (g_list_length (buffers), 26);
assert_videorate_stats (videorate, "second", 2, 26, 0, 24);
ASSERT_BUFFER_REFCOUNT (first, "first", 1);
/* third buffer */
@ -600,12 +603,12 @@ GST_START_TEST (test_wrong_order)
/* ... and a copy is now stuck inside videorate */
ASSERT_BUFFER_REFCOUNT (third, "third", 1);
/* submitting a frame with 2 seconds triggers output of 25 more frames */
fail_unless_equals_int (g_list_length (buffers), 38);
/* submitting a frame at 2s triggers output of 25 more frames */
fail_unless_equals_int (g_list_length (buffers), 51);
ASSERT_BUFFER_REFCOUNT (first, "first", 1);
ASSERT_BUFFER_REFCOUNT (second, "second", 1);
/* three frames submitted; two of them output as is, and 36 duplicated */
assert_videorate_stats (videorate, "third", 3, 38, 0, 36);
/* three frames submitted; two of them output as is, and 36 + 11 duplicated */
assert_videorate_stats (videorate, "third", 3, 51, 0, 48);
/* fourth buffer */
fourth = gst_buffer_new_and_alloc (4);
@ -619,16 +622,16 @@ GST_START_TEST (test_wrong_order)
/* ... and it is dropped */
ASSERT_BUFFER_REFCOUNT (fourth, "fourth", 1);
fail_unless_equals_int (g_list_length (buffers), 38);
fail_unless_equals_int (g_list_length (buffers), 51);
ASSERT_BUFFER_REFCOUNT (first, "first", 1);
ASSERT_BUFFER_REFCOUNT (second, "second", 1);
assert_videorate_stats (videorate, "fourth", 4, 38, 1, 36);
assert_videorate_stats (videorate, "fourth", 4, 51, 1, 48);
/* verify last buffer */
outbuffer = g_list_last (buffers)->data;
fail_unless (GST_IS_BUFFER (outbuffer));
fail_unless_equals_uint64 (GST_BUFFER_TIMESTAMP (outbuffer),
GST_SECOND * 37 / 25);
GST_SECOND * 50 / 25);
/* cleanup */
@ -712,9 +715,9 @@ GST_START_TEST (test_changing_size)
gst_buffer_memset (second, 0, 0, 4);
fail_unless (gst_pad_push (mysrcpad, second) == GST_FLOW_OK);
fail_unless_equals_int (g_list_length (buffers), 1);
fail_unless_equals_int (g_list_length (buffers), 2);
outbuf = buffers->data;
/* first buffer should be output here */
/* first two buffers should be output here */
fail_unless (GST_BUFFER_TIMESTAMP (outbuf) == 0);
/* third buffer with new size */
@ -725,12 +728,12 @@ GST_START_TEST (test_changing_size)
gst_pad_set_caps (mysrcpad, caps_newsize);
fail_unless (gst_pad_push (mysrcpad, third) == GST_FLOW_OK);
/* new caps flushed the internal state, no new output yet */
fail_unless_equals_int (g_list_length (buffers), 1);
/* output next buffer after caps change */
fail_unless_equals_int (g_list_length (buffers), 3);
outbuf = g_list_last (buffers)->data;
/* first buffer should be output here */
/* first 3 buffers should be output here */
//fail_unless (gst_caps_is_equal (GST_BUFFER_CAPS (outbuf), caps));
fail_unless (GST_BUFFER_TIMESTAMP (outbuf) == 0);
fail_unless (GST_BUFFER_TIMESTAMP (outbuf) == GST_SECOND * 2 / 25);
/* fourth buffer with original size */
fourth = gst_buffer_new_and_alloc (4);
@ -739,7 +742,7 @@ GST_START_TEST (test_changing_size)
gst_pad_set_caps (mysrcpad, caps);
fail_unless (gst_pad_push (mysrcpad, fourth) == GST_FLOW_OK);
fail_unless_equals_int (g_list_length (buffers), 1);
fail_unless_equals_int (g_list_length (buffers), 4);
/* fifth buffer with original size */
fifth = gst_buffer_new_and_alloc (4);
@ -747,12 +750,11 @@ GST_START_TEST (test_changing_size)
gst_buffer_memset (fifth, 0, 0, 4);
fail_unless (gst_pad_push (mysrcpad, fifth) == GST_FLOW_OK);
/* all four missing buffers here, dups of fourth buffer */
fail_unless_equals_int (g_list_length (buffers), 4);
/* all five buffers here */
fail_unless_equals_int (g_list_length (buffers), 5);
outbuf = g_list_last (buffers)->data;
/* third buffer should be output here */
fail_unless (GST_BUFFER_TIMESTAMP (outbuf) == 3 * GST_SECOND / 25);
//fail_unless (gst_caps_is_equal (GST_BUFFER_CAPS (outbuf), caps));
fail_unless (GST_BUFFER_TIMESTAMP (outbuf) == 4 * GST_SECOND / 25);
gst_caps_unref (caps);
gst_caps_unref (caps_newsize);
@ -1740,8 +1742,8 @@ GST_START_TEST (test_segment_update_start_advance)
fail_unless (gst_pad_push (mysrcpad, buf) == GST_FLOW_OK);
ASSERT_BUFFER_REFCOUNT (buf, "second", 1);
gst_buffer_unref (buf);
fail_unless_equals_int (g_list_length (buffers), 1);
assert_videorate_stats (videorate, "second", 2, 1, 0, 0);
fail_unless_equals_int (g_list_length (buffers), 2);
assert_videorate_stats (videorate, "second", 2, 2, 0, 0);
/* third buffer */
buf = gst_buffer_new_and_alloc (4);
@ -1754,8 +1756,8 @@ GST_START_TEST (test_segment_update_start_advance)
fail_unless (gst_pad_push (mysrcpad, buf) == GST_FLOW_OK);
ASSERT_BUFFER_REFCOUNT (buf, "third", 1);
gst_buffer_unref (buf);
fail_unless_equals_int (g_list_length (buffers), 2);
assert_videorate_stats (videorate, "second", 3, 2, 0, 0);
fail_unless_equals_int (g_list_length (buffers), 3);
assert_videorate_stats (videorate, "second", 3, 3, 0, 0);
/* should have the first 2 buffers here */
for (l = buffers; l; l = l->next) {
@ -1790,7 +1792,7 @@ GST_START_TEST (test_segment_update_start_advance)
ASSERT_BUFFER_REFCOUNT (buf, "fourth", 1);
gst_buffer_unref (buf);
fail_unless_equals_int (g_list_length (buffers), 1);
assert_videorate_stats (videorate, "fourth", 4, 3, 0, 0);
assert_videorate_stats (videorate, "fourth", 4, 4, 0, 0);
/* Should have the last buffer of the previous segment here */
for (l = buffers; l; l = l->next) {
@ -1816,14 +1818,14 @@ GST_START_TEST (test_segment_update_start_advance)
fail_unless (gst_pad_push (mysrcpad, buf) == GST_FLOW_OK);
ASSERT_BUFFER_REFCOUNT (buf, "fifth", 1);
gst_buffer_unref (buf);
fail_unless_equals_int (g_list_length (buffers), 2);
assert_videorate_stats (videorate, "fifth", 5, 5, 0, 1);
fail_unless_equals_int (g_list_length (buffers), 3);
assert_videorate_stats (videorate, "fifth", 5, 7, 0, 1);
/* push EOS to drain out all buffers */
fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
fail_unless_equals_int (g_list_length (buffers), 3);
fail_unless_equals_int (g_list_length (buffers), 4);
assert_videorate_stats (videorate, "fifth", 5, 6, 0, 1);
assert_videorate_stats (videorate, "fifth", 5, 8, 0, 1);
/* Should start with the new buffers of the new segment now */
next_ts = 30 * GST_SECOND;
@ -1832,7 +1834,7 @@ GST_START_TEST (test_segment_update_start_advance)
fail_unless_equals_uint64 (GST_BUFFER_PTS (buf), next_ts);
fail_unless_equals_uint64 (GST_BUFFER_DURATION (buf), 40 * GST_MSECOND);
if (n < 6) {
if (n < 7) {
fail_unless_equals_int (buffer_get_byte (buf, 0), 4);
} else {
fail_unless_equals_int (buffer_get_byte (buf, 0), 5);
@ -1841,7 +1843,7 @@ GST_START_TEST (test_segment_update_start_advance)
next_ts += GST_SECOND / 25;
n += 1;
}
fail_unless_equals_int (n, 7);
fail_unless_equals_int (n, 9);
gst_check_drop_buffers ();
fail_unless_equals_int (g_list_length (buffers), 0);
@ -1906,8 +1908,8 @@ GST_START_TEST (test_segment_update_same)
fail_unless (gst_pad_push (mysrcpad, buf) == GST_FLOW_OK);
ASSERT_BUFFER_REFCOUNT (buf, "second", 1);
gst_buffer_unref (buf);
fail_unless_equals_int (g_list_length (buffers), 51);
assert_videorate_stats (videorate, "second", 2, 51, 0, 50);
fail_unless_equals_int (g_list_length (buffers), 52);
assert_videorate_stats (videorate, "second", 2, 52, 0, 50);
/* third buffer */
buf = gst_buffer_new_and_alloc (4);
@ -1920,10 +1922,11 @@ GST_START_TEST (test_segment_update_same)
fail_unless (gst_pad_push (mysrcpad, buf) == GST_FLOW_OK);
ASSERT_BUFFER_REFCOUNT (buf, "third", 1);
gst_buffer_unref (buf);
fail_unless_equals_int (g_list_length (buffers), 52);
assert_videorate_stats (videorate, "second", 3, 52, 0, 50);
/* first buffer has been dupped to fill the gap to the 2nd buffer */
fail_unless_equals_int (g_list_length (buffers), 53);
assert_videorate_stats (videorate, "second", 3, 53, 0, 50);
/* should have the first 2 buffers here */
/* have the first 3 buffers here */
next_ts = 30 * GST_SECOND;
for (l = buffers; l; l = l->next) {
buf = l->data;
@ -1932,8 +1935,10 @@ GST_START_TEST (test_segment_update_same)
if (n < 52) {
fail_unless_equals_int (buffer_get_byte (buf, 0), 1);
} else {
} else if (n < 53) {
fail_unless_equals_int (buffer_get_byte (buf, 0), 2);
} else {
fail_unless_equals_int (buffer_get_byte (buf, 0), 3);
}
next_ts += GST_SECOND / 25;
@ -1961,15 +1966,19 @@ GST_START_TEST (test_segment_update_same)
fail_unless (gst_pad_push (mysrcpad, buf) == GST_FLOW_OK);
ASSERT_BUFFER_REFCOUNT (buf, "fourth", 1);
gst_buffer_unref (buf);
fail_unless_equals_int (g_list_length (buffers), 38);
assert_videorate_stats (videorate, "fourth", 4, 90, 0, 87);
fail_unless_equals_int (g_list_length (buffers), 74);
assert_videorate_stats (videorate, "fourth", 4, 127, 0, 123);
/* Should have the last buffer of the previous segment here */
/* lot's of new buffers upto 35s 40ms */
for (l = buffers; l; l = l->next) {
buf = l->data;
fail_unless_equals_uint64 (GST_BUFFER_PTS (buf), next_ts);
fail_unless_equals_uint64 (GST_BUFFER_DURATION (buf), 40 * GST_MSECOND);
fail_unless_equals_int (buffer_get_byte (buf, 0), 3);
if (n < 91) {
fail_unless_equals_int (buffer_get_byte (buf, 0), 3);
} else {
fail_unless_equals_int (buffer_get_byte (buf, 0), 4);
}
next_ts += GST_SECOND / 25;
n += 1;
@ -1988,13 +1997,13 @@ GST_START_TEST (test_segment_update_same)
fail_unless (gst_pad_push (mysrcpad, buf) == GST_FLOW_OK);
ASSERT_BUFFER_REFCOUNT (buf, "fifth", 1);
gst_buffer_unref (buf);
fail_unless_equals_int (g_list_length (buffers), 37);
fail_unless_equals_int (g_list_length (buffers), 1);
/* push EOS to drain out all buffers */
fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
fail_unless_equals_int (g_list_length (buffers), 38);
fail_unless_equals_int (g_list_length (buffers), 2);
assert_videorate_stats (videorate, "fourth", 5, 128, 0, 123);
assert_videorate_stats (videorate, "fourth", 5, 129, 0, 123);
for (l = buffers; l; l = l->next) {
buf = l->data;
@ -2148,7 +2157,7 @@ GST_START_TEST (test_segment_update)
buf = gst_buffer_new_and_alloc (frame_size);
GST_BUFFER_TIMESTAMP (buf) = 3 * 40 * GST_MSECOND;
gst_pad_push (mysrcpad, buf);
fail_unless_equals_int (g_list_length (buffers), 1);
fail_unless_equals_int (g_list_length (buffers), 2);
fail_unless_equals_int64 (GST_BUFFER_PTS (buffers->data),
2 * 40 * GST_MSECOND);
gst_check_drop_buffers ();

View File

@ -21,6 +21,9 @@ tests = [
'videorate/reverse.variable_to_10fps',
'videorate/reverse_fast.variable_to_10fps',
'videorate/reverse_slow.variable_to_10fps',
'videorate/caps_change',
'videorate/caps_change_new_pref_0_0',
'videorate/caps_change_new_pref_1_0',
'videorate/change_rate_while_playing',
'videorate/change_rate_reverse_playback',
'videorate/rate_0_5',
@ -46,7 +49,7 @@ env.set('GST_PLUGIN_SYSTEM_PATH_1_0', '')
env.set('GST_REGISTRY', '@0@/@1@.registry'.format(meson.current_build_dir(), 'validate'))
env.set('GST_PLUGIN_SCANNER_1_0', gst_plugin_scanner_path)
env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer', 'gst-validate', 'debugutilsbad',
'gst-plugins-base@' + meson.project_build_root())
'gst-plugins-good', 'gst-plugins-base@' + meson.project_build_root())
foreach t: tests
test_dir_name = t.split('/')

View File

@ -0,0 +1,10 @@
set-globals, new_pref=0.5
include, location="videorate-caps-change.meta"
play
crank-clock, expected-elapsed-time=0.0
crank-clock, repeat=10, expected-elapsed-time=0.1
crank-clock, repeat=1, expected-elapsed-time=0.1
wait, message-type=eos
stop

View File

@ -0,0 +1,9 @@
event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1;
event caps: video/x-raw, format=(string)I420, framerate=(fraction)1/1, height=(int)240, width=(int)320;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:01.100000000, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000
buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:01.000000000, flags=discont
event caps: video/x-raw, format=(string)I420, framerate=(fraction)1/1, height=(int)480, width=(int)640;
buffer: content-id=1, pts=0:00:01.000000000, dur=0:00:01.000000000
event caps: video/x-raw, format=(string)I420, framerate=(fraction)1/1, height=(int)240, width=(int)320;
event caps: video/x-raw, format=(string)I420, framerate=(fraction)1/1, height=(int)480, width=(int)640;
event eos: (no structure)

View File

@ -0,0 +1,18 @@
event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1;
event caps: video/x-raw, format=(string)I420, framerate=(fraction)10/1, height=(int)240, width=(int)320;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:01.100000000, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000
event caps: video/x-raw, format=(string)I420, framerate=(fraction)10/1, height=(int)480, width=(int)640;
event caps: video/x-raw, format=(string)I420, framerate=(fraction)10/1, height=(int)240, width=(int)320;
buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=0, pts=0:00:00.100000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=0, pts=0:00:00.200000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=0, pts=0:00:00.300000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=0, pts=0:00:00.400000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=0, pts=0:00:00.500000000, dur=0:00:00.100000000, flags=gap
event caps: video/x-raw, format=(string)I420, framerate=(fraction)10/1, height=(int)480, width=(int)640;
buffer: content-id=1, pts=0:00:00.600000000, dur=0:00:00.100000000
buffer: content-id=1, pts=0:00:00.700000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=1, pts=0:00:00.800000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=1, pts=0:00:00.900000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=1, pts=0:00:01.000000000, dur=0:00:00.100000000, flags=gap
event eos: (no structure)

View File

@ -0,0 +1,10 @@
set-globals, new_pref=0.0
include, location="videorate-caps-change.meta"
play
crank-clock, expected-elapsed-time=0.0
crank-clock, repeat=10, expected-elapsed-time=0.1
crank-clock, repeat=1, expected-elapsed-time=0.1
wait, message-type=eos
stop

View File

@ -0,0 +1,9 @@
event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1;
event caps: video/x-raw, format=(string)I420, framerate=(fraction)1/1, height=(int)240, width=(int)320;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:01.100000000, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000
buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:01.000000000, flags=discont
event caps: video/x-raw, format=(string)I420, framerate=(fraction)1/1, height=(int)480, width=(int)640;
buffer: content-id=1, pts=0:00:01.000000000, dur=0:00:01.000000000
event caps: video/x-raw, format=(string)I420, framerate=(fraction)1/1, height=(int)240, width=(int)320;
event caps: video/x-raw, format=(string)I420, framerate=(fraction)1/1, height=(int)480, width=(int)640;
event eos: (no structure)

View File

@ -0,0 +1,18 @@
event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1;
event caps: video/x-raw, format=(string)I420, framerate=(fraction)10/1, height=(int)240, width=(int)320;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:01.100000000, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000
event caps: video/x-raw, format=(string)I420, framerate=(fraction)10/1, height=(int)480, width=(int)640;
event caps: video/x-raw, format=(string)I420, framerate=(fraction)10/1, height=(int)240, width=(int)320;
buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=0, pts=0:00:00.100000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=0, pts=0:00:00.200000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=0, pts=0:00:00.300000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=0, pts=0:00:00.400000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=0, pts=0:00:00.500000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=0, pts=0:00:00.600000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=0, pts=0:00:00.700000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=0, pts=0:00:00.800000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=0, pts=0:00:00.900000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=0, pts=0:00:01.000000000, dur=0:00:00.100000000, flags=gap
event caps: video/x-raw, format=(string)I420, framerate=(fraction)10/1, height=(int)480, width=(int)640;
event eos: (no structure)

View File

@ -0,0 +1,10 @@
set-globals, new_pref=1.0
include, location="videorate-caps-change.meta"
play
crank-clock, expected-elapsed-time=0.0
crank-clock, repeat=10, expected-elapsed-time=0.1
crank-clock, repeat=1, expected-elapsed-time=0.1
wait, message-type=eos
stop

View File

@ -0,0 +1,7 @@
event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1;
event caps: video/x-raw, format=(string)I420, framerate=(fraction)1/1, height=(int)240, width=(int)320;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:01.100000000, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000
buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:01.000000000, flags=discont
event caps: video/x-raw, format=(string)I420, framerate=(fraction)1/1, height=(int)480, width=(int)640;
buffer: content-id=1, pts=0:00:01.000000000, dur=0:00:01.000000000
event eos: (no structure)

View File

@ -0,0 +1,16 @@
event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1;
event caps: video/x-raw, format=(string)I420, framerate=(fraction)10/1, height=(int)240, width=(int)320;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:01.100000000, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000
event caps: video/x-raw, format=(string)I420, framerate=(fraction)10/1, height=(int)480, width=(int)640;
buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=1, pts=0:00:00.100000000, dur=0:00:00.100000000
buffer: content-id=1, pts=0:00:00.200000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=1, pts=0:00:00.300000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=1, pts=0:00:00.400000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=1, pts=0:00:00.500000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=1, pts=0:00:00.600000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=1, pts=0:00:00.700000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=1, pts=0:00:00.800000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=1, pts=0:00:00.900000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=1, pts=0:00:01.000000000, dur=0:00:00.100000000, flags=gap
event eos: (no structure)

View File

@ -30,7 +30,6 @@ crank-clock, repeat=5, expected-elapsed-time=0.1
wait, on-clock=true
check-position, expected-position=4.0 # seek.stop - (10*(1/10fps)) = 4.0s
set-vars, rate=(string)0.1
checkpoint, text="Setting videorate.rate=0.1"
set-property, playback-time=99.0, target-element-name=videorate, property-name=rate, property-value=0.1
crank-clock, repeat=20

View File

@ -13,25 +13,25 @@ buffer: content-id=5, pts=0:00:04.700000000, dur=0:00:00.100000000, flags=discon
buffer: content-id=6, pts=0:00:04.600000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=7, pts=0:00:04.500000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=8, pts=0:00:04.400000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=9, pts=0:00:04.300000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=10, pts=0:00:04.200000000, dur=0:00:00.100000000, flags=discont
CHECKPOINT: Setting videorate.rate=0.5
buffer: content-id=9, pts=0:00:04.300000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=10, pts=0:00:04.200000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=11, pts=0:00:04.100000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=12, pts=0:00:04.000000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=13, pts=0:00:03.900000000, dur=0:00:00.100000000, flags=discont
CHECKPOINT: Setting videorate.rate=0.1
buffer: content-id=12, pts=0:00:04.000000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=13, pts=0:00:03.900000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=14, pts=0:00:03.800000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=15, pts=0:00:03.700000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=16, pts=0:00:03.600000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=17, pts=0:00:03.500000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=18, pts=0:00:03.400000000, dur=0:00:00.100000000, flags=discont
CHECKPOINT: Setting videorate.rate=2.0
buffer: content-id=17, pts=0:00:03.500000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=18, pts=0:00:03.400000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=19, pts=0:00:03.300000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=20, pts=0:00:03.200000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=21, pts=0:00:03.100000000, dur=0:00:00.100000000, flags=discont
@ -66,7 +66,7 @@ buffer: content-id=49, pts=0:00:00.300000000, dur=0:00:00.100000000, flags=disco
buffer: content-id=50, pts=0:00:00.200000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=51, pts=0:00:00.100000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=52, pts=0:00:00.000000000, dur=0:00:00.100000000, flags=discont
event eos: (no structure)
CHECKPOINT: Filling up segment with last buffer
event eos: (no structure)

View File

@ -6,55 +6,55 @@ event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:05.000000000, rate=-1.000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:05.000000000
buffer: content-id=3, pts=0:00:04.900000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=4, pts=0:00:04.800000000, dur=0:00:00.100000000
buffer: content-id=5, pts=0:00:04.700000000, dur=0:00:00.100000000
buffer: content-id=6, pts=0:00:04.600000000, dur=0:00:00.100000000
buffer: content-id=7, pts=0:00:04.500000000, dur=0:00:00.100000000
buffer: content-id=8, pts=0:00:04.400000000, dur=0:00:00.100000000
buffer: content-id=9, pts=0:00:04.300000000, dur=0:00:00.100000000
buffer: content-id=3, pts=0:00:04.800000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=4, pts=0:00:04.700000000, dur=0:00:00.100000000
buffer: content-id=5, pts=0:00:04.600000000, dur=0:00:00.100000000
buffer: content-id=6, pts=0:00:04.500000000, dur=0:00:00.100000000
buffer: content-id=7, pts=0:00:04.400000000, dur=0:00:00.100000000
buffer: content-id=8, pts=0:00:04.300000000, dur=0:00:00.100000000
CHECKPOINT: Setting videorate.rate=0.5
buffer: content-id=9, pts=0:00:04.200000000, dur=0:00:00.100000000
buffer: content-id=11, pts=0:00:04.100000000, dur=0:00:00.100000000
buffer: content-id=11, pts=0:00:04.000000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=11, pts=0:00:03.900000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=12, pts=0:00:03.800000000, dur=0:00:00.100000000
buffer: content-id=10, pts=0:00:04.100000000, dur=0:00:00.100000000
buffer: content-id=10, pts=0:00:04.000000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=11, pts=0:00:03.900000000, dur=0:00:00.100000000
buffer: content-id=11, pts=0:00:03.800000000, dur=0:00:00.100000000, flags=gap
CHECKPOINT: Setting videorate.rate=0.1
buffer: content-id=15, pts=0:00:03.700000000, dur=0:00:00.100000000
buffer: content-id=15, pts=0:00:03.600000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=14, pts=0:00:03.700000000, dur=0:00:00.100000000
buffer: content-id=15, pts=0:00:03.600000000, dur=0:00:00.100000000
buffer: content-id=15, pts=0:00:03.500000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=15, pts=0:00:03.400000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=15, pts=0:00:03.300000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=15, pts=0:00:03.200000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=16, pts=0:00:03.100000000, dur=0:00:00.100000000
buffer: content-id=16, pts=0:00:03.000000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=16, pts=0:00:02.900000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=16, pts=0:00:02.800000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=16, pts=0:00:02.700000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=16, pts=0:00:02.600000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=15, pts=0:00:03.100000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=15, pts=0:00:03.000000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=15, pts=0:00:02.900000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=15, pts=0:00:02.800000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=15, pts=0:00:02.700000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=16, pts=0:00:02.600000000, dur=0:00:00.100000000
buffer: content-id=16, pts=0:00:02.500000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=16, pts=0:00:02.400000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=16, pts=0:00:02.300000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=16, pts=0:00:02.200000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=17, pts=0:00:02.100000000, dur=0:00:00.100000000
buffer: content-id=17, pts=0:00:02.000000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=17, pts=0:00:01.900000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=17, pts=0:00:01.800000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=16, pts=0:00:02.100000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=16, pts=0:00:02.000000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=16, pts=0:00:01.900000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=16, pts=0:00:01.800000000, dur=0:00:00.100000000, flags=gap
CHECKPOINT: Setting videorate.rate=2.0
buffer: content-id=35, pts=0:00:01.700000000, dur=0:00:00.100000000
buffer: content-id=37, pts=0:00:01.600000000, dur=0:00:00.100000000
buffer: content-id=39, pts=0:00:01.500000000, dur=0:00:00.100000000
buffer: content-id=41, pts=0:00:01.400000000, dur=0:00:00.100000000
buffer: content-id=43, pts=0:00:01.300000000, dur=0:00:00.100000000
buffer: content-id=45, pts=0:00:01.200000000, dur=0:00:00.100000000
buffer: content-id=47, pts=0:00:01.100000000, dur=0:00:00.100000000
buffer: content-id=49, pts=0:00:01.000000000, dur=0:00:00.100000000
buffer: content-id=51, pts=0:00:00.900000000, dur=0:00:00.100000000
buffer: content-id=34, pts=0:00:01.700000000, dur=0:00:00.100000000
buffer: content-id=36, pts=0:00:01.600000000, dur=0:00:00.100000000
buffer: content-id=38, pts=0:00:01.500000000, dur=0:00:00.100000000
buffer: content-id=40, pts=0:00:01.400000000, dur=0:00:00.100000000
buffer: content-id=42, pts=0:00:01.300000000, dur=0:00:00.100000000
buffer: content-id=44, pts=0:00:01.200000000, dur=0:00:00.100000000
buffer: content-id=46, pts=0:00:01.100000000, dur=0:00:00.100000000
buffer: content-id=48, pts=0:00:01.000000000, dur=0:00:00.100000000
buffer: content-id=50, pts=0:00:00.900000000, dur=0:00:00.100000000
buffer: content-id=52, pts=0:00:00.800000000, dur=0:00:00.100000000
CHECKPOINT: Filling up segment with last buffer

View File

@ -1,16 +1,20 @@
meta,
handles-states=true,
ignore-eos=true,
args = {
# We just want each frame to be different, and we just check their content by 'id'
"videotestsrc ! video/x-raw,format=I420,framerate=10/1,width=320,height=240 ! videorate name=videorate ! fakesink sync=true qos=true",
},
configs = {
# Check dataflow on both videorate pads
"$(validateflow), pad=videorate:sink, buffers-checksum=as-id, ignored-event-types={ tag }",
"$(validateflow), pad=videorate:src, buffers-checksum=as-id, ignored-event-types={ tag }",
"$(validateflow), pad=videorate:sink, buffers-checksum=as-id, ignored-event-types={ tag }",
}
play
seek, start=0.0, stop=4.0, flags=accurate+flush, rate=1.0
# Crank the 5 first buffers and check position is `5*(1/10fps)) = 0.5s`
crank-clock, expected-time=0.0
crank-clock, expected-elapsed-time=0.0
crank-clock, repeat=5
check-position, expected-position=0.5
@ -36,5 +40,4 @@ set-property, playback-time=2.0, target-element-name=videorate, property-name=ra
crank-clock, repeat=10
check-position, expected-position=4.0
wait, on-clock=true
stop
stop, on-message=eos

View File

@ -3,62 +3,56 @@ event caps: video/x-raw, format=(string)I420, framerate=(fraction)10/1, height=(
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=none, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000
buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=1, pts=0:00:00.100000000, dur=0:00:00.100000000
buffer: content-id=2, pts=0:00:00.200000000, dur=0:00:00.100000000
buffer: content-id=3, pts=0:00:00.300000000, dur=0:00:00.100000000
buffer: content-id=4, pts=0:00:00.400000000, dur=0:00:00.100000000
buffer: content-id=5, pts=0:00:00.500000000, dur=0:00:00.100000000
buffer: content-id=6, pts=0:00:00.600000000, dur=0:00:00.100000000
buffer: content-id=7, pts=0:00:00.700000000, dur=0:00:00.100000000
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:04.000000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000
buffer: content-id=2, pts=0:00:00.000000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=3, pts=0:00:00.100000000, dur=0:00:00.100000000
buffer: content-id=4, pts=0:00:00.200000000, dur=0:00:00.100000000
buffer: content-id=5, pts=0:00:00.300000000, dur=0:00:00.100000000
buffer: content-id=6, pts=0:00:00.400000000, dur=0:00:00.100000000
buffer: content-id=7, pts=0:00:00.500000000, dur=0:00:00.100000000
buffer: content-id=8, pts=0:00:00.600000000, dur=0:00:00.100000000
CHECKPOINT: Setting videorate.rate=0.5
buffer: content-id=8, pts=0:00:00.800000000, dur=0:00:00.100000000
buffer: content-id=9, pts=0:00:00.900000000, dur=0:00:00.100000000
buffer: content-id=10, pts=0:00:01.000000000, dur=0:00:00.100000000
buffer: content-id=9, pts=0:00:00.700000000, dur=0:00:00.100000000
buffer: content-id=10, pts=0:00:00.800000000, dur=0:00:00.100000000
buffer: content-id=11, pts=0:00:00.900000000, dur=0:00:00.100000000
CHECKPOINT: Setting videorate.rate=0.1
buffer: content-id=11, pts=0:00:01.100000000, dur=0:00:00.100000000
buffer: content-id=12, pts=0:00:01.200000000, dur=0:00:00.100000000
buffer: content-id=13, pts=0:00:01.300000000, dur=0:00:00.100000000
buffer: content-id=14, pts=0:00:01.400000000, dur=0:00:00.100000000
buffer: content-id=15, pts=0:00:01.500000000, dur=0:00:00.100000000
buffer: content-id=12, pts=0:00:01.000000000, dur=0:00:00.100000000
buffer: content-id=13, pts=0:00:01.100000000, dur=0:00:00.100000000
buffer: content-id=14, pts=0:00:01.200000000, dur=0:00:00.100000000
buffer: content-id=15, pts=0:00:01.300000000, dur=0:00:00.100000000
buffer: content-id=16, pts=0:00:01.400000000, dur=0:00:00.100000000
CHECKPOINT: Setting videorate.rate=2.0
buffer: content-id=16, pts=0:00:01.600000000, dur=0:00:00.100000000
buffer: content-id=17, pts=0:00:01.700000000, dur=0:00:00.100000000
buffer: content-id=18, pts=0:00:01.800000000, dur=0:00:00.100000000
buffer: content-id=19, pts=0:00:01.900000000, dur=0:00:00.100000000
buffer: content-id=20, pts=0:00:02.000000000, dur=0:00:00.100000000
buffer: content-id=21, pts=0:00:02.100000000, dur=0:00:00.100000000
buffer: content-id=22, pts=0:00:02.200000000, dur=0:00:00.100000000
buffer: content-id=23, pts=0:00:02.300000000, dur=0:00:00.100000000
buffer: content-id=24, pts=0:00:02.400000000, dur=0:00:00.100000000
buffer: content-id=25, pts=0:00:02.500000000, dur=0:00:00.100000000
buffer: content-id=26, pts=0:00:02.600000000, dur=0:00:00.100000000
buffer: content-id=27, pts=0:00:02.700000000, dur=0:00:00.100000000
buffer: content-id=28, pts=0:00:02.800000000, dur=0:00:00.100000000
buffer: content-id=29, pts=0:00:02.900000000, dur=0:00:00.100000000
buffer: content-id=30, pts=0:00:03.000000000, dur=0:00:00.100000000
buffer: content-id=31, pts=0:00:03.100000000, dur=0:00:00.100000000
buffer: content-id=32, pts=0:00:03.200000000, dur=0:00:00.100000000
buffer: content-id=33, pts=0:00:03.300000000, dur=0:00:00.100000000
buffer: content-id=34, pts=0:00:03.400000000, dur=0:00:00.100000000
buffer: content-id=35, pts=0:00:03.500000000, dur=0:00:00.100000000
buffer: content-id=36, pts=0:00:03.600000000, dur=0:00:00.100000000
buffer: content-id=37, pts=0:00:03.700000000, dur=0:00:00.100000000
buffer: content-id=38, pts=0:00:03.800000000, dur=0:00:00.100000000
buffer: content-id=39, pts=0:00:03.900000000, dur=0:00:00.100000000
buffer: content-id=40, pts=0:00:04.000000000, dur=0:00:00.100000000
buffer: content-id=41, pts=0:00:04.100000000, dur=0:00:00.100000000
buffer: content-id=42, pts=0:00:04.200000000, dur=0:00:00.100000000
buffer: content-id=43, pts=0:00:04.300000000, dur=0:00:00.100000000
buffer: content-id=44, pts=0:00:04.400000000, dur=0:00:00.100000000
buffer: content-id=45, pts=0:00:04.500000000, dur=0:00:00.100000000
buffer: content-id=46, pts=0:00:04.600000000, dur=0:00:00.100000000
buffer: content-id=47, pts=0:00:04.700000000, dur=0:00:00.100000000
buffer: content-id=48, pts=0:00:04.800000000, dur=0:00:00.100000000
buffer: content-id=49, pts=0:00:04.900000000, dur=0:00:00.100000000
buffer: content-id=50, pts=0:00:05.000000000, dur=0:00:00.100000000
buffer: content-id=51, pts=0:00:05.100000000, dur=0:00:00.100000000
buffer: content-id=17, pts=0:00:01.500000000, dur=0:00:00.100000000
buffer: content-id=18, pts=0:00:01.600000000, dur=0:00:00.100000000
buffer: content-id=19, pts=0:00:01.700000000, dur=0:00:00.100000000
buffer: content-id=20, pts=0:00:01.800000000, dur=0:00:00.100000000
buffer: content-id=21, pts=0:00:01.900000000, dur=0:00:00.100000000
buffer: content-id=22, pts=0:00:02.000000000, dur=0:00:00.100000000
buffer: content-id=23, pts=0:00:02.100000000, dur=0:00:00.100000000
buffer: content-id=24, pts=0:00:02.200000000, dur=0:00:00.100000000
buffer: content-id=25, pts=0:00:02.300000000, dur=0:00:00.100000000
buffer: content-id=26, pts=0:00:02.400000000, dur=0:00:00.100000000
buffer: content-id=27, pts=0:00:02.500000000, dur=0:00:00.100000000
buffer: content-id=28, pts=0:00:02.600000000, dur=0:00:00.100000000
buffer: content-id=29, pts=0:00:02.700000000, dur=0:00:00.100000000
buffer: content-id=30, pts=0:00:02.800000000, dur=0:00:00.100000000
buffer: content-id=31, pts=0:00:02.900000000, dur=0:00:00.100000000
buffer: content-id=32, pts=0:00:03.000000000, dur=0:00:00.100000000
buffer: content-id=33, pts=0:00:03.100000000, dur=0:00:00.100000000
buffer: content-id=34, pts=0:00:03.200000000, dur=0:00:00.100000000
buffer: content-id=35, pts=0:00:03.300000000, dur=0:00:00.100000000
buffer: content-id=36, pts=0:00:03.400000000, dur=0:00:00.100000000
buffer: content-id=37, pts=0:00:03.500000000, dur=0:00:00.100000000
buffer: content-id=38, pts=0:00:03.600000000, dur=0:00:00.100000000
buffer: content-id=39, pts=0:00:03.700000000, dur=0:00:00.100000000
buffer: content-id=40, pts=0:00:03.800000000, dur=0:00:00.100000000
buffer: content-id=41, pts=0:00:03.900000000, dur=0:00:00.100000000
event eos: (no structure)

View File

@ -2,53 +2,56 @@ event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_N
event caps: video/x-raw, format=(string)I420, framerate=(fraction)10/1, height=(int)240, interlace-mode=(string)progressive, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, width=(int)320;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=none, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000
buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=1, pts=0:00:00.100000000, dur=0:00:00.100000000
buffer: content-id=2, pts=0:00:00.200000000, dur=0:00:00.100000000
buffer: content-id=3, pts=0:00:00.300000000, dur=0:00:00.100000000
buffer: content-id=4, pts=0:00:00.400000000, dur=0:00:00.100000000
buffer: content-id=5, pts=0:00:00.500000000, dur=0:00:00.100000000
buffer: content-id=6, pts=0:00:00.600000000, dur=0:00:00.100000000
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:04.000000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000
buffer: content-id=2, pts=0:00:00.000000000, dur=0:00:00.100000000, flags=discont
buffer: content-id=3, pts=0:00:00.100000000, dur=0:00:00.100000000
buffer: content-id=4, pts=0:00:00.200000000, dur=0:00:00.100000000
buffer: content-id=5, pts=0:00:00.300000000, dur=0:00:00.100000000
buffer: content-id=6, pts=0:00:00.400000000, dur=0:00:00.100000000
buffer: content-id=7, pts=0:00:00.500000000, dur=0:00:00.100000000
buffer: content-id=8, pts=0:00:00.600000000, dur=0:00:00.100000000
CHECKPOINT: Setting videorate.rate=0.5
buffer: content-id=6, pts=0:00:00.700000000, dur=0:00:00.100000000
buffer: content-id=8, pts=0:00:00.800000000, dur=0:00:00.100000000
buffer: content-id=8, pts=0:00:00.900000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=8, pts=0:00:01.000000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=9, pts=0:00:01.100000000, dur=0:00:00.100000000
buffer: content-id=9, pts=0:00:00.700000000, dur=0:00:00.100000000
buffer: content-id=9, pts=0:00:00.800000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=10, pts=0:00:00.900000000, dur=0:00:00.100000000
buffer: content-id=10, pts=0:00:01.000000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=11, pts=0:00:01.100000000, dur=0:00:00.100000000
CHECKPOINT: Setting videorate.rate=0.1
buffer: content-id=12, pts=0:00:01.200000000, dur=0:00:00.100000000
buffer: content-id=12, pts=0:00:01.300000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=12, pts=0:00:01.400000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=12, pts=0:00:01.500000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=12, pts=0:00:01.600000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=12, pts=0:00:01.700000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=13, pts=0:00:01.800000000, dur=0:00:00.100000000
buffer: content-id=13, pts=0:00:01.900000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=13, pts=0:00:02.000000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=13, pts=0:00:02.100000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=13, pts=0:00:02.200000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=13, pts=0:00:02.300000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=13, pts=0:00:02.400000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=13, pts=0:00:02.500000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=13, pts=0:00:02.600000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=13, pts=0:00:02.700000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=14, pts=0:00:02.800000000, dur=0:00:00.100000000
buffer: content-id=14, pts=0:00:02.900000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=14, pts=0:00:03.000000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=14, pts=0:00:03.100000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=14, pts=0:00:01.200000000, dur=0:00:00.100000000
buffer: content-id=14, pts=0:00:01.300000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=14, pts=0:00:01.400000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=14, pts=0:00:01.500000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=14, pts=0:00:01.600000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=14, pts=0:00:01.700000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=15, pts=0:00:01.800000000, dur=0:00:00.100000000
buffer: content-id=15, pts=0:00:01.900000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=15, pts=0:00:02.000000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=15, pts=0:00:02.100000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=15, pts=0:00:02.200000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=15, pts=0:00:02.300000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=15, pts=0:00:02.400000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=15, pts=0:00:02.500000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=15, pts=0:00:02.600000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=15, pts=0:00:02.700000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=16, pts=0:00:02.800000000, dur=0:00:00.100000000
buffer: content-id=16, pts=0:00:02.900000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=16, pts=0:00:03.000000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=16, pts=0:00:03.100000000, dur=0:00:00.100000000, flags=gap
CHECKPOINT: Setting videorate.rate=2.0
buffer: content-id=32, pts=0:00:03.200000000, dur=0:00:00.100000000
buffer: content-id=34, pts=0:00:03.300000000, dur=0:00:00.100000000
buffer: content-id=36, pts=0:00:03.400000000, dur=0:00:00.100000000
buffer: content-id=38, pts=0:00:03.500000000, dur=0:00:00.100000000
buffer: content-id=40, pts=0:00:03.600000000, dur=0:00:00.100000000
buffer: content-id=42, pts=0:00:03.700000000, dur=0:00:00.100000000
buffer: content-id=44, pts=0:00:03.800000000, dur=0:00:00.100000000
buffer: content-id=46, pts=0:00:03.900000000, dur=0:00:00.100000000
buffer: content-id=48, pts=0:00:04.000000000, dur=0:00:00.100000000
buffer: content-id=50, pts=0:00:04.100000000, dur=0:00:00.100000000
buffer: content-id=34, pts=0:00:03.200000000, dur=0:00:00.100000000
buffer: content-id=36, pts=0:00:03.300000000, dur=0:00:00.100000000
buffer: content-id=38, pts=0:00:03.400000000, dur=0:00:00.100000000
buffer: content-id=40, pts=0:00:03.500000000, dur=0:00:00.100000000
buffer: content-id=41, pts=0:00:03.600000000, dur=0:00:00.100000000
buffer: content-id=41, pts=0:00:03.700000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=41, pts=0:00:03.800000000, dur=0:00:00.100000000, flags=gap
buffer: content-id=41, pts=0:00:03.900000000, dur=0:00:00.100000000, flags=gap
event eos: (no structure)

View File

@ -0,0 +1,22 @@
# Common metadatas to check the videorate element behavior with different
# framerate specified by previously setting variables with:
# ```
# set-global, rate=<test-rate>, decoder=<decoder>
# ```
# and then `include, location="check-rate-prop.meta" to setup the test with this
# file
meta,
args = {
"videotestsrc pattern=ball animation-mode=frames ! video/x-raw,format=I420,framerate=30/1,width=320,height=240 $(decoder) videorate name=videorate rate=$(rate) ! fakesink sync=true qos=true",
},
configs = {
"$(validateflow), pad=videorate:sink, buffers-checksum=as-id, ignored-event-types={ tag }",
"$(validateflow), pad=videorate:src, buffers-checksum=as-id, ignored-event-types={ tag }",
}
crank-clock, expected-time=0.0
crank-clock, repeat=9
wait, on-clock=true
check-position, expected-position=300000000
stop

View File

@ -1,22 +1,25 @@
# Common metadatas to check the videorate element behavior with different
# framerate specified by previously setting variables with:
# ```
# set-global, rate=<test-rate>, decoder=<decoder>
# set-global, rate=<test-rate>
# ```
# and then `include, location="check-rate-prop.meta" to setup the test with this
# file
meta,
handles-states=true,
ignore-eos=true,
args = {
"videotestsrc pattern=ball animation-mode=frames ! video/x-raw,format=I420,framerate=30/1,width=320,height=240 $(decoder) videorate name=videorate rate=$(rate) ! fakesink sync=true qos=true",
"videotestsrc pattern=ball animation-mode=frames ! video/x-raw,format=I420,framerate=30/1,width=320,height=240 ! videorate name=videorate rate=$(rate) ! fakesink sync=true qos=true",
},
configs = {
"$(validateflow), pad=videorate:sink, buffers-checksum=as-id, ignored-event-types={ tag }",
"$(validateflow), pad=videorate:src, buffers-checksum=as-id, ignored-event-types={ tag }",
}
crank-clock, expected-time=0.0
play
seek, start=0.0, stop=0.3, flags=accurate+flush, rate=1.0
crank-clock, expected-elapsed-time=0.0
crank-clock, repeat=9
wait, on-clock=true
check-position, expected-position=300000000
stop
stop, on-message=eos

View File

@ -66,7 +66,7 @@ buffer: content-id=2, pts=0:00:01.900000000, dur=0:00:00.033333333, flags=gap
buffer: content-id=2, pts=0:00:01.933333333, dur=0:00:00.033333333, flags=gap
buffer: content-id=2, pts=0:00:01.966666666, dur=0:00:00.033333334, flags=gap
buffer: content-id=2, pts=0:00:02.000000000, dur=0:00:00.033333333, flags=gap
buffer: content-id=2, pts=0:00:02.033333333, dur=0:00:00.033333333, flags=gap
buffer: content-id=2, pts=0:00:02.033333333, dur=0:00:00.033333333
buffer: content-id=2, pts=0:00:02.066666666, dur=0:00:00.033333334, flags=gap
buffer: content-id=2, pts=0:00:02.100000000, dur=0:00:00.033333333, flags=gap
buffer: content-id=2, pts=0:00:02.133333333, dur=0:00:00.033333333, flags=gap

View File

@ -13,11 +13,8 @@ pause
seek, flags=flush+accurate, start=0, stop=2.0
play
crank-clock, repeat=31
crank-clock, repeat=32
wait, message-type=eos
# Second buffer won't be duplicated as we disabled on on EOS
check-position, expected-position=1.0
stop

View File

@ -35,4 +35,5 @@ buffer: content-id=1, pts=0:00:00.866666666, dur=0:00:00.033333334, flags=gap
buffer: content-id=1, pts=0:00:00.900000000, dur=0:00:00.033333333, flags=gap
buffer: content-id=1, pts=0:00:00.933333333, dur=0:00:00.033333333, flags=gap
buffer: content-id=1, pts=0:00:00.966666666, dur=0:00:00.033333334, flags=gap
buffer: content-id=1, pts=0:00:01.000000000, dur=0:00:00.033333333, flags=gap
event eos: (no structure)

View File

@ -36,7 +36,7 @@ buffer: content-id=1, pts=0:00:00.900000000, dur=0:00:00.033333333, flags=gap
buffer: content-id=1, pts=0:00:00.933333333, dur=0:00:00.033333333, flags=gap
buffer: content-id=1, pts=0:00:00.966666666, dur=0:00:00.033333334, flags=gap
buffer: content-id=1, pts=0:00:01.000000000, dur=0:00:00.033333333, flags=gap
buffer: content-id=1, pts=0:00:01.033333333, dur=0:00:00.033333333, flags=gap
buffer: content-id=1, pts=0:00:01.033333333, dur=0:00:00.033333333
buffer: content-id=1, pts=0:00:01.066666666, dur=0:00:00.033333334, flags=gap
buffer: content-id=1, pts=0:00:01.100000000, dur=0:00:00.033333333, flags=gap
buffer: content-id=1, pts=0:00:01.133333333, dur=0:00:00.033333333, flags=gap

View File

@ -10,30 +10,24 @@ meta,
handles-states=true,
ignore-eos=true
# Generate the raw video frame that we will used in the appsrc.
run-command, argv={
"gst-validate-1.0", "videotestsrc num-buffers=1 ! video/x-raw,format=I420,framerate=1/1,width=320,height=240 ! filesink location=$(TMPDIR)/tmp.i420",
}
appsrc-push, target-element-name=src, file-name="$(TMPDIR)/tmp.i420", pts=0, duration=1.0,
appsrc-push, target-element-name=src, fill-mode=counter, pts=0.0, duration=1.0, size=115200,
caps=(GstCaps)[video/x-raw,format=I420,framerate=1/1,width=320,height=240],
segment=[segment, stop=3.0, format=(GstFormat)time]
appsrc-push, target-element-name=src, file-name="$(TMPDIR)/tmp.i420", pts=1., duration=1.0,
appsrc-push, target-element-name=src, fill-mode=counter, pts=1.0, duration=1.0, size=115200,
caps=(GstCaps)[video/x-raw,format=I420,framerate=1/1,width=320,height=240],
segment=[segment, stop=3.0, format=(GstFormat)time]
play
crank-clock, repeat=1
checkpoint, text="Setting caps but the videorate element will roll the caps back to push buffers to close the configured segment on EOS"
set-properties, src::caps="video/x-raw,width=322,height=244,framerate=1/1"
appsrc-eos, target-element-name=src
crank-clock, repeat=3
wait, message-type=eos
# check-position, expected-position=2.0

View File

@ -2,10 +2,7 @@ event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_N
event caps: video/x-raw, format=(string)I420, framerate=(fraction)1/1, height=(int)240, width=(int)320;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:03.000000000, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000
buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:01.000000000, flags=discont
buffer: content-id=0, pts=0:00:01.000000000, dur=0:00:01.000000000
CHECKPOINT: Setting caps but the videorate element will roll the caps back to push buffers to close the configured segment on EOS
buffer: content-id=1, pts=0:00:01.000000000, dur=0:00:01.000000000
event caps: video/x-raw, framerate=(fraction)1/1, height=(int)244, width=(int)322;
event eos: (no structure)
event caps: video/x-raw, format=(string)I420, framerate=(fraction)1/1, height=(int)240, width=(int)320;

View File

@ -2,12 +2,9 @@ event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_N
event caps: video/x-raw, format=(string)I420, framerate=(fraction)1/1, height=(int)240, width=(int)320;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:03.000000000, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000
buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:01.000000000, flags=discont
CHECKPOINT: Setting caps but the videorate element will roll the caps back to push buffers to close the configured segment on EOS
buffer: content-id=1, pts=0:00:01.000000000, dur=0:00:01.000000000
event caps: video/x-raw, framerate=(fraction)1/1, height=(int)244, width=(int)322;
event caps: video/x-raw, format=(string)I420, framerate=(fraction)1/1, height=(int)240, width=(int)320;
buffer: content-id=0, pts=0:00:01.000000000, dur=0:00:01.000000000
buffer: content-id=0, pts=0:00:02.000000000, dur=0:00:01.000000000, flags=gap
buffer: content-id=1, pts=0:00:02.000000000, dur=0:00:01.000000000
event caps: video/x-raw, framerate=(fraction)1/1, height=(int)244, width=(int)322;
event eos: (no structure)

View File

@ -1,3 +1,3 @@
set-globals, rate=(string)"0.5", decoder="!"
set-globals, rate=(string)"0.5"
include, location="check-rate-prop.meta"

View File

@ -3,8 +3,12 @@ event caps: video/x-raw, format=(string)I420, framerate=(fraction)30/1, height=(
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=none, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000
buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.033333333, flags=discont
buffer: content-id=1, pts=0:00:00.033333333, dur=0:00:00.033333333
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:00.150000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000
buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.033333333, flags=discont
buffer: content-id=1, pts=0:00:00.033333333, dur=0:00:00.033333333
buffer: content-id=2, pts=0:00:00.066666666, dur=0:00:00.033333334
buffer: content-id=3, pts=0:00:00.100000000, dur=0:00:00.033333333
buffer: content-id=4, pts=0:00:00.133333333, dur=0:00:00.033333333
buffer: content-id=5, pts=0:00:00.166666666, dur=0:00:00.033333334
buffer: content-id=6, pts=0:00:00.200000000, dur=0:00:00.033333333
event eos: (no structure)

View File

@ -2,13 +2,16 @@ event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_N
event caps: video/x-raw, format=(string)I420, framerate=(fraction)30/1, height=(int)240, interlace-mode=(string)progressive, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, width=(int)320;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=none, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000
buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.033333333, flags=discont
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:00.300000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000
buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.033333333, flags=discont
buffer: content-id=0, pts=0:00:00.033333333, dur=0:00:00.033333333, flags=gap
buffer: content-id=1, pts=0:00:00.066666666, dur=0:00:00.033333334
buffer: content-id=2, pts=0:00:00.100000000, dur=0:00:00.033333333
buffer: content-id=2, pts=0:00:00.133333333, dur=0:00:00.033333333, flags=gap
buffer: content-id=1, pts=0:00:00.100000000, dur=0:00:00.033333333, flags=gap
buffer: content-id=2, pts=0:00:00.133333333, dur=0:00:00.033333333
buffer: content-id=2, pts=0:00:00.166666666, dur=0:00:00.033333334, flags=gap
buffer: content-id=3, pts=0:00:00.200000000, dur=0:00:00.033333333
buffer: content-id=3, pts=0:00:00.233333333, dur=0:00:00.033333333, flags=gap
buffer: content-id=4, pts=0:00:00.266666666, dur=0:00:00.033333334
buffer: content-id=5, pts=0:00:00.300000000, dur=0:00:00.033333333
buffer: content-id=5, pts=0:00:00.333333333, dur=0:00:00.033333333, flags=gap
event eos: (no structure)

View File

@ -2,4 +2,4 @@
# FIXME: Use a fakevideodec once merged!
set-globals, rate=(string)"0.5", decoder="! theoraenc ! theoradec !"
include, location="check-rate-prop.meta"
include, location="check-rate-prop-with-decoder.meta"

View File

@ -7,4 +7,3 @@ buffer: content-id=2, pts=0:00:00.066666666, dur=0:00:00.033333334
buffer: content-id=3, pts=0:00:00.100000000, dur=0:00:00.033333333
buffer: content-id=4, pts=0:00:00.133333333, dur=0:00:00.033333333
buffer: content-id=5, pts=0:00:00.166666666, dur=0:00:00.033333334
buffer: content-id=6, pts=0:00:00.200000000, dur=0:00:00.033333333

View File

@ -4,11 +4,11 @@ event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, s
buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.033333333, flags=discont
buffer: content-id=0, pts=0:00:00.033333333, dur=0:00:00.033333333, flags=gap
buffer: content-id=1, pts=0:00:00.066666666, dur=0:00:00.033333334
buffer: content-id=2, pts=0:00:00.100000000, dur=0:00:00.033333333
buffer: content-id=2, pts=0:00:00.133333333, dur=0:00:00.033333333, flags=gap
buffer: content-id=1, pts=0:00:00.100000000, dur=0:00:00.033333333, flags=gap
buffer: content-id=2, pts=0:00:00.133333333, dur=0:00:00.033333333
buffer: content-id=2, pts=0:00:00.166666666, dur=0:00:00.033333334, flags=gap
buffer: content-id=3, pts=0:00:00.200000000, dur=0:00:00.033333333
buffer: content-id=3, pts=0:00:00.233333333, dur=0:00:00.033333333, flags=gap
buffer: content-id=4, pts=0:00:00.266666666, dur=0:00:00.033333334
buffer: content-id=5, pts=0:00:00.300000000, dur=0:00:00.033333333
buffer: content-id=5, pts=0:00:00.333333333, dur=0:00:00.033333333, flags=gap
buffer: content-id=4, pts=0:00:00.300000000, dur=0:00:00.033333333, flags=gap
buffer: content-id=5, pts=0:00:00.333333333, dur=0:00:00.033333333

View File

@ -1,3 +1,3 @@
set-globals, rate=(string)"2.0", decoder="!"
set-globals, rate=(string)"2.0"
include, location="check-rate-prop.meta"

View File

@ -3,6 +3,11 @@ event caps: video/x-raw, format=(string)I420, framerate=(fraction)30/1, height=(
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=none, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000
buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.033333333, flags=discont
buffer: content-id=1, pts=0:00:00.033333333, dur=0:00:00.033333333
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:00.600000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000
buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.033333333, flags=discont
buffer: content-id=1, pts=0:00:00.033333333, dur=0:00:00.033333333
buffer: content-id=2, pts=0:00:00.066666666, dur=0:00:00.033333334
buffer: content-id=3, pts=0:00:00.100000000, dur=0:00:00.033333333
buffer: content-id=4, pts=0:00:00.133333333, dur=0:00:00.033333333
@ -19,7 +24,4 @@ buffer: content-id=14, pts=0:00:00.466666666, dur=0:00:00.033333334
buffer: content-id=15, pts=0:00:00.500000000, dur=0:00:00.033333333
buffer: content-id=16, pts=0:00:00.533333333, dur=0:00:00.033333333
buffer: content-id=17, pts=0:00:00.566666666, dur=0:00:00.033333334
buffer: content-id=18, pts=0:00:00.600000000, dur=0:00:00.033333333
buffer: content-id=19, pts=0:00:00.633333333, dur=0:00:00.033333333
buffer: content-id=20, pts=0:00:00.666666666, dur=0:00:00.033333334
buffer: content-id=21, pts=0:00:00.700000000, dur=0:00:00.033333333
event eos: (no structure)

View File

@ -2,6 +2,10 @@ event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_N
event caps: video/x-raw, format=(string)I420, framerate=(fraction)30/1, height=(int)240, interlace-mode=(string)progressive, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, width=(int)320;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=none, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000
buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.033333333, flags=discont
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:00.300000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000
buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.033333333, flags=discont
buffer: content-id=2, pts=0:00:00.033333333, dur=0:00:00.033333333
buffer: content-id=4, pts=0:00:00.066666666, dur=0:00:00.033333334
buffer: content-id=6, pts=0:00:00.100000000, dur=0:00:00.033333333
@ -10,5 +14,4 @@ buffer: content-id=10, pts=0:00:00.166666666, dur=0:00:00.033333334
buffer: content-id=12, pts=0:00:00.200000000, dur=0:00:00.033333333
buffer: content-id=14, pts=0:00:00.233333333, dur=0:00:00.033333333
buffer: content-id=16, pts=0:00:00.266666666, dur=0:00:00.033333334
buffer: content-id=18, pts=0:00:00.300000000, dur=0:00:00.033333333
buffer: content-id=20, pts=0:00:00.333333333, dur=0:00:00.033333333
event eos: (no structure)

View File

@ -2,4 +2,4 @@
# FIXME: Use a fakevideodec once merged!
set-globals, rate=(string)"0.5", decoder="! theoraenc ! theoradec !"
include, location="check-rate-prop.meta"
include, location="check-rate-prop-with-decoder.meta"

View File

@ -7,4 +7,3 @@ buffer: content-id=2, pts=0:00:00.066666666, dur=0:00:00.033333334
buffer: content-id=3, pts=0:00:00.100000000, dur=0:00:00.033333333
buffer: content-id=4, pts=0:00:00.133333333, dur=0:00:00.033333333
buffer: content-id=5, pts=0:00:00.166666666, dur=0:00:00.033333334
buffer: content-id=6, pts=0:00:00.200000000, dur=0:00:00.033333333

View File

@ -4,11 +4,11 @@ event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, s
buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.033333333, flags=discont
buffer: content-id=0, pts=0:00:00.033333333, dur=0:00:00.033333333, flags=gap
buffer: content-id=1, pts=0:00:00.066666666, dur=0:00:00.033333334
buffer: content-id=2, pts=0:00:00.100000000, dur=0:00:00.033333333
buffer: content-id=2, pts=0:00:00.133333333, dur=0:00:00.033333333, flags=gap
buffer: content-id=1, pts=0:00:00.100000000, dur=0:00:00.033333333, flags=gap
buffer: content-id=2, pts=0:00:00.133333333, dur=0:00:00.033333333
buffer: content-id=2, pts=0:00:00.166666666, dur=0:00:00.033333334, flags=gap
buffer: content-id=3, pts=0:00:00.200000000, dur=0:00:00.033333333
buffer: content-id=3, pts=0:00:00.233333333, dur=0:00:00.033333333, flags=gap
buffer: content-id=4, pts=0:00:00.266666666, dur=0:00:00.033333334
buffer: content-id=5, pts=0:00:00.300000000, dur=0:00:00.033333333
buffer: content-id=5, pts=0:00:00.333333333, dur=0:00:00.033333333, flags=gap
buffer: content-id=4, pts=0:00:00.300000000, dur=0:00:00.033333333, flags=gap
buffer: content-id=5, pts=0:00:00.333333333, dur=0:00:00.033333333

View File

@ -6,17 +6,17 @@ event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:05.000000000, rate=-1.000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:05.000000000
buffer: checksum=1d2741e8fc312f50417c99f6deecb6220c75efaa, pts=0:00:04.000000000, dur=0:00:01.000000000, flags=discont
buffer: checksum=e1d19911a0a9b7a6a97dceedc96c66f81d187591, pts=0:00:03.000000000, dur=0:00:01.000000000
buffer: checksum=012c04214b70c28c823991e5502c0dde653e576e, pts=0:00:02.000000000, dur=0:00:01.000000000
buffer: checksum=2bd35f37780e5c7bf173bc1c29598ab7f110e168, pts=0:00:01.000000000, dur=0:00:01.000000000
buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.000000000, dur=0:00:01.000000000
buffer: checksum=a01cd9172bd2387002e8f9b3003a9becc2938c16, pts=0:00:03.000000000, dur=0:00:01.000000000
buffer: checksum=0d65174db0fc96dbeaaa2488d013b8935f363330, pts=0:00:02.000000000, dur=0:00:01.000000000
buffer: checksum=b235367d19b4a8eedcca178a5919dc0bbbaeabca, pts=0:00:01.000000000, dur=0:00:01.000000000
buffer: checksum=b001027646a88bd2f45818b12ce73b0f04046b06, pts=0:00:00.000000000, dur=0:00:01.000000000
event eos: (no structure)
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:05.000000000, offset=0:00:00.000000000, stop=0:00:10.000000000, rate=-1.000000, flags=0x01, time=0:00:05.000000000, base=0:00:00.000000000, position=0:00:10.000000000
buffer: checksum=b60987b39a20770d5bfe06ffcd1969bf056a41a9, pts=0:00:09.000000000, dur=0:00:01.000000000, flags=discont
buffer: checksum=b2bd19d13a53ecd9b6ce8dc13d58889145f2e300, pts=0:00:08.000000000, dur=0:00:01.000000000
buffer: checksum=778c9e60a7ab01a76d3a701f6deee65db56dac5e, pts=0:00:07.000000000, dur=0:00:01.000000000
buffer: checksum=9363bed68761bd39a332ae06969be26b88b24ce0, pts=0:00:06.000000000, dur=0:00:01.000000000
buffer: checksum=12743d9ab352a75f9100424ad43f70d01fbfaee9, pts=0:00:05.000000000, dur=0:00:01.000000000
buffer: checksum=67edbc040d8972e01f10550cf35340ddbc332cb8, pts=0:00:08.000000000, dur=0:00:01.000000000
buffer: checksum=08541f37e1a59e1a558d3d8d187d5912baa2bbab, pts=0:00:07.000000000, dur=0:00:01.000000000
buffer: checksum=daca47d48dd5b89ea6a6e6e1c9ed9c90e06c4065, pts=0:00:06.000000000, dur=0:00:01.000000000
buffer: checksum=a019cee5c491f6caffb617c2dba938802167fbc1, pts=0:00:05.000000000, dur=0:00:01.000000000
event eos: (no structure)

View File

@ -7,32 +7,32 @@ event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:01.000000000, rate=-1.000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:01.000000000
buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.966666667, dur=0:00:00.033333333, flags=discont
buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.933333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.900000000, dur=0:00:00.033333334
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.866666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.833333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.800000000, dur=0:00:00.033333334
buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.766666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.733333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.700000000, dur=0:00:00.033333334
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.666666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.633333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.600000000, dur=0:00:00.033333334
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.566666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.533333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.500000000, dur=0:00:00.033333334
buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.466666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.433333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.400000000, dur=0:00:00.033333334
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.366666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.333333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.300000000, dur=0:00:00.033333334
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.266666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.233333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.200000000, dur=0:00:00.033333334
buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.166666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.133333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.100000000, dur=0:00:00.033333334
buffer: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.066666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.033333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.900000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.866666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.833333334, dur=0:00:00.033333333
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.800000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.766666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.733333334, dur=0:00:00.033333333
buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.700000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.666666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.633333334, dur=0:00:00.033333333
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.600000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.566666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.533333334, dur=0:00:00.033333333
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.500000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.466666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.433333334, dur=0:00:00.033333333
buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.400000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.366666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.333333334, dur=0:00:00.033333333
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.300000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.266666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.233333334, dur=0:00:00.033333333
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.200000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.166666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.133333334, dur=0:00:00.033333333
buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.100000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.066666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.033333334, dur=0:00:00.033333333
buffer: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.000000000, dur=0:00:00.033333334, flags=gap
event eos: (no structure)

View File

@ -6,33 +6,33 @@ event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:01.000000000, rate=-1.000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:01.000000000
buffer: checksum=012c04214b70c28c823991e5502c0dde653e576e, pts=0:00:00.966666667, dur=0:00:00.033333333, flags=discont
buffer: checksum=3d9ed200fc9ae13a398482ada9957fe5429f4808, pts=0:00:00.933333334, dur=0:00:00.033333333
buffer: checksum=31aabb7c75b036bbbd9495a84647959b336d484b, pts=0:00:00.900000000, dur=0:00:00.033333334
buffer: checksum=4838df67beb6ceadbde9fa4ae633b343962eb4cc, pts=0:00:00.866666667, dur=0:00:00.033333333
buffer: checksum=8969ea732a2692c1e437b901c12dc083c1ba137b, pts=0:00:00.833333334, dur=0:00:00.033333333
buffer: checksum=58936846a7314b141f0bc1d1ff1e9d46db961633, pts=0:00:00.800000000, dur=0:00:00.033333334
buffer: checksum=4c87c8b594e77448cffb8da079544060fa513829, pts=0:00:00.766666667, dur=0:00:00.033333333
buffer: checksum=f54b1beaf9a9709c87b9f2a0e2a509aaa0343b98, pts=0:00:00.733333334, dur=0:00:00.033333333
buffer: checksum=1b8c20d6b674124d076db71daa1854de266b0365, pts=0:00:00.700000000, dur=0:00:00.033333334
buffer: checksum=b235367d19b4a8eedcca178a5919dc0bbbaeabca, pts=0:00:00.666666667, dur=0:00:00.033333333
buffer: checksum=2bd35f37780e5c7bf173bc1c29598ab7f110e168, pts=0:00:00.633333334, dur=0:00:00.033333333
buffer: checksum=1e677a53b1ce72bf11b301041c7cd62602f57cea, pts=0:00:00.600000000, dur=0:00:00.033333334
buffer: checksum=a5b575e2fe65bb0862438f1689a1259612c3451b, pts=0:00:00.566666667, dur=0:00:00.033333333
buffer: checksum=724428f9800b53136cd85e1b28bf89454dce5b17, pts=0:00:00.533333334, dur=0:00:00.033333333
buffer: checksum=997ee2608af57157beeba316c6e4058d904af854, pts=0:00:00.500000000, dur=0:00:00.033333334
buffer: checksum=e33a1e17ee1d97ca396956dcc5bace77bcf40698, pts=0:00:00.466666667, dur=0:00:00.033333333
buffer: checksum=7bb5452dd5d28b6a62f3307b1e6f20a3c34ae0c4, pts=0:00:00.433333334, dur=0:00:00.033333333
buffer: checksum=e9424eca5674294ba9ba8ee81714f7c6cb45f480, pts=0:00:00.400000000, dur=0:00:00.033333334
buffer: checksum=ba9212a73c0b0fb0e1572b4bcc48c3240b617166, pts=0:00:00.366666667, dur=0:00:00.033333333
buffer: checksum=b001027646a88bd2f45818b12ce73b0f04046b06, pts=0:00:00.333333334, dur=0:00:00.033333333
buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.300000000, dur=0:00:00.033333334
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.266666667, dur=0:00:00.033333333
buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.233333334, dur=0:00:00.033333333
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.200000000, dur=0:00:00.033333334
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.166666667, dur=0:00:00.033333333
buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.133333334, dur=0:00:00.033333333
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.100000000, dur=0:00:00.033333334
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.066666667, dur=0:00:00.033333333
buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.033333334, dur=0:00:00.033333333
buffer: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.000000000, dur=0:00:00.033333334
buffer: checksum=012c04214b70c28c823991e5502c0dde653e576e, pts=0:00:00.933333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=3d9ed200fc9ae13a398482ada9957fe5429f4808, pts=0:00:00.900000000, dur=0:00:00.033333334
buffer: checksum=31aabb7c75b036bbbd9495a84647959b336d484b, pts=0:00:00.866666667, dur=0:00:00.033333333
buffer: checksum=4838df67beb6ceadbde9fa4ae633b343962eb4cc, pts=0:00:00.833333334, dur=0:00:00.033333333
buffer: checksum=8969ea732a2692c1e437b901c12dc083c1ba137b, pts=0:00:00.800000000, dur=0:00:00.033333334
buffer: checksum=58936846a7314b141f0bc1d1ff1e9d46db961633, pts=0:00:00.766666667, dur=0:00:00.033333333
buffer: checksum=4c87c8b594e77448cffb8da079544060fa513829, pts=0:00:00.733333334, dur=0:00:00.033333333
buffer: checksum=f54b1beaf9a9709c87b9f2a0e2a509aaa0343b98, pts=0:00:00.700000000, dur=0:00:00.033333334
buffer: checksum=1b8c20d6b674124d076db71daa1854de266b0365, pts=0:00:00.666666667, dur=0:00:00.033333333
buffer: checksum=b235367d19b4a8eedcca178a5919dc0bbbaeabca, pts=0:00:00.633333334, dur=0:00:00.033333333
buffer: checksum=2bd35f37780e5c7bf173bc1c29598ab7f110e168, pts=0:00:00.600000000, dur=0:00:00.033333334
buffer: checksum=1e677a53b1ce72bf11b301041c7cd62602f57cea, pts=0:00:00.566666667, dur=0:00:00.033333333
buffer: checksum=a5b575e2fe65bb0862438f1689a1259612c3451b, pts=0:00:00.533333334, dur=0:00:00.033333333
buffer: checksum=724428f9800b53136cd85e1b28bf89454dce5b17, pts=0:00:00.500000000, dur=0:00:00.033333334
buffer: checksum=997ee2608af57157beeba316c6e4058d904af854, pts=0:00:00.466666667, dur=0:00:00.033333333
buffer: checksum=e33a1e17ee1d97ca396956dcc5bace77bcf40698, pts=0:00:00.433333334, dur=0:00:00.033333333
buffer: checksum=7bb5452dd5d28b6a62f3307b1e6f20a3c34ae0c4, pts=0:00:00.400000000, dur=0:00:00.033333334
buffer: checksum=e9424eca5674294ba9ba8ee81714f7c6cb45f480, pts=0:00:00.366666667, dur=0:00:00.033333333
buffer: checksum=ba9212a73c0b0fb0e1572b4bcc48c3240b617166, pts=0:00:00.333333334, dur=0:00:00.033333333
buffer: checksum=b001027646a88bd2f45818b12ce73b0f04046b06, pts=0:00:00.300000000, dur=0:00:00.033333334
buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.266666667, dur=0:00:00.033333333
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.233333334, dur=0:00:00.033333333
buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.200000000, dur=0:00:00.033333334
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.166666667, dur=0:00:00.033333333
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.133333334, dur=0:00:00.033333333
buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.100000000, dur=0:00:00.033333334
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.066666667, dur=0:00:00.033333333
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.033333334, dur=0:00:00.033333333
buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.000000000, dur=0:00:00.033333334
event eos: (no structure)

View File

@ -6,27 +6,27 @@ event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:01.000000000, rate=-1.000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:01.000000000
buffer: checksum=012c04214b70c28c823991e5502c0dde653e576e, pts=0:00:00.900000000, dur=0:00:00.100000000, flags=discont
buffer: checksum=4838df67beb6ceadbde9fa4ae633b343962eb4cc, pts=0:00:00.800000000, dur=0:00:00.100000000
buffer: checksum=4c87c8b594e77448cffb8da079544060fa513829, pts=0:00:00.700000000, dur=0:00:00.100000000
buffer: checksum=b235367d19b4a8eedcca178a5919dc0bbbaeabca, pts=0:00:00.600000000, dur=0:00:00.100000000
buffer: checksum=a5b575e2fe65bb0862438f1689a1259612c3451b, pts=0:00:00.500000000, dur=0:00:00.100000000
buffer: checksum=e33a1e17ee1d97ca396956dcc5bace77bcf40698, pts=0:00:00.400000000, dur=0:00:00.100000000
buffer: checksum=ba9212a73c0b0fb0e1572b4bcc48c3240b617166, pts=0:00:00.300000000, dur=0:00:00.100000000
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.200000000, dur=0:00:00.100000000
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.100000000, dur=0:00:00.100000000
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.000000000, dur=0:00:00.100000000
buffer: checksum=31aabb7c75b036bbbd9495a84647959b336d484b, pts=0:00:00.800000000, dur=0:00:00.100000000
buffer: checksum=58936846a7314b141f0bc1d1ff1e9d46db961633, pts=0:00:00.700000000, dur=0:00:00.100000000
buffer: checksum=1b8c20d6b674124d076db71daa1854de266b0365, pts=0:00:00.600000000, dur=0:00:00.100000000
buffer: checksum=1e677a53b1ce72bf11b301041c7cd62602f57cea, pts=0:00:00.500000000, dur=0:00:00.100000000
buffer: checksum=997ee2608af57157beeba316c6e4058d904af854, pts=0:00:00.400000000, dur=0:00:00.100000000
buffer: checksum=e9424eca5674294ba9ba8ee81714f7c6cb45f480, pts=0:00:00.300000000, dur=0:00:00.100000000
buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.200000000, dur=0:00:00.100000000
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.100000000, dur=0:00:00.100000000
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.000000000, dur=0:00:00.100000000
event eos: (no structure)
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:01.000000000, offset=0:00:00.000000000, stop=0:00:02.000000000, rate=-1.000000, flags=0x01, time=0:00:01.000000000, base=0:00:00.000000000, position=0:00:02.000000000
buffer: checksum=12743d9ab352a75f9100424ad43f70d01fbfaee9, pts=0:00:01.900000000, dur=0:00:00.100000000, flags=discont
buffer: checksum=dcd4ccc30734f8d3a8800256f3cdb99a58cb7794, pts=0:00:01.800000000, dur=0:00:00.100000000
buffer: checksum=dc7572847961cdc8f87e8dd12b2004808b46b9d7, pts=0:00:01.700000000, dur=0:00:00.100000000
buffer: checksum=bff0c69020b2ffb3f3ceda63353620854cdd6b73, pts=0:00:01.600000000, dur=0:00:00.100000000
buffer: checksum=87c6573e1f3cc6a14bca871f675ff66822e2863e, pts=0:00:01.500000000, dur=0:00:00.100000000
buffer: checksum=ea498a2e840c9528f90f1154f72d4b204739b947, pts=0:00:01.400000000, dur=0:00:00.100000000
buffer: checksum=e07dcddf3c18d51c51d1914588a2b61327cfa139, pts=0:00:01.300000000, dur=0:00:00.100000000
buffer: checksum=950bd00b2a08dc4fb6e0a2b06d38cf14a40780ac, pts=0:00:01.200000000, dur=0:00:00.100000000
buffer: checksum=9238cea5dc4855b286e4a1459ca4f8e177dfb96f, pts=0:00:01.100000000, dur=0:00:00.100000000
buffer: checksum=7acbad9ec0b798679d22ac1cf8bb0526a2a066d3, pts=0:00:01.000000000, dur=0:00:00.100000000
buffer: checksum=b4522d1e8a6e89d34e546885f450d0fc4106e711, pts=0:00:01.800000000, dur=0:00:00.100000000
buffer: checksum=0afa5c0d00ac4bfe6309ae945aaf800437f69dd6, pts=0:00:01.700000000, dur=0:00:00.100000000
buffer: checksum=5fb7222253c7d78c891979cdfa2c079eb2fba90f, pts=0:00:01.600000000, dur=0:00:00.100000000
buffer: checksum=6f2d5d8f9551083a65889a7d7b87e25348612604, pts=0:00:01.500000000, dur=0:00:00.100000000
buffer: checksum=e085fff613289df868f63ca7142ce0d342ab3d4c, pts=0:00:01.400000000, dur=0:00:00.100000000
buffer: checksum=33710a6238592d081550f74836533f8caf51cc0f, pts=0:00:01.300000000, dur=0:00:00.100000000
buffer: checksum=e1d19911a0a9b7a6a97dceedc96c66f81d187591, pts=0:00:01.200000000, dur=0:00:00.100000000
buffer: checksum=8eed8ee03cf63e698bfa301fa0b304addffed4bc, pts=0:00:01.100000000, dur=0:00:00.100000000
buffer: checksum=f0f7021ee092b8f273ca5cec2d1acefebfb53356, pts=0:00:01.000000000, dur=0:00:00.100000000
event eos: (no structure)

View File

@ -6,17 +6,17 @@ event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:05.000000000, rate=-2.000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:05.000000000
buffer: checksum=1d2741e8fc312f50417c99f6deecb6220c75efaa, pts=0:00:04.000000000, dur=0:00:01.000000000, flags=discont
buffer: checksum=e1d19911a0a9b7a6a97dceedc96c66f81d187591, pts=0:00:03.000000000, dur=0:00:01.000000000
buffer: checksum=012c04214b70c28c823991e5502c0dde653e576e, pts=0:00:02.000000000, dur=0:00:01.000000000
buffer: checksum=2bd35f37780e5c7bf173bc1c29598ab7f110e168, pts=0:00:01.000000000, dur=0:00:01.000000000
buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.000000000, dur=0:00:01.000000000
buffer: checksum=a01cd9172bd2387002e8f9b3003a9becc2938c16, pts=0:00:03.000000000, dur=0:00:01.000000000
buffer: checksum=0d65174db0fc96dbeaaa2488d013b8935f363330, pts=0:00:02.000000000, dur=0:00:01.000000000
buffer: checksum=b235367d19b4a8eedcca178a5919dc0bbbaeabca, pts=0:00:01.000000000, dur=0:00:01.000000000
buffer: checksum=b001027646a88bd2f45818b12ce73b0f04046b06, pts=0:00:00.000000000, dur=0:00:01.000000000
event eos: (no structure)
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:05.000000000, offset=0:00:00.000000000, stop=0:00:10.000000000, rate=-2.000000, flags=0x01, time=0:00:05.000000000, base=0:00:00.000000000, position=0:00:10.000000000
buffer: checksum=b60987b39a20770d5bfe06ffcd1969bf056a41a9, pts=0:00:09.000000000, dur=0:00:01.000000000, flags=discont
buffer: checksum=b2bd19d13a53ecd9b6ce8dc13d58889145f2e300, pts=0:00:08.000000000, dur=0:00:01.000000000
buffer: checksum=778c9e60a7ab01a76d3a701f6deee65db56dac5e, pts=0:00:07.000000000, dur=0:00:01.000000000
buffer: checksum=9363bed68761bd39a332ae06969be26b88b24ce0, pts=0:00:06.000000000, dur=0:00:01.000000000
buffer: checksum=12743d9ab352a75f9100424ad43f70d01fbfaee9, pts=0:00:05.000000000, dur=0:00:01.000000000
buffer: checksum=67edbc040d8972e01f10550cf35340ddbc332cb8, pts=0:00:08.000000000, dur=0:00:01.000000000
buffer: checksum=08541f37e1a59e1a558d3d8d187d5912baa2bbab, pts=0:00:07.000000000, dur=0:00:01.000000000
buffer: checksum=daca47d48dd5b89ea6a6e6e1c9ed9c90e06c4065, pts=0:00:06.000000000, dur=0:00:01.000000000
buffer: checksum=a019cee5c491f6caffb617c2dba938802167fbc1, pts=0:00:05.000000000, dur=0:00:01.000000000
event eos: (no structure)

View File

@ -7,32 +7,32 @@ event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:01.000000000, rate=-2.000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:01.000000000
buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.966666667, dur=0:00:00.033333333, flags=discont
buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.933333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.900000000, dur=0:00:00.033333334
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.866666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.833333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.800000000, dur=0:00:00.033333334
buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.766666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.733333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.700000000, dur=0:00:00.033333334
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.666666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.633333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.600000000, dur=0:00:00.033333334
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.566666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.533333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.500000000, dur=0:00:00.033333334
buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.466666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.433333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.400000000, dur=0:00:00.033333334
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.366666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.333333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.300000000, dur=0:00:00.033333334
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.266666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.233333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.200000000, dur=0:00:00.033333334
buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.166666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.133333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.100000000, dur=0:00:00.033333334
buffer: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.066666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.033333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.900000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.866666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.833333334, dur=0:00:00.033333333
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.800000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.766666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.733333334, dur=0:00:00.033333333
buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.700000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.666666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.633333334, dur=0:00:00.033333333
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.600000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.566666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.533333334, dur=0:00:00.033333333
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.500000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.466666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.433333334, dur=0:00:00.033333333
buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.400000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.366666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.333333334, dur=0:00:00.033333333
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.300000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.266666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.233333334, dur=0:00:00.033333333
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.200000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.166666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.133333334, dur=0:00:00.033333333
buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.100000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.066666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.033333334, dur=0:00:00.033333333
buffer: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.000000000, dur=0:00:00.033333334, flags=gap
event eos: (no structure)

View File

@ -6,33 +6,33 @@ event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:01.000000000, rate=-2.000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:01.000000000
buffer: checksum=012c04214b70c28c823991e5502c0dde653e576e, pts=0:00:00.966666667, dur=0:00:00.033333333, flags=discont
buffer: checksum=3d9ed200fc9ae13a398482ada9957fe5429f4808, pts=0:00:00.933333334, dur=0:00:00.033333333
buffer: checksum=31aabb7c75b036bbbd9495a84647959b336d484b, pts=0:00:00.900000000, dur=0:00:00.033333334
buffer: checksum=4838df67beb6ceadbde9fa4ae633b343962eb4cc, pts=0:00:00.866666667, dur=0:00:00.033333333
buffer: checksum=8969ea732a2692c1e437b901c12dc083c1ba137b, pts=0:00:00.833333334, dur=0:00:00.033333333
buffer: checksum=58936846a7314b141f0bc1d1ff1e9d46db961633, pts=0:00:00.800000000, dur=0:00:00.033333334
buffer: checksum=4c87c8b594e77448cffb8da079544060fa513829, pts=0:00:00.766666667, dur=0:00:00.033333333
buffer: checksum=f54b1beaf9a9709c87b9f2a0e2a509aaa0343b98, pts=0:00:00.733333334, dur=0:00:00.033333333
buffer: checksum=1b8c20d6b674124d076db71daa1854de266b0365, pts=0:00:00.700000000, dur=0:00:00.033333334
buffer: checksum=b235367d19b4a8eedcca178a5919dc0bbbaeabca, pts=0:00:00.666666667, dur=0:00:00.033333333
buffer: checksum=2bd35f37780e5c7bf173bc1c29598ab7f110e168, pts=0:00:00.633333334, dur=0:00:00.033333333
buffer: checksum=1e677a53b1ce72bf11b301041c7cd62602f57cea, pts=0:00:00.600000000, dur=0:00:00.033333334
buffer: checksum=a5b575e2fe65bb0862438f1689a1259612c3451b, pts=0:00:00.566666667, dur=0:00:00.033333333
buffer: checksum=724428f9800b53136cd85e1b28bf89454dce5b17, pts=0:00:00.533333334, dur=0:00:00.033333333
buffer: checksum=997ee2608af57157beeba316c6e4058d904af854, pts=0:00:00.500000000, dur=0:00:00.033333334
buffer: checksum=e33a1e17ee1d97ca396956dcc5bace77bcf40698, pts=0:00:00.466666667, dur=0:00:00.033333333
buffer: checksum=7bb5452dd5d28b6a62f3307b1e6f20a3c34ae0c4, pts=0:00:00.433333334, dur=0:00:00.033333333
buffer: checksum=e9424eca5674294ba9ba8ee81714f7c6cb45f480, pts=0:00:00.400000000, dur=0:00:00.033333334
buffer: checksum=ba9212a73c0b0fb0e1572b4bcc48c3240b617166, pts=0:00:00.366666667, dur=0:00:00.033333333
buffer: checksum=b001027646a88bd2f45818b12ce73b0f04046b06, pts=0:00:00.333333334, dur=0:00:00.033333333
buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.300000000, dur=0:00:00.033333334
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.266666667, dur=0:00:00.033333333
buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.233333334, dur=0:00:00.033333333
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.200000000, dur=0:00:00.033333334
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.166666667, dur=0:00:00.033333333
buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.133333334, dur=0:00:00.033333333
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.100000000, dur=0:00:00.033333334
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.066666667, dur=0:00:00.033333333
buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.033333334, dur=0:00:00.033333333
buffer: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.000000000, dur=0:00:00.033333334
buffer: checksum=012c04214b70c28c823991e5502c0dde653e576e, pts=0:00:00.933333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=3d9ed200fc9ae13a398482ada9957fe5429f4808, pts=0:00:00.900000000, dur=0:00:00.033333334
buffer: checksum=31aabb7c75b036bbbd9495a84647959b336d484b, pts=0:00:00.866666667, dur=0:00:00.033333333
buffer: checksum=4838df67beb6ceadbde9fa4ae633b343962eb4cc, pts=0:00:00.833333334, dur=0:00:00.033333333
buffer: checksum=8969ea732a2692c1e437b901c12dc083c1ba137b, pts=0:00:00.800000000, dur=0:00:00.033333334
buffer: checksum=58936846a7314b141f0bc1d1ff1e9d46db961633, pts=0:00:00.766666667, dur=0:00:00.033333333
buffer: checksum=4c87c8b594e77448cffb8da079544060fa513829, pts=0:00:00.733333334, dur=0:00:00.033333333
buffer: checksum=f54b1beaf9a9709c87b9f2a0e2a509aaa0343b98, pts=0:00:00.700000000, dur=0:00:00.033333334
buffer: checksum=1b8c20d6b674124d076db71daa1854de266b0365, pts=0:00:00.666666667, dur=0:00:00.033333333
buffer: checksum=b235367d19b4a8eedcca178a5919dc0bbbaeabca, pts=0:00:00.633333334, dur=0:00:00.033333333
buffer: checksum=2bd35f37780e5c7bf173bc1c29598ab7f110e168, pts=0:00:00.600000000, dur=0:00:00.033333334
buffer: checksum=1e677a53b1ce72bf11b301041c7cd62602f57cea, pts=0:00:00.566666667, dur=0:00:00.033333333
buffer: checksum=a5b575e2fe65bb0862438f1689a1259612c3451b, pts=0:00:00.533333334, dur=0:00:00.033333333
buffer: checksum=724428f9800b53136cd85e1b28bf89454dce5b17, pts=0:00:00.500000000, dur=0:00:00.033333334
buffer: checksum=997ee2608af57157beeba316c6e4058d904af854, pts=0:00:00.466666667, dur=0:00:00.033333333
buffer: checksum=e33a1e17ee1d97ca396956dcc5bace77bcf40698, pts=0:00:00.433333334, dur=0:00:00.033333333
buffer: checksum=7bb5452dd5d28b6a62f3307b1e6f20a3c34ae0c4, pts=0:00:00.400000000, dur=0:00:00.033333334
buffer: checksum=e9424eca5674294ba9ba8ee81714f7c6cb45f480, pts=0:00:00.366666667, dur=0:00:00.033333333
buffer: checksum=ba9212a73c0b0fb0e1572b4bcc48c3240b617166, pts=0:00:00.333333334, dur=0:00:00.033333333
buffer: checksum=b001027646a88bd2f45818b12ce73b0f04046b06, pts=0:00:00.300000000, dur=0:00:00.033333334
buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.266666667, dur=0:00:00.033333333
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.233333334, dur=0:00:00.033333333
buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.200000000, dur=0:00:00.033333334
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.166666667, dur=0:00:00.033333333
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.133333334, dur=0:00:00.033333333
buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.100000000, dur=0:00:00.033333334
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.066666667, dur=0:00:00.033333333
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.033333334, dur=0:00:00.033333333
buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.000000000, dur=0:00:00.033333334
event eos: (no structure)

View File

@ -6,27 +6,27 @@ event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:01.000000000, rate=-2.000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:01.000000000
buffer: checksum=012c04214b70c28c823991e5502c0dde653e576e, pts=0:00:00.900000000, dur=0:00:00.100000000, flags=discont
buffer: checksum=4838df67beb6ceadbde9fa4ae633b343962eb4cc, pts=0:00:00.800000000, dur=0:00:00.100000000
buffer: checksum=4c87c8b594e77448cffb8da079544060fa513829, pts=0:00:00.700000000, dur=0:00:00.100000000
buffer: checksum=b235367d19b4a8eedcca178a5919dc0bbbaeabca, pts=0:00:00.600000000, dur=0:00:00.100000000
buffer: checksum=a5b575e2fe65bb0862438f1689a1259612c3451b, pts=0:00:00.500000000, dur=0:00:00.100000000
buffer: checksum=e33a1e17ee1d97ca396956dcc5bace77bcf40698, pts=0:00:00.400000000, dur=0:00:00.100000000
buffer: checksum=ba9212a73c0b0fb0e1572b4bcc48c3240b617166, pts=0:00:00.300000000, dur=0:00:00.100000000
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.200000000, dur=0:00:00.100000000
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.100000000, dur=0:00:00.100000000
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.000000000, dur=0:00:00.100000000
buffer: checksum=31aabb7c75b036bbbd9495a84647959b336d484b, pts=0:00:00.800000000, dur=0:00:00.100000000
buffer: checksum=58936846a7314b141f0bc1d1ff1e9d46db961633, pts=0:00:00.700000000, dur=0:00:00.100000000
buffer: checksum=1b8c20d6b674124d076db71daa1854de266b0365, pts=0:00:00.600000000, dur=0:00:00.100000000
buffer: checksum=1e677a53b1ce72bf11b301041c7cd62602f57cea, pts=0:00:00.500000000, dur=0:00:00.100000000
buffer: checksum=997ee2608af57157beeba316c6e4058d904af854, pts=0:00:00.400000000, dur=0:00:00.100000000
buffer: checksum=e9424eca5674294ba9ba8ee81714f7c6cb45f480, pts=0:00:00.300000000, dur=0:00:00.100000000
buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.200000000, dur=0:00:00.100000000
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.100000000, dur=0:00:00.100000000
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.000000000, dur=0:00:00.100000000
event eos: (no structure)
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:01.000000000, offset=0:00:00.000000000, stop=0:00:02.000000000, rate=-2.000000, flags=0x01, time=0:00:01.000000000, base=0:00:00.000000000, position=0:00:02.000000000
buffer: checksum=12743d9ab352a75f9100424ad43f70d01fbfaee9, pts=0:00:01.900000000, dur=0:00:00.100000000, flags=discont
buffer: checksum=dcd4ccc30734f8d3a8800256f3cdb99a58cb7794, pts=0:00:01.800000000, dur=0:00:00.100000000
buffer: checksum=dc7572847961cdc8f87e8dd12b2004808b46b9d7, pts=0:00:01.700000000, dur=0:00:00.100000000
buffer: checksum=bff0c69020b2ffb3f3ceda63353620854cdd6b73, pts=0:00:01.600000000, dur=0:00:00.100000000
buffer: checksum=87c6573e1f3cc6a14bca871f675ff66822e2863e, pts=0:00:01.500000000, dur=0:00:00.100000000
buffer: checksum=ea498a2e840c9528f90f1154f72d4b204739b947, pts=0:00:01.400000000, dur=0:00:00.100000000
buffer: checksum=e07dcddf3c18d51c51d1914588a2b61327cfa139, pts=0:00:01.300000000, dur=0:00:00.100000000
buffer: checksum=950bd00b2a08dc4fb6e0a2b06d38cf14a40780ac, pts=0:00:01.200000000, dur=0:00:00.100000000
buffer: checksum=9238cea5dc4855b286e4a1459ca4f8e177dfb96f, pts=0:00:01.100000000, dur=0:00:00.100000000
buffer: checksum=7acbad9ec0b798679d22ac1cf8bb0526a2a066d3, pts=0:00:01.000000000, dur=0:00:00.100000000
buffer: checksum=b4522d1e8a6e89d34e546885f450d0fc4106e711, pts=0:00:01.800000000, dur=0:00:00.100000000
buffer: checksum=0afa5c0d00ac4bfe6309ae945aaf800437f69dd6, pts=0:00:01.700000000, dur=0:00:00.100000000
buffer: checksum=5fb7222253c7d78c891979cdfa2c079eb2fba90f, pts=0:00:01.600000000, dur=0:00:00.100000000
buffer: checksum=6f2d5d8f9551083a65889a7d7b87e25348612604, pts=0:00:01.500000000, dur=0:00:00.100000000
buffer: checksum=e085fff613289df868f63ca7142ce0d342ab3d4c, pts=0:00:01.400000000, dur=0:00:00.100000000
buffer: checksum=33710a6238592d081550f74836533f8caf51cc0f, pts=0:00:01.300000000, dur=0:00:00.100000000
buffer: checksum=e1d19911a0a9b7a6a97dceedc96c66f81d187591, pts=0:00:01.200000000, dur=0:00:00.100000000
buffer: checksum=8eed8ee03cf63e698bfa301fa0b304addffed4bc, pts=0:00:01.100000000, dur=0:00:00.100000000
buffer: checksum=f0f7021ee092b8f273ca5cec2d1acefebfb53356, pts=0:00:01.000000000, dur=0:00:00.100000000
event eos: (no structure)

View File

@ -6,17 +6,17 @@ event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:05.000000000, rate=-0.500000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:05.000000000
buffer: checksum=1d2741e8fc312f50417c99f6deecb6220c75efaa, pts=0:00:04.000000000, dur=0:00:01.000000000, flags=discont
buffer: checksum=e1d19911a0a9b7a6a97dceedc96c66f81d187591, pts=0:00:03.000000000, dur=0:00:01.000000000
buffer: checksum=012c04214b70c28c823991e5502c0dde653e576e, pts=0:00:02.000000000, dur=0:00:01.000000000
buffer: checksum=2bd35f37780e5c7bf173bc1c29598ab7f110e168, pts=0:00:01.000000000, dur=0:00:01.000000000
buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.000000000, dur=0:00:01.000000000
buffer: checksum=a01cd9172bd2387002e8f9b3003a9becc2938c16, pts=0:00:03.000000000, dur=0:00:01.000000000
buffer: checksum=0d65174db0fc96dbeaaa2488d013b8935f363330, pts=0:00:02.000000000, dur=0:00:01.000000000
buffer: checksum=b235367d19b4a8eedcca178a5919dc0bbbaeabca, pts=0:00:01.000000000, dur=0:00:01.000000000
buffer: checksum=b001027646a88bd2f45818b12ce73b0f04046b06, pts=0:00:00.000000000, dur=0:00:01.000000000
event eos: (no structure)
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:05.000000000, offset=0:00:00.000000000, stop=0:00:10.000000000, rate=-0.500000, flags=0x01, time=0:00:05.000000000, base=0:00:00.000000000, position=0:00:10.000000000
buffer: checksum=b60987b39a20770d5bfe06ffcd1969bf056a41a9, pts=0:00:09.000000000, dur=0:00:01.000000000, flags=discont
buffer: checksum=b2bd19d13a53ecd9b6ce8dc13d58889145f2e300, pts=0:00:08.000000000, dur=0:00:01.000000000
buffer: checksum=778c9e60a7ab01a76d3a701f6deee65db56dac5e, pts=0:00:07.000000000, dur=0:00:01.000000000
buffer: checksum=9363bed68761bd39a332ae06969be26b88b24ce0, pts=0:00:06.000000000, dur=0:00:01.000000000
buffer: checksum=12743d9ab352a75f9100424ad43f70d01fbfaee9, pts=0:00:05.000000000, dur=0:00:01.000000000
buffer: checksum=67edbc040d8972e01f10550cf35340ddbc332cb8, pts=0:00:08.000000000, dur=0:00:01.000000000
buffer: checksum=08541f37e1a59e1a558d3d8d187d5912baa2bbab, pts=0:00:07.000000000, dur=0:00:01.000000000
buffer: checksum=daca47d48dd5b89ea6a6e6e1c9ed9c90e06c4065, pts=0:00:06.000000000, dur=0:00:01.000000000
buffer: checksum=a019cee5c491f6caffb617c2dba938802167fbc1, pts=0:00:05.000000000, dur=0:00:01.000000000
event eos: (no structure)

View File

@ -7,32 +7,32 @@ event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:01.000000000, rate=-0.500000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:01.000000000
buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.966666667, dur=0:00:00.033333333, flags=discont
buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.933333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.900000000, dur=0:00:00.033333334
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.866666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.833333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.800000000, dur=0:00:00.033333334
buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.766666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.733333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.700000000, dur=0:00:00.033333334
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.666666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.633333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.600000000, dur=0:00:00.033333334
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.566666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.533333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.500000000, dur=0:00:00.033333334
buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.466666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.433333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.400000000, dur=0:00:00.033333334
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.366666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.333333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.300000000, dur=0:00:00.033333334
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.266666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.233333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.200000000, dur=0:00:00.033333334
buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.166666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.133333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.100000000, dur=0:00:00.033333334
buffer: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.066666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.033333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.900000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.866666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.833333334, dur=0:00:00.033333333
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.800000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.766666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.733333334, dur=0:00:00.033333333
buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.700000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.666666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.633333334, dur=0:00:00.033333333
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.600000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.566666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.533333334, dur=0:00:00.033333333
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.500000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.466666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.433333334, dur=0:00:00.033333333
buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.400000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.366666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.333333334, dur=0:00:00.033333333
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.300000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.266666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.233333334, dur=0:00:00.033333333
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.200000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.166666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.133333334, dur=0:00:00.033333333
buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.100000000, dur=0:00:00.033333334, flags=gap
buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.066666667, dur=0:00:00.033333333, flags=gap
buffer: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.033333334, dur=0:00:00.033333333
buffer: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.000000000, dur=0:00:00.033333334, flags=gap
event eos: (no structure)

View File

@ -6,33 +6,33 @@ event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:01.000000000, rate=-0.500000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:01.000000000
buffer: checksum=012c04214b70c28c823991e5502c0dde653e576e, pts=0:00:00.966666667, dur=0:00:00.033333333, flags=discont
buffer: checksum=3d9ed200fc9ae13a398482ada9957fe5429f4808, pts=0:00:00.933333334, dur=0:00:00.033333333
buffer: checksum=31aabb7c75b036bbbd9495a84647959b336d484b, pts=0:00:00.900000000, dur=0:00:00.033333334
buffer: checksum=4838df67beb6ceadbde9fa4ae633b343962eb4cc, pts=0:00:00.866666667, dur=0:00:00.033333333
buffer: checksum=8969ea732a2692c1e437b901c12dc083c1ba137b, pts=0:00:00.833333334, dur=0:00:00.033333333
buffer: checksum=58936846a7314b141f0bc1d1ff1e9d46db961633, pts=0:00:00.800000000, dur=0:00:00.033333334
buffer: checksum=4c87c8b594e77448cffb8da079544060fa513829, pts=0:00:00.766666667, dur=0:00:00.033333333
buffer: checksum=f54b1beaf9a9709c87b9f2a0e2a509aaa0343b98, pts=0:00:00.733333334, dur=0:00:00.033333333
buffer: checksum=1b8c20d6b674124d076db71daa1854de266b0365, pts=0:00:00.700000000, dur=0:00:00.033333334
buffer: checksum=b235367d19b4a8eedcca178a5919dc0bbbaeabca, pts=0:00:00.666666667, dur=0:00:00.033333333
buffer: checksum=2bd35f37780e5c7bf173bc1c29598ab7f110e168, pts=0:00:00.633333334, dur=0:00:00.033333333
buffer: checksum=1e677a53b1ce72bf11b301041c7cd62602f57cea, pts=0:00:00.600000000, dur=0:00:00.033333334
buffer: checksum=a5b575e2fe65bb0862438f1689a1259612c3451b, pts=0:00:00.566666667, dur=0:00:00.033333333
buffer: checksum=724428f9800b53136cd85e1b28bf89454dce5b17, pts=0:00:00.533333334, dur=0:00:00.033333333
buffer: checksum=997ee2608af57157beeba316c6e4058d904af854, pts=0:00:00.500000000, dur=0:00:00.033333334
buffer: checksum=e33a1e17ee1d97ca396956dcc5bace77bcf40698, pts=0:00:00.466666667, dur=0:00:00.033333333
buffer: checksum=7bb5452dd5d28b6a62f3307b1e6f20a3c34ae0c4, pts=0:00:00.433333334, dur=0:00:00.033333333
buffer: checksum=e9424eca5674294ba9ba8ee81714f7c6cb45f480, pts=0:00:00.400000000, dur=0:00:00.033333334
buffer: checksum=ba9212a73c0b0fb0e1572b4bcc48c3240b617166, pts=0:00:00.366666667, dur=0:00:00.033333333
buffer: checksum=b001027646a88bd2f45818b12ce73b0f04046b06, pts=0:00:00.333333334, dur=0:00:00.033333333
buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.300000000, dur=0:00:00.033333334
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.266666667, dur=0:00:00.033333333
buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.233333334, dur=0:00:00.033333333
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.200000000, dur=0:00:00.033333334
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.166666667, dur=0:00:00.033333333
buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.133333334, dur=0:00:00.033333333
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.100000000, dur=0:00:00.033333334
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.066666667, dur=0:00:00.033333333
buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.033333334, dur=0:00:00.033333333
buffer: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.000000000, dur=0:00:00.033333334
buffer: checksum=012c04214b70c28c823991e5502c0dde653e576e, pts=0:00:00.933333334, dur=0:00:00.033333333, flags=gap
buffer: checksum=3d9ed200fc9ae13a398482ada9957fe5429f4808, pts=0:00:00.900000000, dur=0:00:00.033333334
buffer: checksum=31aabb7c75b036bbbd9495a84647959b336d484b, pts=0:00:00.866666667, dur=0:00:00.033333333
buffer: checksum=4838df67beb6ceadbde9fa4ae633b343962eb4cc, pts=0:00:00.833333334, dur=0:00:00.033333333
buffer: checksum=8969ea732a2692c1e437b901c12dc083c1ba137b, pts=0:00:00.800000000, dur=0:00:00.033333334
buffer: checksum=58936846a7314b141f0bc1d1ff1e9d46db961633, pts=0:00:00.766666667, dur=0:00:00.033333333
buffer: checksum=4c87c8b594e77448cffb8da079544060fa513829, pts=0:00:00.733333334, dur=0:00:00.033333333
buffer: checksum=f54b1beaf9a9709c87b9f2a0e2a509aaa0343b98, pts=0:00:00.700000000, dur=0:00:00.033333334
buffer: checksum=1b8c20d6b674124d076db71daa1854de266b0365, pts=0:00:00.666666667, dur=0:00:00.033333333
buffer: checksum=b235367d19b4a8eedcca178a5919dc0bbbaeabca, pts=0:00:00.633333334, dur=0:00:00.033333333
buffer: checksum=2bd35f37780e5c7bf173bc1c29598ab7f110e168, pts=0:00:00.600000000, dur=0:00:00.033333334
buffer: checksum=1e677a53b1ce72bf11b301041c7cd62602f57cea, pts=0:00:00.566666667, dur=0:00:00.033333333
buffer: checksum=a5b575e2fe65bb0862438f1689a1259612c3451b, pts=0:00:00.533333334, dur=0:00:00.033333333
buffer: checksum=724428f9800b53136cd85e1b28bf89454dce5b17, pts=0:00:00.500000000, dur=0:00:00.033333334
buffer: checksum=997ee2608af57157beeba316c6e4058d904af854, pts=0:00:00.466666667, dur=0:00:00.033333333
buffer: checksum=e33a1e17ee1d97ca396956dcc5bace77bcf40698, pts=0:00:00.433333334, dur=0:00:00.033333333
buffer: checksum=7bb5452dd5d28b6a62f3307b1e6f20a3c34ae0c4, pts=0:00:00.400000000, dur=0:00:00.033333334
buffer: checksum=e9424eca5674294ba9ba8ee81714f7c6cb45f480, pts=0:00:00.366666667, dur=0:00:00.033333333
buffer: checksum=ba9212a73c0b0fb0e1572b4bcc48c3240b617166, pts=0:00:00.333333334, dur=0:00:00.033333333
buffer: checksum=b001027646a88bd2f45818b12ce73b0f04046b06, pts=0:00:00.300000000, dur=0:00:00.033333334
buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.266666667, dur=0:00:00.033333333
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.233333334, dur=0:00:00.033333333
buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.200000000, dur=0:00:00.033333334
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.166666667, dur=0:00:00.033333333
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.133333334, dur=0:00:00.033333333
buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.100000000, dur=0:00:00.033333334
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.066666667, dur=0:00:00.033333333
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.033333334, dur=0:00:00.033333333
buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.000000000, dur=0:00:00.033333334
event eos: (no structure)

View File

@ -6,27 +6,27 @@ event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:01.000000000, rate=-0.500000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:01.000000000
buffer: checksum=012c04214b70c28c823991e5502c0dde653e576e, pts=0:00:00.900000000, dur=0:00:00.100000000, flags=discont
buffer: checksum=4838df67beb6ceadbde9fa4ae633b343962eb4cc, pts=0:00:00.800000000, dur=0:00:00.100000000
buffer: checksum=4c87c8b594e77448cffb8da079544060fa513829, pts=0:00:00.700000000, dur=0:00:00.100000000
buffer: checksum=b235367d19b4a8eedcca178a5919dc0bbbaeabca, pts=0:00:00.600000000, dur=0:00:00.100000000
buffer: checksum=a5b575e2fe65bb0862438f1689a1259612c3451b, pts=0:00:00.500000000, dur=0:00:00.100000000
buffer: checksum=e33a1e17ee1d97ca396956dcc5bace77bcf40698, pts=0:00:00.400000000, dur=0:00:00.100000000
buffer: checksum=ba9212a73c0b0fb0e1572b4bcc48c3240b617166, pts=0:00:00.300000000, dur=0:00:00.100000000
buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.200000000, dur=0:00:00.100000000
buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.100000000, dur=0:00:00.100000000
buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.000000000, dur=0:00:00.100000000
buffer: checksum=31aabb7c75b036bbbd9495a84647959b336d484b, pts=0:00:00.800000000, dur=0:00:00.100000000
buffer: checksum=58936846a7314b141f0bc1d1ff1e9d46db961633, pts=0:00:00.700000000, dur=0:00:00.100000000
buffer: checksum=1b8c20d6b674124d076db71daa1854de266b0365, pts=0:00:00.600000000, dur=0:00:00.100000000
buffer: checksum=1e677a53b1ce72bf11b301041c7cd62602f57cea, pts=0:00:00.500000000, dur=0:00:00.100000000
buffer: checksum=997ee2608af57157beeba316c6e4058d904af854, pts=0:00:00.400000000, dur=0:00:00.100000000
buffer: checksum=e9424eca5674294ba9ba8ee81714f7c6cb45f480, pts=0:00:00.300000000, dur=0:00:00.100000000
buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.200000000, dur=0:00:00.100000000
buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.100000000, dur=0:00:00.100000000
buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.000000000, dur=0:00:00.100000000
event eos: (no structure)
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:01.000000000, offset=0:00:00.000000000, stop=0:00:02.000000000, rate=-0.500000, flags=0x01, time=0:00:01.000000000, base=0:00:00.000000000, position=0:00:02.000000000
buffer: checksum=12743d9ab352a75f9100424ad43f70d01fbfaee9, pts=0:00:01.900000000, dur=0:00:00.100000000, flags=discont
buffer: checksum=dcd4ccc30734f8d3a8800256f3cdb99a58cb7794, pts=0:00:01.800000000, dur=0:00:00.100000000
buffer: checksum=dc7572847961cdc8f87e8dd12b2004808b46b9d7, pts=0:00:01.700000000, dur=0:00:00.100000000
buffer: checksum=bff0c69020b2ffb3f3ceda63353620854cdd6b73, pts=0:00:01.600000000, dur=0:00:00.100000000
buffer: checksum=87c6573e1f3cc6a14bca871f675ff66822e2863e, pts=0:00:01.500000000, dur=0:00:00.100000000
buffer: checksum=ea498a2e840c9528f90f1154f72d4b204739b947, pts=0:00:01.400000000, dur=0:00:00.100000000
buffer: checksum=e07dcddf3c18d51c51d1914588a2b61327cfa139, pts=0:00:01.300000000, dur=0:00:00.100000000
buffer: checksum=950bd00b2a08dc4fb6e0a2b06d38cf14a40780ac, pts=0:00:01.200000000, dur=0:00:00.100000000
buffer: checksum=9238cea5dc4855b286e4a1459ca4f8e177dfb96f, pts=0:00:01.100000000, dur=0:00:00.100000000
buffer: checksum=7acbad9ec0b798679d22ac1cf8bb0526a2a066d3, pts=0:00:01.000000000, dur=0:00:00.100000000
buffer: checksum=b4522d1e8a6e89d34e546885f450d0fc4106e711, pts=0:00:01.800000000, dur=0:00:00.100000000
buffer: checksum=0afa5c0d00ac4bfe6309ae945aaf800437f69dd6, pts=0:00:01.700000000, dur=0:00:00.100000000
buffer: checksum=5fb7222253c7d78c891979cdfa2c079eb2fba90f, pts=0:00:01.600000000, dur=0:00:00.100000000
buffer: checksum=6f2d5d8f9551083a65889a7d7b87e25348612604, pts=0:00:01.500000000, dur=0:00:00.100000000
buffer: checksum=e085fff613289df868f63ca7142ce0d342ab3d4c, pts=0:00:01.400000000, dur=0:00:00.100000000
buffer: checksum=33710a6238592d081550f74836533f8caf51cc0f, pts=0:00:01.300000000, dur=0:00:00.100000000
buffer: checksum=e1d19911a0a9b7a6a97dceedc96c66f81d187591, pts=0:00:01.200000000, dur=0:00:00.100000000
buffer: checksum=8eed8ee03cf63e698bfa301fa0b304addffed4bc, pts=0:00:01.100000000, dur=0:00:00.100000000
buffer: checksum=f0f7021ee092b8f273ca5cec2d1acefebfb53356, pts=0:00:01.000000000, dur=0:00:00.100000000
event eos: (no structure)

View File

@ -0,0 +1,26 @@
# Common metadatas to check the videorate element caps change behavior with different
# new-pref specified by previously setting variables with:
# ```
# set-global, new_pref=<videorate new preference>
# ```
# and then `include, location="videorate-caps-change.meta" to setup the test with this
# file
meta,
args = {
"appsrc name=src format=time handle-segment-change=true ! \
videorate new-pref=$(new_pref) name=videorate ! video/x-raw,framerate=10/1 ! fakesink sync=true",
},
configs = {
"$(validateflow), pad=videorate:sink, buffers-checksum=as-id, ignored-event-types={ tag }",
"$(validateflow), pad=videorate:src, buffers-checksum=as-id, ignored-event-types={ tag }",
},
handles-states=true,
ignore-eos=true
appsrc-push, target-element-name=src, fill-mode=counter, pts=0.0, duration=1.0, size=115200,
caps=(GstCaps)[video/x-raw,format=I420,framerate=1/1,width=320,height=240],
segment=[segment, stop=1.1, format=(GstFormat)time]
appsrc-push, target-element-name=src, fill-mode=counter, pts=1.0, duration=1.0, size=460800,
caps=(GstCaps)[video/x-raw,format=I420,framerate=1/1,width=640,height=480],
segment=[segment, stop=1.1, format=(GstFormat)time]