gstreamer/omx
Guillaume Desmottes 9a8e863862 omxvideodec/enc: add hack updating nBufferCountActual before allocating
The OMX specs states that the nBufferCountActual of a port has to default
to its nBufferCountMin. If we don't change nBufferCountActual we purely rely
on this default. But in some cases, OMX may change nBufferCountMin before we
allocate buffers. Like for example when configuring the input ports with the
actual format, it may decrease the number of minimal buffers required.
This method checks this and update nBufferCountActual if needed so we'll use
less buffers than the worst case in such scenarios.

SetParameter() needs to be called when the port is either disabled or
the component in the Loaded state.

Don't do this for the decoder output as
gst_omx_video_dec_allocate_output_buffers() already check
nBufferCountMin when computing the number of output buffers.

On some platform, like rpi, the default nBufferCountActual is much
higher than nBufferCountMin so only enable this using a specific gst-omx
hack.

https://bugzilla.gnome.org/show_bug.cgi?id=791211
2018-06-08 09:44:49 +02:00
..
openmax openmax: Add OpenMAX IL 1.1.2 headers 2011-07-06 08:42:09 +02:00
gstomx.c omxvideodec/enc: add hack updating nBufferCountActual before allocating 2018-06-08 09:44:49 +02:00
gstomx.h omxvideodec/enc: add hack updating nBufferCountActual before allocating 2018-06-08 09:44:49 +02:00
gstomxaacdec.c omxaacdec: Do not accept unknown layouts 2015-09-01 16:13:00 -03:00
gstomxaacdec.h omx: Add AAC audio decoder 2014-07-13 18:22:39 +02:00
gstomxaacenc.c omxaacenc: also set 'profile' if mpegversion is 4 2017-11-29 16:13:24 +00:00
gstomxaacenc.h omxaacenc: Add initial version of OpenMAX AAC encoder element 2011-08-16 10:49:21 +02:00
gstomxamrdec.c omx: Add omxamrdec 2014-11-13 13:32:16 +01:00
gstomxamrdec.h omx: Add omxamrdec 2014-11-13 13:32:16 +01:00
gstomxanalogaudiosink.c omxaudiosink: Implements OpenMAX based audio sinks 2014-05-09 13:15:18 +02:00
gstomxanalogaudiosink.h omxaudiosink: Implements OpenMAX based audio sinks 2014-05-09 13:15:18 +02:00
gstomxaudiodec.c omx{audio,video}{dec,enc}: sequentially disable ports because buffers are not shared 2017-08-17 14:01:27 +01:00
gstomxaudiodec.h omxaudiodec: Add an output adapter for chunking the output into codec frames 2015-05-19 19:14:42 +03:00
gstomxaudioenc.c omx{audio,video}{dec,enc}: sequentially disable ports because buffers are not shared 2017-08-17 14:01:27 +01:00
gstomxaudioenc.h omx: Let base classes handle EOS 2014-08-14 17:36:11 +03:00
gstomxaudiosink.c omxaudiosink: Set port to not flushing in prepare() and keep it at flushing in unprepare() 2014-07-20 17:47:50 +02:00
gstomxaudiosink.h omxaudiosink: Implements OpenMAX based audio sinks 2014-05-09 13:15:18 +02:00
gstomxbufferpool.c add support for NV12_10LE32 and NV16_10LE32 on zynqultrascaleplus 2018-02-28 08:32:26 -05:00
gstomxbufferpool.h omxvideodec: add dmabuf support for output 2017-07-18 23:46:46 +01:00
gstomxh263dec.c omx: Add more constraints to the default sink template caps 2013-03-19 13:28:30 +01:00
gstomxh263dec.h omxh263dec: Add H.263 decoder element 2011-07-25 11:44:56 +02:00
gstomxh263enc.c h263enc: fix caps leak in error code path 2017-09-28 13:24:07 +03:00
gstomxh263enc.h omxh263enc: Add H.263 encoder element 2011-07-29 12:06:21 +02:00
gstomxh264dec.c h264dec: add hack to pass profile and level to OMX 2017-07-11 11:57:50 -04:00
gstomxh264dec.h omxh264dec: Rename from omxh264videodec to omxh264dec 2011-07-12 08:54:22 +02:00
gstomxh264enc.c omxh26{4,5}enc: don't pick default 10-bit profile 2018-04-26 10:07:54 +02:00
gstomxh264enc.h omxh264enc: add some encoding properties 2018-01-30 11:51:10 +00:00
gstomxh264utils.c omxh264: sync with supported profiles on zynqultrascaleplus 2018-04-25 09:20:02 +02:00
gstomxh264utils.h omxh264: factor out gst_omx_h264_utils_get_profile_from_enum() 2018-04-25 09:20:02 +02:00
gstomxh265dec.c omxh265dec: add H265 decoder 2017-09-06 14:50:18 -04:00
gstomxh265dec.h omxh265dec: add H265 decoder 2017-09-06 14:50:18 -04:00
gstomxh265enc.c omxh26{4,5}enc: don't pick default 10-bit profile 2018-04-26 10:07:54 +02:00
gstomxh265enc.h omxh265enc: add some encoding properties 2018-01-30 11:51:10 +00:00
gstomxh265utils.c omxh265: add format range extension profiles on zynqultrascaleplus 2018-04-25 09:20:02 +02:00
gstomxh265utils.h omxh265: factor out gst_omx_h265_utils_get_profile_from_enum() 2018-04-25 09:20:02 +02:00
gstomxhdmiaudiosink.c omxaudiosink: Implements OpenMAX based audio sinks 2014-05-09 13:15:18 +02:00
gstomxhdmiaudiosink.h omxaudiosink: Implements OpenMAX based audio sinks 2014-05-09 13:15:18 +02:00
gstomxmjpegdec.c omx: Add more constraints to the default sink template caps 2013-03-19 13:28:30 +01:00
gstomxmjpegdec.h omx: Add MJPEG decoder support 2013-03-18 16:34:51 +01:00
gstomxmp3dec.c omxaudiodec: Implement setting of fallback channel positions 2014-07-13 22:15:44 +02:00
gstomxmp3dec.h omx: Add audio decoder base class and a subclass for MP3 2014-07-02 09:21:00 +02:00
gstomxmp3enc.c omx: add gstomxmp3enc 2017-07-12 14:29:44 +01:00
gstomxmp3enc.h omx: add gstomxmp3enc 2017-07-12 14:29:44 +01:00
gstomxmpeg2videodec.c omx: Add more constraints to the default sink template caps 2013-03-19 13:28:30 +01:00
gstomxmpeg2videodec.h omx: Rename MPEG2 decoder for consistency everywhere 2013-03-18 16:34:51 +01:00
gstomxmpeg4videodec.c omx: Add more constraints to the default sink template caps 2013-03-19 13:28:30 +01:00
gstomxmpeg4videodec.h omx: Add initial version of OpenMAX framework, video decoder base class and MPEG4 video decoder 2011-07-09 11:06:05 +02:00
gstomxmpeg4videoenc.c omx: more printf format fixes 2013-04-18 23:10:13 +01:00
gstomxmpeg4videoenc.h omxvideoenc: Add video encoder base class and MPEG4 video encoder 2011-07-20 11:08:18 +02:00
gstomxtheoradec.c omx: Add more constraints to the default sink template caps 2013-03-19 13:28:30 +01:00
gstomxtheoradec.h omx: fix typo in copyright headers 2013-03-19 16:40:09 +00:00
gstomxvideo.c omxvideo: display port number when listing supported formats 2018-04-25 09:15:38 +02:00
gstomxvideo.h omxvideodec: ignore very little variations of the framerate 2017-12-14 09:20:49 +00:00
gstomxvideodec.c omxvideodec/enc: add hack updating nBufferCountActual before allocating 2018-06-08 09:44:49 +02:00
gstomxvideodec.h omxvideodec: add internal-entropy-buffers property on zynqultrascaleplus 2018-01-30 11:51:10 +00:00
gstomxvideoenc.c omxvideodec/enc: add hack updating nBufferCountActual before allocating 2018-06-08 09:44:49 +02:00
gstomxvideoenc.h omxvideoenc: restore OMX default target-bitrate if requested by user 2018-04-23 10:41:10 +02:00
gstomxvp8dec.c properly cast extension enums 2017-10-19 16:19:16 +02:00
gstomxvp8dec.h omx: Only include OMX_VideoExt.h conditionally 2014-06-24 14:52:43 +02:00
gstomxwmvdec.c omx: Add more constraints to the default sink template caps 2013-03-19 13:28:30 +01:00
gstomxwmvdec.h omxwmvdec: Add WMV video decoder element 2011-07-25 12:01:05 +02:00
Makefile.am omxh265dec: add H265 decoder 2017-09-06 14:50:18 -04:00
meson.build meson: simplify OMX extensions detection 2018-01-30 11:54:37 +00:00