diff options
author | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2013-03-13 13:23:35 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2013-03-14 12:52:46 +0100 |
commit | 9128ba5018242dfae84136a56ff15b7bc6fdca82 (patch) | |
tree | fbfba086ed5d4fea48e87d4dffc40c7eb105ddff | |
parent | 22dce51dd46f6901ca8615cbbb9538d612a97545 (diff) | |
download | gst-omx-9128ba5018242dfae84136a56ff15b7bc6fdca82.tar.gz |
omxvideodec: Improve min/max buffer counts handling
-rw-r--r-- | omx/gstomxvideodec.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c index cd8e9bb..0b0fb69 100644 --- a/omx/gstomxvideodec.c +++ b/omx/gstomxvideodec.c @@ -1189,8 +1189,15 @@ gst_omx_video_dec_allocate_output_buffers (GstOMXVideoDec * self) gst_buffer_pool_config_get_allocator (config, &allocator, NULL); /* Need at least 2 buffers for anything meaningful */ - min = MAX (MAX (min, port->port_def.nBufferCountMin), 2); - max = min; + min = MAX (MAX (min, port->port_def.nBufferCountMin), 4); + if (max == 0) { + max = min; + } else if (max < port->port_def.nBufferCountMin || max < 2) { + /* Can't use pool because can't have enough buffers */ + gst_caps_replace (&caps, NULL); + } else { + min = max; + } add_videometa = gst_buffer_pool_config_has_option (config, GST_BUFFER_POOL_OPTION_VIDEO_META); |