Commit Graph

15681 Commits

Author SHA1 Message Date
Anton Khirnov
1e742ea3c8 targaenc: don't modify input frame.
Set the pict_type/key_frame properties on the coded picture.
2012-02-20 07:50:44 +01:00
Anton Khirnov
3227770092 roqvideoenc: switch to encode2(). 2012-02-20 07:50:44 +01:00
Anton Khirnov
4fd7cfef0b roqvideoenc: add const qualifier to the input frame. 2012-02-20 07:50:44 +01:00
Anton Khirnov
1ea5755046 pnmenc: switch to encode2(). 2012-02-20 07:50:44 +01:00
Anton Khirnov
bc9c70e5a3 huffyuv: switch to encode2(). 2012-02-20 07:50:44 +01:00
Anton Khirnov
2abee9be82 v410enc: switch to encode2(). 2012-02-20 07:50:44 +01:00
Anton Khirnov
11505f39e1 zmbvenc: switch to encode2(). 2012-02-20 07:50:44 +01:00
Anton Khirnov
8c8c7b5e37 zmbvenc: move header writing to the end of encode_frame().
This makes switching to encode2() simpler, because it allows us to know
exactly how large should the output buffer be before we start writing
into it.
2012-02-20 07:50:44 +01:00
Ronald S. Bultje
8fb26950ed h264: don't use redzone in loopfilter on win64.
Red zone usage is not allowed in the Win64 ABI.
2012-02-19 15:31:03 -08:00
Luca Barbato
aac63cef20 examples: unbreak compilation
Update api so it will compile again.
2012-02-19 19:10:28 +01:00
Paul B Mahol
e04ca1d4ce ttadec: cosmetics: reindent
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-19 13:04:10 -05:00
Aneesh Dogra
566df2eea2 sunrast: use RLE trigger macro inplace of the hard coded value.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-19 15:55:57 +01:00
Aneesh Dogra
1a58daed0f sunrastenc: set keyframe flag for the output packet.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-19 15:54:27 +01:00
Anton Khirnov
445a7d48b1 mpegvideo_enc: switch to encode2(). 2012-02-19 08:26:30 +01:00
Anton Khirnov
5455384219 mpegvideo_enc: force encoding delay of at least 1 frame when low_delay=0
This allows the following commit to extrapolate better dts for the first
frame. Pts difference between the first two frames is reused as the
difference between pts and dts of the first frame.
2012-02-19 08:22:48 +01:00
Kostya Shishkov
6d702dc072 proresenc: force bitrate not to exceed given limit
Apple ProRes Format Specifications mentions target data size for every frame,
so make sure frame meets it. This also allows encoder to demand much smaller
packet sizes for output.
2012-02-18 18:34:01 +01:00
Ronald S. Bultje
c742ab4e81 vc1parse: call vc1_init_common().
The parser uses VLC tables initialized in vc1_common_init(), therefore
we should call this function on parser init also.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-18 09:16:39 -08:00
Ronald S. Bultje
9d3050d3e9 wma: don't return 0 on invalid packets.
Return 0 means "please return the same data again", i.e. it causes an
infinite loop. Instead, return an error.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-18 09:13:38 -08:00
Ronald S. Bultje
74699ac8c8 mjpegb: don't return 0 at the end of frame decoding.
Return 0 indicates "please return the same data again", i.e. it causes
an infinite loop. Instead, return that we consumed the buffer if we
finished decoding succesfully, or return an error if an error occurred.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-18 08:41:45 -08:00
Ronald S. Bultje
b1af4e9c27 vp8dsp: split long line.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-18 02:32:09 +02:00
Alex Converse
ce7aee9b73 dpcm: ignore extra unpaired bytes in stereo streams.
Fixes: CVE-2011-3951

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-02-17 15:42:23 -08:00
Ronald S. Bultje
3e13005cac mp3on4: require a minimum framesize.
If bufsize < headersize, init_get_bits() will be called with a negative
number, causing it to fail and any subsequent call to get_bits() will
crash because it reads from a NULL pointer.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-17 15:32:23 -08:00
Ronald S. Bultje
c0994e39d7 mpc7: assign an error level + context to av_log() msg. 2012-02-17 15:28:35 -08:00
Ronald S. Bultje
84c202cc37 huffyuv: error out on bit overrun.
On EOF, get_bits() will continuously return 0, causing an infinite
loop.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-17 15:23:20 -08:00
Martin Storsjö
0733375059 dct-test: Add the missing ff_ prefix to the altivec functions
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-18 00:22:25 +02:00
Martin Storsjö
89baf35996 dct-test: Remove a stray declaration of a nonexistent function
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-18 00:22:24 +02:00
Ronald S. Bultje
af468015d9 als: prevent infinite loop in zero_remaining().
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-17 12:35:08 -08:00
Ronald S. Bultje
941fc1ea1e cook: prevent div-by-zero if channels is zero.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-17 12:35:07 -08:00
Anton Khirnov
e9b380a7a5 pamenc: switch to encode2(). 2012-02-17 20:46:37 +01:00
Anton Khirnov
3cc77ded4f svq1enc: switch to encode2(). 2012-02-17 20:46:37 +01:00
Anton Khirnov
6a047213ac dvenc: switch to encode2(). 2012-02-17 20:46:37 +01:00
Anton Khirnov
b3566a6a39 dpxenc: switch to encode2(). 2012-02-17 20:46:37 +01:00
Anton Khirnov
83c7fe3245 pngenc: switch to encode2(). 2012-02-17 20:46:37 +01:00
Anton Khirnov
ab3a410cf0 v210enc: switch to encode2(). 2012-02-17 20:46:37 +01:00
Anton Khirnov
f0366fec56 xwdenc: switch to encode2(). 2012-02-17 20:46:37 +01:00
Justin Ruggles
f2a4559c77 ttadec: use branchless unsigned-to-signed unfolding 2012-02-17 14:35:35 -05:00
Aneesh Dogra
d7840529b6 avcodec: add a Sun Rasterfile encoder
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-17 14:28:56 -05:00
Aneesh Dogra
1f1fbcfa71 sunrast: Move common defines to a new header file.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-17 14:23:40 -05:00
Paul B Mahol
b5c626fdf3 cdxl: fix video decoding for some files
Width is padded for ham encodings too.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-17 14:20:18 -05:00
Paul B Mahol
323b9da969 ttadec: remove dead code
The unused code being removed is for encoding only and therefore is not needed
by the decoder.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-17 13:38:09 -05:00
Kostya Shishkov
5d9ad5425f prores: initialise encoder and decoder parts only when needed 2012-02-17 14:11:48 +01:00
Ronald S. Bultje
52e4018be4 flac: fix infinite loops on all-zero input or end-of-stream.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-16 17:08:29 -08:00
Ronald S. Bultje
b4027d9749 wmapro: change max. block size to 13 bits.
WMApro actually support 13-bits block sizes (potentially even up to 14),
and thus we should support that also. If we get block sizes beyond what
the decoder can handle (14 is possible depending on s->decode_flags),
error out instead of crashing.
2012-02-16 16:15:36 -08:00
Michael Niedermayer
204cb29b3c shorten: Use separate pointers for the allocated memory for decoded samples.
Fixes invalid free() if any of the buffers are not allocated due to either
not decoding a header or an error prior to allocating all buffers.

