1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-12 19:18:44 +02:00
Commit Graph

15386 Commits

Author SHA1 Message Date
Michael Niedermayer
9fb7a5af97 ws_snd1: Fix wrong samples counts.
This makes the check that avoids overwrite of the samples array actually
work properly.

fixes CVE-2012-0848
CC: libav-stable@libav.org

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-16 15:18:45 -05:00
Ronald S. Bultje
c6643fddba golomb: avoid infinite loop on all-zero input (or end of buffer).
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-16 08:36:08 -08:00
Justin Ruggles
f320fb894c bethsoftvid: pass palette in side data instead of in a separate packet.
Update FATE reference to account for now non-existent palette packet.
This also fixes the FATE test if frame data is not initialized in
get_buffer(), so update comment in avconv accordingly.
2012-02-16 10:47:11 -05:00
Kostya Shishkov
17b11ffec7 proresenc: initialise 'sign' variable 2012-02-16 06:48:24 +01:00
Christophe GISQUET
f3e084909b mpegaudio: replace memcpy by SIMD code
By replacing memcpy with an unrolled loop using the alignment knowledge
it has, some speedup can be obtained.

Before (gcc 4.6.1): ~400 cycles
After: ~370 cycles

Overall, around 2% speed increase when decoding a 2400s mp3 to f32le.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-15 20:11:54 -08:00
Ronald S. Bultje
ae591aeea5 vc1: prevent using last_frame as a reference for I/P first frame.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-15 19:58:10 -08:00
Martin Storsjö
210f72845c ppc: Add ff_ prefix to nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:07:29 +02:00
Martin Storsjö
f73673a770 sh4: Add ff_ prefix to nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:07:26 +02:00
Martin Storsjö
efd29844eb mpegvideo: Add ff_ prefix to nonstatic functions
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:07:23 +02:00
Martin Storsjö
0ca1bdb37d rtjpeg: Add ff_ prefix to nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:07:20 +02:00
Martin Storsjö
6c28d65754 rv: Add ff_ prefix to nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:07:17 +02:00
Martin Storsjö
d1b357d78b vp56: Add ff_ prefix to nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:07:14 +02:00
Martin Storsjö
27cfdc3e4f vorbis: Add ff_ prefix to nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:07:11 +02:00
Martin Storsjö
04d3822524 msmpeg4: Add ff_ prefix to nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:07:08 +02:00
Martin Storsjö
5f2c159c0f vc1: Add ff_ prefix to nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:07:05 +02:00
Martin Storsjö
1fec055066 msmpeg4: Add ff_ prefixes to nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:07:01 +02:00
Martin Storsjö
35e02a3d0e snow: Add ff_ prefix to nonstatic symbols
This allows getting rid of a hack for conflicting symbol/define
names.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:58 +02:00
Martin Storsjö
d6c8dcb8ac mpeg12: Add ff_ prefix to nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:56 +02:00
Martin Storsjö
6f13a371ec mpeg4: Add ff_ prefixes to nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:52 +02:00
Martin Storsjö
e9ca85e714 lagarith: Add ff_ prefix to lag_rac_init
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:49 +02:00
Martin Storsjö
c8e1b2fbc9 libavcodec: Add ff_ prefix to j_rev_dct*
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:46 +02:00
Martin Storsjö
873c89e2a6 dsputil: Add ff_ prefix to inv_zigzag_direct16
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:42 +02:00
Martin Storsjö
3e2efacdd8 libavcodec: Prefix fdct_ifast, fdct_ifast248
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:38 +02:00
Martin Storsjö
9cf0841ef3 dsputil: Add ff_ prefix to the dsputil*_init* functions
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:34 +02:00
Martin Storsjö
99560a4caa libavcodec: Add ff_ prefix to some nonstatic symbols
Prefix the functions atrac_generate_tables, atrac_iqmf, dct_quantize_c.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:29 +02:00
Martin Storsjö
e96b4a53df vlc/rl: Add ff_ prefix to the nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:26 +02:00
Martin Storsjö
ddce8953a5 h263: Add ff_ prefix to nonstatic symbols
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:22 +02:00
Martin Storsjö
a082ac4125 mpegvideo: Remove a leftover function declaration
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-15 22:06:12 +02:00
Kostya Shishkov
1a265f6187 prores encoder 2012-02-15 07:14:51 +01:00
Kostya Shishkov
8835c2c829 prores: move data shared between decoder and encoder to common file 2012-02-15 07:14:45 +01:00
Kostya Shishkov
3ec623c22f prores: fix multithreaded decoding case when slice quantisers are not the same
Since quantisation matrices are stored in context, decoding slices with
different quantisers in parallel leads to unpredictable content of
aforementioned matrices and wrong output picture thereof.
2012-02-15 07:14:35 +01:00
Paul B Mahol
dc4e57489f CDXL demuxer and decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-14 22:32:53 +01:00
Janne Grunau
18d1d5886b rv30: check block type validity
Prevents crashes with the fuzzed samples from bugs 88, 89 and 125 after
"golomb: avoid infinite loop on all-zero input".
2012-02-14 19:03:10 +01:00
Paul B Mahol
2af3dc8698 ttadec: CRC checking
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-14 13:00:55 -05:00
Janne Grunau
2bd730010d rv34: handle size changes during frame multithreading
Factors all context dynamic memory handling to its own functions.
Fixes bug 220.
2012-02-14 14:46:11 +01:00
Janne Grunau
b54b40b33c rv40: prevent undefined signed overflow in rv40_loop_filter() 2012-02-14 14:42:55 +01:00
Janne Grunau
29330721b0 rv34: use AVERROR return values in ff_rv34_decode_frame()
Also adds an error message.
2012-02-14 14:42:55 +01:00
Janne Grunau
bf61ef2316 rv34: use uint16_t for RV34DecContext.deblock_coefs
It is used as bitfield with 16 entries.
2012-02-14 14:42:55 +01:00
Diego Biurrun
a8798c7eb9 Drop unnecessary av_uninit attributes from some variable declarations.
Recent versions of gcc (4.4+) no longer give false positive warnings.
2012-02-13 19:20:52 +01:00
Diego Biurrun
0bf184e59c Move PS2 MMI code below the mips subdirectory, where it belongs.
Also give a more suitable name to the MMI-optimized IDCT;
it is not PS2-specific, as the name currently suggests.
2012-02-13 09:59:53 +01:00
Diego Biurrun
75f11901b5 mips: Move MMI function declarations to a header.
This fixes compilation with -Werror=missing-prototypes.
2012-02-13 09:59:52 +01:00
Anton Khirnov
3dffa1b46c cljr: implement encode2. 2012-02-12 08:05:57 +01:00
Anton Khirnov
177bb4bf50 cljr: set the properties of the coded_frame, not input frame. 2012-02-12 08:05:38 +01:00
Anton Khirnov
89829242a6 dnxhdenc: switch to encode2. 2012-02-12 08:03:46 +01:00
Anton Khirnov
3f77c41171 bmpenc: switch to encode2(). 2012-02-12 08:02:28 +01:00
Aneesh Dogra
41afdd913a sunrast: Return AVERROR values instead of -1.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-11 13:32:29 -08:00
Aneesh Dogra
4fbccfab23 sunrast: Add support for gray8 decoding.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-11 11:05:43 -08:00
Justin Ruggles
764852d653 alacenc: use AVCodec.encode2() 2012-02-11 12:49:23 -05:00
Justin Ruggles
bee80054f7 alacenc: cosmetics: indentation 2012-02-11 12:49:22 -05:00
Justin Ruggles
b6e8ff72ea alacenc: consolidate bitstream writing into a single function.
Simplifies use of verbatim mode.
2012-02-11 12:49:22 -05:00
Justin Ruggles
b590f3a7bf alacenc: only encode frame size in header for a final smaller frame
Otherwise it is not needed because it matches the frame size as encoded in
the extradata.
2012-02-11 12:49:22 -05:00
Justin Ruggles
ba821b098b alacenc: store current frame size in AlacEncodeContext.
This avoids an indirection and will simplify implementation of encode2()
2012-02-11 12:49:22 -05:00
Justin Ruggles
65d15aec77 alacenc: return AVERROR codes in alac_encode_frame() 2012-02-11 12:49:22 -05:00
Justin Ruggles
302daf5800 alacenc: calculate a new max frame size for the final small frame
Gives a better estimate of buffer requirements and a better decision of
whether or not to use verbatim mode.
2012-02-11 12:49:22 -05:00
Justin Ruggles
fc9cf0b2a6 alacenc: pretty-printing and other cosmetics 2012-02-11 12:49:22 -05:00
Justin Ruggles
51c2483862 alacenc: fix error handling and potential memleaks in alac_encode_init() 2012-02-11 12:49:22 -05:00
Justin Ruggles
6e63228323 alacenc: do not set coded_frame->key_frame
It is already set in avcodec_alloc_frame()
2012-02-11 12:49:21 -05:00
Justin Ruggles
64fe3eaeb3 alacenc: do not set bits_per_coded_sample
encoded ALAC does not have a fixed number of bits per sample
2012-02-11 12:49:21 -05:00
Justin Ruggles
43a4cb070b alacenc: remove unneeded frame_size check in alac_encode_frame() 2012-02-11 12:49:21 -05:00
Ronald S. Bultje
7416d61036 tta: error out if samplerate is zero.
Prevents a division by zero later on.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-11 08:13:53 -08:00
Justin Ruggles
6ab681a4c1 ttadec: fix invalid free when an error occurs while decoding 24-bit tta 2012-02-10 20:35:10 -05:00
Justin Ruggles
9d7cee50aa wavpack: add needed braces for 2 statements inside an if block 2012-02-10 20:27:55 -05:00
Paul B Mahol
f98ede7e61 v210enc: remove redundant check for pix_fmt
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-10 15:59:23 -05:00
Paul B Mahol
c388558d31 wavpack: allow user to disable CRC checking
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-10 15:54:08 -05:00
Aneesh Dogra
eeb9e61a51 v210enc: Use Bytestream2 functions
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-10 15:38:24 -05:00
Paul B Mahol
dcd2b55e1a Check AVCodec.pix_fmts in avcodec_open2()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-10 13:24:37 -05:00
Alex Converse
9e1db721c4 svq3: Prevent illegal reads while parsing extradata.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-02-10 09:57:39 -08:00
Rafaël Carré
b24aaabd44 remove ParseContext1
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-10 15:48:52 +01:00
Rafaël Carré
797639dcfd vc1: use ff_parse_close
It works as long as ParseContext is the first member of the private struct

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-10 15:48:52 +01:00
Rafaël Carré
07554ace70 mpegvideo parser: move specific fields into private context
This obviates using ParseContext1, which is slated for removal.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-10 15:48:51 +01:00
Rafaël Carré
e40924887a mpeg4video parser: move specific fields into private context
This obviates using ParseContext1, which is slated for removal.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-10 15:48:51 +01:00
Rafaël Carré
53a09964f0 cavs parser: fix parser context type
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-10 15:48:51 +01:00
Yordan Makariev
0c5d78a898 4xm, timefilter: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-10 15:48:50 +01:00
Ronald S. Bultje
45b7bd7c53 h264: disallow constrained intra prediction modes for luma.
Conversion of the luma intra prediction mode to one of the constrained
("alzheimer") ones can happen by crafting special bitstreams, causing
a crash because we'll call a NULL function pointer for 16x16 block intra
prediction, since constrained intra prediction functions are only
implemented for chroma (8x8 blocks).

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-09 22:57:01 -08:00
Alex Converse
81749f30cd dv: Move tables from dvdata.h to dvdata.c 2012-02-09 19:16:15 -08:00
Alex Converse
8dbdc2d840 dv: Move a table used only by the demuxer out of a shared header. 2012-02-09 19:16:15 -08:00
Alex Converse
89c9a8d3fd dv: Move functions used only by the encoder out of a shared header. 2012-02-09 19:16:15 -08:00
Alex Converse
3746072712 dv: Split dvdata.h into dvdata.h and dvquant.h 2012-02-09 19:16:15 -08:00
Justin Ruggles
b758cf7343 avcodec: set avpkt->size to 0 if encode2() did not output a packet 2012-02-09 21:51:41 -05:00
Justin Ruggles
a75bc764ec avcodec: for audio encoding, set packet dts to packet pts.
There are no audio encoders which do frame reordering.
2012-02-09 21:51:29 -05:00
Justin Ruggles
d483bb58c3 ac3dsp: do not use pshufb in ac3_extract_exponents_ssse3()
We need to do unsigned saturation in order to cover the corner case when the
absolute coefficient value is 16777215 (the maximum value).

