summaryrefslogtreecommitdiffstats
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-09-01 21:19:36 +0100
commit86625d2a5920e68fac2706988d09efa0f6c02d2d (patch)
tree8607a0ab83ddf79f88d746a8c12cd378cfa303b9 /meta
parent0c925855f7e7221b18e5f2d35af542be6f1cd2bc (diff)
downloadpoky-86625d2a5920e68fac2706988d09efa0f6c02d2d.tar.gz
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. (From OE-Core master rev: 36dfa24b2a4318b7abe6ab54b64e6c011b8e1e0f) (From OE-Core rev: 6a8d2055421cb6c82203654eabd67e87ae99fee6) Signed-off-by: Yuqing Zhu <b54851@freescale.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
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 @@
1commit f9536544f5ad182b4f78d0143d1daa45dd64e624
2Author: Song Bing <b06498@freescale.com>
3Date: Thu Oct 9 17:37:43 2014 +0800
4
5[gststreamsynchronizer] send EOS event insterd of GAP event as GAP
6event has issue when A/V have different duration.
7
8send EOS event insterd of GAP event as GAP event has issue when A/V have different duration.
9
10Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=736655]
11
12Signed-off-by: Song Bing <b06498@freescale.com>
13
14diff --git a/gst/playback/gststreamsynchronizer.c b/gst/playback/gststreamsynchronizer.c
15index 3e17c55..ff42d72 100644
16--- a/gst/playback/gststreamsynchronizer.c
17+++ b/gst/playback/gststreamsynchronizer.c
18@@ -488,19 +488,24 @@ gst_stream_synchronizer_sink_event (GstPad * pad, GstObject * parent,
19 }
20 g_slist_free (pads);
21 } else {
22- /* if EOS, but no data has passed, then send EOS event */
23+ /* if EOS, but no data has passed, then send something to replace EOS
24+ * for preroll purposes */
25 if (!seen_data) {
26- GstEvent *gap_event;
27+ GstEvent *eos_event;
28
29- gap_event = gst_event_new_eos ();
30- ret = gst_pad_push_event (srcpad, gap_event);
31+ /* FIXME: change to EOS event as GAP event has issue when A/V have
32+ * different duration */
33+ eos_event = gst_event_new_eos ();
34+ ret = gst_pad_push_event (srcpad, eos_event);
35 } else {
36- GstEvent *gap_event;
37+ GstEvent *eos_event;
38
39 /* FIXME: Also send a GAP event to let audio sinks start their
40 * clock in case they did not have enough data yet */
41- gap_event = gst_event_new_gap (timestamp, GST_CLOCK_TIME_NONE);
42- ret = gst_pad_push_event (srcpad, gap_event);
43+ /* FIXME: change to EOS event as GAP event has issue when A/V have
44+ * different duration */
45+ eos_event = gst_event_new_eos ();
46+ ret = gst_pad_push_event (srcpad, eos_event);
47 }
48 }
49 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 @@
1commit 3f7052aac5e0118a9a9e09fff2f65091be448972
2Author: Song Bing <b06498@freescale.com>
3Date: Thu Oct 23 13:35:13 2014 +0800
4
5[streamsynchronizer] One stream can finish playback.
6
7As changed GAP event EOS event, so EOS will send more times, which will
8cause send function return error.
9Streamsynchronizer will don’t send second track EOS event if send the
10first track EOS return fail. Fixed by ignore the return error.
11
12Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=736655]
13
14Signed-off-by: Song Bing b06498@freescale.com
15
16diff --git a/gst/playback/gststreamsynchronizer.c b/gst/playback/gststreamsynchronizer.c
17index ff42d72..d1732c3 100644
18--- a/gst/playback/gststreamsynchronizer.c
19+++ b/gst/playback/gststreamsynchronizer.c
20@@ -482,7 +482,10 @@ gst_stream_synchronizer_sink_event (GstPad * pad, GstObject * parent,
21 while (epad) {
22 pad = epad->data;
23 GST_DEBUG_OBJECT (pad, "Pushing EOS");
24- ret = ret && gst_pad_push_event (pad, gst_event_new_eos ());
25+ /* FIXME: remove error check as GAP changed to EOS will send EOS
26+ * more times, which will cause return error and then don't send
27+ * EOS event to following tracks. */
28+ gst_pad_push_event (pad, gst_event_new_eos ());
29 gst_object_unref (pad);
30 epad = g_slist_next (epad);
31 }
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 \
15 file://0001-video-frame-Don-t-ref-buffers-twice-when-mapping.patch \ 15 file://0001-video-frame-Don-t-ref-buffers-twice-when-mapping.patch \
16 file://0003-videofilter-Use-new-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch \ 16 file://0003-videofilter-Use-new-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch \
17 file://videoencoder-Keep-sticky-events-around-when-doing-a-soft-.patch \ 17 file://videoencoder-Keep-sticky-events-around-when-doing-a-soft-.patch \
18 file://do-not-change-eos-event-to-gap-event2.patch \
19 file://do-not-change-eos-event-to-gap-event3.patch \
18" 20"
19 21
20SRC_URI[md5sum] = "357165af625c0ca353ab47c5d843920e" 22SRC_URI[md5sum] = "357165af625c0ca353ab47c5d843920e"