Ben Jackson
39a3894ad5
lavc/vp6: Implement "slice" threading for VP6A decode
...
The YUV channels of VP6 are encoded in a highly linear fashion which does
not have any slice-like concept to thread. The alpha channel of VP6A is
fairly independent of the YUV and comprises 40% of the work. This patch
uses the THREAD_SLICE capability to split the YUV and A decodes into
separate threads.
Two bugs are fixed by splitting YUV and alpha state:
- qscale_table from VP6A decode was for alpha channel instead of YUV
- alpha channel filtering settings were overwritten by YUV header parse
Signed-off-by: Ben Jackson <ben@ben.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
12 years ago
Ben Jackson
eebc11ebc8
lavc/vp56: Move golden_frame into VP56Context
...
Makes golden_frame more like other frame data, paves way for threading
alpha channel decode.
Signed-off-by: Ben Jackson <ben@ben.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
12 years ago
Ben Jackson
6e86d6af6b
lavc/vp6: Refactor vp6_decode_init into vp6_decode_init/vp6_decode_init_context
...
Pave the way for per-thread context initialization.
Signed-off-by: Ben Jackson <ben@ben.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
12 years ago
Ben Jackson
de9f5b6853
lavc/vp6: Disable deblock filtering for Simple Profile
...
In vp6 Advanced Profile, deblock filtering is conditionally enabled in
each frame header. In Simple Profile it should always be off. vp6 was
inheriting the wrong default from ff_vp56_init.
Signed-off-by: Ben Jackson <ben@ben.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
12 years ago
Anton Khirnov
36ef5369ee
Replace all CODEC_ID_* with AV_CODEC_ID_*
13 years ago
Martin Storsjö
00c3b67b8a
cosmetics: Align codec declarations
...
Also break some long lines, remove codec function placeholder comments
and add spaces in sample/pixel format lists.
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Alex Converse
3574a85ce5
Replace computations of remaining bits with calls to get_bits_left().
13 years ago
Ronald S. Bultje
8bc396fc0e
vp56: error out on invalid stream dimensions.
...
Prevents crashes when playing corrupt vp5/6 streams.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
13 years ago
Martin Storsjö
d1b357d78b
vp56: Add ff_ prefix to nonstatic symbols
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Martin Storsjö
e96b4a53df
vlc/rl: Add ff_ prefix to the nonstatic symbols
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Thierry Foucu
e0966eb140
vp6: Fix illegal read.
...
Found with Address Sanitizer
Signed-off-by: Alex Converse <alex.converse@gmail.com>
13 years ago
Alex Converse
2a6eb06254
vp6: Fix illegal read.
13 years ago
Laurent Aimar
a72cad0a6c
vp6: Reset the internal state when aborting key frames header parsing
...
It prevents leaving the state only half initialized.
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
13 years ago
Laurent Aimar
066fff755a
vp6: Check for huffman tree build errors
...
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
13 years ago
Laurent Aimar
91f104496b
vp6:Reset the internal state when aborting key frames header parsing in vp6 decoder.
...
It prevents leaving the state only half initialized.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Laurent Aimar
7c249d4fba
Check for huffman tree building error in vp6 decoder.
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Dustin Brody
f913eeea43
vp6: partially propagate huffman tree building errors during coeff model parsing and fix misspelling
...
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
14 years ago
Anton Khirnov
ec6402b7c5
lavc: use designated initialisers for all codecs.
...
It's more readable and less prone to breakage.
14 years ago
Diego Biurrun
6168781f70
doxygen: do not include license boilerplate in Doxygen documentation
14 years ago
Mans Rullgard
2912e87a6c
Replace FFmpeg with Libav in licence headers
...
Signed-off-by: Mans Rullgard <mans@mansr.com>
14 years ago
Diego Elio Pettenò
e7e2df27f8
Add ff_ prefix to data symbols of encoders, decoders, hwaccel, parsers, bsf.
...
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 d36beb3f69
)
14 years ago
Diego Elio Pettenò
d36beb3f69
Add ff_ prefix to data symbols of encoders, decoders, hwaccel, parsers, bsf.
...
None of these symbols should be accessed directly, so declare them as
hidden.
Signed-off-by: Mans Rullgard <mans@mansr.com>
14 years ago
Ronald S. Bultje
3a0885146c
Move vp6_filter_diag4() from DSPContext to VP56DSPContext.
...
Originally committed as revision 24921 to svn://svn.ffmpeg.org/ffmpeg/trunk
15 years ago
Jason Garrett-Glaser
905ef0d064
VP5/6/8: eliminate CABAC dependency
...
Create a custom table for VP5/6/8's renorm to avoid depending on H.264's.
Saves one instruction in the arithmetic decoder as well.
Originally committed as revision 24701 to svn://svn.ffmpeg.org/ffmpeg/trunk
15 years ago
Alex Converse
52fa20542b
Reindent after last commit.
...
Originally committed as revision 24562 to svn://svn.ffmpeg.org/ffmpeg/trunk
15 years ago
Alex Converse
d950497083
ff_prefix non static vp56 functions.
...
Originally committed as revision 24561 to svn://svn.ffmpeg.org/ffmpeg/trunk
15 years ago
Måns Rullgård
796cea09b6
vp6: convert VLA to fixed size
...
Originally committed as revision 23754 to svn://svn.ffmpeg.org/ffmpeg/trunk
15 years ago
Måns Rullgård
5e1ba34bbb
VP56: move vp56_edge_filter to new VP56DSPContext
...
Using macro templates allows the vp[56]_adjust functions to be
inlined instead of called through function pointers. The new
function pointers enable optimised implementations of the filters.
4% faster VP6 decoding on Cortex-A8.
Originally committed as revision 22992 to svn://svn.ffmpeg.org/ffmpeg/trunk
15 years ago
Diego Biurrun
ba87f0801d
Remove explicit filename from Doxygen @file commands.
...
Passing an explicit filename to this command is only necessary if the
documentation in the @file block refers to a file different from the
one the block resides in.
Originally committed as revision 22921 to svn://svn.ffmpeg.org/ffmpeg/trunk
15 years ago
Stefano Sabatini
72415b2adb
Define AVMediaType enum, and use it instead of enum CodecType, which
...
is deprecated and will be dropped at the next major bump.
Originally committed as revision 22735 to svn://svn.ffmpeg.org/ffmpeg/trunk
15 years ago
Aurelien Jacobs
ded2100e48
move vp6 huffman table freeing code, out of common vp56 code
...
Originally committed as revision 22186 to svn://svn.ffmpeg.org/ffmpeg/trunk
15 years ago
Vitor Sessak
0a41faa9a7
Plug some memory leaks in the VP6 decoder
...
Originally committed as revision 22172 to svn://svn.ffmpeg.org/ffmpeg/trunk
15 years ago
Reimar Döffinger
ad92108694
Add a check to vp6_parse_coeff_huffman to ensure it does not overread the input buffer.
...
Originally committed as revision 19349 to svn://svn.ffmpeg.org/ffmpeg/trunk
16 years ago
Stefano Sabatini
9106a698e7
Rename bitstream.h to get_bits.h.
...
Originally committed as revision 18494 to svn://svn.ffmpeg.org/ffmpeg/trunk
16 years ago
Aurelien Jacobs
26f3ae828b
move vp6_filter_diag4() to a new vp6dsp.c file and use it throught dsputil
...
Originally committed as revision 17111 to svn://svn.ffmpeg.org/ffmpeg/trunk
16 years ago
Diego Biurrun
bad5537e2c
Use full internal pathname in doxygen @file directives.
...
Otherwise doxygen complains about ambiguous filenames when files exist
under the same name in different subdirectories.
Originally committed as revision 16912 to svn://svn.ffmpeg.org/ffmpeg/trunk
16 years ago
Aurelien Jacobs
bf73801bec
vp56: don't reset dimensions to 0 in codec init
...
Originally committed as revision 16140 to svn://svn.ffmpeg.org/ffmpeg/trunk
16 years ago
Aurelien Jacobs
d887151d8c
rename Vp56Model to VP56Model for consistency
...
Originally committed as revision 16073 to svn://svn.ffmpeg.org/ffmpeg/trunk
16 years ago
Aurelien Jacobs
3d52bca6bf
avoid POSIX reserved _t suffix
...
Originally committed as revision 16068 to svn://svn.ffmpeg.org/ffmpeg/trunk
16 years ago
Aurelien Jacobs
40056c32df
vp6dec: ensure we don't try to use a buffer with negative size
...
this should never happen in valid vp6 bitstream
fix issue684
Originally committed as revision 15610 to svn://svn.ffmpeg.org/ffmpeg/trunk
16 years ago
Peter Ross
d47f16074f
vp6: ensure that huffman decoding table is sorted with descending symbol order
...
Previous code worked by pure luck with glibc qsort implementation.
patch by Peter Ross pross _at_ xvid _dot_ org
Originally committed as revision 13887 to svn://svn.ffmpeg.org/ffmpeg/trunk
17 years ago
Stefano Sabatini
fe4bf37455
Make AVCodec long_names definition conditional depending on CONFIG_SMALL.
...
Originally committed as revision 13759 to svn://svn.ffmpeg.org/ffmpeg/trunk
17 years ago
Stefano Sabatini
162d4fc99d
Add long names to AVCodec declarations.
...
patch by Stefano Sabatini, stefano.sabatini-lala poste it
Originally committed as revision 13009 to svn://svn.ffmpeg.org/ffmpeg/trunk
17 years ago
Zuxy Meng
98a6fff98c
Apply 'cold' attribute to init/uninit functions in libavcodec
...
Originally committed as revision 12525 to svn://svn.ffmpeg.org/ffmpeg/trunk
17 years ago
Aurelien Jacobs
bac02ed3c5
huffman: pass hnode_first as a flag instead of as an argument on its own
...
Originally committed as revision 12373 to svn://svn.ffmpeg.org/ffmpeg/trunk
17 years ago
Aurelien Jacobs
d37f007d54
remove #include "mpegvideo.h" where it is not needed
...
Originally committed as revision 12321 to svn://svn.ffmpeg.org/ffmpeg/trunk
17 years ago
Michael Niedermayer
7e5cdb5b1b
const
...
Originally committed as revision 11791 to svn://svn.ffmpeg.org/ffmpeg/trunk
17 years ago
Aurelien Jacobs
713b0bffd6
10l: init_get_bits want size in bits, not bytes
...
Originally committed as revision 11099 to svn://svn.ffmpeg.org/ffmpeg/trunk
17 years ago
Aurelien Jacobs
f28b10483a
add support for VP6 with huffman encoded blocks
...
closes issue 104
Originally committed as revision 10737 to svn://svn.ffmpeg.org/ffmpeg/trunk
17 years ago
Aurelien Jacobs
91fc2cf150
add a new vp6a codec (add alpha plan support to vp6)
...
Originally committed as revision 10574 to svn://svn.ffmpeg.org/ffmpeg/trunk
18 years ago