[vlc-devel] [PATCH v3 00/24] picture::p_next usage cleaning

Steve Lhomme robux4 at ycbcr.xyz
Mon Sep 21 08:29:36 CEST 2020


Changes sinces v2:
- fix incorrect filter_chain API translation (and it becomes a bit clearer what
  it's doing)
- rename picture_chain API's to vlc_picture_chain_XXX with uppercasing
- uppercase the picture_ API's
- reorder the new API's in vlc_picture.h

In the end vlc_picture_chain_Prepend should go away as snapshot could just use
a FIFO. We can then remove vlc_picture_chain_PopChain() as well which is not
safe. Even though snapshot uses clones of pictures so don't cary over the
original picture chaining.

vlc_picture_chain_AppendChain should also go away as it doesn't take care of
what happens to the tail. It's not using the picture chaining as a FIFO but to
attach pictures together so they can be pushed at once. In push design we
should do differently and push each picture separately. That requires some
changes to the filter API (more to come).

Changes sinces v1:
- added picture_chain_pop_chain() which removes a whole chain from the picture
  chain. Now both the original and popped picture chain have pictures linked.
  /!\ DANGER /!\
- rename picture_pop_chain() to picture_get_and_reset_chain() to better signify
  what it does.
- picture_chain_append_chain() no longer returns a value as it's never used and
  the tail returned wasn't actually the proper tail.
- picture_chain_append_empty() is renamed picture_chain_append() as it's the
  main usage of the picture appending.
- replace picture_chain_empty() with picture_has_chained_pics() as it's only
  used to test if pictures have a chain or not.
- added some more comments in the code.
- cleaned more MMAL deinterlace and fps code.

Steve Lhomme (24):
  picture: add helpers for picture chaining
  codec: use picture_HasChainedPics instead of access p_next
  mosaic: simplify the picture chain tail handling
  mosaic: use the picture_chain API
  filter_chain: reorder code to make it more obvious we're popping a
    picture
  filter_chain: use the picture_chain API
  picture_fifo: rework the flush loop on picture
  picture_fifo: simplify the picture fifo tail handling
  picture_fifo: use the picture_chain API
  deinterlace: only set the next on the previous picture if there's a
    next
  deinterlace: use the picture_chain API
  transcode: simplify the picture queue tail handling
  transcode: use the picture_chain API
  picture_pool: use the picture_chain API
  video_output: use the picture_chain API
  snapshot: use the picture_chain API
  fps: use a fonction to empty the chain of pictures
  fps: use the picture_chain API
  vdpau: use the picture_chain API
  vaapi: use the picture_chain API
  mmal: use the picture_chain API for the FIFO
  mmal: deinterlace: remove unneeded indentation
  mmal: deinterlace: use the picture_chain API
  picture_chain: modify the append to take care of the chain init

 include/vlc_codec.h                       |  2 +-
 include/vlc_picture.h                     | 99 +++++++++++++++++++++++
 modules/hw/mmal/converter.c               | 16 +---
 modules/hw/mmal/deinterlace.c             | 57 +++++++------
 modules/hw/vaapi/filters.c                |  2 +-
 modules/hw/vdpau/deinterlace.c            |  4 +-
 modules/spu/mosaic.c                      |  9 +--
 modules/spu/mosaic.h                      |  2 +-
 modules/stream_out/mosaic_bridge.c        | 11 +--
 modules/stream_out/transcode/transcode.h  |  2 +-
 modules/stream_out/transcode/video.c      | 15 ++--
 modules/video_filter/deinterlace/common.c |  2 +-
 modules/video_filter/fps.c                | 22 ++---
 src/misc/filter_chain.c                   | 15 ++--
 src/misc/picture_fifo.c                   | 27 ++-----
 src/misc/picture_pool.c                   |  2 +-
 src/video_output/snapshot.c               | 15 ++--
 src/video_output/video_output.c           |  2 +-
 18 files changed, 180 insertions(+), 124 deletions(-)

-- 
2.26.2



More information about the vlc-devel mailing list