[vlc-devel] [PATCH 00/15] filter cleaning

Steve Lhomme robux4 at ycbcr.xyz
Fri Jul 19 15:32:04 CEST 2019


While working on the push handling I struggled with the filter code which is
IMO a bit messy. So here are some patches cleaning the code, renaming, moving
things, created some default behaviour (which will make it easier to adapt in
one place for all the filters).

The filter chain was particularly messy, with two "filter owner" at creation.
In the end it's possible to remove some things because it was used for a
particular case in video.

It's currently not possible to make a generic function to create a video filter
because the filter chain (which creates most) also uses the same code path to
create SPU filters.
Steve Lhomme (15):
  vlc_filter: rename filter_chain_New() to filter_chain_NewSPU()
  filters: pass the owner sys to the buffer_new callback
  filter: allow the owner not to provide a buffer callback
  ci filters: remove default buffer callback implementation
  image: remove default buffer callback implementation
  vout blend: remove default buffer callback implementation
  vout_subpictures: remove default buffer callback implementation
  filter_chain: don't use a filter_owner_t for local-only variables
  filter_chain: rename some variables and add some comments
  filter_chain.c: use the NULL picture log for all buffer allocations
  filter_chain: rename internal owner to downstream
  filters: add an function to create new output pictures with forced
    callbacks
  filter_chain: allocate pictures using filter_NewOwnerPicture()
  filter: allow the filter to provide a callback to get output pictures
  filter_chain: add a default implementation for the video_allocator

 include/vlc_filter.h                 |  37 ++++++++--
 modules/hw/d3d11/d3d11_surface.c     |   7 +-
 modules/hw/d3d9/dxa9.c               |   7 +-
 modules/stream_out/mosaic_bridge.c   |   6 +-
 modules/stream_out/sdi/SDIStream.cpp |   3 +-
 modules/stream_out/transcode/video.c |   3 +-
 modules/video_chroma/chain.c         |   5 +-
 modules/video_filter/canvas.c        |   7 +-
 modules/video_filter/ci_filters.m    |  12 ----
 modules/video_filter/edgedetection.c |   9 ++-
 src/misc/filter_chain.c              | 100 +++++++++++++--------------
 src/misc/image.c                     |  11 ---
 src/video_output/display.c           |   4 +-
 src/video_output/video_output.c      |  23 ++----
 src/video_output/vout_subpictures.c  |  17 +----
 15 files changed, 119 insertions(+), 132 deletions(-)

-- 
2.17.1



More information about the vlc-devel mailing list