summaryrefslogtreecommitdiff
path: root/meta
diff options
context:
space:
mode:
authorYuqing Zhu <b54851@freescale.com>2015-08-10 11:41:38 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-08-11 08:52:02 -0700
commit36dfa24b2a4318b7abe6ab54b64e6c011b8e1e0f (patch)
treed7e5bdccdfd767e2818d27dcee62b2ed10e2a412 /meta
parent32e88fd0632619c5d3eb95a58a0cceb6f5f6d0d0 (diff)
downloadopenembedded-core-36dfa24b2a4318b7abe6ab54b64e6c011b8e1e0f.tar.gz
openembedded-core-36dfa24b2a4318b7abe6ab54b64e6c011b8e1e0f.tar.bz2
openembedded-core-36dfa24b2a4318b7abe6ab54b64e6c011b8e1e0f.zip
gstreamer1.0-plugins-base: Do not change EOS event to GAP event
-Sending EOS event instead of GAP event as GAP event has error if A/V have the different duration. -Stop sending second track EOS event when returing failure after sending the first track EOS. Fixed by ignoring the return error. Signed-off-by: Yuqing Zhu <b54851@freescale.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'meta')
-rwxr-xr-xmeta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event2.patch49
-rwxr-xr-xmeta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event3.patch31
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb2
3 files changed, 82 insertions, 0 deletions
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event2.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event2.patch
new file mode 100755
index 0000000000..f24bc7cd6f
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event2.patch
@@ -0,0 +1,49 @@
+commit f9536544f5ad182b4f78d0143d1daa45dd64e624
+Author: Song Bing <b06498@freescale.com>
+Date: Thu Oct 9 17:37:43 2014 +0800
+
+[gststreamsynchronizer] send EOS event insterd of GAP event as GAP
+event has issue when A/V have different duration.
+
+send EOS event insterd of GAP event as GAP event has issue when A/V have different duration.
+
+Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=736655]
+
+Signed-off-by: Song Bing <b06498@freescale.com>
+
+diff --git a/gst/playback/gststreamsynchronizer.c b/gst/playback/gststreamsynchronizer.c
+index 3e17c55..ff42d72 100644
+--- a/gst/playback/gststreamsynchronizer.c
++++ b/gst/playback/gststreamsynchronizer.c
+@@ -488,19 +488,24 @@ gst_stream_synchronizer_sink_event (GstPad * pad, GstObject * parent,
+ }
+ g_slist_free (pads);
+ } else {
+- /* if EOS, but no data has passed, then send EOS event */
++ /* if EOS, but no data has passed, then send something to replace EOS
++ * for preroll purposes */
+ if (!seen_data) {
+- GstEvent *gap_event;
++ GstEvent *eos_event;
+
+- gap_event = gst_event_new_eos ();
+- ret = gst_pad_push_event (srcpad, gap_event);
++ /* FIXME: change to EOS event as GAP event has issue when A/V have
++ * different duration */
++ eos_event = gst_event_new_eos ();
++ ret = gst_pad_push_event (srcpad, eos_event);
+ } else {
+- GstEvent *gap_event;
++ GstEvent *eos_event;
+
+ /* FIXME: Also send a GAP event to let audio sinks start their
+ * clock in case they did not have enough data yet */
+- gap_event = gst_event_new_gap (timestamp, GST_CLOCK_TIME_NONE);
+- ret = gst_pad_push_event (srcpad, gap_event);
++ /* FIXME: change to EOS event as GAP event has issue when A/V have
++ * different duration */
++ eos_event = gst_event_new_eos ();
++ ret = gst_pad_push_event (srcpad, eos_event);
+ }
+ }
+ gst_object_unref (srcpad);
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event3.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event3.patch
new file mode 100755
index 0000000000..731be686de
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event3.patch
@@ -0,0 +1,31 @@
+commit 3f7052aac5e0118a9a9e09fff2f65091be448972
+Author: Song Bing <b06498@freescale.com>
+Date: Thu Oct 23 13:35:13 2014 +0800
+
+[streamsynchronizer] One stream can finish playback.
+
+As changed GAP event EOS event, so EOS will send more times, which will
+cause send function return error.
+Streamsynchronizer will don’t send second track EOS event if send the
+first track EOS return fail. Fixed by ignore the return error.
+
+Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=736655]
+
+Signed-off-by: Song Bing b06498@freescale.com
+
+diff --git a/gst/playback/gststreamsynchronizer.c b/gst/playback/gststreamsynchronizer.c
+index ff42d72..d1732c3 100644
+--- a/gst/playback/gststreamsynchronizer.c
++++ b/gst/playback/gststreamsynchronizer.c
+@@ -482,7 +482,10 @@ gst_stream_synchronizer_sink_event (GstPad * pad, GstObject * parent,
+ while (epad) {
+ pad = epad->data;
+ GST_DEBUG_OBJECT (pad, "Pushing EOS");
+- ret = ret && gst_pad_push_event (pad, gst_event_new_eos ());
++ /* FIXME: remove error check as GAP changed to EOS will send EOS
++ * more times, which will cause return error and then don't send
++ * EOS event to following tracks. */
++ gst_pad_push_event (pad, gst_event_new_eos ());
+ gst_object_unref (pad);
+ epad = g_slist_next (epad);
+ }
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb
index 8daf5af709..37bef6d051 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb
@@ -15,6 +15,8 @@ SRC_URI += "file://do-not-change-eos-event-to-gap-event-if.patch \
file://0001-video-frame-Don-t-ref-buffers-twice-when-mapping.patch \
file://0003-videofilter-Use-new-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch \
file://videoencoder-Keep-sticky-events-around-when-doing-a-soft-.patch \
+ file://do-not-change-eos-event-to-gap-event2.patch \
+ file://do-not-change-eos-event-to-gap-event3.patch \
"
SRC_URI[md5sum] = "357165af625c0ca353ab47c5d843920e"