commit b014a4825d0ebcfd4fe43b3f6f0bc47d14847d53
Author: Zhao Zhili <quinkblack@foxmail.com>
Date:   Sun Dec 19 21:33:54 2021 +0800

    demux: mp4: continue to next trun instead of return eof

commit a308e178dd576c52d7e465bab6ed18701fc6adc7
Author: Zhao Zhili <quinkblack@foxmail.com>
Date:   Sun Dec 19 21:06:37 2021 +0800

    demux: mp4: fix dead loop
    
    The first pass select track A, then the second pass select track B,
    FragDemuxTrack(B) return EOF, the loop continue forever.

commit a004ccdb9bc2d2af4013b6277c4fbcabc06275c4
Author: Zhao Zhili <quinkblack@foxmail.com>
Date:   Sun Dec 19 20:46:03 2021 +0800

    demux: mp4: fix inverted logic
    
    (cherry picked from commit b79dabdd05cb9e575d4c8b44607833ef803f37ac)

commit 870c1376343bf25edef9376e059c4343b1a55bc5
Author: Hugo Beauzée-Luyssen <hugo@beauzee.fr>
Date:   Mon Nov 15 11:25:00 2021 +0100

    Update NEWS

commit 58770529c9f7dedf763db1e6ef6e7d712d372075
Author: Hugo Beauzée-Luyssen <hugo@beauzee.fr>
Date:   Mon Dec 13 11:27:34 2021 +0100

    On the road to 3.0.17

commit a31161d93ea2dc3a0e8b864c88476bacef2579da
Author: Lyndon Brown <jnqnfe@gmail.com>
Date:   Thu Jun 6 02:36:00 2019 +0100

    upnp: fix bad option default
    
    the lowercase "auto" default option value did not match the uppercase
    "Auto" in the choice list.
    
    option values should typically be lowercase. this fixes the mistake with
    the case of the choice value, whilst maintaining backwards compatibility
    with existing CLI usage and from saved settings files. this was the
    clear preference for fixing this resulting from the MR discussion.
    
    (cherry picked from commit 230068f35d3b243c131853992f91e27313e6f7b3)
    Signed-off-by: Felix Paul Kühne <felix@feepk.net>

commit 6e995d58cc5cbcf52e879dbb30a2a96678c9c7a8
Author: Lyndon Brown <jnqnfe@gmail.com>
Date:   Tue May 4 01:37:30 2021 +0100

    upnp: improve auto mode handling code
    
    (no functional change)
    
     - better prepare for the next commit where we need to support both "Auto"
       and "auto".
     - avoid multiple `strdup()`.
     - avoid avoidable string comparisons.
    
    (cherry picked from commit 31f283ad76a791fbe2344404ed42fff5da0fe8ac)
    Signed-off-by: Felix Paul Kühne <felix@feepk.net>

commit ca1279d1cd1b45bea081c7943173e0cdced0608c
Author: Lyndon Brown <jnqnfe@gmail.com>
Date:   Thu Jun 6 02:44:32 2019 +0100

    upnp: fix some misuse of strncmp()
    
    we do not want to be doing a 'starts with' check in these cases, they
    should be an equality check
    
    (cherry picked from commit 785c6dfeb8961b975e6b8acab511aea4e8c8d70a)
    Signed-off-by: Felix Paul Kühne <felix@feepk.net>

commit aedf1d4a24239be24d66d2e3f82077612ed9cfe5
Author: Hugo Beauzée-Luyssen <hugo@beauzee.fr>
Date:   Tue Dec 7 11:32:10 2021 +0100

    VLSub: Fix userdata directory creation
    
    Fix #26356
    
    (cherry picked from commit e25389467299a73bf95d3a3d7d05e93f52eaf1df)
    Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>

commit 2090e1ea9a6a6f34f614218eeaf667d428f2f9c7
Author: Francois Cartegnie <fcvlcdev@free.fr>
Date:   Wed Nov 24 21:35:04 2021 +0100

    demux: ts: check pcr offset with value prior matching sync code
    
    otherwise the last value is always overwritten with a more recent one
    and triggers the dts < pcr case
    
    ref #25034
    
    (cherry picked from commit 225e0bc09b847167433d49a591b25a8da4e7655f)
    Signed-off-by: Francois Cartegnie <fcvlcdev@free.fr>

commit b6b665522cf56f6622fd85b1ce341172e29c7799
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Tue Dec 7 22:40:09 2021 +0100

    gui/qt: disable "Advanced controls" item if none availble
    
    If the user disabled the advanced controls widgets in the
    interface customization options, it would still show the
    menu item for them, but interactions with the menu item
    would just do nothing.
    
    Instead properly disable the menu item when there is no
    advanced buttons widget to show/hide.
    
    Ref: #14217

