[vlc-devel] [PATCH 0/8] Replace decoder_t pf_decoder_* callbacks

Thomas Guillem thomas at gllm.fr
Wed Feb 8 19:53:47 CET 2017


As discussed during the FOSDEM. Here is the big replacement of every
pf_decoder_* callbacks.

This new callback is simpler to handle, no more pointer of pointer to set or
reset (in the past, a lot of modules has been fixed because there were leaking
a *pp_block). Decoder modules will also be able to return a new status.

I tested transcode, a lot of decoder modules, and I was able to build every
modules (expect mmal). Everything are on the commits (04/05/06).

Regards,

Thomas Guillem (8):
  decoder: initialise callbacks regarding of the fmt
  decoder: fail earlier if the category is unknown
  decoder: use one update callback per category
  decoder: refactor pf_decode_* callbacks
  decoder: add VLCDEC_ECRITICAL status
  decoder: add VLCDEC_RELOAD status
  transcode/audio: also drain the decoder
  transcode/video: also drain the decoder

 include/vlc_codec.h                      |  89 ++++-----
 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             |  22 +--
 modules/codec/avcodec/audio.c            |  21 ++-
 modules/codec/avcodec/subtitle.c         |  17 +-
 modules/codec/avcodec/video.c            |  42 +++--
 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      |  44 ++---
 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                   |  28 ++-
 modules/codec/oggspots.c                 |  50 +++--
 modules/codec/omxil/mediacodec.c         |  85 ++++-----
 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                   |  15 +-
 modules/codec/scte27.c                   |  13 +-
 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                      |  17 +-
 modules/codec/subsdec.c                  |  20 +-
 modules/codec/substx3g.c                 |  30 +--
 modules/codec/subsusf.c                  |  19 +-
 modules/codec/svcdsub.c                  |  24 +--
 modules/codec/svg.c                      |  19 +-
 modules/codec/telx.c                     |  19 +-
 modules/codec/textst.c                   |  49 +++--
 modules/codec/theora.c                   |  51 +++---
 modules/codec/ttml/substtml.c            |  14 +-
 modules/codec/uleaddvaudio.c             |  19 +-
 modules/codec/videotoolbox.m             |  45 ++---
 modules/codec/vorbis.c                   |  35 +++-
 modules/codec/vpx.c                      |  31 ++--
 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/a52.c                 |   1 -
 modules/packetizer/dts.c                 |   1 -
 modules/packetizer/flac.c                |   6 +-
 modules/packetizer/mpeg4audio.c          |   1 -
 modules/packetizer/mpegaudio.c           |   1 -
 modules/stream_out/mosaic_bridge.c       | 180 +++++++++---------
 modules/stream_out/transcode/audio.c     |  99 +++++++---
 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     | 112 ++++++++----
 src/input/decoder.c                      | 301 ++++++++++++-------------------
 src/input/demux.c                        |   4 +-
 src/libvlccore.sym                       |   1 -
 src/misc/image.c                         |  44 ++++-
 81 files changed, 1562 insertions(+), 1454 deletions(-)

-- 
2.11.0



More information about the vlc-devel mailing list