Skip to content
Snippets Groups Projects
  1. Apr 01, 2025
  2. Mar 31, 2025
  3. Mar 30, 2025
  4. Mar 29, 2025
  5. Mar 28, 2025
  6. Mar 27, 2025
  7. Mar 26, 2025
    • Marvin Scholz's avatar
      macosx: VLCTimeField: do not use identifier · 6434ab75
      Marvin Scholz authored and Felix Paul Kühne's avatar Felix Paul Kühne committed
      Overriding setIdentifier is something that should not be done and
      also that identifier is supposed to be unique so it is not really
      suitable for our use-case here.
      
      Additionally on older macOS versions this selector is sometimes called
      with a nil identifier leading to a crash.
      
      Just go back to a dedicated property for this without hooking into
      the view identifier.
      6434ab75
    • Claudio Cambra's avatar
      macosx: Prevent crash from null p_event on model callback · 4bb2f7d4
      Claudio Cambra authored and Marvin Scholz's avatar Marvin Scholz committed
      
      When accessing p_event in the model callback, it is possible for the p_event to
      no longer be valid as the callback uses an async dispatch queue. By accessing
      the properties of the p_event synchronously before entering the async block, we
      can avoid this crash
      
      Signed-off-by: default avatarClaudio Cambra <developer@claudiocambra.com>
      4bb2f7d4
    • Alexandre Janniaux's avatar
      es_out: trace wake up delay for input pacing monitoring · 5f6060a4
      Alexandre Janniaux authored
      This patch adds a new metric to track and understand the behaviour of
      the input pacing done from the input buffering values. The behaviour is
      showing correct properties currently, but as will be shown later in this
      commit message, this metric helps debugging pacing issues leading to
      screen freeze.
      
      In the work for making clock-start distributed across every clock
      tracker, and because of a change removing the call to the function
      input_clock_ChangeSystemOrigin, the input clock wake-up delay was not
      computed correctly. Specifically, a huge delay of multiple hundred of
      millisecond was appearing at the startup of the playback for file://
      media, leading to a huge gap in playback.
      
      The problem can be revealed when tracing the input_clock_GetWakeup
      values. Those values are used to pace the input, and they are dates
      matching with up until when the input is allowed to sleep, or 0 to
      disable sleeping altogether. The value returned is valid up until
      vlc_tick_now() is bigger or a new input_clock_Update() is made.
      
      By substracting vlc_tick_now() to this date when the value is not 0, we
      can get the time the input is supposed to wait before doing anything
      else. The graph would typically look like this when the freeze was
      happening at the beginning of the playback
      
             Input clock
               wake up
                 ^
          330ms -|             +----+
                 |             |    |
                 |             |    |
              0 -| ------------+    +--------..
                 +----------------------------->t
      
      In the current state or after proper fixes for the input pacing were
      done, it would display the following graph:
      
              Input clock
                wake up
                  ^
                  |
                  +----------------------------->t
               0 -| ------------++--------------
                  |             ||
                  |             || 
          -550ms -|             ++
      
      As such, a very high value looks suspiciously wrong, and improvement
      could be made later to start the wake-up delay at -pts_delay immediately
      instead of returning 0 as long as the reference point is not registered
      yet in the input clock buffering subsystem.
      
      This metric also catches additional artifacts that are generated by the
      input decoder waits right at the end of buffering, which might be
      interesting to investigate later.
      5f6060a4
    • Alexandre Janniaux's avatar
      013a7c33
    • Alexandre Janniaux's avatar
      opengl: display: add support for set_stereo callback · 0902aed2
      Alexandre Janniaux authored
      Just like it's done for projection_mode, setup a state so that changing
      the stereo mode can be asynchronously done when the rendering loop is
      ready to provide the OpenGL context.
      0902aed2
    • Alexandre Janniaux's avatar
    • Alexandre Janniaux's avatar
      opengl: vout helper: store first projection state · fb7d451d
      Alexandre Janniaux authored
      The first projection state will be needed when changing the stereo-mode
      in future commits.
      fb7d451d
    • Alexandre Janniaux's avatar
      opengl: vout helper: factor renderer restarting code · 0db936f2
      Alexandre Janniaux authored
      Create a dedicated function to restart the renderer given a set of
      parameters. The function will also be used to change the
      video-stereo-mode value in the renderer.
      0db936f2
    • Alexandre Janniaux's avatar
      opengl: renderer: add support for video-stereo-mode · 93092b6c
      Alexandre Janniaux authored
      The video-stereo-mode is setup the same way I did the projection mode.
      The client needs to restart the renderer to re-compile the shaders and
      re-setup the variables for the mode, avoiding the need for a specific
      API. This is justified by changing video-stereo-mode not happening at
      each frame.
      
      Note that projection_mode is temporarily enforced to
      PROJECTION_MODE_RECTANGULAR whenever the multiview_mode is enforced to
      another value than the source, to avoid trying to change the projection
      from a texture containing the two eyes, leading to weird behaviour. This
      happens when setting the SIDE_BY_SIDE stereoscopic mode which is made
      for showing the two frames, but also in the STEREO stereoscopic mode
      which is not yet supported in the module (need vlc-vr work).
      93092b6c
    • Alexandre Janniaux's avatar
      vlc_vout: add a MAX value for stereoscopic enum · aed3d7bb
      Alexandre Janniaux authored
      The MAX value allows checking whether the provided stereoscopic value is
      valid or not.
      aed3d7bb
    • Marvin Scholz's avatar
      contrib: fix cddb mistakenly depending on iconv · 9cff68f0
      Marvin Scholz authored and Steve Lhomme's avatar Steve Lhomme committed
      Currently there are two issues here, one hiding the other:
      
      - The sed pattern is wrong, causing it to not match due to leading
        spaces.
      - The replacement for the second sed pattern is wrong, not removing
        the @LIBICONV@, causing it to be present in the generated .pc, but
        due to the previous issue, this was hidden as the iconv detection was
        never actually removed.
      
      This issue only rarely manifested, as we also build iconv in contribs,
      so it was totally depending on build order if this caused any issue or
      not.
      9cff68f0
Loading