From ~780 cycles to 551 cycles, mostly just by using libc memcpy()
instead of manually shuffling individual bytes around.
(cherry picked from commit e5262ec44a30a9132f0361f775c5b63d20e4e4d5)
This significantly reduces the size of the symbol table in the generated ELF
shared object (as well as the other linked tables).
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit ac28ce5fac2f77891d70c9e49cda65ddb51818b2)
That unbreaks compilation of vaapi and dxva2
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
(cherry picked from commit d1b6f33bf2ce56f013a1c5a013a19671c0f30ea0)
Fix C VP8 H+V MC functions which do two-dimensional 4/6-tap filters to
not overread beyond their edges if the second filter is 4-tap, since
the outer pixels aren't there anymore since
44002d8323023c35f51d523a7d305e45103ba7a1.
(cherry picked from commit 22893e10ae8b72880838accc3df97785502ac6aa)
None of these symbols should be accessed directly, so declare them as
hidden.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit d36beb3f6902b1217beda576aa18abf7eb72b03c)
The iff.h header only declared one function that is now static, the
libavformat/iff.c source file wasn't using it before. Drop the file
entirely.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 2d162e3825a35b6ac42a27d27c4a3ebbd141828d)
It is only used to generate band_start_tab, which about the same size, at
runtime, so it's simpler just to always hardcode band_start_tab.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 24e3ad3031fa26e12d4b939f0ff0dd6e12f05ef5)
The header is empty after making the function static, so delete it and
drop its usage.
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
(cherry picked from commit 13eb6b90977768116c937c5d6b2e074679a3ad21)
Both functions seem to be commanded by the ff_spatial_idwt function
instead.
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
(cherry picked from commit ebb06d96ed3f6e1c16f2d40e55c151b5b5522918)
Do not emulate larger edges than we will actually use for this round of
MC. Decoding goes from avg+SE 29.972+/-0.023sec to 29.856+/-0.023, i.e.
0.12sec or ~0.4% faster.
(cherry picked from commit 44002d8323023c35f51d523a7d305e45103ba7a1)
This fixes compilation broken by 6ed3b504f984dc6cefde8d57a57726f9d30e5033
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 21c900129c268587fa2df774242bfd8af72ff890)
This symbol is only ever used to calculate the non-hardcoded tables, so
only enable it in that case, and static to the source unit that uses it.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 6ed3b504f984dc6cefde8d57a57726f9d30e5033)
1d4da6a460d5b78026e3b854fdd6f469957a054c added static to the
prototypes for these fuctions. Adding it to the definitions
as well.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit aa61e39eac85e26bff0f296b1ec86d4533664adc)
The PCM_DVD encoder would be left unused, as allcodecs.c properly declared
it as being decoder-only, but it would still be built into the object file.
Since there is no block of code to properly encode this PCM format, it's
not a full codec.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 5b5083b5fed1e0b0d8f3c6f2c21bdc915b1226f6)
The dprintf macro is no-op when DEBUG is unset, so there is no need to
put it conditional to DEBUG.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 73a0b19ba39a4aca79a768feeacd83307a62836e)
This ensures a locally-unique name as well as marks the symbol as
FFmpeg-private at least by declaration.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 82e1f217f276b4b3fda1f89a836126275a97ca9b)
The table is not used anywhere else on libavcodec.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 53493f9a8176009fc514c386ee31cafcafc8539a)
With the removal of the libmpeg2 bitstream reader, MIN_CACHE_BITS
is always >= 25, so tests against smaller values can be removed.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit f162e988aa0dc8df93079b5ebf452ec281ab8793)
These whitespace changes improve the readability of the get_bits
macros.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit fb5c841d5f05ae54b699ba6ef28356a6563751eb)
Some of the macros in get_bits.h include a final semicolon,
some do not. This removes these or adds do {} while(0) around
the macros as appropriate and adds semicolons where needed in
calling code.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit bf5f9b528b4117596afc57578a36e7b5728b15d3)
Using the libmpeg2 reader causes errors in a multitude of places,
including MPEG and H264 codecs. As the advantage of this reader
is questionable, removing it seems the sensible course of action,
especially considering the simplifications this allows elsewhere
with the bit cache size increasing from 17 to 25 bits as minimum.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 938f72e19957e9ee3f4ae2bee2fb53ded359009f)