Fixes CVE-2012-0858
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
Michael Niedermayer
c509f4f747 atrac3: Fix crash in tonal component decoding.
Add a check to avoid writing past the end of the channel_unit.components[]
array.

Bug Found by: cosminamironesei
Fixes CVE-2012-0853
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
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
Alex Converse
8ece266213 aacdec: Remove incorrect comment.
It was only correct when element ids met very specific criteria.
2012-02-08 09:56:37 -08:00
Alex Converse
e600a1e44a aacdec: Simplify output configuration. 2012-02-08 09:56:37 -08:00
Diego Biurrun
0144fe6995 Remove Sun medialib glue code.
It is obscure, most likely unused and not bit-exact compared to
libavcodec due to a different IDCT transform algorithm.
2012-02-08 08:52:30 +01:00
Ronald S. Bultje
9b027c0d07 dsputil: set STRIDE_ALIGN to 16 for x86 also.
This fixes crashes in e.g. PNG decoding with SSE2 enabled. In fact, many
x86 optimizations for codecs assume that our buffer strides are 16-byte
aligned.
2012-02-07 14:54:46 -08:00
Ronald S. Bultje
4ff6dea390 pngdsp: swap argument inversion. 2012-02-07 14:32:26 -08:00
Michael Kostylev
3206cccc0e h264: mark h264_idct_add8_10 with number of XMM registers.
This fixes XMM register clobber problems on Win64.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-07 11:37:13 -08:00
Ronald S. Bultje
fb90785e98 vp8: always update next_framep[] before returning from decode_frame().
Also slightly move around code not allocate a new frame if we won't
decode it. This prevents us from putting undecoded frames in frame
pointers, which (in mt decoding) other threads will use and wait on
as references, causing a deadlock (if we skipped decoding) or a crash
(if we didn't initialized next_framep[] at all).

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-02-07 11:29:02 -08:00
Justin Ruggles
37390d5cca apedec: allow the user to set the maximum number of output samples per call
It makes sense in some cases to split up the output packet to save on memory
usage (ape frames can be very large), but the current/default size is
arbitrary. Allowing the user to configure this gives more flexibility and
requires minimal additional code.
2012-02-07 10:01:15 -05:00
Justin Ruggles
39575eead2 apedec: do not unnecessarily zero output samples for mono frames 2012-02-07 10:01:15 -05:00
Justin Ruggles
1d3c672d27 apedec: allocate a single flat buffer for decoded samples
This will allow the decoder to return samples for the full packet, and it also
makes the decoded buffer pointers aligned.
2012-02-07 10:01:14 -05:00
Justin Ruggles
32c61400c0 apedec: use sizeof(field) instead of sizeof(type) 2012-02-07 10:01:14 -05:00
Aneesh Dogra
db7d45237a bytestream: Add bytestream2 writing API.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-06 18:56:13 -05:00
Paul B Mahol
d016d3074c Revert "v210enc: use FFALIGN()"
FFALIGN doesn't work with non-powers-of-2.

This reverts commit 7ad1b612c8.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-06 19:57:52 +01:00
Diego Biurrun
32f3c541bc doxygen: Do not include license boilerplates in Doxygen comment blocks. 2012-02-06 19:39:24 +01:00
Kieran Kunhya
9814974d2e avcodec: Clarify AVFrame member documentation.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-06 18:08:08 +01:00
Paul B Mahol
3cc0353f8d v210dec: check for coded_frame allocation failure
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-06 08:00:31 +01:00
Paul B Mahol
986c1c483b v210enc: use stride as it is already calculated
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-06 08:00:23 +01:00
Paul B Mahol
7ad1b612c8 v210enc: use FFALIGN()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-06 08:00:15 +01:00
Paul B Mahol
b5f50da593 v210enc: return proper AVERROR codes instead of -1
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-06 07:59:47 +01:00
Paul B Mahol
66fa2a1fb3 v210enc: do not set coded_frame->key_frame
It is already set in avcodec_alloc_frame().

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-06 07:59:24 +01:00
Paul B Mahol
d73466f841 v210enc: check for coded_frame allocation failure
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-06 07:59:16 +01:00
Paul B Mahol
b60620bf7e apedec: 8bit and 24bit support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-04 14:03:20 -05:00
Justin Ruggles
6f1a5e8d6b dsputil: remove debug message in dsputil_init().
AVCodecContext.bits_per_raw_sample is used for audio too, and values other
than 8, 9, and 10 are valid.
2012-02-03 16:00:30 -05:00
Justin Ruggles
22c0babbb2 apedec: remove unneeded #include of get_bits.h and associated macro 2012-02-02 21:07:01 -05:00
Justin Ruggles
e4169612a1 apedec: av_fast_malloc() instead of av_realloc()
av_realloc() does not guarantee alignment, which is required for
DSPContext.bswap_buf().
2012-02-02 21:07:01 -05:00
Justin Ruggles
0759c8eb10 apedec: fix handling of packet sizes that are not a multiple of 4 bytes 2012-02-02 21:07:01 -05:00
Anton Khirnov
e15e2a6d2a libx264: fix indentation. 2012-02-02 22:23:17 +01:00
Ronald S. Bultje
24947d4988 vorbis: fix overflows in floor1[] vector and inverse db table index. 2012-02-02 12:05:08 -08:00
Ronald S. Bultje
7e4d9d5d45 win64: add a XMM clobber test configure option.
This will be useful to test more aggressively for failures to mark XMM
registers as clobbered in Win64 builds, and prevent regressions thereof.

Based on a patch by Ramiro Polla <ramiro.polla@gmail.com>
2012-02-02 12:00:48 -08:00
Mans Rullgard
cd2f98f365 ARM: ac3: fix ac3_bit_alloc_calc_bap_armv6
This function was broken when the start bin was not at the start
of a band.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-02-02 18:50:42 +00:00
Piotr Bandurski
3f57bde1f2 frwu: lowercase the FRWU codec name
This is more consistent with all the other codec names.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-02 18:44:52 +01:00
Paul B Mahol
38c6bbc118 ra144enc: drop pointless "encoder" from .long_name
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-01 20:17:25 -05:00
Justin Ruggles
c3a06615bd bethsoftvideo: fix palette reading.
Return the correct number of consumed bytes and set *data_size = 0.
Returned size is 1 too small, leading to that 1 byte being read as the next
frame, which results in an extra blank frame at the beginning of the stream.
2012-02-01 19:41:39 -05:00
Justin Ruggles
83ce51cc7d mpc7: use av_fast_padded_malloc()
Avoids doing malloc/free for each frame.
Also fixes valgrind errors due to use of uninitialized padding bytes.

Based on a patch by Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-01 19:35:59 -05:00
Justin Ruggles
b5b825c381 mpc7: simplify handling of packet sizes that are not a multiple of 4 bytes 2012-02-01 19:35:59 -05:00
Justin Ruggles
236a550c3f Fix a typo in the x86 asm version of ff_vector_clip_int32()
Specifies the correct number of xmm registers used so that they can be saved
and restored on Win64 if necessary.
2012-02-01 19:02:32 -05:00
Justin Ruggles
3c432631e9 pcmenc: Do not set avpkt->size.
It is already the correct size as set by ff_alloc_packet().
2012-02-01 16:33:27 -05:00
Justin Ruggles
1a670973a7 ff_alloc_packet: modify the size of the packet to match the requested size
This will simplify encoders which use this function to request the exact
packet size rather than the maximum size.
2012-02-01 16:33:27 -05:00
Paul B Mahol
5ff88020ac frwu: Employ more meaningful return values.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-01 16:17:47 -05:00
Reimar Döffinger
f54ae2f8e7 fraps: Use av_fast_padded_malloc() instead of av_realloc()
Ensures alignment and avoids using uninitialized data.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-01 14:37:47 -05:00
Reimar Döffinger
0880503fbb mjpegdec: use av_fast_padded_malloc()
also check for allocation failure

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-01 14:37:47 -05:00
Reimar Döffinger
2f4b9021a1 eatqi: use av_fast_padded_malloc()
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-01 14:37:47 -05:00
Reimar Döffinger
00db4d4ad5 asv1: use av_fast_padded_malloc()
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-01 14:37:46 -05:00
Janne Grunau
316fc7443b avcodec: Add av_fast_padded_malloc().
Wrapper around av_fast_malloc() that keeps FF_INPUT_BUFFER_PADDING_SIZE
zero-padded bytes at the end of the used buffer.

Based on a patch by Reimar Döffinger <Reimar.Doeffinger@gmx.de>.
2012-02-01 19:19:35 +01:00
Diego Biurrun
3b637dca72 avcodec.h: Remove some disabled cruft. 2012-02-01 17:27:17 +01:00
Paul B Mahol
8ca8e4a846 zmbv: Employ more meaningful return values.
Also use av_log_ask_for_sample() where it makes sense.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-01 14:24:25 +01:00
Paul B Mahol
013a677fb6 zmbvenc: Employ more meaningful return values.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-01 14:23:20 +01:00
Janne Grunau
510ef04a46 vc1: prevent null pointer dereference on broken files
CC: libav-stable@libav.org
2012-02-01 12:54:39 +01:00
Janne Grunau
cb0b284381 zmbv: check av_realloc() return values and avoid memleaks on ENOMEM 2012-02-01 12:54:39 +01:00
Paul B Mahol
d4eeadcbbf truespeech: align buffer
DSPContext.bswap_buf() requires aligned output

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-31 21:42:33 -08:00
Mans Rullgard
034b03e7a0 ac3: Do not read past the end of ff_ac3_band_start_tab.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-01-31 18:32:14 -08:00
Janne Grunau
e67e3a3f4a fate-golomb: extend golomb-test to get_ue_golomb_long()
get_ue_golomb_long() is only tested for values up to 2^15 - 2 since
we can not write larger values.
Silence the test on success and return a non-zero value on error.
Use an heap scratch buffer instead of large stack buffer.
Remove unneeded includes.
2012-02-01 01:18:55 +01:00
Diego Biurrun
9e3a2736bd golomb-test: K&R formatting cosmetics 2012-01-31 19:56:13 +01:00
Diego Biurrun
631f96f959 h264: Split h264-test off into a separate file - golomb-test.c.
The new name is more appropriate as only golomb functions are tested.
2012-01-31 19:56:12 +01:00
Diego Biurrun
4ff46af039 h264-test: cleanup: drop timer invocations, commented out code and other cruft 2012-01-31 19:56:11 +01:00
Diego Biurrun
3856a2aaa6 h264-test: Remove unused DSP and AVCodec contexts and related init calls.
This also avoids a segfault on startup.
2012-01-31 19:56:09 +01:00
Diego Biurrun
b010178e84 adpcm: Add missing stdint.h #include to fix standalone header compilation. 2012-01-31 19:13:00 +01:00
Anton Khirnov
bc90199848 lavc: set AVCodecContext.codec in avcodec_get_context_defaults3().
This way, if the AVCodecContext is allocated for a specific codec, the
caller doesn't need to store this codec separately and then pass it
again to avcodec_open2().

It also allows to set codec private options using av_opt_set_* before
opening the codec.
2012-01-31 16:53:35 +01:00
Anton Khirnov
0e72ad95f9 lavc: make avcodec_close() work properly on unopened codecs.
I.e. free the priv_data and other stuff allocated in
avcodec_alloc_context3() and not segfault.
2012-01-31 07:56:21 +01:00
Anton Khirnov
af08d9aeea lavc: add avcodec_is_open().
It allows to check whether an AVCodecContext is open in a documented
way. Right now the undocumented way this check is done in lavf/lavc is
by checking whether AVCodecContext.codec is NULL. However it's desirable
to be able to set AVCodecContext.codec before avcodec_open2().
2012-01-31 07:55:24 +01:00
Anton Khirnov
afa4069e3b lavc/lavf: remove unnecessary symbols from the symbol version script. 2012-01-31 07:26:31 +01:00
Anton Khirnov
f5f49a66a2 lavc: reorder AVCodec fields.
Put all private fields at the end and mark them as such so they can be
easily changed/removed.

This breaks ABI.
2012-01-31 07:26:18 +01:00
Alex Converse
f372ce119b mp3dec: Fix a heap-buffer-overflow
In some cases, what is left to read from ptr is smaller than EXTRABYTES.

Based on a patch by Thierry Foucu <tfoucu@gmail.com>.

Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-01-30 16:49:15 -08:00
Justin Ruggles
a3a0691bde adpcmenc: remove some unneeded casts 2012-01-30 19:12:55 -05:00
Justin Ruggles
149f2058a4 adpcmenc: use int16_t and uint8_t instead of short and unsigned char. 2012-01-30 19:12:55 -05:00
Justin Ruggles
dd88ae831a adpcmenc: fix adpcm_ms extradata allocation
Add FF_INPUT_BUFFER_PADDING_SIZE.
If allocation fails, also free memory which was allocated previously in
adpcm_encode_init().
2012-01-30 19:12:55 -05:00
Justin Ruggles
877a1d409c adpcmenc: return proper AVERROR codes instead of -1 2012-01-30 19:12:55 -05:00
Justin Ruggles
cb023d9afe adpcmenc: check for coded_frame allocation failure 2012-01-30 19:12:55 -05:00
Justin Ruggles
ddf70db6d7 adpcmenc: Do not set coded_frame->key_frame.
It is already set in avcodec_alloc_frame().
2012-01-30 19:12:54 -05:00
Justin Ruggles
3c4add27f7 mpc7: check for allocation failure 2012-01-30 19:11:29 -05:00
Justin Ruggles
eac31dd163 mpc7: align local temp buffer
DSPContext.bswap_buf() requires aligned output
2012-01-30 19:11:29 -05:00
Christophe Gisquet
e5c9de2ab7 rv40: x86 SIMD for biweight
Provide MMX, SSE2 and SSSE3 versions, with a fast-path when the weights are
multiples of 512 (which is often the case when the values round up nicely).

*_TIMER report for the 16x16 and 8x8 cases:
C:
9015 decicycles in 16, 524257 runs, 31 skips
2656 decicycles in 8, 524271 runs, 17 skips
MMX:
4156 decicycles in 16, 262090 runs, 54 skips
1206 decicycles in 8, 262131 runs, 13 skips
MMX on fast-path:
2760 decicycles in 16, 524222 runs, 66 skips
995 decicycles in 8, 524252 runs, 36 skips
SSE2:
2163 decicycles in 16, 262131 runs, 13 skips
832 decicycles in 8, 262137 runs, 7 skips
SSE2 with fast path:
1783 decicycles in 16, 524276 runs, 12 skips
711 decicycles in 8, 524283 runs, 5 skips
SSSE3:
2117 decicycles in 16, 262136 runs, 8 skips
814 decicycles in 8, 262143 runs, 1 skips
SSSE3 with fast path:
1315 decicycles in 16, 524285 runs, 3 skips
578 decicycles in 8, 524286 runs, 2 skips

This means around a 4% speedup for some sequences.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-01-30 23:58:25 +01:00
Diego Biurrun
91bafb52ae x86: Give RV40 init file a more suitable name. 2012-01-30 23:58:24 +01:00
Diego Biurrun
c30b198381 x86: Place mm_flags variable declaration below the appropriate #ifdef.
This fixes some unused variable warnings with YASM disabled.
2012-01-30 23:58:23 +01:00
Justin Ruggles
89eea6df28 aacenc: make sure to encode enough frames to cover all input samples.
Currently, any samples in the final frame are not decoded because they are
only represented by one frame instead of two. So we encode two final frames to
cover both the analysis delay and the MDCT delay.
2012-01-30 14:20:24 -05:00
Justin Ruggles
f44005b610 aacenc: only use the number of input samples provided by the user.
Fixes handling of CODEC_CAP_SMALL_LAST_FRAME.
2012-01-30 14:20:24 -05:00
Alex Converse
48f1e5212c wmadec: Verify bitstream size makes sense before calling init_get_bits.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-01-30 10:54:24 -08:00
Alex Converse
ae35210a5d kmvc: Log into a context at a log level constant. 2012-01-30 10:54:24 -08:00
Alex Converse
dfa37fe8a3 mpeg12: Pad framerate tab to 16 entries.
There are many places where we read an unchecked 4-bit index into it.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-01-30 10:19:01 -08:00
Michael Niedermayer
a02e8df973 kgv1dec: Increase offsets array size so it is large enough.
Fixes CVE-2011-3945

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 807a045ab7)

Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-01-30 10:16:23 -08:00
Alex Converse
386741f887 kmvc: Check palsize.
Fixes: CVE-2011-3952

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Based on fix by Michael Niedermayer
2012-01-30 10:16:17 -08:00
Christophe Gisquet
6b03900382 x86 dsputil: provide SSE2/SSSE3 versions of bswap_buf
While pshufb allows emulating bswap on XMM registers for SSSE3, more
shuffling is needed for SSE2. Alignment is critical, so specific codepaths
are provided for this case.

