Skip to content
Snippets Groups Projects
  1. Feb 04, 2022
  2. Feb 03, 2022
    • Lyndon Brown's avatar
      plugins: use helper to workaround missing c++ language feature support · 17604330
      Lyndon Brown authored and Rémi Denis-Courmont's avatar Rémi Denis-Courmont committed
      The previous commit made use of compound literals. MSVC was identified
      as not yet having support for compound literals in C++ though, which is
      considered a blocking problem to their use. This work around was
      suggested by Alexandre Janniaux.
      17604330
    • Lyndon Brown's avatar
      plugins: add type strictness to plugin descriptor macros · e8f6a595
      Lyndon Brown authored and Rémi Denis-Courmont's avatar Rémi Denis-Courmont committed
      I.e. check the type of the values provided, rather than just blindly
      casting, and thus allow mistakes to get caught with compilation errors.
      
      I once lost some hours tracking down the cause of a crash that this type
      strictness would have prevented.
      
      Note, now that `change_string_list()` and `change_integer_list()` use type
      strictness for the value and label arrays to help make sure they're the
      right types, we can more safely make use of `ARRAY_SIZE()` to more cleanly
      get the length.
      
      `set_callback[s]()` is excluded from this for obvious reasons.
      
      I've taken the opportunity to ditch remaining use of Hungarian notation
      and to fix a param name that should be singular rather than plural
      (psz_caps on `add_module[_list]()`.
      
      Re-implemented using compound literals upon excellent suggestion by
      Alexandre Janniaux.
      e8f6a595
    • Rémi Denis-Courmont's avatar
      test: use reproducible input · aa5a6aad
      Rémi Denis-Courmont authored
      vlc_stream_NewURL() can spawn stream filters which may alter the content
      or even the nature of the stream, which is not suitable here.
      
      vlc_access_NewMRL() would avoid loading stream filters at all. But it
      would also skip testing the cache filter, thus missing much of the point
      of the test case.
      
      So use a reproducible pseudorandom input using a constant seed, which
      is known not to trigger any stream filter.
      
      Fixes #26569.
      aa5a6aad
    • Rémi Denis-Courmont's avatar
      lib: recreate aout when module is changed · ce7cc9dd
      Rémi Denis-Courmont authored
      libvlc_audio_output_set() had no practical effects as the audio output
      was consistently created before the application had the opportunity to
      select a non-default module. This fixes it.
      
      An alternative would be to remove the function entirely. Exposing
      module names to LibVLC applications is bad design.
      ce7cc9dd
    • Rémi Denis-Courmont's avatar
      lib: only change device of current output · fd345221
      Rémi Denis-Courmont authored
      Historically this function would set the device for a specified audio
      output module. This required the application to somehow "know" what
      audio output module it wanted to use, which is very suboptimal for
      forward compatibility and portability.
      
      Worse yet, this design failed outright in VLC 2.2 with the addition of
      MMDevice and PulseAudio. This lead to the convention of leaving the
      module parameter NULL to change the device of the currently active
      audio output.
      
      As with the removal of libvlc_audio_output_device_list_get(), it seems
      saner to simply remove the old broken semantics.
      fd345221
    • Rémi Denis-Courmont's avatar
    • Rémi Denis-Courmont's avatar
      lib: remove libvlc_audio_output_device_list_get() (refs #26440) · e0ed4601
      Rémi Denis-Courmont authored
      This function does not work with MMDevice and PulseAudio, and does not
      support hot-plug. To enumerate devices, the newer function
      libvlc_audio_output_device_enum() ought to be used, which also works
      with MMDevice and PulseAudio, and track audio device events.
      
      No amount of documentational warnings will save developers from using
      this broken function. It is better to remove it now that there is the
      opportunity to do so in the form of the LibVLC 4.0 binary compatibility
      break.
      e0ed4601
    • Brad Smith's avatar
      v4l2: dlopen proper library name on OpenBSD · ed4a5feb
      Brad Smith authored and Rémi Denis-Courmont's avatar Rémi Denis-Courmont committed
      
      Fixes #26573
      
      Signed-off-by: default avatarRémi Denis-Courmont <remi@remlab.net>
      ed4a5feb
    • Brad Smith's avatar
      v4l2: use proper headers for OpenBSD's V4L2 support · c7905ecc
      Brad Smith authored and Rémi Denis-Courmont's avatar Rémi Denis-Courmont committed
      
      Fixes #26572
      
      Signed-off-by: default avatarRémi Denis-Courmont <remi@remlab.net>
      c7905ecc
    • Rémi Denis-Courmont's avatar
      transform: apply transform to the video format (refs #24941) · dfbad0fb
      Rémi Denis-Courmont authored
      This applies the user-requested transform to the video format, rather
      than the pictures. Doing this serves multiple purposes:
       - the filter chain format can be computed correctly (notably the SAR),
       - the transform filter can process any format, including opaque ones.
      dfbad0fb
    • Rémi Denis-Courmont's avatar
      chain: use the transform converter · 2b61d2f3
      Rémi Denis-Courmont authored
      Instead of creating a sub-chain with a singular hard-coded transform
      filter instance, the chain video converter treats mismatched video
      format orientations normally as other mismatched parameters.
      
      In practice, this will trigger the new orientation video converter
      instead of the transform video filter, and the result will be
      essentially the same... when using non-opaque picture formats.
      2b61d2f3
    • Rémi Denis-Courmont's avatar
      orient: video conversion filter for orientation · b1ebbeb2
      Rémi Denis-Courmont authored
      Unlike transform, this checks the video format, not some configuration
      parameters. Thus a video format can undergo reorientation directly,
      without having the chain video converter create a dummy chain for it.
      
      The code is heavily based on the transform filter.
      b1ebbeb2
    • Rémi Denis-Courmont's avatar
      transform: use ORIENT_IS_SWAP() · a83b1d77
      Rémi Denis-Courmont authored
      ...rather than a very ad-hoc ersatz. This works because transform and
      orientation are idendity-mapped.
      a83b1d77
    • Rémi Denis-Courmont's avatar
      transform: remove unused field · b1aa324e
      Rémi Denis-Courmont authored
      b1aa324e
    • Rémi Denis-Courmont's avatar
      transform: reorder to avoid forward declaration · e1cf08b0
      Rémi Denis-Courmont authored
      No functional changes.
      e1cf08b0
  3. Feb 02, 2022
  4. Feb 01, 2022
  5. Jan 31, 2022
  6. Jan 29, 2022
Loading