gstreamer/omx
Guillaume Desmottes 40ae47df5e omx: wait for flush complete and buffers being released when flushing
When flusing we should wait for OMX to send the flush command complete event
AND all ports being released.
We were stopping as soon as one of those condition was met.

Fix a race between FillThisBufferDone/EmptyBufferDone and the flush
EventCmdComplete messages. The OMX implementation is supposed to release
its buffers before posting the EventCmdComplete event but the ordering
isn't guaranteed as the FillThisBufferDone/EmptyBufferDone and
EventHandler callbacks can be called from different threads (cf 2.7
'Thread Safety' in the spec).

Only wait for buffers currently used by OMX as some buffers may not be
in the pending queue because they are held downstream.

https://bugzilla.gnome.org/show_bug.cgi?id=789475
2018-08-29 12:18:39 -04:00
..
openmax openmax: Add OpenMAX IL 1.1.2 headers 2011-07-06 08:42:09 +02:00
gstomx.c omx: wait for flush complete and buffers being released when flushing 2018-08-29 12:18:39 -04:00
gstomx.h omxvideoenc: implement decide_allocation 2018-06-08 09:53:01 +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 omxvideoenc: implement decide_allocation 2018-06-08 09:53:01 +02:00
gstomxvideodec.h omxvideodec: always signal drain cond when stopping streaming loop 2018-06-08 09:47:32 +02:00
gstomxvideoenc.c omxvideoenc: pause component when flushing 2018-08-28 15:52:14 +02:00
gstomxvideoenc.h omxvideoenc: implement decide_allocation 2018-06-08 09:53:01 +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