For the huffyuv sequence "angels_480-huffyuvcompress.avi":
C (using bswap instruction): ~ 55k cycles
SSE2:                        ~ 40k cycles
SSSE3 using unaligned loads: ~ 35k cycles
SSSE3 using aligned loads:   ~ 30k cycles

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-01-30 10:19:55 +01:00
Ronald S. Bultje
af79a0c48a png: add support for bpp>4 to paeth x86 SIMD code.
This fixes playback of e.g. RGB48 (bpp=6) content on x86 CPUs. Fixes
bug 214.
2012-01-29 21:22:50 -08:00
Ronald S. Bultje
f91c4b7824 png: add SSE2 version for add_bytes_l2. 2012-01-29 18:52:17 -08:00
Ronald S. Bultje
59f474b49d png: convert DSP functions to yasm. 2012-01-29 18:47:50 -08:00
Mans Rullgard
3715d841a6 Fix non-C89 declarations in for loops
Some compilers still do not support this syntax.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-01-29 23:26:04 +00:00
Ronald S. Bultje
20a7d3178f png: add missing #if HAVE_SSSE3 around function pointer assignment. 2012-01-29 12:31:59 -08:00
Ronald S. Bultje
331e7c4cb3 imdct36: mark SSE functions as using all 16 XMM registers.
On x86-64, it indeed uses all 16 registers (and on x86-32, this gets
clipped to 8). Not marking it properly causes callers of this function
to fail randomly because of XMM register clobbering.
2012-01-29 08:14:05 -08:00
Ronald S. Bultje
e92003514d png: move DSP functions to their own DSP context. 2012-01-29 08:11:18 -08:00
Aneesh Dogra
f9708e9a0e sunrast: Add a sample request for TIFF, IFF, and Experimental Rastfile formats.
Signed-off-by: Aneesh Dogra <lionaneesh@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-29 08:11:18 -08:00
Aneesh Dogra
415f358a1f sunrast: Cosmetics
Signed-off-by: Aneesh Dogra <lionaneesh@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-29 08:11:18 -08:00
Aneesh Dogra
4ffb8e2c14 sunrast: Remove if (unsigned int < 0) check.
Note: This fixes the following GCC warning :-
libavcodec/sunrast.c:94: warning: comparison of unsigned expression < 0 is always false.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-29 08:11:18 -08:00
Aneesh Dogra
fef3771778 sunrast: Replace magic number by a macro.
Signed-off-by: Aneesh Dogra <lionaneesh@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-29 08:11:06 -08:00
Nathan Caldwell
2e626dd513 aacenc: Fix LONG_START windowing.
Forgot to add the equivalent amount to the incoming sample pointer as the output pointer.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-01-28 22:07:30 +01:00
Nathan Caldwell
dc7e7d4dd9 aacenc: Fix a bug where deinterleaved samples were stored in the wrong place.
10l: Forgot to adjust deinterleave for new location of incoming samples in 7946a5a.

