[OE-core] [poky][PATCH 3/3] gstreamer1.0-plugins-base: Add patch for Gstreamer 1.4.5 base
Yuqing Zhu
b54851 at freescale.com
Thu Jul 23 13:29:52 UTC 2015
Bug fix
-[video-frame] Don't ref buffers twice when mapping
-[video-frame] Add GST_VIDEO_FRAME_MAP_FLAG_NO_REF
-[videofilter] Use new GST_VIDEO_FRAME_MAP_FLAG_NO_REF
-[id3demux] Use g_utf16_to_utf8() instead of g_convert
-[gstvideodecoder] Handle audio video decoder error
-[gstvideopool] Update video alignment after video alignment
-[gstvideoencoder] Keep sticky events around when doing a soft reset
Signed-off-by: Yuqing Zhu <b54851 at freescale.com>
---
...rame-Don-t-ref-buffers-twice-when-mapping.patch | 25 +++++++
...frame-Add-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch | 87 ++++++++++++++++++++++
...r-Use-new-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch | 69 +++++++++++++++++
.../fix-id3demux-utf16-to-utf8-issue.patch | 54 ++++++++++++++
.../handle-audio-video-decoder-error.patch | 66 ++++++++++++++++
.../videobuffer_updata_alignment_update.patch | 53 +++++++++++++
...p-sticky-events-around-when-doing-a-soft-.patch | 46 ++++++++++++
.../gstreamer/gstreamer1.0-plugins-base_1.4.5.bb | 7 ++
8 files changed, 407 insertions(+)
create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-video-frame-Don-t-ref-buffers-twice-when-mapping.patch
create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-video-frame-Add-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch
create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-videofilter-Use-new-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch
create mode 100755 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/fix-id3demux-utf16-to-utf8-issue.patch
create mode 100755 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/handle-audio-video-decoder-error.patch
create mode 100755 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/videobuffer_updata_alignment_update.patch
create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/videoencoder-Keep-sticky-events-around-when-doing-a-soft-.patch
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-video-frame-Don-t-ref-buffers-twice-when-mapping.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-video-frame-Don-t-ref-buffers-twice-when-mapping.patch
new file mode 100644
index 0000000..c4eef00
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-video-frame-Don-t-ref-buffers-twice-when-mapping.patch
@@ -0,0 +1,25 @@
+From 269f642c45d85cfd630ed490478e6bd6b71a767f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian at centricular.com>
+Date: Tue, 16 Sep 2014 01:07:18 +0300
+Subject: [PATCH] video-frame: Don't ref buffers twice when mapping
+
+---
+ gst-libs/gst/video/video-frame.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gst-libs/gst/video/video-frame.c b/gst-libs/gst/video/video-frame.c
+index 01f23c0..8a9ae96 100644
+--- a/gst-libs/gst/video/video-frame.c
++++ b/gst-libs/gst/video/video-frame.c
+@@ -105,7 +105,7 @@ gst_video_frame_map_id (GstVideoFrame * frame, GstVideoInfo * info,
+ frame->data[i] = frame->map[0].data + info->offset[i];
+ }
+ }
+- frame->buffer = gst_buffer_ref (buffer);
++ frame->buffer = buffer;
+ if ((flags & GST_VIDEO_FRAME_MAP_FLAG_NO_REF) == 0)
+ gst_buffer_ref (frame->buffer);
+
+--
+1.7.9.5
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-video-frame-Add-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-video-frame-Add-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch
new file mode 100644
index 0000000..554b8ac
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-video-frame-Add-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch
@@ -0,0 +1,87 @@
+From 40a293d44d1aeccf5eb8e86f23a0b13666111c5c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian at centricular.com>
+Date: Fri, 12 Sep 2014 14:39:16 +0300
+Subject: [PATCH 2/3] video-frame: Add GST_VIDEO_FRAME_MAP_FLAG_NO_REF
+
+This makes sure that the buffer is not reffed another time when
+storing it in the GstVideoFrame, keeping it writable if it was
+writable.
+
+Upstream Status: Accepted
+https://bugzilla.gnome.org/show_bug.cgi?id=736118
+---
+ gst-libs/gst/video/video-frame.c | 9 ++++++++-
+ gst-libs/gst/video/video-frame.h | 18 ++++++++++++++++++
+ 2 files changed, 26 insertions(+), 1 deletion(-)
+
+diff --git a/gst-libs/gst/video/video-frame.c b/gst-libs/gst/video/video-frame.c
+index 537cf70..01f23c0 100644
+--- a/gst-libs/gst/video/video-frame.c
++++ b/gst-libs/gst/video/video-frame.c
+@@ -106,6 +106,9 @@ gst_video_frame_map_id (GstVideoFrame * frame, GstVideoInfo * info,
+ }
+ }
+ frame->buffer = gst_buffer_ref (buffer);
++ if ((flags & GST_VIDEO_FRAME_MAP_FLAG_NO_REF) == 0)
++ gst_buffer_ref (frame->buffer);
++
+ frame->meta = meta;
+
+ /* buffer flags enhance the frame flags */
+@@ -189,11 +192,13 @@ gst_video_frame_unmap (GstVideoFrame * frame)
+ GstBuffer *buffer;
+ GstVideoMeta *meta;
+ gint i;
++ GstMapFlags flags;
+
+ g_return_if_fail (frame != NULL);
+
+ buffer = frame->buffer;
+ meta = frame->meta;
++ flags = frame->map[0].flags;
+
+ if (meta) {
+ for (i = 0; i < frame->info.finfo->n_planes; i++) {
+@@ -202,7 +207,9 @@ gst_video_frame_unmap (GstVideoFrame * frame)
+ } else {
+ gst_buffer_unmap (buffer, &frame->map[0]);
+ }
+- gst_buffer_unref (buffer);
++
++ if ((flags & GST_VIDEO_FRAME_MAP_FLAG_NO_REF) == 0)
++ gst_buffer_unref (frame->buffer);
+ }
+
+ /**
+diff --git a/gst-libs/gst/video/video-frame.h b/gst-libs/gst/video/video-frame.h
+index 627fab0..f8e6304 100644
+--- a/gst-libs/gst/video/video-frame.h
++++ b/gst-libs/gst/video/video-frame.h
+@@ -149,6 +149,24 @@ typedef enum {
+ GST_VIDEO_BUFFER_FLAG_LAST = (GST_BUFFER_FLAG_LAST << 8)
+ } GstVideoBufferFlags;
+
++/**
++ * GstVideoBufferFlags:
++ * @GST_VIDEO_FRAME_MAP_FLAG_NO_REF: Don't take another reference of the buffer and store it in
++ * the GstVideoFrame. This makes sure that the buffer stays
++ * writable while the frame is mapped, but requires that the
++ * buffer reference stays valid until the frame is unmapped again.
++ * @GST_VIDEO_FRAME_MAP_FLAG_LAST: Offset to define more flags
++ *
++ * Additional mapping flags for gst_video_frame_map().
++ *
++ * Since: 1.6
++ */
++typedef enum {
++ GST_VIDEO_FRAME_MAP_FLAG_NO_REF = (GST_MAP_FLAG_LAST << 0),
++ GST_VIDEO_FRAME_MAP_FLAG_LAST = (GST_MAP_FLAG_LAST << 8)
++ /* 8 more flags possible afterwards */
++} GstVideoFrameMapFlags;
++
+ G_END_DECLS
+
+ #endif /* __GST_VIDEO_FRAME_H__ */
+--
+1.7.9.5
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-videofilter-Use-new-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-videofilter-Use-new-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch
new file mode 100644
index 0000000..91beb90
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-videofilter-Use-new-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch
@@ -0,0 +1,69 @@
+From 3a7cdcdfc9c5b0d20394fe51b3b8cda23931ca6d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian at centricular.com>
+Date: Fri, 12 Sep 2014 14:41:01 +0300
+Subject: [PATCH 3/3] videofilter: Use new GST_VIDEO_FRAME_MAP_FLAG_NO_REF
+
+Upstream Status: Accepted
+https://bugzilla.gnome.org/show_bug.cgi?id=736118
+---
+ gst-libs/gst/video/gstvideofilter.c | 23 ++++-------------------
+ 1 file changed, 4 insertions(+), 19 deletions(-)
+
+diff --git a/gst-libs/gst/video/gstvideofilter.c b/gst-libs/gst/video/gstvideofilter.c
+index e1fa2c1..874b2e8 100644
+--- a/gst-libs/gst/video/gstvideofilter.c
++++ b/gst-libs/gst/video/gstvideofilter.c
+@@ -260,23 +260,15 @@ gst_video_filter_transform (GstBaseTransform * trans, GstBuffer * inbuf,
+ if (fclass->transform_frame) {
+ GstVideoFrame in_frame, out_frame;
+
+- if (!gst_video_frame_map (&in_frame, &filter->in_info, inbuf, GST_MAP_READ))
++ if (!gst_video_frame_map (&in_frame, &filter->in_info, inbuf,
++ GST_MAP_READ | GST_VIDEO_FRAME_MAP_FLAG_NO_REF))
+ goto invalid_buffer;
+
+ if (!gst_video_frame_map (&out_frame, &filter->out_info, outbuf,
+- GST_MAP_WRITE))
++ GST_MAP_WRITE | GST_VIDEO_FRAME_MAP_FLAG_NO_REF))
+ goto invalid_buffer;
+
+- /* GstVideoFrame has another reference, so the buffer looks unwriteable,
+- * meaning that we can't attach any metas or anything to it. Other
+- * map() functions like gst_buffer_map() don't get another reference
+- * of the buffer and expect the buffer reference to be kept until
+- * the buffer is unmapped again. */
+- gst_buffer_unref (inbuf);
+- gst_buffer_unref (outbuf);
+ res = fclass->transform_frame (filter, &in_frame, &out_frame);
+- gst_buffer_ref (inbuf);
+- gst_buffer_ref (outbuf);
+
+ gst_video_frame_unmap (&out_frame);
+ gst_video_frame_unmap (&in_frame);
+@@ -317,7 +309,7 @@ gst_video_filter_transform_ip (GstBaseTransform * trans, GstBuffer * buf)
+ GstVideoFrame frame;
+ GstMapFlags flags;
+
+- flags = GST_MAP_READ;
++ flags = GST_MAP_READ | GST_VIDEO_FRAME_MAP_FLAG_NO_REF;
+
+ if (!gst_base_transform_is_passthrough (trans))
+ flags |= GST_MAP_WRITE;
+@@ -325,14 +317,7 @@ gst_video_filter_transform_ip (GstBaseTransform * trans, GstBuffer * buf)
+ if (!gst_video_frame_map (&frame, &filter->in_info, buf, flags))
+ goto invalid_buffer;
+
+- /* GstVideoFrame has another reference, so the buffer looks unwriteable,
+- * meaning that we can't attach any metas or anything to it. Other
+- * map() functions like gst_buffer_map() don't get another reference
+- * of the buffer and expect the buffer reference to be kept until
+- * the buffer is unmapped again. */
+- gst_buffer_unref (buf);
+ res = fclass->transform_frame_ip (filter, &frame);
+- gst_buffer_ref (buf);
+
+ gst_video_frame_unmap (&frame);
+ } else {
+--
+1.7.9.5
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/fix-id3demux-utf16-to-utf8-issue.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/fix-id3demux-utf16-to-utf8-issue.patch
new file mode 100755
index 0000000..458d153
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/fix-id3demux-utf16-to-utf8-issue.patch
@@ -0,0 +1,54 @@
+Author: Lyon Wang <b12696 at freescale.com>
+Date: Thu Oct 9 17:37:43 2014 +0800
+
+[id3v2frames] Bug fix for id3demux issue
+
+Fix the issue that id3 tags utf16 charaters cannot be extreacted in id3demux
+when I tried to get the id3v2 tag such as TIT2, TALB etc. it will return extrac
+failed.
+
+Checked in id3v2frame.c, When parse the UTF-16 streams, it used g_convert() to
+convert the buffer from UTF-16 to UTF-8, however it will return err that this
+conversion is not supported which cause the extraction failed with these UTF-16
+characters.
+
+In the patch, use g_utf16_to_utf8() instead of g_convert, which can convert the
+character format successfully.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=741144
+
+Upstream Status: Pending
+
+Signed-off-by: Lyon Wang <b12696 at freescale.com>
+
+diff --git a/gst-libs/gst/tag/id3v2frames.c b/gst-libs/gst/tag/id3v2frames.c
+old mode 100644
+new mode 100755
+index 3785c2a..7b9d8ac
+--- a/gst-libs/gst/tag/id3v2frames.c
++++ b/gst-libs/gst/tag/id3v2frames.c
+@@ -1057,14 +1057,17 @@ parse_insert_string_field (guint8 encoding, gchar * data, gint data_size,
+ data_size -= 2;
+ }
+
+- field = g_convert (data, data_size, "UTF-8", in_encode, NULL, NULL, NULL);
+-
+- if (field == NULL || g_utf8_validate (field, -1, NULL) == FALSE) {
+- /* As a fallback, try interpreting UTF-16 in the other endianness */
+- if (in_encode == utf16beenc)
+- field = g_convert (data, data_size, "UTF-8", utf16leenc,
+- NULL, NULL, NULL);
++ if (in_encode == utf16beenc) {
++ gunichar2 *data_utf16;
++ guint i;
++ data_utf16 = (gunichar2 *) data;
++ for (i=0; i<(data_size>>1); i++) {
++ data_utf16[i] = GUINT16_TO_LE (data_utf16[i]);
++ }
+ }
++ //field = g_convert (data, data_size, "UTF-8", in_encode, NULL, NULL, NULL);
++ field = g_utf16_to_utf8((gunichar2 *)data, (glong)(data_size>>1), NULL, NULL, NULL);
++
+ }
+
+ break;
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/handle-audio-video-decoder-error.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/handle-audio-video-decoder-error.patch
new file mode 100755
index 0000000..4451eaa
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/handle-audio-video-decoder-error.patch
@@ -0,0 +1,66 @@
+From bcb2b8b6f49e7c66124a4f5e07dea829d5ebfe59 Mon Sep 17 00:00:00 2001
+From: Lyon Wang <lyon.wang at freescale.com>
+Date: Mon, 15 Dec 2014 16:52:07 +0800
+Subject: [PATCH] handle audio/video decoder error
+
+When there is input data and no output data to the end of the stream, it will
+send GST_ELEMENT_ERROR, So the clips playing will quit.
+However, if only one of the tracks is corrupt, there is no need to quit other
+tracks playing.
+
+The patch comments the GST_ELEMENT_ERROR() and just add GST_ERROR_OBJECT()
+information instead.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=741542
+
+Upstream Status: Pending
+
+Signed-off-by: Lyon Wang <lyon.wang at freescale.com>
+---
+ gst-libs/gst/audio/gstaudiodecoder.c | 5 +++--
+ gst-libs/gst/video/gstvideodecoder.c | 5 +++--
+ 2 files changed, 6 insertions(+), 4 deletions(-)
+ mode change 100644 => 100755 gst-libs/gst/audio/gstaudiodecoder.c
+ mode change 100644 => 100755 gst-libs/gst/video/gstvideodecoder.c
+
+diff --git a/gst-libs/gst/audio/gstaudiodecoder.c b/gst-libs/gst/audio/gstaudiodecoder.c
+old mode 100644
+new mode 100755
+index c2e7a28..891df0a
+--- a/gst-libs/gst/audio/gstaudiodecoder.c
++++ b/gst-libs/gst/audio/gstaudiodecoder.c
+@@ -2123,9 +2123,10 @@ gst_audio_decoder_sink_eventfunc (GstAudioDecoder * dec, GstEvent * event)
+ GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+
+ if (dec->priv->ctx.had_input_data && !dec->priv->ctx.had_output_data) {
+- GST_ELEMENT_ERROR (dec, STREAM, DECODE,
++ /* GST_ELEMENT_ERROR (dec, STREAM, DECODE,
+ ("No valid frames decoded before end of stream"),
+- ("no valid frames found"));
++ ("no valid frames found")); */
++ GST_ERROR_OBJECT(dec, "No valid frames decoded before end of stream");
+ }
+
+ /* send taglist if no valid frame is decoded util EOS */
+diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c
+old mode 100644
+new mode 100755
+index ac581e1..4278bcd
+--- a/gst-libs/gst/video/gstvideodecoder.c
++++ b/gst-libs/gst/video/gstvideodecoder.c
+@@ -1068,9 +1068,10 @@ gst_video_decoder_sink_event_default (GstVideoDecoder * decoder,
+
+ /* Error out even if EOS was ok when we had input, but no output */
+ if (ret && priv->had_input_data && !priv->had_output_data) {
+- GST_ELEMENT_ERROR (decoder, STREAM, DECODE,
++ /* GST_ELEMENT_ERROR (decoder, STREAM, DECODE,
+ ("No valid frames decoded before end of stream"),
+- ("no valid frames found"));
++ ("no valid frames found")); */
++ GST_ERROR_OBJECT(decoder, "No valid frames decoded before end of stream");
+ }
+
+ /* Forward EOS immediately. This is required because no
+--
+1.7.9.5
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/videobuffer_updata_alignment_update.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/videobuffer_updata_alignment_update.patch
new file mode 100755
index 0000000..57edd8b
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/videobuffer_updata_alignment_update.patch
@@ -0,0 +1,53 @@
+commit 88d253ea23b06289df40401160b606323f16c910
+Author: Song Bing <b06498 at freescale.com>
+Date: Mon Dec 15 09:34:35 2014 +0800
+
+videopool: update video alignment after video alignment
+
+Video buffer pool will update video alignment to respect stride alignment
+requirement. But haven't update it to video alignment in configure.
+Which will cause user get wrong video alignment.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=741501
+
+Upstream Status: Backport
+
+Signed-off-by: Song Bing <b06498 at freescale.com>
+diff --git a/gst-libs/gst/video/gstvideopool.c b/gst-libs/gst/video/gstvideopool.c
+index 4475f45..acef594 100644
+--- a/gst-libs/gst/video/gstvideopool.c
++++ b/gst-libs/gst/video/gstvideopool.c
+@@ -167,6 +167,7 @@ video_buffer_pool_set_config (GstBufferPool * pool, GstStructure * config)
+ /* get an apply the alignment to the info */
+ gst_buffer_pool_config_get_video_alignment (config, &priv->video_align);
+ gst_video_info_align (&info, &priv->video_align);
++ gst_buffer_pool_config_set_video_alignment (config, &priv->video_align);
+ }
+ priv->info = info;
+
+diff --git a/sys/ximage/ximagepool.c b/sys/ximage/ximagepool.c
+index 6cc2cfa..6a1cbc9 100644
+--- a/sys/ximage/ximagepool.c
++++ b/sys/ximage/ximagepool.c
+@@ -597,6 +597,8 @@ ximage_buffer_pool_set_config (GstBufferPool * pool, GstStructure * config)
+ /* do padding and alignment */
+ gst_video_info_align (&info, &priv->align);
+
++ gst_buffer_pool_config_set_video_alignment (config, &priv->align);
++
+ /* we need the video metadata too now */
+ priv->add_metavideo = TRUE;
+ } else {
+diff --git a/sys/xvimage/xvimagepool.c b/sys/xvimage/xvimagepool.c
+index 244a51a..34b1ab2 100644
+--- a/sys/xvimage/xvimagepool.c
++++ b/sys/xvimage/xvimagepool.c
+@@ -124,6 +124,8 @@ xvimage_buffer_pool_set_config (GstBufferPool * pool, GstStructure * config)
+ /* do padding and alignment */
+ gst_video_info_align (&info, &priv->align);
+
++ gst_buffer_pool_config_set_video_alignment (config, &priv->align);
++
+ /* we need the video metadata too now */
+ priv->add_metavideo = TRUE;
+ } else {
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/videoencoder-Keep-sticky-events-around-when-doing-a-soft-.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/videoencoder-Keep-sticky-events-around-when-doing-a-soft-.patch
new file mode 100644
index 0000000..fc1cbed
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/videoencoder-Keep-sticky-events-around-when-doing-a-soft-.patch
@@ -0,0 +1,46 @@
+From c3f7d36b992a3cbcee3386dea85720f3cb04e1ff Mon Sep 17 00:00:00 2001
+From: Song Bing <b06498 at freescale.com>
+Date: Fri, 27 Mar 2015 13:39:43 +0800
+Subject: [PATCH] videoencoder: Keep sticky events around when doing a soft
+ reset
+
+The current code will first discard all frames, and then tries to copy
+all sticky events from the (now discarded) frames. Let's change the order.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=746865
+
+Upstream Status: Accepted
+
+---
+ gst-libs/gst/video/gstvideoencoder.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/gst-libs/gst/video/gstvideoencoder.c b/gst-libs/gst/video/gstvideoencoder.c
+index 614ba2d..4c5b111 100644
+--- a/gst-libs/gst/video/gstvideoencoder.c
++++ b/gst-libs/gst/video/gstvideoencoder.c
+@@ -340,10 +340,6 @@ gst_video_encoder_reset (GstVideoEncoder * encoder, gboolean hard)
+
+ priv->drained = TRUE;
+
+- g_list_foreach (priv->frames, (GFunc) gst_video_codec_frame_unref, NULL);
+- g_list_free (priv->frames);
+- priv->frames = NULL;
+-
+ priv->bytes = 0;
+ priv->time = 0;
+
+@@ -392,6 +388,10 @@ gst_video_encoder_reset (GstVideoEncoder * encoder, gboolean hard)
+ encoder->priv->current_frame_events);
+ }
+
++ g_list_foreach (priv->frames, (GFunc) gst_video_codec_frame_unref, NULL);
++ g_list_free (priv->frames);
++ priv->frames = NULL;
++
+ GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+
+ return ret;
+--
+1.7.9.5
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb
index 11cf8b4..e39c059 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb
@@ -8,6 +8,13 @@ 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 \
+ file://fix-id3demux-utf16-to-utf8-issue.patch \
+ file://handle-audio-video-decoder-error.patch \
+ file://videobuffer_updata_alignment_update.patch \
+ file://0002-video-frame-Add-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch \
+ file://0003-videofilter-Use-new-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch \
+ file://0001-video-frame-Don-t-ref-buffers-twice-when-mapping.patch \
+ file://videoencoder-Keep-sticky-events-around-when-doing-a-soft-.patch \
"
SRC_URI[md5sum] = "357165af625c0ca353ab47c5d843920e"
--
1.9.1
More information about the Openembedded-core
mailing list