[vlc-commits] decoder: refactor pf_decode_* callbacks
Thomas Guillem
git at videolan.org
Thu Feb 9 15:57:27 CET 2017
vlc | branch: master | Thomas Guillem <thomas at gllm.fr> | Tue Feb 7 10:21:22 2017 +0100| [a8b249bc6bf9cfd693389bf2c5c3c403955e241c] | committer: Thomas Guillem
decoder: refactor pf_decode_* callbacks
Use only one callback for every decoder types:
int (*pf_decode)(decoder_t *, block_t *p_block);
There is now only one way to send output frames/blocks from a decoder module:
using decoder_QueueVideo(), decoder_QueueAudio() and decoder_QueueSub()
functions.
This fixes transcoding not receiving any output when a decoder used
decoder_Queue*() function.
The pf_packetize callback is kept unchanged. A packetizer shouldn't be
asynchronous at all (and this simplify the locking for decoder core).
The pf_decode callback returns, for now, only one value: SUCCESS. This will
allow a module to send more status.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a8b249bc6bf9cfd693389bf2c5c3c403955e241c
---
include/vlc_codec.h | 50 ++++---
include/vlc_image.h | 3 +
modules/codec/a52.c | 21 +--
modules/codec/adpcm.c | 19 ++-
modules/codec/aes3.c | 37 ++---
modules/codec/aom.c | 28 ++--
modules/codec/araw.c | 22 ++-
modules/codec/arib/aribsub.c | 25 ++--
modules/codec/avcodec/audio.c | 18 ++-
modules/codec/avcodec/subtitle.c | 17 ++-
modules/codec/avcodec/video.c | 19 ++-
modules/codec/bpg.c | 20 +--
modules/codec/cc.c | 19 ++-
modules/codec/cdg.c | 19 ++-
modules/codec/crystalhd.c | 27 ++--
modules/codec/cvdsub.c | 24 ++--
modules/codec/daala.c | 46 ++++---
modules/codec/dca.c | 16 +--
modules/codec/ddummy.c | 18 +--
modules/codec/dmo/dmo.c | 94 +++++--------
modules/codec/dvbsub.c | 33 ++---
modules/codec/faad.c | 34 +++--
modules/codec/flac.c | 28 ++--
modules/codec/fluidsynth.c | 23 ++--
modules/codec/g711.c | 29 ++--
modules/codec/gstreamer/gstdecode.c | 24 ++--
modules/codec/jpeg.c | 23 ++--
modules/codec/kate.c | 65 +++++----
modules/codec/libass.c | 29 ++--
modules/codec/libmpeg2.c | 18 ++-
modules/codec/lpcm.c | 19 ++-
modules/codec/mad.c | 14 +-
modules/codec/mft.c | 71 +++-------
modules/codec/mpg123.c | 17 ++-
modules/codec/oggspots.c | 50 ++++---
modules/codec/omxil/mediacodec.c | 75 ++++------
modules/codec/omxil/omxil.c | 94 ++++++-------
modules/codec/opus.c | 54 +++++---
modules/codec/png.c | 36 ++---
modules/codec/rawvideo.c | 36 +++--
modules/codec/schroedinger.c | 33 ++---
modules/codec/scte18.c | 14 +-
modules/codec/scte27.c | 19 +--
modules/codec/sdl_image.c | 23 ++--
modules/codec/spdif.c | 20 +--
modules/codec/speex.c | 63 +++++----
modules/codec/spudec/spudec.c | 35 +++--
modules/codec/stl.c | 22 +--
modules/codec/subsdec.c | 20 ++-
modules/codec/substx3g.c | 29 ++--
modules/codec/subsusf.c | 19 ++-
modules/codec/svcdsub.c | 24 ++--
modules/codec/svg.c | 19 ++-
modules/codec/telx.c | 19 ++-
modules/codec/textst.c | 48 +++----
modules/codec/theora.c | 51 ++++---
modules/codec/ttml/substtml.c | 34 ++---
modules/codec/uleaddvaudio.c | 19 ++-
modules/codec/videotoolbox.m | 38 +++---
modules/codec/vorbis.c | 35 +++--
modules/codec/vpx.c | 28 ++--
modules/codec/wmafixed/wma.c | 58 +++-----
modules/codec/xwd.c | 18 +--
modules/codec/zvbi.c | 20 ++-
modules/hw/mmal/codec.c | 28 ++--
modules/misc/stats.c | 15 +-
modules/packetizer/flac.c | 6 +-
modules/stream_out/mosaic_bridge.c | 180 ++++++++++++------------
modules/stream_out/transcode/audio.c | 82 ++++++++---
modules/stream_out/transcode/spu.c | 90 ++++++++----
modules/stream_out/transcode/transcode.c | 3 +
modules/stream_out/transcode/transcode.h | 22 +++
modules/stream_out/transcode/video.c | 55 +++++++-
src/input/decoder.c | 228 ++++++++-----------------------
src/input/demux.c | 4 +-
src/misc/image.c | 44 +++++-
76 files changed, 1410 insertions(+), 1369 deletions(-)
Diff: http://git.videolan.org/gitweb.cgi/vlc.git/?a=commitdiff;h=a8b249bc6bf9cfd693389bf2c5c3c403955e241c
More information about the vlc-commits
mailing list