diff options
2 files changed, 58 insertions, 0 deletions
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/taglist-not-send-to-down-stream-if-all-the-frame-cor.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/taglist-not-send-to-down-stream-if-all-the-frame-cor.patch new file mode 100755 index 0000000000..51fdc7e177 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/taglist-not-send-to-down-stream-if-all-the-frame-cor.patch | |||
@@ -0,0 +1,57 @@ | |||
1 | From 68fa1b1425ad2c5f7c5013d0943153a8a6d0934e Mon Sep 17 00:00:00 2001 | ||
2 | From: Jian Li <lj.qfy.sh@gmail.com> | ||
3 | Date: Wed, 24 Sep 2014 17:21:02 +0800 | ||
4 | Subject: [PATCH] taglist not send to down stream if all the frame corrupted | ||
5 | |||
6 | https://bugzilla.gnome.org/show_bug.cgi?id=737246 | ||
7 | |||
8 | Upstream status: Pending | ||
9 | |||
10 | Signed-off-by: Jian Li <lj.qfy.sh@gmail.com> | ||
11 | --- | ||
12 | gst-libs/gst/audio/gstaudiodecoder.c | 9 +++++++++ | ||
13 | gst-libs/gst/video/gstvideodecoder.c | 8 ++++++++ | ||
14 | 2 files changed, 17 insertions(+) | ||
15 | |||
16 | diff --git a/gst-libs/gst/audio/gstaudiodecoder.c b/gst-libs/gst/audio/gstaudiodecoder.c | ||
17 | index 3504678..3d69efe 100644 | ||
18 | --- a/gst-libs/gst/audio/gstaudiodecoder.c | ||
19 | +++ b/gst-libs/gst/audio/gstaudiodecoder.c | ||
20 | @@ -2083,6 +2083,15 @@ gst_audio_decoder_sink_eventfunc (GstAudioDecoder * dec, GstEvent * event) | ||
21 | gst_audio_decoder_drain (dec); | ||
22 | GST_AUDIO_DECODER_STREAM_UNLOCK (dec); | ||
23 | |||
24 | + /* send taglist if no valid frame is decoded util EOS */ | ||
25 | + if (dec->priv->taglist && dec->priv->taglist_changed) { | ||
26 | + GST_DEBUG_OBJECT (dec, "codec tag %" GST_PTR_FORMAT, dec->priv->taglist); | ||
27 | + if (!gst_tag_list_is_empty (dec->priv->taglist)) | ||
28 | + gst_audio_decoder_push_event (dec, | ||
29 | + gst_event_new_tag (gst_tag_list_ref (dec->priv->taglist))); | ||
30 | + dec->priv->taglist_changed = FALSE; | ||
31 | + } | ||
32 | + | ||
33 | /* Forward EOS because no buffer or serialized event will come after | ||
34 | * EOS and nothing could trigger another _finish_frame() call. */ | ||
35 | ret = gst_audio_decoder_push_event (dec, event); | ||
36 | diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c | ||
37 | index dd8abe3..d9bfe4d 100644 | ||
38 | --- a/gst-libs/gst/video/gstvideodecoder.c | ||
39 | +++ b/gst-libs/gst/video/gstvideodecoder.c | ||
40 | @@ -1024,6 +1024,14 @@ gst_video_decoder_sink_event_default (GstVideoDecoder * decoder, | ||
41 | * parent class' ::sink_event() until a later time. | ||
42 | */ | ||
43 | forward_immediate = TRUE; | ||
44 | + | ||
45 | + /* send taglist if no valid frame is decoded util EOS */ | ||
46 | + if (decoder->priv->tags && decoder->priv->tags_changed) { | ||
47 | + gst_video_decoder_push_event (decoder, | ||
48 | + gst_event_new_tag (gst_tag_list_ref (decoder->priv->tags))); | ||
49 | + decoder->priv->tags_changed = FALSE; | ||
50 | + } | ||
51 | + | ||
52 | break; | ||
53 | } | ||
54 | case GST_EVENT_GAP: | ||
55 | -- | ||
56 | 1.7.9.5 | ||
57 | |||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.1.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.1.bb index 0db42cec94..27b8774444 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.1.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.1.bb | |||
@@ -7,6 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c54ce9345727175ff66d17b67ff51f58 \ | |||
7 | 7 | ||
8 | SRC_URI += "file://do-not-change-eos-event-to-gap-event-if.patch \ | 8 | SRC_URI += "file://do-not-change-eos-event-to-gap-event-if.patch \ |
9 | file://get-caps-from-src-pad-when-query-caps.patch \ | 9 | file://get-caps-from-src-pad-when-query-caps.patch \ |
10 | file://taglist-not-send-to-down-stream-if-all-the-frame-cor.patch \ | ||
10 | " | 11 | " |
11 | 12 | ||
12 | SRC_URI[md5sum] = "a825628225bd0a58c0df87cdd2a5db91" | 13 | SRC_URI[md5sum] = "a825628225bd0a58c0df87cdd2a5db91" |