1. 17 May, 2022 10 commits
  2. 16 May, 2022 1 commit
  3. 06 May, 2022 1 commit
  4. 05 May, 2022 6 commits
  5. 27 Apr, 2022 2 commits
  6. 15 Jan, 2022 1 commit
    • Rémi Denis-Courmont's avatar
      splitter: have default --video-splitter to "none" · 303df23b
      Rémi Denis-Courmont authored
      The choice list always offers "any" and "none", and in this case, the
      default is to not have a video splitter. This change fixes a bug whereby
      the GUI would save the value "none", which the core would then treat as
      a module name. No module by that name exists, so this would ultimately
      cause the video output to fail entirely.
      Also this treats NULL as an actual memory allocation error, instead of
      the default value which was previously undistiguishable.
  7. 14 Jan, 2022 2 commits
  8. 11 Jan, 2022 2 commits
    • Rémi Denis-Courmont's avatar
      display: pass initial size in cfg.display · 20abc11d
      Rémi Denis-Courmont authored
      ...rather than cfg.window_props. cfg.display was unused (always zeroes)
      on vout_display_New() until this change.
      This is consistent with vout_display_SetSize() affecting cfg.display
      rather than cfg.window_props.
    • Rémi Denis-Courmont's avatar
      vout: fix palette double free · 3dc5ed78
      Rémi Denis-Courmont authored
      As of the last rework, ownership of the original format has already been
      passed to the video output by the point of enabling the window. It is
      kept until the next format change, or the destruction of the video
      output. So it shall not be freed if enabling the window fails.
  9. 23 Dec, 2021 12 commits
    • Rémi Denis-Courmont's avatar
      window: remove configuration parameter from Enable() · dcd046df
      Rémi Denis-Courmont authored
      This removes the window configuration parameter from
      vout_window_Enable(). The initial configuration is now set when the
      window is created, and updated with the regular functions:
      vout_window_SetSize(), vout_window_SetFullScreen() and
      This reconciles the window configuration with the full-screen output
      selection: if the window provider supports output selection, it can
      simply ignore the full-screen flag in the configuration.
      In practice, this makes no differences in the GL and splitter cases,
      which were creating and enabling the window together. In the vout
      case, this actually enables some small simplifications.
      This change does not affect the module interface: the window
      configuration is still passed via the enable() callback. However window
      provider can choose to ignore all parameters other than the decoration
      flag. Dimensions is already provided by the resize callback, and
      full-screen status via set_fullscreen and unset_fullscreen callbacks.
      It should be possible to remove the dimensions and full-screen flag
      from the window configuration completely, but that is left for further
      work, as it would affect many different modules.
    • Rémi Denis-Courmont's avatar
      vout: remove stray comment · e238c494
      Rémi Denis-Courmont authored
    • Rémi Denis-Courmont's avatar
      window: inline one function · 3f2fb2f3
      Rémi Denis-Courmont authored
      No functional changes.
    • Rémi Denis-Courmont's avatar
      window: appropriate code to video_window.c · bdaa445f
      Rémi Denis-Courmont authored
      No functional changes.
    • Rémi Denis-Courmont's avatar
      vout: do not pass vout to vout_SizeWindow() · 0149bf4e
      Rémi Denis-Courmont authored
      No function changes.
    • Rémi Denis-Courmont's avatar
      vout: use intermediate variables · c9a1e868
      Rémi Denis-Courmont authored
      No functional changes.
    • Rémi Denis-Courmont's avatar
    • Rémi Denis-Courmont's avatar
      vout: update window size regardless of display · c67dfae8
      Rémi Denis-Courmont authored
      As of the previous change, we always have an original format except at
      the very beginning before the first attempt to start a display.
      This allows the window size to be updated when the display gets started
      in a vout that has an already enabled window. This also avoids taking
      the display lock whenever compute the window size.
      This essentially reverts commit 3784e706.
    • Rémi Denis-Courmont's avatar
      vout: fix format for pre-enabled window · ccacd59d
      Rémi Denis-Courmont authored
      The window can be enabled even though the video output. In that case,
      EnableWindowLocked() tries to adjust the window size with the common
      vout_UpdateWindowSizeLocked() function. This relies on sys->original
      internally, unlike the case whereby the window is disabled.
      Consequently sys->original must already reflect the new format. This
      change moves the update of sys->original backward to meet the
      The flip side is of course that the format gets updated even if
      enabling the (disabled) window fails. Luckily this has no significance
      as there is no active display using either the old (stopped) or new
      (failed) formats.
      Note that the bug fixed here is hidden by another bug. In practice,
      the window size update is skipped entirely by the code from 3784e706
      as there is no display (and before 3784e706, this would be
      undefined behaviour).
    • Rémi Denis-Courmont's avatar
      vout: refetch display configuration consistently · 0c683f17
      Rémi Denis-Courmont authored
      As per earlier mailing list discussion, the display configuration is
      supposed to be retrieved when (re)starting the video output. It should
      not matter whether the window was disabled or still enabled.
    • Rémi Denis-Courmont's avatar
      vout: always keep the original video format · b2f7c5a0
      Rémi Denis-Courmont authored
      This retains the original video format after the display is closed. The
      main motivation for this is that the window needs a format to determine
      its size, and to translate mouse coordinates, both of which can happen
      after the display has been stopped.
      Even though the format will be stale, this resolves several data races
      in a simpler and saner way than checking if the display exists (which
      requires the display lock).
    • Rémi Denis-Courmont's avatar
      vout: fully initialise the original format · 0f5283f4
      Rémi Denis-Courmont authored
      It is inconditionally freed when the vout is destroyed - even if the
      vout was not successfully started even once - so it had better not
      contain garbage.
      Admittedly it is in practice implicitly zeroed by vlc_custom_create()
      so this is really more of a clean-up than a real fix.
  10. 22 Dec, 2021 1 commit
    • Romain Vimont's avatar
      vout: simplify deadline handling · 4716c6f7
      Romain Vimont authored and Romain Vimont's avatar Romain Vimont committed
      The deadline computation was shared between the vout thread function and
      DisplayPicture(), both by hacking the return value (VLC_EGENERIC meaning
      "wait") and using an output parameter, to handle 3 possible cases:
       - VLC_SUCCESS: do not wait
       - VLC_EGENERIC and deadline set: wait for deadline
       - VLC_EGENERIC and deadline not set: wait but no deadline is known
      In case of VLC_EGENERIC, the vout thread function computed the max
      between the returned value and 100ms.
      Simplify by computing the expected deadline from DisplayPicture()
  11. 21 Dec, 2021 1 commit
  12. 11 Dec, 2021 1 commit