It seems the latest FFmpeg requires 64 bits alignment for some I420 output.
Fixes#27285
(cherry picked from commit fa75a43b0b)
Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>
This is a helper function to obtain the copy of a char* from a
CFStringRef.
Changes compared to master:
- Include CFString.h instead of the umbrella header
to prevent a type clash with guid_t declared in the
CoreFoundation headers.
(cherry picked from commit f4b5726854)
Signed-off-by: Marvin Scholz <epirat07@gmail.com>
In particular with the "lavc/pthread_frame: always transfer stashed hwaccel
state" fix for #27343
(cherry picked from commit dc1dea6ddd) (edited)
edited:
* 3.0 supports libav
Theses wrapper were too naively written and are causing a lot of
regressions on windows.
This has been addressed upstream [1]. And is simply reverted for now,
waiting for a new release.
Fixes#27306
[1] https://github.com/pupnp/pupnp/issues/411
(cherry picked from commit 751e0007e7)
even without an authtype the "?" widlcard was always added to search making
kwallet return no password for that query
(cherry picked from commit 862c4a2d9d)
The file directly modifies the global table (_G) so it does not
seem necessary at all to expose anything explicitly.
(cherry picked from commit 33c7a44fd8)
Signed-off-by: Marvin Scholz <epirat07@gmail.com>
This fixes errors like these:
libprojectM/projectM.hpp:303:8: error: no template named 'auto_ptr' in namespace 'std'
std::auto_ptr<Preset> m_activePreset;
~~~~~^
The std::auto_ptr type was deprecated in C++11 and removed in C++17.
The VLC C++ headers use C++11 features, so the only working
alternatives here are C++11 or C++14.
(cherry picked from commit 4100c227d0)
Signed-off-by: Martin Storsjö <martin@martin.st>
This project uses the 'register' storage class specifier for a lot
of variables, and C++17 disallows that storage class spcifier.
This fixes building with newer compilers that default to C++17
if nothing is specified (which is the default since GCC 11
and Clang 16).
When building with Clang 16 in C++17 mode, it fails with errors
like these:
fastmix.cpp:678:2: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
SNDMIX_BEGINSAMPLELOOP8
^
fastmix.cpp:291:2: note: expanded from macro 'SNDMIX_BEGINSAMPLELOOP8'
register MODCHANNEL * const pChn = pChannel;\
^
(cherry picked from commit 72e7335d66)
Signed-off-by: Martin Storsjö <martin@martin.st>
This project uses the 'register' storage class specifier for a lot
of variables, and C++17 disallows that storage class spcifier.
This fixes building with newer compilers that default to C++17
if nothing is specified (which is the default since GCC 11
and Clang 16).
When building with Clang 16 in C++17 mode, it fails with errors
like these:
KM_util.cpp:357:3: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
register byte_t c = 0, d = 0;
^~~~~~~~~
(cherry picked from commit fb8eb5edd2)
Signed-off-by: Martin Storsjö <martin@martin.st>
This project uses std::auto_ptr, which was deprecated in C++11,
so stick to compiling in C++98 mode. (Either C++98, C++11 or
C++14 would work.)
This fixes building with newer compilers that default to C++17
if nothing is specified (which is the default since GCC 11
and Clang 16).
When building with Clang/libc++ 16 in C++17 mode, it fails with
errors like these:
<build>/projectM/Renderer/RenderItemDistanceMetric.hpp:20:46: error: no template named 'binary_function' in namespace 'std'; did you mean '__binary_function'?
class RenderItemDistanceMetric : public std::binary_function<const RenderItem*, const RenderItem*, double> {
~~~~~^~~~~~~~~~~~~~~
(The std::binary_function class is removed in C++17.)
(cherry picked from commit 3e29d7f679)
Signed-off-by: Martin Storsjö <martin@martin.st>
std::mem_fun and std::bind2nd have been deprecated in C++11 and will be
removed in C++17. They were replaced by std::mem_fn and std::bind which
are easier to use.
Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>
(cherry picked from commit 6fce792e89)
Signed-off-by: Martin Storsjö <martin@martin.st>
Includes some fixes backported to 4.4.
(cherry picked from commit af785abd29) (edited)
edited:
- 3.0 also supports libav
Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>
The high-order byte is promoted to 'int'. If the high-order bit is set,
this results in an overflow (into the sign bit) when shifted by 24 bits
to the left. This was flagged by the UB sanitiser. To fix that, promote
all bytes to 32-bit unsigned first, to perform overflow-proof unsigned
arithmetic.
Then to avoid aliasing errors, make sure the output is written as signed
32-bit values, since the decoder outputs S32N.
(cherry picked from commit 9260acab6a)
Due to the severely increased complexity of "n" descrambling code, a
quick fix is unfortunately not foreseeable. For now, let users know more
clearly what's going on and what's to expect or not.
Ref #27227
(cherry picked from commit 90dcfa0e78)
Signed-off-by: David Fuhrmann <dfuhrmann@videolan.org>
The descrambling script section was updated from a simple and linear
chain of calls, to a complex execution tree with conditional branches.
Failure to recognize and parse this call structure (or lack thereof)
resulted in a silent no-op. Add a check to properly report an error.
Ref #27227
(cherry picked from commit b735ef2cde)
Signed-off-by: David Fuhrmann <dfuhrmann@videolan.org>