commit a0f2b981fc8440407e9c8c3fc949a270f3d47bf8
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Tue Dec 7 22:37:27 2021 +0100

    gui/qt: add method to check if advanced widget exists

commit aac177eea60de1fc4498abc7e1a998723ac04e32
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Mon Dec 6 20:31:31 2021 +0100

    gui/qt: standardpanel: add menu item to shuffle playlist

commit 0a8fe5568f45fcd4ba578e7a05b37ccf9b2b67d3
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Mon Dec 6 20:30:56 2021 +0100

    gui/qt: playlist_model: add action to shuffle playlist

commit 7332d1f3a489a4d3ab10532962ec2e05ec78d03a
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Mon Dec 6 20:28:48 2021 +0100

    gui/qt: playlist_model: add sortInternal helper
    
    Moves all relevant sorting logic into the new helper function
    that exposes the arguments to playlist_RecursiveNodeSort
    directly, need to use sort orders that are not linked to any
    column.

commit 42cf4c4ce7f52aecb9fda3b166c1fb23e9ff8a18
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Thu Dec 2 18:41:14 2021 +0200

    sout/rtp: add support for E-AC-3
    
    (cherry picked from commit d41fb4e1d515ec0bd7b923333200c7f0d05169d8)

commit 080ba0dbf3ffe13e29f59966c77238aa3663b5ad
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Wed Dec 1 20:07:54 2021 +0200

    rtp out: fix AC-3 payload header
    
    This was complete garbage.
    
    (cherry picked from commit 1e902c11902cfb3744b5f7a2d66239ba97459f7f)

commit 22d8f09a881e06d26a0554049538af97330cc3ba
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Tue Nov 30 23:02:42 2021 +0100

    contrib: ncurses: update to 6.3
    
    (cherry picked from commit 564aa40971215f85d995b1d4c0f4903ee779eb86)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit feb161ae72c24fc5c8df3f180f92630ff6ed2bc6
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Mon Dec 6 14:51:41 2021 +0100

    NEWS: Mention libsmb2 update

commit 1819e17f4c51d24d29ce5c518f5a2eab3d41c453
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Tue Nov 30 14:23:18 2021 +0100

    contrib: smb2: update to a more recent version
    
    Update libsmb2 to a more recent (unfortunately unreleased)
    git sha to fix it sometimes converting to invalid UTF-8.
    
    Fix #26324
    
    (cherry picked from commit 5e89e4465377f345ea7b419010f2283929b89f6a)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit ff50ff1e67f9591de4b73c7769ba0291fbb698a9
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Mon Sep 13 18:33:08 2021 +0300

    url: add test case
    
    (cherry picked from commit ff0a252270401c4a0f09580c692f544430ec8883)

commit 59b3fa840835ce06aa5b6b236c99196dbd8d042e
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Fri Sep 10 22:58:44 2021 +0300

    url: allow brackets in path part
    
    As brackets are separators only within the authority part, thier use
    within (or on the edges of) the path does not create any ambiguity.
    
    (cherry picked from commit 721751d4f8f902ce042ffd015c70134aba373a2b)
    
    Fixes #26092
    Fixes #26348

commit f759c3483130847ff43e9e7f436c19acec649116
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Wed Dec 1 16:43:21 2021 +0100

    service_discovery/bonjour: fix smb discovery
    
    The module was checking if it could handle the protocol by checking
    if a module matching the module name is present, but for smb the
    module names are dsm and smb2.
    
    Fix vlc-ios#917
    
    (cherry picked from commit 08891a8df34c2be265678843d23b3cb3ae23c7c2)

commit f5dfb2f8c7269534cb41113e504fe5564ce29d99
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Tue Nov 30 21:59:09 2021 +0100

    macosx: add ability to shuffle playlist

commit 0601a14dc479ef6a0d0c3e488158e2fc5c899b5f
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Tue Nov 30 21:25:33 2021 +0100

    macosx: move playlist sorting into separate function

commit 9226bae4920ae575f5249fab95c7e5abfeee4031
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Tue Nov 30 15:47:57 2021 +0100

    NEWS: Mention DAV support

commit 0b52a373472d858e08aa220ca08db6afad7e51c5
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Tue Nov 30 16:35:43 2021 +0100

    msi: add DAV file extension association
    
    (cherry picked from commit 82347d93d526df00c1ebf73805534b7f4081859a)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit e70b3532b17dfe7a1cd3bd83894ab61936f26425
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Wed Dec 4 15:51:52 2019 +0100

    vlc_interface: Add DAV file extension
    
    (cherry picked from commit d0cdf8e5e1589f7b933edc6c71a55dc9a2f6b7d5)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit 4d467d9ea143fd8d10b052a732f1ab87dd34f379
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Tue Nov 30 15:45:29 2021 +0100

    macosx: Add DAV file extension association
    
    (manual backport of d18a840b7b38b0a9cd3d189865219ec514b30f34)

