gstreamer1.0-libav: upgrade to 1.4.0

* Backported patch removed, since it is already included in this release

(From OE-Core rev: e9bc4272c7415db278046d2dd9ac2df33f9b7122)

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Carlos Rafael Giani
2014-07-30 10:57:34 +02:00
committed by Richard Purdie
parent d36561ce1d
commit b8199244e9
2 changed files with 3 additions and 79 deletions

View File

@@ -1,75 +0,0 @@
From 62a4d065ed7bd117d869fd8bcb61274c2870ddf5 Mon Sep 17 00:00:00 2001
From: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Date: Thu, 27 Mar 2014 18:53:53 -0400
Subject: [PATCH] videodec: Don't use non-growable pool
As we don't know how many output buffers we need to operate, we need to
avoid pool that can't grow. Otherwise the pipeline may stall, waiting
for buffers. For now, we require it to be able to grow to at least
32 buffers, which I think is a fair amount of buffers for decoders.
https://bugzilla.gnome.org/show_bug.cgi?id=726299
Commit 2a337d926cc30cd7eaae13a4b46eea68ba89e368 in master branch
Upstream Status: Backported
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
---
ext/libav/gstavviddec.c | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/ext/libav/gstavviddec.c b/ext/libav/gstavviddec.c
index 6c9c0c9..d80fd52 100644
--- a/ext/libav/gstavviddec.c
+++ b/ext/libav/gstavviddec.c
@@ -46,6 +46,7 @@ GST_DEBUG_CATEGORY_EXTERN (GST_CAT_PERFORMANCE);
#define DEFAULT_DIRECT_RENDERING TRUE
#define DEFAULT_DEBUG_MV FALSE
#define DEFAULT_MAX_THREADS 0
+#define REQUIRED_POOL_MAX_BUFFERS 32
enum
{
@@ -1620,7 +1621,7 @@ gst_ffmpegviddec_decide_allocation (GstVideoDecoder * decoder, GstQuery * query)
GstBufferPool *pool;
guint size, min, max;
GstStructure *config;
- gboolean have_videometa, have_alignment;
+ gboolean have_videometa, have_alignment, update_pool;
GstAllocator *allocator = NULL;
GstAllocationParams params = { 0, 15, 0, 0, };
@@ -1639,6 +1640,22 @@ gst_ffmpegviddec_decide_allocation (GstVideoDecoder * decoder, GstQuery * query)
gst_query_parse_nth_allocation_pool (query, 0, &pool, &size, &min, &max);
+ /* Don't use pool that can't grow, as we don't know how many buffer we'll
+ * need, otherwise we may stall */
+ if (max != 0 && max < REQUIRED_POOL_MAX_BUFFERS) {
+ gst_object_unref (pool);
+ pool = gst_video_buffer_pool_new ();
+ max = 0;
+ update_pool = TRUE;
+
+ /* if there is an allocator, also drop it, as it might be the reason we
+ * have this limit. Default will be used */
+ if (allocator) {
+ gst_object_unref (allocator);
+ allocator = NULL;
+ }
+ }
+
config = gst_buffer_pool_get_config (pool);
gst_buffer_pool_config_set_params (config, state->caps, size, min, max);
/* we are happy with the default allocator but we would like to have 16 bytes
@@ -1726,6 +1743,9 @@ gst_ffmpegviddec_decide_allocation (GstVideoDecoder * decoder, GstQuery * query)
/* and store */
gst_buffer_pool_set_config (pool, config);
+ if (update_pool)
+ gst_query_set_nth_allocation_pool (query, 0, pool, size, min, max);
+
gst_object_unref (pool);
if (allocator)
gst_object_unref (allocator);

View File

@@ -3,7 +3,7 @@ include gstreamer1.0-libav.inc
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \
file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \
file://gst-libs/ext/libav/LICENSE;md5=23a54f59b82572c203a559346e89ed57 \
file://gst-libs/ext/libav/LICENSE;md5=df1087a33b5cafe5e70b3452aac81515 \
file://gst-libs/ext/libav/COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://gst-libs/ext/libav/COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
@@ -12,10 +12,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
SRC_URI = " \
http://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz \
file://0001-Disable-yasm-for-libav-when-disable-yasm.patch \
file://videodec-Don-t-use-non-growable-pool.patch \
"
SRC_URI[md5sum] = "6454f9f22b3aa37694781633e0d20a9c"
SRC_URI[sha256sum] = "2a69480d63fc2db93249d9e2e229ab3541bbc2db881b0f64de13d0bfc7d1f037"
SRC_URI[md5sum] = "60811ae08c26fa093a96996582962c75"
SRC_URI[sha256sum] = "c82c7a657863f2e27ac5cba539b0bd0a8114ad6bd4ba33bae777e4dbfab9e380"
LIBAV_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux \
--cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \
--ranlib='${RANLIB}' \