diff options
Diffstat (limited to 'meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0/0002-basesink-Fix-QoS-lateness-checking-if-subclass-imple.patch')
-rw-r--r-- | meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0/0002-basesink-Fix-QoS-lateness-checking-if-subclass-imple.patch | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0/0002-basesink-Fix-QoS-lateness-checking-if-subclass-imple.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0/0002-basesink-Fix-QoS-lateness-checking-if-subclass-imple.patch deleted file mode 100644 index 1505cbefc..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0/0002-basesink-Fix-QoS-lateness-checking-if-subclass-imple.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 6914566ed6a89c96973a578aa5ecd01ee68cdcfd Mon Sep 17 00:00:00 2001 -From: Jian <Jian.Li@freescale.com> -Date: Thu, 14 May 2015 15:49:43 +0800 -Subject: [PATCH] basesink: Fix QoS/lateness checking if subclass implements - prepare/prepare_list vfuncs -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -In basesink functions gst_base_sink_chain_unlocked(), below code is used to -checking if buffer is late before doing prepare call to save some effort: - if (syncable && do_sync) - late = - gst_base_sink_is_too_late (basesink, obj, rstart, rstop, - GST_CLOCK_EARLY, 0, FALSE); - - if (G_UNLIKELY (late)) - goto dropped; - -But this code has problem, it should calculate jitter based on current media -clock, rather than just passing 0. I found it will drop all the frames when -rewind in slow speed, such as -2X. - -https://bugzilla.gnome.org/show_bug.cgi?id=749258 - -Upstream-Status: Backport [1.5.1] ---- - libs/gst/base/gstbasesink.c | 26 ++++++++++++++++++++++---- - 1 file changed, 22 insertions(+), 4 deletions(-) - -diff --git a/libs/gst/base/gstbasesink.c b/libs/gst/base/gstbasesink.c -index a505695..5fb2d6a 100644 ---- a/libs/gst/base/gstbasesink.c -+++ b/libs/gst/base/gstbasesink.c -@@ -3369,10 +3369,28 @@ gst_base_sink_chain_unlocked (GstBaseSink * basesink, GstPad * pad, - if (G_UNLIKELY (stepped)) - goto dropped; - -- if (syncable && do_sync) -- late = -- gst_base_sink_is_too_late (basesink, obj, rstart, rstop, -- GST_CLOCK_EARLY, 0, FALSE); -+ if (syncable && do_sync) { -+ GstClock *clock; -+ -+ GST_OBJECT_LOCK (basesink); -+ clock = GST_ELEMENT_CLOCK (basesink); -+ if (clock && GST_STATE (basesink) == GST_STATE_PLAYING) { -+ GstClockTime base_time; -+ GstClockTime stime; -+ GstClockTime now; -+ -+ base_time = GST_ELEMENT_CAST (basesink)->base_time; -+ stime = base_time + gst_base_sink_adjust_time (basesink, rstart); -+ now = gst_clock_get_time (clock); -+ GST_OBJECT_UNLOCK (basesink); -+ -+ late = -+ gst_base_sink_is_too_late (basesink, obj, rstart, rstop, -+ GST_CLOCK_EARLY, GST_CLOCK_DIFF (stime, now), FALSE); -+ } else { -+ GST_OBJECT_UNLOCK (basesink); -+ } -+ } - - if (G_UNLIKELY (late)) - goto dropped; --- -1.7.9.5 - |