Fixes Bug #216
2012-02-09 21:04:44 -05:00
Michael Niedermayer
e6d9fa66f1 ac3dec: Move center and surround mix level tables to the parser.
That way all mix levels as exported by avpriv_ac3_parse_header()
will have the same meaning.

Previously the 3-bit center mix level for E-AC-3 was used to index in a
4-entry table, leading to out-of-array reads.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-02-09 16:36:02 -08:00
Alex Converse
7b05025856 aacdec: Unify preconfigured layout and PCE layout. 2012-02-09 13:33:07 -08:00
Alex Converse
f1ecd0802d aacdec: Support native channel layout when requested. 2012-02-09 13:33:07 -08:00
Alex Converse
37bed6ff3f aacdec: Try to sniff a reasonable channel layout for PCE based configurations.
This changes the output order of multichannel PCE based streams.
2012-02-09 13:33:06 -08:00
Martin Storsjö
e7d4a2a721 libavcodec: Don't do av_free(av_malloc(0)) for bitstream filters
This fixes crashes on exit when closing a bitstream filter that
hasn't allocated any private data, on OS X.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-09 23:13:50 +02:00
Janne Grunau
c57fe49da8 eac3dec: replace undefined 1<<31 with INT32_MIN in noise generation 2012-02-09 21:28:37 +01:00
Ronald S. Bultje
73e15e8e6b prores: specify array size outside DECLARE_ALIGNED brackets. 2012-02-09 11:07:12 -08:00
Paul B Mahol
9aff2d1753 tta: use skip_bits_long()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-09 17:10:26 +01:00
Diego Biurrun
f769cfedd8 build: Add missing directories to DIRS declarations. 2012-02-09 12:26:48 +01:00
Diego Biurrun
aa06d65693 arm: Add missing #include to vp8.h to fix a make checkheaders warning. 2012-02-09 12:26:47 +01:00
Diego Biurrun
0bba26466f cosmetics: Delete empty lines at end of file. 2012-02-09 12:26:45 +01:00
Aneesh Dogra
ab9ae40152 bytestream: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 11:37:14 +01:00
Anton Khirnov
cd1ad18a65 rawenc: switch to encode2().
This changes a number of FATE results, since before this commit, the
timestamps in all tests using rawenc were made up by lavf.

