- 27 Oct, 2022 21 commits
-
-
Andreas Rheinhardt authored
It is only used by the decoders' lowres code, so only initialize it for decoders. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
ff_rl_init() initializes RLTable.(max_level|max_run|index_run); max_run is unused by the SpeedHQ encoder (as well as MPEG-1/2). Furthermore, it initializes these things twice (for two passes), but the second half of this is never used. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
No longer used anywhere. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
ff_rl_init() initializes RLTable.(max_level|max_run|index_run); max_run is unused by the MPEG-1/2 encoders (as well as SpeedHQ). Furthermore, it initializes these things twice (for two passes), but the second half of this is never used. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
This allows to exploit that ff_rl_mpeg1 and ff_rl_mpeg2 only differ in their VLC table. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
ff_rl_mpeg1 and ff_rl_mpeg2 differ only in RLTable.table_vlc, which ff_rl_init() does not use to initialize RLTable.max_level, RLTable.max_run and RLTable.index_run. This implies that these tables agree for ff_rl_mpeg1 and ff_rl_mpeg2; hence one can just use one of them and avoid calling ff_rl_init() ff_rl_mpeg2 alltogether. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
This will allow to remove ff_rl_mpeg2 soon and remove all uses of RLTable in MPEG-1/2/SpeedHQ later. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
Redundant since dcb29d37. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Martin Storsjö authored
Signed-off-by: Martin Storsjö <martin@martin.st>
-
Paul B Mahol authored
-
Paul B Mahol authored
-
- 26 Oct, 2022 9 commits
-
-
James Almer authored
A two byte sync word is not enough to ensure we got a real syncframe, nor are all the range checks we do in the first seven bytes. Do therefore an integrity check for the sync frame in order to prevent the parser from filling avctx with bogus information. Signed-off-by: James Almer <jamrial@gmail.com>
-
James Almer authored
Signed-off-by: James Almer <jamrial@gmail.com>
-
James Almer authored
Should speed up parsing when the frames come from non raw containers. Signed-off-by: James Almer <jamrial@gmail.com>
-
James Almer authored
Have it only find frame boundaries. The stream props will then be filled once we have an assembled frame. Signed-off-by: James Almer <jamrial@gmail.com>
-
James Almer authored
Code freeing the struct on failure is kept for backwards compatibility, but should be removed in the next major bump, and the existing lavf user adapted. Signed-off-by: James Almer <jamrial@gmail.com>
-
James Almer authored
Signed-off-by: James Almer <jamrial@gmail.com>
-
Peter Ross authored
for videos with wmv9 rectangles, the region drawn by ff_mss12_decode_rect may be less than the entire video area. the wmv9 rectangles are used to calculate the ff_mss12_decode_rect draw region. Fixes tickets #3255 and #4043
-
Peter Ross authored
-
Peter Ross authored
Duplicates of the standard JPEG quantization tables were found in the AGM, MSS34(dsp), NUV and VP31 codecs. This patch elimates those duplicates, placing a single copy in jpegquanttables.c.
-
- 25 Oct, 2022 10 commits
-
-
J. Dekker authored
checkasm --benchmark on Ampere Altra (Neoverse N1): put_hevc_qpel_bi_h4_8_c: 170.7 put_hevc_qpel_bi_h4_8_neon: 64.5 put_hevc_qpel_bi_h6_8_c: 373.7 put_hevc_qpel_bi_h6_8_neon: 130.2 put_hevc_qpel_bi_h8_8_c: 662.0 put_hevc_qpel_bi_h8_8_neon: 138.5 put_hevc_qpel_bi_h12_8_c: 1529.5 put_hevc_qpel_bi_h12_8_neon: 422.0 put_hevc_qpel_bi_h16_8_c: 2735.5 put_hevc_qpel_bi_h16_8_neon: 560.5 put_hevc_qpel_bi_h24_8_c: 6015.7 put_hevc_qpel_bi_h24_8_neon: 1636.0 put_hevc_qpel_bi_h32_8_c: 10779.0 put_hevc_qpel_bi_h32_8_neon: 2204.5 put_hevc_qpel_bi_h48_8_c: 24375.0 put_hevc_qpel_bi_h48_8_neon: 4984.0 put_hevc_qpel_bi_h64_8_c: 42768.0 put_hevc_qpel_bi_h64_8_neon: 8795.7 put_hevc_qpel_h4_8_c: 149.0 put_hevc_qpel_h4_8_neon: 55.7 put_hevc_qpel_h6_8_c: 321.2 put_hevc_qpel_h6_8_neon: 106.0 put_hevc_qpel_h8_8_c: 578.7 put_hevc_qpel_h8_8_neon: 133.2 put_hevc_qpel_h12_8_c: 1279.0 put_hevc_qpel_h12_8_neon: 391.7 put_hevc_qpel_h16_8_c: 2286.2 put_hevc_qpel_h16_8_neon: 519.7 put_hevc_qpel_h24_8_c: 5100.7 put_hevc_qpel_h24_8_neon: 1546.2 put_hevc_qpel_h32_8_c: 9022.0 put_hevc_qpel_h32_8_neon: 2060.2 put_hevc_qpel_h48_8_c: 20293.5 put_hevc_qpel_h48_8_neon: 4656.7 put_hevc_qpel_h64_8_c: 36037.0 put_hevc_qpel_h64_8_neon: 8262.7 put_hevc_qpel_uni_h4_8_c: 162.2 put_hevc_qpel_uni_h4_8_neon: 61.7 put_hevc_qpel_uni_h6_8_c: 355.2 put_hevc_qpel_uni_h6_8_neon: 114.2 put_hevc_qpel_uni_h8_8_c: 651.0 put_hevc_qpel_uni_h8_8_neon: 135.7 put_hevc_qpel_uni_h12_8_c: 1412.5 put_hevc_qpel_uni_h12_8_neon: 402.7 put_hevc_qpel_uni_h16_8_c: 2551.0 put_hevc_qpel_uni_h16_8_neon: 533.5 put_hevc_qpel_uni_h24_8_c: 5782.2 put_hevc_qpel_uni_h24_8_neon: 1578.7 put_hevc_qpel_uni_h32_8_c: 10586.5 put_hevc_qpel_uni_h32_8_neon: 2102.2 put_hevc_qpel_uni_h48_8_c: 23812.0 put_hevc_qpel_uni_h48_8_neon: 4739.5 put_hevc_qpel_uni_h64_8_c: 42958.7 put_hevc_qpel_uni_h64_8_neon: 8366.5 Signed-off-by: J. Dekker <jdek@itanimul.li>
-
Andreas Rheinhardt authored
GCC 11 has a bug: When it creates clones of recursive functions (to inline some parameters), it clones a recursive function eight times by default, even when this exceeds the recursion depth. This happens with encode_block() in libavcodec/svq1enc.c where a parameter level is always in the range 0..5; but GCC 11 also creates functions corresponding to level UINT_MAX and UINT_MAX - 1 (on -O3; -O2 is fine). Using such levels would produce undefined behaviour and because of this GCC emits bogus -Warray-bounds warnings for these clones. Since commit d08b2900, certain symbols that are accessed like ff_svq1_inter_multistage_vlc[level] are declared with hidden visibility, which allows compilers to bake the offset implied by level into the instructions if level is a compile-time constant as it is in the clones. Yet this leads to insane offsets for level == UINT_MAX which can be incompatible with the supported offset ranges of relocations. This happens in the small code model (the default code model for AArch64). This commit therefore works around this bug by disabling cloning recursive functions for GCC 10 and 11. GCC 10 is affected by the underlying bug (see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102513), so the workaround also targets it, although it only produces three versions of encode_block(), so it does not seem to trigger the actual issue here. The issue has been mitigated in GCC 12.1 (it no longer creates clones for impossible values; see also commit 1cb7fd31), so the workaround does not target it. Reported-by: J. Dekker <jdek@itanimul.li> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> Signed-off-by: J. Dekker <jdek@itanimul.li>
-
Anton Khirnov authored
It should be input-only to this code.
-
Anton Khirnov authored
The current code will override the *_disable fields (set by -vn/-an options) when creating output streams for unlabeled complex filtergraph outputs, in order to disable automatic mapping for the corresponding media type. However, this will apply not only to automatic mappings, but to manual ones as well, which should not happen. Avoid this by adding local variables that are used only for automatic mappings.
-
Anton Khirnov authored
Makes it easy to see where all the streams are created. Will also be useful in the following commit.
-
Anton Khirnov authored
Specifically recording_time and stop_time - use local variables instead. OptionsContext should be input-only to this code. Will allow making it const in future commits.
-
Anton Khirnov authored
-
Anton Khirnov authored
Use a local variable instead. This will allow making OptionsContext const in future commits.
-
Anton Khirnov authored
This code shares variables like OptionsContext.metadata_*_manual, so it makes sense to group it together.
-
Anton Khirnov authored
Similar to what is done for muxing, may be useful for debugging.
-