mirror of
https://git.yoctoproject.org/poky
synced 2026-03-19 21:59:42 +01:00
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:
committed by
Richard Purdie
parent
d36561ce1d
commit
b8199244e9
@@ -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);
|
||||
@@ -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}' \
|
||||
Reference in New Issue
Block a user