This produced incorrect, but surprisingly listenable results.

Thanks to Justin Ruggles for the report.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-01-28 22:07:21 +01:00
Anton Khirnov
9bfe218299 lavc: extend doxy for avcodec_alloc_context3(). 2012-01-28 19:45:33 +01:00
Anton Khirnov
2d9535ad31 avcodec_align_dimensions2: set only 4 linesizes, not AV_NUM_DATA_POINTERS.
This function is video-only, so there's no point in setting more
linesizes.

Fixes stack corruption in avplay.
2012-01-28 19:44:55 +01:00
Mans Rullgard
be822d77b6 aacsbr: ARM NEON optimised sbrdsp functions
Overall speedup of HE-AAC decoding 2.3x on Cortex-A8, 1.2x on A9.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-01-28 14:56:18 +00:00
Mans Rullgard
8996ed2b73 aacsbr: align some arrays
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-01-28 14:56:18 +00:00
Mans Rullgard
aac46e088d aacsbr: move some simdable loops to function pointers
This prepares for assembly optimisations by moving the most
time-consuming loops to functions called through pointers
in a new context.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-01-28 14:56:18 +00:00
Alex Converse
7181c4edee cosmetics: Remove extra newlines at EOF 2012-01-27 17:19:09 -08:00
Martin Storsjö
9a7dc618c5 libavcodec: Don't crash in avcodec_encode_audio if time_base isn't set
Earlier, calling avcodec_encode_audio worked fine even if time_base
wasn't set. Now it crashes due to trying to scale the output pts to
the codec context time base. This affects e.g. VLC.

