[vlc-devel] [PATCH v4 00/23] Get rid of the control command API

Steve Lhomme robux4 at ycbcr.xyz
Fri Aug 21 11:59:18 CEST 2020


Changes since v3:
- the mouse coordinates are translated to video coordinates as soon as we get
  them, since that's what the user sees when s·he moves/clicks the mouse.
- the "mouse-moved", "mouse-button-down", "mouse-clicked" and "fullscreen"
  variables are set in non-filtered coordinates (video area coordinates).
- these variables are set in the UI thread rather than the rendering thread
- the filter.new_filters string is merged into filter.configuration. No need
  for an intermediate state.
- simplify the ThreadChangeFilters() signature as the filter string and
  deinterlace flags always come from the same variables, whether the values
  changed or we recreate the filter chain.
- add some comments in the vout thread about what we do in the loops.
- do not use 0,0 video area coordinates for mouse events occuring while the 
  display module doesn't have proper dimensions to provide. We keep using the
  previous correct video area coordinates.

Steve Lhomme (23):
  filters: initialize the output mouse state to the new state
  filters: remove the duplicate new mouse state
  video_output: only reset the mouse_event if it was set on display
    release
  video_output: translate the mouse coordinates to display coordinates
    early
  video_output: move the mouse events generation in the UI thread
  video_output: don't include control.h in include shared across the
    core
  video_output: use filter lock to change filters in the vout thread
  video_output: use filter lock to change deinterlacing in the vout
    thread
  video_output: remove always true boolean from ThreadChangeFilters
  video_output: merge the new filters string and the kept filter
    configuration
  video_output: always use interlacing.has_deint when creating filters
  video_output: rework the deadline parameter return
  video_output: use the rendering delay when we were given a deadline to
    wait for
  video_output: use INT64_MAX for the invalid control pop deadline
  vout/control: keep the lock instead of setting a held flag
  vout/control: move the lock outside of the control API
  vout/control: move the condition on pictures/control outside of the
    control API
  video_output: use an internal bool to detect when we must exit the
    vout thread
  video_output: move the mouse events handling outside of the control
    pop
  video_output: do not wait for new mouse commands if we have a picture
    ready
  video_output: remove unused control API
  video_output: code cleaning
  display: don't use empty mouse coordinates if TranslateMouseState
    fails

 include/vlc_filter.h                          |   3 +-
 include/vlc_vout_display.h                    |   2 +-
 modules/spu/logo.c                            |   7 +-
 modules/video_chroma/chain.c                  |   5 +-
 modules/video_filter/ci_filters.m             |   6 +-
 .../video_filter/deinterlace/deinterlace.c    |   6 +-
 modules/video_filter/freeze.c                 |   7 +-
 modules/video_filter/magnify.c                |   9 +-
 modules/video_filter/puzzle.c                 |   8 +-
 modules/video_filter/puzzle.h                 |   3 +-
 modules/video_filter/transform.c              |   3 +-
 src/Makefile.am                               |   2 -
 src/misc/filter_chain.c                       |   4 +-
 src/video_output/control.c                    | 174 ----------
 src/video_output/control.h                    |  82 -----
 src/video_output/display.c                    |   5 +-
 src/video_output/video_output.c               | 312 +++++++++++-------
 src/video_output/vout_internal.h              |   1 -
 18 files changed, 215 insertions(+), 424 deletions(-)
 delete mode 100644 src/video_output/control.c
 delete mode 100644 src/video_output/control.h

-- 
2.26.2



More information about the vlc-devel mailing list