aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event2.patch
blob: f24bc7cd6fb08cbe983cd0edefddd7b1447f6d0f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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);