If no time_base is set for audio codecs, set it to the sample
rate.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-27 20:52:32 +02:00
Aneesh Dogra
bca77a1a64 sunrast: Document the different Sun Raster file format types.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-01-27 13:21:46 -05:00
Aneesh Dogra
1bbb173652 sunrast: Add a check for experimental type.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-01-27 11:35:39 -05:00
Justin Ruggles
2c577155a7 libspeexenc: use AVSampleFormat instead of deprecated/removed SampleFormat
Fixes build with --enable-libspeex
2012-01-27 11:28:21 -05:00
Anton Khirnov
3b4aaa6190 lavc: remove disabled FF_API_AVFRAME_AGE cruft. 2012-01-27 10:38:35 +01:00
Anton Khirnov
d803775e81 lavc: remove disabled FF_API_DATA_POINTERS cruft. 2012-01-27 10:38:35 +01:00
Anton Khirnov
10e1ae5eff lavc: remove disabled FF_API_TIFFENC_COMPLEVEL cruft. 2012-01-27 10:38:35 +01:00
Anton Khirnov
370e923e0b lavc: remove disabled FF_API_INTERNAL_CONTEXT cruft. 2012-01-27 10:38:35 +01:00
Anton Khirnov
ac84395d6a lavc: remove disabled FF_API_PARSE_FRAME cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov
8b9b6041d7 lavc: remove disabled FF_API_GET_ALPHA_INFO cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov
99ace37e68 lavc: remove disabled FF_API_MJPEG_GLOBAL_OPTS cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov
96e9b96fcd lavc: remove disabled FF_API_SNOW_GLOBAL_OPTS cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov
b9de160c3e lavc: remove disabled FF_API_LAME_GLOBAL_OPTS cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov
3211932c51 lavc: remove disabled FF_API_AVCODEC_INIT cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov
491f443e1f lavc: remove disabled FF_API_ER cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov
f326501a65 lavc: remove disabled FF_API_DRC_SCALE cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov
d2d931500b lavc: remove disabled FF_API_AVCODEC_OPEN cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov
ec104eef51 lavc: remove disabled FF_API_ALLOC_CONTEXT cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov
8e5746d461 lavc: remove disabled FF_API_GET_PIX_FMT_NAME cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov
0dc6bab092 lavc: remove disabled FF_API_FLAC_GLOBAL_OPTS cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov
fbca04e6f6 lavc: remove disabled FF_API_OLD_FF_PICT_TYPES cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov
9a79bb552a lavc: remove disabled FF_API_THREAD_INIT cruft. 2012-01-27 10:38:34 +01:00
Anton Khirnov
7831a7e4ec lavc: remove disabled FF_API_ANTIALIAS_ALGO cruft. 2012-01-27 10:38:33 +01:00
Anton Khirnov
62dfea6535 lavc: remove disabled FF_API_OLD_AUDIOCONVERT cruft. 2012-01-27 10:38:33 +01:00
Anton Khirnov
284e65d64e lavc: remove disabled FF_API_OLD_SAMPLE_FMT cruft. 2012-01-27 10:38:33 +01:00
Anton Khirnov
6c8dab98b8 lavc: remove disabled FF_API_PALETTE_CONTROL cruft. 2012-01-27 10:38:33 +01:00
Anton Khirnov
9ce2a91b84 lavc: remove disabled FF_API_MPEGVIDEO_GLOBAL_OPTS cruft. 2012-01-27 10:38:33 +01:00
Anton Khirnov
7232bfbd93 lavc: remove disabled FF_API_X264_GLOBAL_OPTS cruft. 2012-01-27 10:38:33 +01:00
Anton Khirnov
7460398b89 lavc: remove the deprecated opt.h header. 2012-01-27 10:38:33 +01:00
Anton Khirnov
041cd5a0c5 lavc: remove the deprecated "ab" option. 2012-01-27 10:38:33 +01:00
Anton Khirnov
7063b6eaee lavc: increase major version to 54.
The lavf-ffm test results change because ffmenc writes
AVCodecContext.flags/flags2 and the defaults for those change.
2012-01-27 10:38:30 +01:00
Ronald S. Bultje
3b15a6d742 config.asm: change %ifdef directives to %if directives.
This allows combining multiple conditionals in a single statement.
2012-01-27 10:19:57 +08:00
Paul B Mahol
5eda82aac9 frwu: check if allocation was successful
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-27 09:31:06 +08:00
Mashiat Sarker Shakkhar
d51d6ae9c4 vc1dec.c: Don't use uninitialized values of dmv_[x, y]
MVDATA may or may not be transmitted. If it is not, both
dmv_x and dmv_y is to be assumed zero.