In most cases, the previous timestamps were completely bogus.

In some other cases -- raw formats, mostly h264 -- the new timestamps
are bogus as well. The only difference is that timestamps invented by
the muxer are replaced by timestamps invented by the demuxer.

cscd     -- avconv sets output codec timebase from r_frame_rate
and r_frame_rate is in this case some guessed number 31.42 (377/12),
which is not accurate enough to represent all timestamps. This results
in some frames having duplicate pts. Therefore, vsync 0 needs to be
changed to vsync 2 and avconv drops two frames. A proper fix in the
future would be to set output timebase to something saner in avconv.

nuv      -- previous timestamps for video were wrong AND the cscd
comment applies, one frame is dropped.

vp8-signbias -- the file contains two frames with identical timestamps,
so -vsync 0 needs to be removed/changed to -vsync 2 and avconv drops one
frame.

vc1-ism -- apparrently either the demuxer lies about timestamps or the
file is broken, since dts == pts on all packets, but reordering clearly
takes place.
2012-02-08 21:51:24 +01:00
Anton Khirnov
38d5533228 pixdesc: mark pseudopaletted formats with a special flag.
This makes it possible to dintinguish them from PAL8.

Fixes an invalid write in avpicture_layout().
2012-02-08 21:01:31 +01:00
Anton Khirnov
06484d0b8a libx264: implement encode2(). 2012-02-08 20:59:07 +01:00
Anton Khirnov
05d699222d libx264: split extradata writing out of encode_nals().
This is done in preparation for the following patch.
2012-02-08 20:58:48 +01:00
Anton Khirnov
52f82a1148 lavc: add avcodec_encode_video2() that encodes from an AVFrame -> AVPacket
Deprecate avcodec_encode_video().
2012-02-08 20:54:24 +01:00
Ronald S. Bultje
ce1e250ee9 h264: manually save/restore XMM registers for functions using INIT_MMX.
On Win64, these registers are callee-save, so not saving/restoring them
correctly is a violation of ABI and can lead to crashes or corrupt data.
2012-02-08 10:31:14 -08:00
Alex Converse
314af0ff94 aacdec: Use correct speaker order for 7.1.
The spec says the following speaker mapping is default:
center front speaker
left, right center front speakers,
left, right outside front speakers,
left surround, right surround rear speakers,
front low frequency effects speaker
2012-02-08 09:56:37 -08:00