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:
parent
3a4990d965
commit
6f623af4d7
@ -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",
|
||||
|
@ -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;
|
||||
|
@ -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 */
|
||||
|
@ -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 ();
|
||||
|
@ -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('/')
|
||||
|
@ -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
|
@ -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)
|
@ -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)
|
@ -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
|
@ -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)
|
@ -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)
|
@ -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
|
@ -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)
|
@ -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)
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -1,3 +1,3 @@
|
||||
set-globals, rate=(string)"0.5", decoder="!"
|
||||
set-globals, rate=(string)"0.5"
|
||||
|
||||
include, location="check-rate-prop.meta"
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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"
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -1,3 +1,3 @@
|
||||
set-globals, rate=(string)"2.0", decoder="!"
|
||||
set-globals, rate=(string)"2.0"
|
||||
|
||||
include, location="check-rate-prop.meta"
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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"
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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]
|
Loading…
x
Reference in New Issue
Block a user