This may not trigger wrong picture in all systems, but
it's a bug nevertheless. Fixes SA10116.vc1 on my 64-bit
Windows 7.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-27 09:24:13 +08:00
Alex Converse
b57d262412 mjpegbdec: Fix overflow in SOS.
Based in part by a fix from Michael Niedermayer <michaelni@gmx.at>

Fixes CVE-2011-3947

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-01-26 15:47:36 -08:00
Paul B Mahol
324e818093 8bps: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-01-26 22:44:37 +01:00
Alex Converse
9adf25c1cf smacker: Sanity check huffman tables found in the headers.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind

CC: libav-stable@libav.org
2012-01-26 10:18:00 -08:00
Alex Converse
90c0c83e14 smacker: remove dead store 2012-01-26 10:17:04 -08:00
Alex Converse
dac56d9ce0 qdm2: Check data block size for bytes to bits overflow.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind

CC: libav-stable@libav.org
2012-01-26 10:17:04 -08:00
Hendrik Leppkes
feaa40020b vc1: always read the bfraction element for interlaced fields
Previously, it would not be read if refdist_flag was not set, however
according to the spec and the reference decoder, it should always be read.

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-01-26 15:19:27 +01:00
Alex Converse
d78bb1a4b2 wma: Clip WMA1 and WMA2 frame length to 11 bits.
The MDCT buffers in the decoder are only sized for up to 11 bits. The
reverse engineered documentation for WMA1/2 headers say that that for
all samplerates above 32kHz 11 bits are used. 12 and 13 bit support
were added for WMAPro. I was unable to make any Microsoft tools generate
a test file at a samplerate above 48kHz.

Discovered by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind

CC: libav-stable@libav.org
2012-01-25 12:31:37 -08:00
Janne Grunau
c3e10ae412 rv20: prevent calling ff_h263_decode_mba() with unset height/width
Prevents a crash of VLC during playback of a invalid matroska file,
found by John Villamil <johnv@matasano.com>.

