aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZidan Wang <b50113@freescale.com>2014-12-30 10:55:53 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-12-31 08:11:50 +0000
commit223f8dc63385f2a2f5ba009494abce2a26c78090 (patch)
tree1c4641f9d5dcc61d64f2486faaf9e9cc809e8c04
parent5ba935eea545d26f1339e62410b3c83715a6967a (diff)
downloadopenembedded-core-contrib-223f8dc63385f2a2f5ba009494abce2a26c78090.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 Signed-off-by: Zidan Wang <b50113@freescale.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
-rwxr-xr-xmeta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/taglist-not-send-to-down-stream-if-all-the-frame-cor.patch57
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.1.bb1
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 @@
+From 68fa1b1425ad2c5f7c5013d0943153a8a6d0934e Mon Sep 17 00:00:00 2001
+From: Jian Li <lj.qfy.sh@gmail.com>
+Date: Wed, 24 Sep 2014 17:21:02 +0800
+Subject: [PATCH] taglist not send to down stream if all the frame corrupted
+
+https://bugzilla.gnome.org/show_bug.cgi?id=737246
+
+Upstream status: Pending
+
+Signed-off-by: Jian Li <lj.qfy.sh@gmail.com>
+---
+ gst-libs/gst/audio/gstaudiodecoder.c | 9 +++++++++
+ gst-libs/gst/video/gstvideodecoder.c | 8 ++++++++
+ 2 files changed, 17 insertions(+)
+
+diff --git a/gst-libs/gst/audio/gstaudiodecoder.c b/gst-libs/gst/audio/gstaudiodecoder.c
+index 3504678..3d69efe 100644
+--- a/gst-libs/gst/audio/gstaudiodecoder.c
++++ b/gst-libs/gst/audio/gstaudiodecoder.c
+@@ -2083,6 +2083,15 @@ gst_audio_decoder_sink_eventfunc (GstAudioDecoder * dec, GstEvent * event)
+ gst_audio_decoder_drain (dec);
+ GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+
++ /* send taglist if no valid frame is decoded util EOS */
++ if (dec->priv->taglist && dec->priv->taglist_changed) {
++ GST_DEBUG_OBJECT (dec, "codec tag %" GST_PTR_FORMAT, dec->priv->taglist);
++ if (!gst_tag_list_is_empty (dec->priv->taglist))
++ gst_audio_decoder_push_event (dec,
++ gst_event_new_tag (gst_tag_list_ref (dec->priv->taglist)));
++ dec->priv->taglist_changed = FALSE;
++ }
++
+ /* Forward EOS because no buffer or serialized event will come after
+ * EOS and nothing could trigger another _finish_frame() call. */
+ ret = gst_audio_decoder_push_event (dec, event);
+diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c
+index dd8abe3..d9bfe4d 100644
+--- a/gst-libs/gst/video/gstvideodecoder.c
++++ b/gst-libs/gst/video/gstvideodecoder.c
+@@ -1024,6 +1024,14 @@ gst_video_decoder_sink_event_default (GstVideoDecoder * decoder,
+ * parent class' ::sink_event() until a later time.
+ */
+ forward_immediate = TRUE;
++
++ /* send taglist if no valid frame is decoded util EOS */
++ if (decoder->priv->tags && decoder->priv->tags_changed) {
++ gst_video_decoder_push_event (decoder,
++ gst_event_new_tag (gst_tag_list_ref (decoder->priv->tags)));
++ decoder->priv->tags_changed = FALSE;
++ }
++
+ break;
+ }
+ case GST_EVENT_GAP:
+--
+1.7.9.5
+
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 \
SRC_URI += "file://do-not-change-eos-event-to-gap-event-if.patch \
file://get-caps-from-src-pad-when-query-caps.patch \
+ file://taglist-not-send-to-down-stream-if-all-the-frame-cor.patch \
"
SRC_URI[md5sum] = "a825628225bd0a58c0df87cdd2a5db91"