diff options
author | Víctor Manuel Jáquez Leal <vjaquez@igalia.com> | 2018-01-29 12:53:51 +0100 |
---|---|---|
committer | Víctor Manuel Jáquez Leal <vjaquez@igalia.com> | 2018-01-31 14:03:36 +0100 |
commit | f6cb16ab8cecfe683473b173732ad040e858abd5 (patch) | |
tree | e89f4878dfa4246460271c679f96b2fae952031c /gst | |
parent | f04b20e59e64cf1ebbc67484500892a5387dba9e (diff) |
gdpdepay: don't use allocator if it has custom alloc
gdpdepay element uses the decide_allocation to fetch the downstream
allocator. Nonetheless it is possible that allocate uses a custom
alloc function, which is not usable by gdpdepay, crashing later the
application when the allocater buffer is NULL.
This patch checks for the allocator flags and reset it if the
allocator has a custom alloc function.
https://bugzilla.gnome.org/show_bug.cgi?id=789476
Diffstat (limited to 'gst')
-rw-r--r-- | gst/gdp/gstgdpdepay.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gst/gdp/gstgdpdepay.c b/gst/gdp/gstgdpdepay.c index 750571e6f..f00f3d6f1 100644 --- a/gst/gdp/gstgdpdepay.c +++ b/gst/gdp/gstgdpdepay.c @@ -580,6 +580,15 @@ gst_gdp_depay_decide_allocation (GstGDPDepay * gdpdepay) if (gdpdepay->allocator) gst_object_unref (gdpdepay->allocator); + if (allocator && + GST_OBJECT_FLAG_IS_SET (allocator, GST_ALLOCATOR_FLAG_CUSTOM_ALLOC)) { + GST_DEBUG_OBJECT (gdpdepay, + "Provided allocator has a custom alloc fuction. Ignoring."); + gst_object_unref (allocator); + allocator = NULL; + gst_allocation_params_init (¶ms); + } + gdpdepay->allocator = allocator; gdpdepay->allocation_params = params; |