CC: libav-stable@libav.org
2012-01-25 16:18:54 +01:00
Diego Biurrun
07a873a277 build: Automatically include architecture-specific library Makefile snippets. 2012-01-25 15:04:28 +01:00
Janne Grunau
366ac22ea5 indeo5: prevent null pointer dereference on broken files
Found by John Villamil <johnv@matasano.com>
2012-01-25 14:31:57 +01:00
Diego Biurrun
33ad8c3cab cosmetics: Remove some unnecessary block braces. 2012-01-25 13:14:49 +01:00
Ronald S. Bultje
c3af52fa8b dsputil: use vertical component for drawing bottom edge.
Current code only writes 8 pixels of vertical edge for YUV422, which
causes MC artifacts when subsequent frames use data from that edge.
2012-01-25 18:06:36 +08:00
Alex Converse
efe68076da aacenc: Fix identification padding when the bitstream is already aligned. 2012-01-24 12:55:21 -08:00
Michael Niedermayer
cdfe94c5ab aacenc: Write correct length for long identification strings.
When the length is the escape value (15), the new length is calculated by
15 + get_bits(8) - 1.

Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-01-24 12:54:59 -08:00
Justin Ruggles
02e7dbf5ad adpcm_ima_ws: fix stereo decoding
Stereo ADPCM IMA WS is planar for VQA version 3 and 2-sample interleaved for
VQA version 2.
2012-01-24 14:13:46 -05:00
Justin Ruggles
220506d23f avcodec: add a new codec_id for CRYO APC IMA ADPCM.
The stereo layout and extradata is significantly different from that in
Westwood IMA ADPCM, so a separate codec_id is warranted.
2012-01-24 14:13:41 -05:00
Anton Khirnov
1381e9bc92 lavc: postpone the removal of AVCodecContext.request_channels.
Although it has been deprecated for a long time, its intended
replacement (request_channel_layout) is not actually used anywhere, so
request_channels is currently the only way to access that functionality.
2012-01-24 18:04:19 +01:00
Anton Khirnov
af0292f33a lavc: postpone removing old audio encoding and decoding API
It has been deprecated only recently.
2012-01-24 18:04:19 +01:00
Janne Grunau
1d3a9e63e0 rv10: verify slice offsets against buffer size
Found by John Villamil <johnv@matasano.com> in fuzzed rv20 in mkv files.
2012-01-24 02:16:02 +01:00
Nathan Caldwell
9292fe4a1d aacenc: Simplify windowing
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-01-23 11:40:46 -08:00
Nathan Caldwell
7946a5acfb aacenc: Move saved overlap samples to the beginning of the same buffer as incoming samples.
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-01-23 11:40:46 -08:00
Nathan Caldwell
9b8e2a8709 aacenc: Deinterleave input samples before processing.
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-01-23 11:40:46 -08:00
Nathan Caldwell
04af2efaae aacenc: Store channel count in AACEncContext.
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-01-23 11:40:46 -08:00
Nathan Caldwell
80d44277e6 aacenc: Move Q^3/4 calculation to it's own table
This should be moved to tablegen at some point.

Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-01-23 11:40:46 -08:00
Nathan Caldwell
025ccf1f8b aacenc: Request normalized float samples instead of converting s16 samples to float.
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-01-23 11:40:46 -08:00
Nathan Caldwell
6381f913d1 aacpsy: Replace an if with FFMAX in LAME windowing.
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-01-23 11:40:45 -08:00
Nathan Caldwell
207bf44d16 aacenc: cosmetics, replace 'rd' with 'bits' in codebook_trellis_rate to make it more clear what is being calculated.
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-01-23 11:40:45 -08:00
Nathan Caldwell
843cd4a3ed aacpsy: cosmetics, change a FIXME to a NOTE about subshort comparisons
Also fix a typo.

Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-01-23 11:40:45 -08:00
Nathan Caldwell
5310704190 aacenc: cosmetics: move init() and end() to the bottom of the file.
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-01-23 11:40:45 -08:00
Nathan Caldwell
17ae608127 aacenc: aac_encode_init() cleanup
Macroify sanity checks and check return values of allocs and other functions.

Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-01-23 11:40:45 -08:00
Paul B Mahol
27ed027bcd XWD encoder and decoder
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-01-23 19:04:35 +01:00
Hendrik Leppkes
7662a532fb vc1: don't read the interpfrm and bfraction elements for interlaced frames
This matches the spec as well as the reference decoder, and fixes a bug
with interlaced frame decoding.

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-01-23 19:04:14 +01:00
Carl Eugen Hoyos
66b9d7065a pam: Fix a typo that broke writing and reading PAM files.
Reported and reviewed by Derek Buitenhuis.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-01-22 16:38:20 +01:00
Janne Grunau
2473a45c85 threads: change the default for threads back to 1
Using threaded decoding by default breaks backward compatibility if
AVHWAccel is used or if an appliction sets threadunsafe callbacks.
Avconv and avplay still use -threads auto if not specified.
2012-01-21 13:26:44 +01:00
Janne Grunau
afb8b207d6 threads: update slice_count and slice_offset from user context
They are used to signal the number of slices and offsets of each slice
out of band to the decoder.
2012-01-21 13:26:44 +01:00
Dustin Brody
d2a0041c20 mpegaudiodec: switch error detection check to AV_EF_BUFFER
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-01-21 08:38:12 +01:00
Dustin Brody
f88949214c lavc: rename err_filter option to err_detect and document it
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-01-21 08:28:18 +01:00
John Brooks
9b6aafba6c mpegvideo: fix invalid memory access for small video dimensions
When either video dimension is only one macroblock, subtractions
based on v_edge_pos and the macroblock size may be negative. In
that situation, an unsigned comparison isn't sufficent to test for
MV overruns, because a limit of (unsigned)-1 will let any other
value pass.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-01-21 08:28:08 +01:00
Felipe Contreras
c3d5e290ca ARM: fix build with FFT enabled and MDCT disabled
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-01-20 16:14:01 +00:00
Jindřich Makovička
a85ce653fb mpeg12: check for available bits to avoid an infinite loop
Signed-off-by: Jindrich Makovicka <makovick@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-01-19 14:14:21 +01:00
Donald Ovcharov
ac84f2edd4 error_resilience: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-01-18 18:10:01 +01:00
Justin Ruggles
01ed1c390d tta: cast output data pointer to the correct type
fixes "warning: assignment from incompatible pointer type"
2012-01-17 09:41:13 -05:00
Janne Grunau
9e12002f11 rv34: add NEON rv34_idct_add
Overall almost 4% faster, idct_add down from 350 to 85 cycles, idct_dc_add
down from 83 to 30 cycles.

squash: rv34 idct rearrange partial register loads
2012-01-16 19:26:41 +01:00
Christophe GISQUET
9ba9c34024 rv34: 1-pass inter MB reconstruction
Implement 1-pass inverse transform and reconstruction for inter blocks.
2012-01-16 19:26:41 +01:00
Laurentiu Ion
d859191322 pictordec: Use bytestream2 functions
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-01-15 22:44:00 -05:00
Justin Ruggles
05f95443ca pcmenc: use AVCodec.encode2() 2012-01-15 21:24:18 -05:00
Justin Ruggles
a6ccae3f4c avcodec: bump minor version and add APIChanges for the new audio encoding API 2012-01-15 21:24:17 -05:00
Justin Ruggles
b2c75b6e63 avcodec: Add avcodec_encode_audio2() as replacement for avcodec_encode_audio()
This allows audio encoders to optionally take an AVFrame as input and write
encoded output to an AVPacket.

