diff options
author | Zidan Wang <b50113@freescale.com> | 2014-12-30 10:55:53 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-12-31 08:14:28 +0000 |
commit | 5c8ef2bfe2782d849fde7367adf446636696a520 (patch) | |
tree | 3e47565e5b4cb4663df1a2e145d5b487f7d0bcfb /meta/recipes-multimedia/gstreamer | |
parent | 0b971429d0ef67f931e251e8b7bb7b4e8ae279e6 (diff) | |
download | poky-5c8ef2bfe2782d849fde7367adf446636696a520.tar.gz |
gstreamer1.0-plugins-base: Taglist will not be sent to downstream if all the frame corrupted
Add patch to fix the issue that taglist will not be sent to downstream if the
tag is EOS.
https://bugzilla.gnome.org/show_bug.cgi?id=737246
(From OE-Core rev: 223f8dc63385f2a2f5ba009494abce2a26c78090)
Signed-off-by: Zidan Wang <b50113@freescale.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-multimedia/gstreamer')
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" |