[vlc-devel] [RFC PATCH 0/4] decoder: close, pause, seek and deadlocks
Thomas Guillem
thomas at gllm.fr
Tue Nov 17 16:16:31 CET 2015
Currently, DecoderThread will deadlock in DecoderWaitUnblock if
input_DecoderFlush is called while es_out is buffering.
After some try to fix this issue, I found the following TODO in decoder.c:
/* Owner is supposed to wait for flush to complete.
* TODO: It might be possible to remove this restriction. */
So, I tried to remove this restriction: make input_DecoderFlush non blocking.
I expected a lot of regressions, I tested my patches on Dekstop, android, and
tizen ports with or without avcodec. I only found a flush issue when using
avcodec with mt (cf. last patch, the third patch is not a regression from the 2
first patches).
Best,
Thomas
Thomas Guillem (4):
decoder: don't wait for flush to complete
decoder: don't wait if paused
avocodec: fix deadlock when closing with mt
avocodec: flush buffers in case of mt
modules/codec/avcodec/video.c | 26 ++++++++++++++++++++------
src/input/decoder.c | 36 ++++++++----------------------------
2 files changed, 28 insertions(+), 34 deletions(-)
--
2.1.4
More information about the vlc-devel
mailing list