[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