diff options
author | Carlos Rafael Giani <dv@pseudoterminal.org> | 2014-07-30 10:57:34 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-08-02 09:26:15 +0100 |
commit | b8199244e913584d21c4217fb3ec71484d62ecf7 (patch) | |
tree | f97fb8e8dc34e1232ac82c5f8c19d2757d98dcfe /meta/recipes-multimedia/gstreamer/gstreamer1.0-libav | |
parent | d36561ce1d226195cf53f7149c4004fe972673d2 (diff) | |
download | poky-b8199244e913584d21c4217fb3ec71484d62ecf7.tar.gz |
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>
Diffstat (limited to 'meta/recipes-multimedia/gstreamer/gstreamer1.0-libav')
-rw-r--r-- | meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/videodec-Don-t-use-non-growable-pool.patch | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/videodec-Don-t-use-non-growable-pool.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/videodec-Don-t-use-non-growable-pool.patch deleted file mode 100644 index d9b796b6bc..0000000000 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/videodec-Don-t-use-non-growable-pool.patch +++ /dev/null | |||
@@ -1,75 +0,0 @@ | |||
1 | From 62a4d065ed7bd117d869fd8bcb61274c2870ddf5 Mon Sep 17 00:00:00 2001 | ||
2 | From: Nicolas Dufresne <nicolas.dufresne@collabora.com> | ||
3 | Date: Thu, 27 Mar 2014 18:53:53 -0400 | ||
4 | Subject: [PATCH] videodec: Don't use non-growable pool | ||
5 | |||
6 | As we don't know how many output buffers we need to operate, we need to | ||
7 | avoid pool that can't grow. Otherwise the pipeline may stall, waiting | ||
8 | for buffers. For now, we require it to be able to grow to at least | ||
9 | 32 buffers, which I think is a fair amount of buffers for decoders. | ||
10 | |||
11 | https://bugzilla.gnome.org/show_bug.cgi?id=726299 | ||
12 | |||
13 | Commit 2a337d926cc30cd7eaae13a4b46eea68ba89e368 in master branch | ||
14 | |||
15 | Upstream Status: Backported | ||
16 | |||
17 | Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> | ||
18 | --- | ||
19 | ext/libav/gstavviddec.c | 22 +++++++++++++++++++++- | ||
20 | 1 file changed, 21 insertions(+), 1 deletion(-) | ||
21 | |||
22 | diff --git a/ext/libav/gstavviddec.c b/ext/libav/gstavviddec.c | ||
23 | index 6c9c0c9..d80fd52 100644 | ||
24 | --- a/ext/libav/gstavviddec.c | ||
25 | +++ b/ext/libav/gstavviddec.c | ||
26 | @@ -46,6 +46,7 @@ GST_DEBUG_CATEGORY_EXTERN (GST_CAT_PERFORMANCE); | ||
27 | #define DEFAULT_DIRECT_RENDERING TRUE | ||
28 | #define DEFAULT_DEBUG_MV FALSE | ||
29 | #define DEFAULT_MAX_THREADS 0 | ||
30 | +#define REQUIRED_POOL_MAX_BUFFERS 32 | ||
31 | |||
32 | enum | ||
33 | { | ||
34 | @@ -1620,7 +1621,7 @@ gst_ffmpegviddec_decide_allocation (GstVideoDecoder * decoder, GstQuery * query) | ||
35 | GstBufferPool *pool; | ||
36 | guint size, min, max; | ||
37 | GstStructure *config; | ||
38 | - gboolean have_videometa, have_alignment; | ||
39 | + gboolean have_videometa, have_alignment, update_pool; | ||
40 | GstAllocator *allocator = NULL; | ||
41 | GstAllocationParams params = { 0, 15, 0, 0, }; | ||
42 | |||
43 | @@ -1639,6 +1640,22 @@ gst_ffmpegviddec_decide_allocation (GstVideoDecoder * decoder, GstQuery * query) | ||
44 | |||
45 | gst_query_parse_nth_allocation_pool (query, 0, &pool, &size, &min, &max); | ||
46 | |||
47 | + /* Don't use pool that can't grow, as we don't know how many buffer we'll | ||
48 | + * need, otherwise we may stall */ | ||
49 | + if (max != 0 && max < REQUIRED_POOL_MAX_BUFFERS) { | ||
50 | + gst_object_unref (pool); | ||
51 | + pool = gst_video_buffer_pool_new (); | ||
52 | + max = 0; | ||
53 | + update_pool = TRUE; | ||
54 | + | ||
55 | + /* if there is an allocator, also drop it, as it might be the reason we | ||
56 | + * have this limit. Default will be used */ | ||
57 | + if (allocator) { | ||
58 | + gst_object_unref (allocator); | ||
59 | + allocator = NULL; | ||
60 | + } | ||
61 | + } | ||
62 | + | ||
63 | config = gst_buffer_pool_get_config (pool); | ||
64 | gst_buffer_pool_config_set_params (config, state->caps, size, min, max); | ||
65 | /* we are happy with the default allocator but we would like to have 16 bytes | ||
66 | @@ -1726,6 +1743,9 @@ gst_ffmpegviddec_decide_allocation (GstVideoDecoder * decoder, GstQuery * query) | ||
67 | /* and store */ | ||
68 | gst_buffer_pool_set_config (pool, config); | ||
69 | |||
70 | + if (update_pool) | ||
71 | + gst_query_set_nth_allocation_pool (query, 0, pool, size, min, max); | ||
72 | + | ||
73 | gst_object_unref (pool); | ||
74 | if (allocator) | ||
75 | gst_object_unref (allocator); | ||