commit 99ea4e70fbd60dccb3ba2434e61008035e388b40
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Wed Dec 4 15:19:14 2019 +0100

    NSIS: Add DAV file extension association
    
    (cherry picked from commit 608eff9a36cf096cf9398e65a4c9817e1f09fe42)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit 2437484d7684a4661048df1e095484a276bbea0b
Author: Louis Régnier <louis.videolabs@gmail.com>
Date:   Mon Nov 29 10:05:04 2021 +0100

    opengl: vout_helper: use pl_gpu_dummy for shaders
    
    Without specifying the version, libplacebo might generate shaders with
    a different version from the one we specified, leading to usage of
    function that might not be available.
    
    A typical failure would lead to such error messages:
    
        gl gl: Initialized libplacebo v3.120.3 (API v120)
        gl gl error: shader 0: 0:22(13): error: no matching function for
        call to `mix(vec3, vec3, bvec3)'; candidates are:
    
        0:22(13): error:    float mix(float, float, float)
        0:22(13): error:    vec2 mix(vec2, vec2, float)
        0:22(13): error:    vec3 mix(vec3, vec3, float)
        0:22(13): error:    vec4 mix(vec4, vec4, float)
        0:22(13): error:    vec2 mix(vec2, vec2, vec2)
        0:22(13): error:    vec3 mix(vec3, vec3, vec3)
        0:22(13): error:    vec4 mix(vec4, vec4, vec4)
    
    Fixes #25324
    
    Co-authored-by: Alexandre Janniaux <ajanni@videolabs.io>

commit 0da425a2f0ef91eb0a787e7b0d250615302e930a
Author: Louis Régnier <louis.videolabs@gmail.com>
Date:   Mon Nov 29 10:18:02 2021 +0100

    opengl: add glGetIntegeri_v

commit 576630ee395d25d506e01a9a21de4475381644ec
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Nov 24 10:07:56 2021 +0100

    demux: mkv: shift the timestamps based on the biggest CodecDelay
    
    The CodecDelay needs to be substracted from the PTS of all frames of that
    track. That may result in negative DTS, PTS and PCR which is not well handled.
    So we just shift all timestamps based on the biggest CodecDelay so all
    timestamps are always positive.
    
    This is in line with how libavformat reports the timestamps on frames from a
    track with a CodecDelay.
    
    This is done per segment as other segments may use a different CodecDelay
    per track.
    
    Fixes #25129
    
    (cherry picked from commit 450363175621f1b6893a8cc833508b5129bfd938) (edited)
    edited:
    - 3.0 uses mtime_t instead of vlc_tick_t
    
    Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>

commit db55aaa090a94a43588233a2136e9777a6f44ee1
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Thu Oct 28 14:59:57 2021 +0200

    build: use DYLD_LIBRARY_PATH on macOS
    
    cf. https://developer.apple.com/library/archive/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryUsageGuidelines.html#//apple_ref/doc/uid/TP40001928-SW12
    
    """
    When the library name is a filename (that is, when it doesn’t include
    directory names), the dynamic loader searches for the library in several
    locations until it finds it, in the following order:
    
     - $LD_LIBRARY_PATH
     - $DYLD_LIBRARY_PATH
     - The process’s working directory
     - $DYLD_FALLBACK_LIBRARY_PATH
    
    When the library name contains at least one directory name, that is,
    when the name is a pathname (relative or fully qualified), the dynamic
    loader searches for the library in the following order:
    
     - $DYLD_LIBRARY_PATH using the filename
     - The given pathname
     - $DYLD_FALLBACK_LIBRARY_PATH using the filename
     """
    
    Conclusion: DYLD_LIBRARY_PATH on macOS behave like LD_LIBRARY_PATH on
    Linux but LD_LIBRARY_PATH on macOS has a different behavior than
    LD_LIBRARY_PATH on Linux, so DYLD_LIBRARY_PATH should be used on macOS.
    Specially since we can't really control if the library name will include
    a path or not (relative or absolute).
    
    (cherry picked from commit abbe7f3b8bea7ceffae797cb924d5154b43c5d14)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit fb1519ba6e41e4e41fdcd1795ffe4320e2319db8
Author: Hannes Domani <lamisedaxeh@yahoo.com>
Date:   Tue Dec 22 02:00:18 2020 +0100

    lua: icecast: fix nil value error for some streams
    
    Due to a bug in the directory, some streams lack a listen URL.
    
    Fix #25309
    
    (cherry picked from commit c8c78f75e7117498f1552f22c4ba53a229f50997)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit d5e53764ba89d36ca5c300e0cc0f5261b0abe8ac
Author: Alexandre Janniaux <alexandre.janniaux@gmail.com>
Date:   Mon Nov 22 11:20:31 2021 +0100

    qt: interface_widgets: honor --no-mouse-events
    
    With --no-mouse-events, the mouse events were correctly disabled on
    every window platform but not in the Qt provider.

commit 1d2c7f2b00dda88db6a646132e206fb07f4675ab
Author: Hugo Beauzée-Luyssen <hugo@beauzee.fr>
Date:   Mon Nov 15 14:46:04 2021 +0100

    muxer: avformat: Add missing av_packet_free
    
    (cherry picked from commit c2549ced70d5a6c56fd2411519b185b4a04c36d2)
    Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>

commit 84ff84a8f6d29c29c127ce841d9b4a114f327746
Author: Hugo Beauzée-Luyssen <hugo@beauzee.fr>
Date:   Mon Nov 15 14:43:05 2021 +0100

    avcodec: encoder: Don't unref frame twice
    
    The frame is unref'ed in the callsite
    
    (cherry picked from commit ecdd9957744b04d3270774eb7c19920698641b70)
    Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>

commit 869e2119bf8b5e3910599bcc6c02b21436a13595
Author: Hugo Beauzée-Luyssen <hugo@beauzee.fr>
Date:   Mon Nov 15 14:39:03 2021 +0100

    avcodec: encoder: Fix leak on error
    
    (cherry picked from commit b04e2c5d9f2cc55d64a84161fcdd24b35e9092b4)
    Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>

commit a77f45d0c3e5c3814062566f8fd210a8fe7fb46b
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Tue Apr 14 19:25:07 2020 +0300

    avcodec: fix flawed logic
    
    Cannot find any codec.
    
    Regression from 21d5a1933275edb7f67d05ea62a762464e07c2cb.
    
    (cherry picked from commit 067dcd0a1974b00a92e900b0e5c976349ad13859)
    Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>

commit 0094e5b4214cade58303cf315ce4c128d76f9e32
Author: Alexandre Janniaux <ajanni@videolabs.io>
Date:   Wed Apr 8 15:07:15 2020 +0200

    avcodec: remove deprecation warning for av*_register_all
    
    From doc/APIchanges:
    
        2018-02-06 - 0694d87024 - lavf 58.9.100 - avformat.h
          Deprecate use of av_register_input_format(), av_register_output_format(),
          av_register_all(), av_iformat_next(), av_oformat_next().
          Add av_demuxer_iterate(), and av_muxer_iterate().
    
        2018-02-06 - 36c85d6e77 - lavc 58.10.100 - avcodec.h
          Deprecate use of avcodec_register(), avcodec_register_all(),
          av_codec_next(), av_register_codec_parser(), and av_parser_next().
          Add av_codec_iterate() and av_parser_iterate().
    
    They are no-op since those updates. If compiling with a recent release,
    just don't call av*_register_all to prevent warnings.
    
    (cherry picked from commit 21d5a1933275edb7f67d05ea62a762464e07c2cb)
    Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>

commit 2da109684a662a51989aa581bfc6cd1888f6c68c
Author: Ilkka Ollakka <ileoo@videolan.org>
Date:   Fri Jun 18 10:23:35 2021 +0300

    avcodec/subtitle: stop using removed setter for pkt timebase
    
    Removed from ffmpeg repo in commit 23bb78d2ea4f0e3a0835744d59708efed50abccc.
    
    (cherry picked from commit e7190e7a70e9701754c50348f5b6357759440657)
    Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>

commit 37427cab7df0ec5611493a1207f69445853738ef
Author: Ilkka Ollakka <ileoo@videolan.org>
Date:   Wed Jul 7 12:37:58 2021 +0000

    avcodec: remove use of av_init_packet as it is deprecated in new ffmpeg major version
    
    av_init_packet is deprecated in new major version of ffmpeg.
    
    Also use av_packet_free instead of unref.
    
    Use av_packet_clone and AVPacket * in vlc_av_packet_t.
    
    (cherry picked from commit 16fd46fa506424134beb53ec88be3eea1b42a221)
    Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>

commit 73439b6b5839ec045462a1d98e37192328225bca
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Nov 22 15:53:56 2021 +0100

    demux: mkv: make sure we send the first valid PCR before we send a valid block
    
    Negative or VLC_TICK_INVALID timestamps are not sent as a PCR but there might
    still be such blocks sent before the PCR.
    
    (cherry picked from commit a18356f3f364b8d673b267bddab5dd64f1c12b72) (edited)
    
    edited:
    * vlc 3.0 branches uses VLC_TS_INVALID instead of VLC_TICK_INVALID
    
    Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>

commit 80708059d0496b7a3d8138c0e0313c2b6f62c865
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Nov 22 15:52:26 2021 +0100

    demux: mkv: turn the PCR update into a function
    
    (cherry picked from commit 7a5eede42d1a80a1be0171adc813d6310f118186) (edited)
    
    edited:
    * 3.0 branch uses mtime_t instead of vlc_tick_t
    
    Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>

commit 1353e52693d8deb4e629e153d9c73d7dc69afc13
Author: Hugo Beauzée-Luyssen <hugo@beauzee.fr>
Date:   Mon Nov 22 12:10:17 2021 +0100

    contrib: Bump taglib to 1.12
    
    fix #26309
    
    (cherry picked from commit c651b10d33dc0fb7b9670208f93f94f850ba8ca4)
    Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>

commit ebbd474f79cd145094d2a5c524487938fe412934
Author: Pierre Ynard <linkfanel@yahoo.fr>
Date:   Tue Nov 23 18:22:04 2021 +0100

    youtube.lua: exponential form integers in "n" descrambling input data
    
    They now appear; add support for parsing them.
    
    Fixes #26317
    
    (cherry picked from commit 6b5bc195a9811c6bb666ef3a30a100db7bb71092)
    Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>

commit 72fc254d3bae128b81fc2d0eeb7baa3cda7eedea
Author: Pierre Ynard <linkfanel@yahoo.fr>
Date:   Tue Nov 23 18:07:33 2021 +0100

    youtube.lua: document an "n" descrambling transformation
    
    (cherry picked from commit 84ba044df10bb7e9cbf293fa6eefbd77e370c398)
    Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>

commit 7b43e275feb8835393cc1bad6771f561b591b557
Author: Martin Storsjö <martin@martin.st>
Date:   Wed Feb 21 13:55:30 2018 +0200

    include: Don't use the gnu_printf format attribute with clang
    
    Clang doesn't support this attribute yet.
    
    (cherry picked from commit 070fcc422e270939fdb91f855690cca447c4d3ab)
    
    Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>

commit d616f01fa9c735b0def82fbfcf10d46d04ef9acf
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Sun Nov 14 05:41:18 2021 +0100

    demux: mp4: fix reading vpcC box
    
    The VP Codec ISO Media File Format Binding specification
    states that the VP codec configuration box (vpcC) extends the
    FullBox and a FullBox starts with a 1 byte version followed by
    3 bytes flags.
    
    Even though we are not interested in the flags, we still have to
    read them, else all following reads will read from the wrong position,
    resulting in, among other things, bogus values in the i_codec_init_datasize
    which is supposed to be always 0 for VP8 and VP9.
    
    (cherry picked from commit b08e179241c3e6f5fc0253731e9272a9e67ae066)
    Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>

commit 906bc892f8cae064ebaf3116c8932aa0baecd7bd
Author: Pierre Ynard <linkfanel@yahoo.fr>
Date:   Mon Nov 15 00:58:35 2021 +0100

    youtube.lua: add "n" descrambling split compound transformations
    
    A new variant of compound transformation has the Base64 alphabet
    generation and the compounding itself as two separate data array
    elements, contrary to what was observed so far. Add support for those.
    
    Fixes #26285
    
    (cherry picked from commit 7f6614cbafb76e19257551a833375642a7dc3949)
    Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>

commit 367970ff65d37f7d62c913e9e8b2294de589432e
Author: Pierre Ynard <linkfanel@yahoo.fr>
Date:   Mon Nov 15 00:39:15 2021 +0100

    youtube.lua: "n" descrambling transformations with two extra arguments
    
    A new standalone compound transformation, taking its Base64 alphabet
    as extra input argument, has revealed itself. We support parsing and
    passing this one more argument from the script section.
    
    Technically this last argument can be a function or rather the result
    of its call, but with no argument, we know what's always returned, and
    don't need to treat it as a function. This is less clean but simpler and
    will do for now.
    
    (cherry picked from commit fd2e937f28bc35dfa24096f4d10e7acff44cabb1)
    Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>

commit c060c7933a5c8876b6c7db0a3143b085832ce5a0
Author: Pierre Ynard <linkfanel@yahoo.fr>
Date:   Mon Nov 15 00:20:46 2021 +0100

    youtube.lua: simplify "n" descrambling compound transformation
    
    Newly observed transformations reveal that the uncertain character
    code variable used as constant offset, really isn't one and is simply
    supposed to be the alphabet's length. Thus even more so, it is a no-op
    on the alphabet's algebraic modulo group, and probably just an artifact
    of how modulo of negative numbers is handled in javascript. Simplify it
    away.
    
    (cherry picked from commit 174e12b3bcab5ab4164da10cc0e499d6c7893991)
    Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>

commit baf5223dff873ca066f00b20f13c89b47ca6e878
Author: Alexandre Janniaux <ajanni@videolabs.io>
Date:   Wed Jun 30 10:19:23 2021 +0200

    doc: QtPlayer: check _WIN32 for windows plugins
    
    QWindowsIntegrationPlugin is supposed to be linked against only when the
    example is being compiled for Windows platform.
    
    Cherry-picked from commit ce4e4085c60a0abdde8660673c5293c5fff46108.
    
    Signed-off-by: Alexandre Janniaux <alexandre.janniaux@gmail.com>

commit 8f8c442e3283b9a016961b206ad85d8ebb33b562
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Feb 26 16:15:03 2021 +0100

    doc: QtPlayer: add QWindowsIntegrationPlugin plugin
    
    Similar to the one in the QtGl sample.
    
    Cherry-picked from commit 930b5ef4f977febc8faf7817eceab231b8d21723.
    
    Note that QtGl sample doesn't exist in the 3.0.x branch.
    
    Signed-off-by: Alexandre Janniaux <alexandre.janniaux@gmail.com>

commit 0e9f464114de93361313b47dd932f384e2f42ebd
Author: Alexandre Janniaux <ajanni@videolabs.io>
Date:   Thu Nov 19 14:37:28 2020 +0100

    doc: QtPlayer: update .pro file to use pkg-config
    
    It allows to configure the example with, for instance, the following
    command line:
    
        PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/ qmake ..
    
    PKG_CONFIG_PATH can be adapted to the path where libvlc has been
    installed and/or where Qt is available.
    
    This also remove the unused parts, and add QT += widgets which is needed
    to compile.
    
    Cherry-picked from commit d99c280178ef5c09923d101a0fa103f0aa0c1b3c.
    
    Signed-off-by: Alexandre Janniaux <alexandre.janniaux@gmail.com>

commit de4d6d510e6e8e8626809fc1838b6bb1da9f0c43
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu May 7 08:28:34 2020 +0200

    QtPlayer example: fix compilation with newer Qt/libvlc
    
    Cherry-picked from 0ade21ad07f88f77fbf296af0fc71bec179ee7ab, with the
    libvlc 4.0 part removed.
    
    Signed-off-by: Alexandre Janniaux <alexandre.janniaux@gmail.com>

commit e69264f8edd9e01ebb5f66cbb11cc1849e4082e3
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Wed Oct 20 14:53:02 2021 -0400

    live555: fill in Opus extradata
    
    This does not make the live555 module dependent on libopus, just the helper
    functions in opus_header.{c,h}
    
    (cherry picked from commit c73d61a5f541a4b2566da2968c725b62ccac96cc)

commit cf0973bb7ffe26d82a8cc05551df5a78d3ec3557
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Tue Nov 9 08:58:37 2021 +0100

    audiounit_ios: don't register the aout in case of failure
    
    (cherry picked from commit 6fd238d9c9b7f640cd862b0ebca543ad8fb642e2)
    Signed-off-by: Felix Paul Kühne <felix@feepk.net>

commit b0bb16804bb922d0d3e24f794a352cf28cda3d58
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Mon Nov 8 11:34:32 2021 +0100

    audiounit_ios: setup the RouteSharingPolicy
    
    Starting iOS 11.0
    
    Setting it to LongFormAudio or LongFormVideo will select audio devices
    that are used for long playback (music or video) in priority.
    
    (cherry picked from commit 5abc4ea8534128368a36c291fe38ad97f439b4f2)
    Signed-off-by: Felix Paul Kühne <felix@feepk.net>

commit fb79c1242d8c6b640124a7c36126e5002107cae8
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Wed Mar 7 03:20:54 2018 -0500

    vpx: decode WebP's VP8 chunks
    
    Fixes #19446
    
    (cherry picked from commit ac9038e9ac46792f294e2fe348d66f1e12340d2e)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit 3ad9f3c23a48a1cda6aeed227afd2b0c00d1fa0b
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Tue Mar 6 01:22:34 2018 -0500

    demux: image: add WebP probing
    
    Refs #19446
    
    (cherry picked from commit 816f1630123b781a74cab3591583e9a05e7a29a3)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit ff6820d5631dc33b2610cb1473133b5a8e771962
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Tue Mar 6 01:18:54 2018 -0500

    fourcc: add WebP image format
    
    Refs #19446
    
    (cherry picked from commit ca04206095232821323f5624113c570f610e2659)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit a108715f1d0f6e7c878a5b9ba01c799f08dc78f3
Author: Francois Cartegnie <fcvlcdev@free.fr>
Date:   Mon Mar 11 18:28:54 2019 +0100

    packetizer: dts: handle LBR (fix #21973)
    
    (cherry picked from commit ddf8716a0d749e9af01b6d1a32f6f99ab7aed340)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit 6572382a3583644224656a9625e424bb1405a8f3
Author: Francois Cartegnie <fcvlcdev@free.fr>
Date:   Mon Mar 11 18:28:22 2019 +0100

    packetizer: dts: add LBR header parser
    
    (cherry picked from commit 60cca0eadead0682e6625f825f6c7294999a49ee)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit ee3c348ab79496b41e6301f12fa247e3d4cd8655
Author: Francois Cartegnie <fcvlcdev@free.fr>
Date:   Mon Mar 11 18:13:04 2019 +0100

    packetizer: dts: renaming and store second header
    
    (cherry picked from commit 4b0798f6875d48c90641dfa5106bf4d0f9f6a7ce)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit 865f5423a7070421870694520dac6e1d1b763fce
Author: Francois Cartegnie <fcvlcdev@free.fr>
Date:   Mon Mar 11 18:08:02 2019 +0100

    packetizer: dts: split second sync substream state
    
    (cherry picked from commit 1f42cfc37622602babf1f50338a19981150f2457)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit 73ec8e8930d4a8f5487e42054c81b08a6225ce02
Author: Francois Cartegnie <fcvlcdev@free.fr>
Date:   Mon Mar 11 12:24:35 2019 +0100

    packetizer: dts: handle substream in a dedicated state
    
    (cherry picked from commit 516246a4bc518386c56854b90aa2a2db3522c8a0)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit 340583eb83eb26167ea4d14c6e3d6be6e914d3cf
Author: Francois Cartegnie <fcvlcdev@free.fr>
Date:   Fri Mar 8 18:01:00 2019 +0100

    packetizer: dts: store substream header size
    
    (cherry picked from commit fcea1a345187062c49cf6747c8bff3106f3e5bf4)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit 0515027882576f839d9c54004242f593e8cb046e
Author: Francois Cartegnie <fcvlcdev@free.fr>
Date:   Fri Mar 8 17:04:19 2019 +0100

    packetizer_helper: add custom state offset
    
    (cherry picked from commit 0ab18a89d6cbef7d88a77061334f59d7d84cf2de)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit 264b6c63331f927e8ffbeec53f6287684ac04539
Author: Francois Cartegnie <fcvlcdev@free.fr>
Date:   Mon Mar 11 15:10:49 2019 +0100

    packetizer: dts: test and return sync word
    
    (cherry picked from commit e23d066b5183f6cf6d75f1fbab5d938bd4dc5452)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit dfb2c62402b4441b411724e35298093f8546b474
Author: Francois Cartegnie <fcvlcdev@free.fr>
Date:   Mon Nov 8 01:58:49 2021 +0100

    es_out: fix flapping PREROLL flag on non dated packets
    
    Saves pts to perform preroll target comparison against.
    refs #25129
    
    In some cases, the packets are sent interleaved with non dated packets
    SEND 1
    SEND TS_INVALID
    (...) multiple times, simplified to 1 occurence
    PCR 1
    SEND 719996
    SEND TS_INVALID
    PCR 719996
    SEND 1439992
    SEND TS_INVALID
    PCR 1439992
    SEND 2160008
    SEND TS_INVALID
    PCR 2160008
    
    Until preroll_end (file caching) is reached, all packets
    are flagged as PREROLL.
    
    Entering preroll has effect on audio output by flushing
    previous content, and silencing dropped buffers.
    
    Due to non dated interleaving, the stateless es_out keeps
    flipping PREROLL packets and triggering the in-stream PREROLL
    behaviour (like SET_NEXT_DISPLAY_TIME).
    The effect being (here with alsa) to re-enter preroll each
    time, extending decoder preroll until pts >= preroll_end
    and flushing decoders.
    
    Stream buffering done (1439 ms in 0 ms)
    ModuleThread_PlayAudio pts 1 preroll end -9223372036854775808
    inserting 3840 zeroes / 80 ms
    cannot write samples: Relais brisé (pipe)
    ModuleThread_PlayAudio pts 120001 preroll end 9223372036854775807
    (...)
    ModuleThread_PlayAudio pts 719996 preroll end 719996
    end of audio preroll
    inserting 34804 zeroes / 725 ms 719996
    ModuleThread_PlayAudio pts 839996 preroll end 9223372036854775807
    (...)
    ModuleThread_PlayAudio pts 1439992 preroll end 1439992
    end of audio preroll
    inserting 69172 zeroes / 1441 ms 1439992
    ModuleThread_PlayAudio pts 1559992 preroll end 9223372036854775807
    (...)
    ModuleThread_PlayAudio pts 2160008 preroll end 2160008
    end of audio preroll
    inserting 103601 zeroes / 2158 ms 2160008
    ModuleThread_PlayAudio pts 2280008 preroll end -9223372036854775808
    (...)
    
    (manual backport from commit b752ffe13b605de5dfc40ff48ad4659dd4df0d15)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit 493b7a037da7d490c6eb62a021fd8eaba46ac755
Author: Francois Cartegnie <fcvlcdev@free.fr>
Date:   Thu Oct 21 13:15:33 2021 +0200

    fourcc: add AV1 MS FourCC
    
    (cherry picked from commit 374a7cf675b701666ec95c1287f5f8b6d128cd15)

commit bc62c5132d2d582436d494525a18931550f1fe86
Author: Francois Cartegnie <fcvlcdev@free.fr>
Date:   Thu Oct 21 13:28:42 2021 +0200

    fourcc: fix E-AC-3 MP4RA fourcc direct mapping
    
    (cherry picked from commit 99e92fd79afe79c8a78759acf4fdd5390667f6d3)

commit e22c0ba505d347c494dd39b3fbb807cf65d3b014
Author: Pierre Ynard <linkfanel@yahoo.fr>
Date:   Tue Oct 19 00:48:06 2021 +0200

    youtube.lua: descramble "n" video URL parameter by parsing javascript
    
    User agents are apparently now expected to do this; failure to do so
    results in the video file data transfer getting throttled down to rates
    such as 80 kB/s, 60 kB/s or 40 kB/s, below playback rate, and usually
    resulting in a video that hangs upon loading or every few seconds, and
    is impossible to play. This behavior seems to have first appeared in
    June, but been fully rolled out only last week.
    
    Just like with URL signatures, we interoperate with YouTube by
    fulfilling what's apparently expected from us, using the same approach
    as so far: we parse the descrambling rules from the javascript code, and
    apply them.
    
    Fixes #26174
    
    (cherry picked from commit 03e6957832952e118ea173955485c32783438abe)
    Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>

commit 346d6a2f6e537e6166af041aa1f100adddbb46ca
Author: Pierre Ynard <linkfanel@yahoo.fr>
Date:   Tue Oct 19 00:37:30 2021 +0200

    youtube.lua: retry fetching descrambling javascript asset once
    
    This should help against transient errors, and parsing of the javascript
    URL isn't the part that's most likely to break.
    
    (cherry picked from commit f3963e68c1f0dd3a3cdb65a17ac118550de35628)
    Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>

commit 90a116967763fe6f69176aaad90c14fc1c363c34
Author: Pierre Ynard <linkfanel@yahoo.fr>
Date:   Tue Oct 19 00:20:41 2021 +0200

    youtube.lua: factor out descrambling javascript fetching
    
    We'll be descrambling the "n" parameter in addition to the URL signature
    using this same javascript web asset, so we want to be able to share and
    reuse it.
    
    (cherry picked from commit 4cfa8b65efa200aa1185a53e2bf4b58d05d5bb22)
    Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>

commit fb44f5fd6c072caa5b422b0bb12afff347e95019
Author: Pierre Ynard <linkfanel@yahoo.fr>
Date:   Mon Oct 18 23:20:37 2021 +0200

    youtube.lua: rename signature descrambling function
    
    Use a more specific name as this isn't the only parameter anymore that
    we'll be descrambling by parsing and emulating javascript.
    
    (cherry picked from commit 095f093093923e2f0557aff16e88bbb6c1802a44)
    Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>

commit 17a2d54803b405c5b5eea12bb6922cd75f24b10c
Author: Pierre Ynard <linkfanel@yahoo.fr>
Date:   Mon Oct 18 23:09:38 2021 +0200

    youtube.lua: rework error handling for signature descrambling
    
    (cherry picked from commit 8473b3bf3bb82681e0fb0a33886b63ae6801d2e6)
    Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>

commit 773f23dd29a0a892daf4f09f0ec1a396eafd42f9
Author: Pierre Ynard <linkfanel@yahoo.fr>
Date:   Mon Oct 18 21:32:09 2021 +0200

    youtube.lua: fix up signature descrambling function name extraction
    
    Javascript variables can contain other, special characters, also %a
    depends on the locale.
    
    (cherry picked from commit a17869127051c8c96af2c9348ef51fb353ae30e6)
    Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>

commit 09ebe203a8bf7e9d06be971ab4cd4431b8901ac3
Author: Pierre Ynard <linkfanel@yahoo.fr>
Date:   Mon Oct 18 19:55:56 2021 +0200

    youtube.lua: remove fallback to retired alternate video info API
    