This also adds AVCodec.encode2() which will also be usable by video and
subtitle encoders once support is implemented in the public functions.
2012-01-15 21:24:17 -05:00
Justin Ruggles
5ee5fa021f avcodec: add a public function, avcodec_fill_audio_frame().
This is a convenience function for the user to fill audio AVFrame information.
2012-01-15 21:24:17 -05:00
Christophe GISQUET
d78062386e rv34: Intra 16x16 handling
Extract processing of intra 16x16 blocks from intra macroblock
processing.
Also implement a function performing inverse transform and block
reconstruction for DC-only blocks in 1 pass instead of 2.
2012-01-16 00:41:51 +01:00
Christophe GISQUET
3eeb755763 rv34: Inter/intra MB code split
Split inter/intra macroblock handling code. This will allow further
optimizations such as performing inverse transform and block reconstruction
in a single pass as well as specialize code.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-01-16 00:41:51 +01:00
Reinhard Tartler
e2ff436ef6 lavc: Relax API strictness in avcodec_decode_audio3 with a custom get_buffer()
Do not fail audio decoding with avcodec_decode_audio3 if user has set a
custom get_buffer. Strictly speaking, this was never allowed by the API,
but it seems that some software packages did so anyways. In order to
unbreak applications (cf. http://bugs.debian.org/655890), this change
clarifies the API and overrides the custom get_buffer() with the defaults.

This change is inspired by a similar
commit (c3846e3eba) in FFmpeg.

Signed-off-by: Reinhard Tartler <siretart@tauware.de>
2012-01-15 21:40:59 +01:00
Kostya Shishkov
e6e7bfc11e wavpack: fix clipping for 32-bit lossy mode
Reference decoder clips data before shifting it to final range and also
forces 32-bit lossy mode to be actually 24-bit lossy mode in order to be
able to perform proper clipping.
2012-01-15 15:27:55 +01:00
Laurentiu Ion
4fccc7c46c vb: Use bytestream2 functions
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-01-14 22:12:53 -05:00
Aneesh Dogra
4cd0bdae9a sgidec: Use bytestream2 functions to prevent buffer overreads.
The patch also adds several bytestream macros to deal with native endian.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-01-14 12:35:53 -05:00
Diego Biurrun
e44c11e9fa cosmetics: Move static and inline attributes to more standard places.
Fixes several "‘static’ is not at beginning of declaration" warnings.
2012-01-14 17:32:36 +01:00
Martin Storsjö
57facb73ab libx264: Don't leave max_b_frames as -1 if the user didn't set it
max_b_frames is initialized to -1 for libx264, to allow
distinguishing between an explicit user set 0 and a default not
touched 0 (see bb73cda2).

If max_b_frames is left as -1, this affects dts generation (where
expressions like max_b_frames != 0 are used), so make sure it is
left at the default 0 after the libx264 init function returns.

This avoids unnecessarily producing dts != pts when using
profile=baseline.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-14 02:08:42 +02:00
Justin Ruggles
faaebcdf6b targa: add support for rgb555 palette 2012-01-13 17:11:41 -05:00
Mans Rullgard
71b3a63e9c ARM: fix Thumb-mode simple_idct_arm
The alignment directive must obviously precede the label.
This was never noticed in ARM mode since the location is
already aligned there.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-01-13 19:09:59 +00:00
Mans Rullgard
5c5e1ea3cd ARM: 4-byte align start of all asm functions
Due to apprent bugs in the GNU assembler and/or linker, relocations
can be incorrectly processed if the alignment of a Thumb instruction
is changed in the output file compared to the input object.

This fixes crashes in h264 decoding with Thumb enabled. No effect in
ARM mode since everything is 4-byte aligned there.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-01-13 19:09:59 +00:00
Diego Biurrun
55b9ef18e4 cabac: split cabac.h into declarations and function definitions
This fixes standalone compilation of some decoders with --disable-optimizations.
cabac.h defines some inline functions that use symbols from cabac.c.  Without
optimizations these inline functions are not eliminated and linking fails with
references to non-existing symbols.

Splitting the inline functions off into their own header and only #including
it in the places where the inline functions are used allows #including cabac.h
from anywhere without ill effects.
2012-01-12 23:08:23 +01:00
Diego Biurrun
0a60780c7f cabac: Mark ff_h264_mps_state array as static, it is only used within cabac.c. 2012-01-12 22:57:42 +01:00
Diego Biurrun
64d779f2f7 cabac: Remove ff_h264_lps_state array.
It was only ever used in the cabac test program, but never initialized.
2012-01-12 22:54:24 +01:00
Alex Converse
4df30f7114 utils: Check for extradata size overflows. 2012-01-12 13:26:13 -08:00
Mans Rullgard
81dc6a2a3c ARM: rv34: fix asm syntax in dc transform functions
Signed-off-by: Mans Rullgard <mans@mansr.com>
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-01-12 22:11:13 +01:00
Janne Grunau
3547f8e8f8 rv34: fix and optimise frame dependency checking
The sporadic threading errors during fate-rv30 were caused by calling
ff_thread_await_progress with mb row -1 as argument. That returns
immediately since progress is initialized to -1. Not yet computed
motion vectors from the reference could be used for the first
macroblocks.
2012-01-12 18:38:08 +01:00
Janne Grunau
e1e369049e rv34: NEON optimised dc only inverse transform
30-50% faster than the C implementation, 0.5% overall speedup on
bourne.rmvb.
2012-01-12 18:33:55 +01:00
Anton Khirnov
f3d02a8b28 lavc: replace some remaining FF_I_TYPE with AV_PICTURE_TYPE_I 2012-01-12 18:18:23 +01:00
Anton Khirnov
a29c25a9b2 lavc: ifdef out parse_only AVOption 2012-01-12 18:18:23 +01:00
Anton Khirnov
d54f1e6407 nellymoserdec: SAMPLE_FMT -> AV_SAMPLE_FMT 2012-01-12 18:18:23 +01:00