Allow more of the cabac functions to be overridden and avoid generating any
code for unwanted refill functions.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
When refilling the low bit buffer after get_cabac count the bits with ctz
if the processor has a fast version.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Ensure that cabac init sets the bitstream pointer to an even value.
It is often faster to load from an aligned boundry
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Add names for recently added enums to av_frame_side_data_name.
Signed-off-by: Neil Birkbeck <neil.birkbeck@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Previously the full source path was embedded inconsistently in the debug
information between in-tree/out-of-tree builds.
The 'vpath %.inc' becomes necessary for finding
libavfilter/all_channel_layouts.inc in out-of-tree builds.
The full source path is still embedded in the debug information, but
it's now independent of whether building in-tree or out-of-tree.
The biggest improvement of this patch is that gdb now always searches
for the path relative to the source directory. It still also searches
for the full path.
Previously it searched only for the full path in out-of-tree builds,
making the debug information generated by Debian's buildds rather hard
to use.
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Some debuggers/profilers use this metadata to determine which function a
given instruction is in; without it they get can confused by local labels
(if you haven't stripped those). On the other hand, some tools are still
confused even with this metadata. e.g. this fixes `gdb`, but not `perf`.
Currently only implemented for ELF.
The REP_RET workaround is only needed on old AMD cpus, and the labels clutter
up the symbol table and confuse debugging/profiling tools, so use EQU to
create SHN_ABS symbols instead of creating local labels. Furthermore, skip
the workaround completely in functions that definitely won't run on such cpus.
Note that EQU is just creating a local label when using nasm instead of yasm.
This is probably a bug, but at least it doesn't break anything.
When allocating stack space with a larger alignment than the known stack
alignment a temporary register is used for storing the stack pointer.
Ensure that this isn't one of the registers used for passing arguments.
* Correctly handle FMA instructions with memory operands.
* Print a warning if FMA instructions are used without the correct cpuflag.
* Simplify the instantiation code.
* Clarify documentation.
Only the last operand in FMA3 instructions can be a memory operand. When
converting FMA4 instructions to FMA3 instructions we can utilize the fact
that multiply is a commutative operation and reorder operands if necessary
to ensure that a memory operand is used only as the last operand.
The b_frame_strategy option is only used by mpegvideoenc, qsv, x264, and
xavs, while b_sensitivity is only used by mpegvideoenc.
These are very codec-specific options, so deprecate the global variants.
Set proper limits to the maximum allowed values.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
It seems to miscompile them
Should fix fate-ra-288 and fate-twinvq
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
The version structure in the main decoder context was not (and
apparently has never been) populated since it was added.
Still, having VC-2 break the existing Dirac Low Delay mode was odd and
easily avoidable had the specifications authors noticed/cared.
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
The parser scans for "BBCD" to appear in the bitstream which indicate a
parse info header and once that happens, checks if the parse offsets are
sane. Since random BBCD strings might appear in the bitstream the parser
will emit a pointless warning if that happens.
This commit improves parsing by checking for a valid parse code as well
as keeping the original checks for valid parse offsets. The warnings
were removed as they serve no real purpose.
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
The DSP lacked a function needed to convert signed to unsigned. This was
ignored when originally adding support and templating for bit depths
greater than 8. The 10 bit function was used for 12 bit pictures and
resulted in an improper conversion.
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
This feature is mostly only used by NLE software, and is
both of dubious value being enabled by default, and a
possible security risk.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Before this patch trying to enable only https by issuing
--disable-protocols --enable-protocol=https --enable-gnutls
does not enable https, and
--disable-all --enable-protocols
does not enable libavformat and the protocols component.
Now the default-enabled options are set after the explicitly
disabled/enabled options are evaluated.
If an explicitly enabled option cannot be enabled configure
will fail printing an error message.