[vlc-devel] [RFC PATCH 00/12] decoder fallback v4
Thomas Guillem
thomas at gllm.fr
Tue Jul 19 19:36:22 CEST 2016
After trying every possible way to have decoder fallback working. I went back
to my first ideas.
Reminder:
Decoder module fallback will be used to try the next decoder module when we
detect an error from the pf_decode_* callback (for now, we can only do that
when we fail from the Open() callback).
The main use case will be for S/PDIF decoders. These decoders may fail from
pf_decode after processing the first input block when it try to configure the
audio output. Instead of failing, we want to try the next module (avcodec in
most case) that will output PCM.
An other use case is to fallback to a software decoder when a hardware decoder
fails (mediacodec or videotoolbox for example). Indeed, in some scenario, we
can know the full output format (and know if the module will fail) only after
processing the first input buffers.
Most important patches are: 01/12, 05/12 and 09/12.
Regards,
Thomas Guillem.
Thomas Guillem (12):
modules: add module_need_next and vlc_module_load_next
decoder: don't set dec->b_error if aout_update_format fails
decoder: abort packetizer loop in case of error
decoder: factor decoder reload when fmt_in changes
decoder: handle module fallback
decoder: reload module from start if aout device changes
decoder: set drained status in draining scope
decoder: extend lock scope
decoder: save first input blocks if the module can fallback
a52: fallback if audio output fails
a52tofloat32: disable
mediacodec: fallback if there is no output
include/vlc_codec.h | 8 +
include/vlc_modules.h | 5 +
modules/audio_filter/converter/a52tofloat32.c | 1 +
modules/codec/a52.c | 7 +
modules/codec/omxil/mediacodec.c | 19 +-
src/input/decoder.c | 287 +++++++++++++++++++++++---
src/libvlccore.sym | 2 +
src/modules/modules.c | 162 +++++++++++----
8 files changed, 402 insertions(+), 89 deletions(-)
--
2.8.1
More information about the vlc-devel
mailing list