[vlc-devel] [PATCH 00/18] es_format_t access cleaning

Steve Lhomme robux4 at videolabs.io
Mon Jul 17 16:33:06 CEST 2017


Compared to the previous patchset:
- es_format_Replace is gone, for now you just have to do Clean+Copy manually
- packetizers are not forced the fmt_out by default, only the packetized flag
- there's also a loader function for packetizers to reinit the fmt_out between
  failed modules
- the filter chain loader was also improved to be more robust against ES format
  changes that loaded modules could do
- more asserts are added to check that modules that are loaded don't do anything
  illegal on the format

Steve Lhomme (18):
  vlc_modules.h: protect multiple includes
  core: force the output to b_packetized when a packetizer is opened
    successfully
  modules: no need to set b_packetizer on the packetizer output anymore
  decoder: add a function to create a decoder module
  image: use the new decoder_LoadModule()
  decoder: add the possibility to have a custom fmt_out setup to load a
    decoder
  modules:stream_out: use the new decoder_LoadModule()
  video_filter:canvas: init the fmt_out directly from
    filter_chain_GetFmtOut()
  video_output: use the fmt_out directly from filter_chain_GetFmtOut()
  transcode:video: clarify the fmt_out init value
  mp4:libmp4mux: no need to init the es_format_t
  demux:ogg: no need to change the es_format_t before a copy
  demux:ts_sl: fix potential leak
  demux:ts: init the ts_es_t to its es_format_t when possible
  filter_chain: reset the fmt_in/out between failed load of filters
  filter_chain: check the fmt_out didn't change when it's not allowed
  modules:video_filters: a filter must clean the es_format_t before
    overwriting it
  modules:decoders: clean the es_format_t before overwriting it

 include/vlc_codec.h                                | 10 ++++
 include/vlc_modules.h                              |  5 ++
 modules/codec/cvdsub.c                             |  1 -
 modules/codec/daala.c                              |  3 -
 modules/codec/ddummy.c                             |  1 +
 modules/codec/kate.c                               |  3 -
 modules/codec/oggspots.c                           |  4 +-
 modules/codec/rawvideo.c                           |  3 +
 modules/codec/speex.c                              |  3 -
 modules/codec/theora.c                             |  3 -
 modules/codec/vorbis.c                             |  3 -
 modules/codec/xwd.c                                |  1 +
 modules/demux/mpeg/ts_psi.c                        |  8 +--
 modules/demux/mpeg/ts_sl.c                         |  2 +
 modules/demux/mpeg/ts_streams.c                    |  9 ++-
 modules/demux/mpeg/ts_streams.h                    |  2 +-
 modules/demux/ogg.c                                |  3 +-
 .../demux/smooth/playlist/ForgedInitSegment.cpp    |  2 +-
 modules/hw/mmal/deinterlace.c                      |  1 +
 modules/mux/mp4/libmp4mux.c                        |  2 -
 modules/packetizer/flac.c                          |  1 -
 modules/packetizer/h264.c                          |  1 -
 modules/packetizer/hevc.c                          |  1 -
 modules/stream_out/mosaic_bridge.c                 | 18 ++++--
 modules/stream_out/transcode/audio.c               | 18 ++++--
 modules/stream_out/transcode/spu.c                 |  3 +-
 modules/stream_out/transcode/video.c               | 42 ++++++++-----
 modules/video_filter/canvas.c                      |  5 +-
 src/input/decoder.c                                | 70 ++++++++++++++++++----
 src/input/decoder.h                                |  5 ++
 src/input/demux.c                                  |  7 ++-
 src/libvlccore.sym                                 |  1 +
 src/misc/filter_chain.c                            | 30 +++++++++-
 src/misc/image.c                                   |  3 +-
 src/video_output/video_output.c                    | 10 ++--
 35 files changed, 195 insertions(+), 89 deletions(-)

-- 
2.12.1



More information about the vlc-devel mailing list