mirror of
https://git.yoctoproject.org/poky
synced 2026-04-26 18:32:13 +02:00
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>
This commit is contained in:
committed by
Richard Purdie
parent
0c925855f7
commit
86625d2a59
@@ -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);
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user