Commit Graph

15681 Commits

Author SHA1 Message Date
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
Anton Khirnov
0c71cc6526 mpegvideo_enc: ifdef out/replace references to deprecated codec flags. 2012-01-12 18:18:22 +01:00
Kostya Shishkov
08bab32cf1 indeo4: add some missing static and const qualifiers
From the patch by Reimar Döffinger.
2012-01-12 13:54:41 +01:00
Christophe GISQUET
3faa303a47 rv34: DC-only inverse transform
When decoding coefficients, detect whether the block is DC-only, and take
advantage of this knowledge to perform DC-only inverse transform.

This is achieved by:
- first, changing the 108x4 element modulo_three_table into a 108 element
  table (kind of base4), and accessing each value using mask and shifts.
- then, checking low bits for 0 (as they represent the presence of higher
  frequency coefficients)

Also provide x86 SIMD code for the DC-only inverse transform.

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-01-12 09:52:33 +01:00
Alex Converse
b5fc571e4f latmdec: Check AudioSpecificConfig length before decoding extradata.
This is different than a normal get_bits() over read because
decode_audio_specific_config() creates its own GetBitContext.

Fixes Bug 170.
2012-01-11 14:40:47 -08:00
Henrik Gramner
e7d02b04dc fft: init functions with INIT_XMM/YMM.
This is required to handle clobbering of XMM registers on Win64
correctly. Fixes FFT and all tests depending on FFT on Win64.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-01-11 20:12:26 +01:00
Justin Ruggles
56f22b7e16 pcmenc: set frame_size to 0.
This indicates that the actual frame size is based on the buf_size passed to
avcodec_encode_audio().
2012-01-11 09:09:56 -05:00
Justin Ruggles
82390f57d1 avcodec: add GSM parser
The WAVE demuxer returns packets with many blocks per frame, which needs to be
parsed into single blocks. This has a side-effect of fixing the timestamps.
2012-01-11 08:56:24 -05:00
Diego Biurrun
5ea20630b4 Fix a bunch of platform name and other typos. 2012-01-11 13:48:30 +01:00
Janne Grunau
f6a152db11 threads: add CODEC_CAP_AUTO_THREADS for libvpx and xavs 2012-01-11 00:23:07 +01:00
Janne Grunau
9472d37d8e rv34: frame-level multi-threading
Statistics for bourne.rmvb -an -f null

1 thread:  37.12s user 0.03s system  99% cpu 37.174 total
2 threads: 47.63s user 0.24s system 185% cpu 25.807 total
4 threads: 41.21s user 0.30s system 327% cpu 12.674 total
2012-01-10 22:51:56 +01:00
Janne Grunau
3ab7700018 mpegvideo: claim ownership of referenced pictures
Under certain conditions pictures could be released before they were
returned with frame-threading. Broken mv computation in the upcoming
rv34 frame-threading patch was caused by this.

To prevent contexts from running out of available pictures the loop
releasing "unused" pictures has to be run for B frames too.
2012-01-10 22:51:56 +01:00
Alex Converse
17ce52912f aacsbr: prevent out of bounds memcpy().
Fixes Libav Bug 195.

This doesn't make the code handle sample rate or upsample/downsample
change properly but this is still a good sanity check.

Based on change by Michael Niedermayer.

Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-01-10 13:13:34 -08:00
Aneesh Dogra
29112db8c0 bethsoftvideo: Use bytestream2 functions to prevent buffer overreads.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-10 10:34:16 -08:00
Paul B Mahol
84e5159e25 bmpenc: support for PIX_FMT_RGB444
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-10 09:29:22 -08:00
Janne Grunau
e652cc9606 rv34: use get_bits_left()
It is not necessary to store the bit stream length in a RV34DecContext
field.
2012-01-10 16:58:53 +01:00
Paul B Mahol
353a2d2164 bmpdec: support for rgb444 with bitfields compression
Do not display garbage for invalid/unsupported bitfields values.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-10 05:58:19 -08:00
Laurentiu Ion
da2e774fd6 kmvc: Use bytestream2 functions to prevent buffer overreads.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-09 17:26:33 -08:00
Alex Converse
9de3cbc182 aacps: Add missing newline in error message. 2012-01-09 11:06:14 -08:00
Alex Converse
4acd43a295 aacdec: Turn off PS for multichannel files that use PCE based configs.
Fixes al_sbr_cm_48_5.1.mp4.
2012-01-09 11:04:05 -08:00
Diego Biurrun
1ef8ff4534 cabac: remove put_cabac_u/ueg from cabac-test.
The functions are not used in any part of Libav, therefore testing them in the
cabac-test is unnecessary. Since this makes them unused, remove the functions.
2012-01-09 14:10:41 +01:00
Vitor Sessak
39df0c434c mpegaudiodec: optimized iMDCT transform
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-08 17:40:55 -08:00
Vitor Sessak
06677d0dd9 mpegaudiodec: change imdct window arrangment for better pointer alignment
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-08 17:37:23 -08:00
Vitor Sessak
6dfcf53092 mpegaudiodec: move imdct and windowing function to mpegaudiodsp
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-08 17:37:07 -08:00
Vitor Sessak
421c99a4a7 mpegaudiodec: interleave iMDCT buffer to simplify future SIMD implementations
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-08 17:37:03 -08:00
Daniel Huang
8549cf073b mjpegdec: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-01-08 23:33:00 +01:00
Aneesh Dogra
ccc27e2139 bfi: Use bytestream2 functions to prevent buffer overreads.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-08 13:26:54 -08:00
Laurentiu Ion
529a25d6e5 dpcm: Fix invalid writes
Fixes bug: #152

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-08 13:13:11 -08:00
Aneesh Dogra
12e984aed7 utvideo: frame multithreading.
>> time ./avconv -i file.avi -f null -
Before : real	0m7.784s
After  : real   0m3.662s

Tested on a Intel Core i3 Processor (2 cores, 4 threads).

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-08 12:21:10 -08:00
Chris Evans
afb2aa5379 vorbis: An additional defense in the Vorbis codec.
Fixes Bug: #190
Chromium Bug: #100543
Related to CVE-2011-3893

Signed-off-by: Reinhard Tartler <siretart@tauware.de>
2012-01-08 09:09:26 +01:00
Reinhard Tartler
e6d527ff72 vorbisdec: Fix decoding bug with channel handling
Fixes Bug: #191
Chromium Bug: #101458
CVE-2011-3895

Signed-off-by: Reinhard Tartler <siretart@tauware.de>
2012-01-07 23:16:52 +01:00
Diego Biurrun
badb195d13 cabac: Move code only used within the CABAC test program into the test program. 2012-01-07 22:13:14 +01:00
Diego Biurrun
1be4b8ccba vp56: Drop unnecessary cabac.h #include. 2012-01-07 22:13:12 +01:00
Diego Biurrun
a7e3cb9d32 h264-test: Initialize AVCodecContext.av_class.
This fixes a segfault on startup.

Also remove a commented-out and completely unused variable.
2012-01-07 22:13:10 +01:00
Diego Biurrun
3dc99a18d4 cosmetics: drop some pointless parentheses 2012-01-07 22:13:07 +01:00
Justin Ruggles
3f6aa85ed4 avcodec: attempt to clarify the CODEC_CAP_DELAY documentation 2012-01-07 14:33:16 -05:00
Justin Ruggles
07837e4158 avcodec: fix avcodec_encode_audio() documentation.
the previous documentation indicated how many bytes are read from the input,
not how many samples are read.
2012-01-07 14:33:15 -05:00
Justin Ruggles
cf1a259ad6 g722enc: validate AVCodecContext.trellis 2012-01-07 13:38:23 -05:00
Justin Ruggles
77c5b66cbe g722enc: set frame_size, and also handle an odd number of input samples
The fate reference is updated because the previous test skipped a sample in
each encode() call due each input frame having an odd number of samples.
2012-01-07 13:38:23 -05:00
Justin Ruggles
34093ba081 g722enc: split encoding into separate functions for trellis vs. no trellis 2012-01-07 13:38:23 -05:00
Vitor Sessak
96219141e2 mpegaudiodec: Use clearer pointer math
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-07 08:23:27 -08:00
Justin Ruggles
52e9854a83 tta: fix 24-bit decoding.
Decode to the correct output buffer.
2012-01-07 09:44:13 -05:00
Paul B Mahol
17aa02b9a1 interplayvideo: Handle changed video dimensions on the fly
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-07 15:25:38 +02:00
Martin Storsjö
c5d907b6b0 libavcodec: Handle param change side data in avcodec_decode_video2, too
Also call avcodec_set_dimensions on dimension param change packets.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-07 15:25:35 +02:00
Martin Storsjö
867f923df4 libavcodec: Move apply_param_change up above avcodec_decode_video2
This is in preparation to calling it from avcodec_decode_video2.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-07 15:25:30 +02:00
Janne Grunau
be540e0cb3 indeo3: check motion vectors for validity
Fixes null pointer dereferences in fuzzed files found by Oana Stratulat.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-01-07 09:41:11 +01:00
Michael Niedermayer
b18a0cc781 indeo5: Fix null pointer dereference.
Bug found by: Oana Stratulat

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-01-07 00:18:42 +01:00
Laurentiu Ion
b348c852aa flicvideo: fix invalid reads
Prevent invalid reads using bytestream2 functions.
Fixes bug #126.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-01-06 16:48:27 -05:00
Chris Evans
57cd6d7095 vorbis: Avoid some out-of-bounds reads
Fixes Bug: #190
Chromium Bug: #100543
Related to CVE-2011-3893

Signed-off-by: Reinhard Tartler <siretart@tauware.de>
2012-01-06 19:58:22 +01:00
Diego Biurrun
3aa3fc45fe cabac: remove unused function renorm_cabac_decoder 2012-01-06 13:37:55 +01:00
Diego Biurrun
301fb92131 h264: Only use symbols from the SVQ3 decoder under proper conditionals.
Fixes --disable-everything --enable-decoder=h264 --disable-optimizations.
2012-01-06 13:37:53 +01:00
Justin Ruggles
6e8bf6db48 add bytestream2_tell() and bytestream2_seek() functions 2012-01-05 23:36:36 -05:00
Janne Grunau
f907615f08 parsers: initialize MpegEncContext.slice_context_count to 1
The mpeg4 video, H264 and VC-1 parser hold (directly or indirectly)
a MpegEncContext in their private context. Since they do not call the
common mpegvideo init function slice_context_count has explicitly set
to 1.
Prevents a null pointer dereference in the h264 parser and fixes
bug 193.
2012-01-06 01:47:45 +01:00
Janne Grunau
696ace50ea truemotion2: check size before GetBitContext initialisation
Prevents null ptr derefence for negative sizes.
2012-01-05 23:19:13 +01:00
Janne Grunau
bb5b3940b0 adpcm: ADPCM Electronic Arts has always two channels 2012-01-05 22:29:18 +01:00
Aneesh Dogra
9b55b4bb3a 4xm: Prevent buffer overreads.
4xm decoder while decoding i2 frames can overread the buffer if proper checks
are not made.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-05 09:37:16 -08:00
Janne Grunau
e268a352af mjpegdec: parse RSTn to prevent skipping other data in mjpeg_decode_scan
Check explicitly if enough bits are left to prevent an infinite loop
when the bitstream buffer is not followed by zero-padding.

Based on patches by Michael Niedermayer <michaelni@gmx.at>.
2012-01-05 18:20:35 +01:00
Janne Grunau
9b4767e478 vp3: fix streams with non-zero last coefficient
Fixes a regression introduced in 8b94df0f20.
2012-01-05 18:18:08 +01:00
Oana Stratulat
7f09791d28 Report an error if pitch_lag is zero in AMR-NB decoder.
This fixes an infinite loop in the decoder on specially
crafted files, and fixes bug 151.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-04 21:33:14 -08:00
Ronald S. Bultje
3fa646e859 Revert "4xm: Prevent buffer overreads."
This reverts commit 295a7c0238. The
patch breaks decoding of regular files (e.g. fate-4xm-2).
2012-01-04 21:27:31 -08:00
Aneesh Dogra
295a7c0238 4xm: Prevent buffer overreads.
4xm decoder while decoding i2 frames can overread the buffer if proper checks
are not made.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-04 21:15:50 -08:00
Aneesh Dogra
4b84f68223 4xm: pass the correct remaining buffer size to decode_i2_frame().
frame_size is the number of bytes left in the packet, so if we are passing
buf-4 we can safely read frame_size+4 bytes.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-04 21:10:11 -08:00
Aneesh Dogra
893f137679 4xm: fix calculation of the next output line position in decode_i2_frame().
The current code doesn't work unless width is an exact multiple of 16.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-04 21:09:22 -08:00
Ronald S. Bultje
89d26797f5 ulti: convert to new bytestream API. 2012-01-04 10:57:37 -08:00
Diego Biurrun
00a1cdd264 Place some START_TIMER invocations in separate blocks.
This fixes compilation failures related to START_TIMER/STOP_TIMER macros and
-Werror=declaration-after-statement.  START_TIMER declares variables and thus
may not be placed after statements outside of a new block.
2012-01-04 15:05:49 +01:00
John Brooks
d209c27b09 vc1dec: fix invalid memory access for small video dimensions
For small video dimensions, these calculations of the upper bound
for pixel access may have a negative result. Using an unsigned
comparison to bound a potentially negative value only works if
the greater operand is non-negative. Fixed by doing edge emulation
when the upper bound is probably negative, everywhere that this
pattern appears.

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-01-04 10:35:26 +01:00
John Brooks
aacf6b3a2f rv34: fix invalid memory access for small video dimensions
For small video dimensions calculations of the upper bound for pixel
access may result in negative value. Using an unsigned comparison
works only if the greater operand is non-negative. This is fixed by
doing edge emulation explicitly for such conditions.

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-01-04 10:32:23 +01:00
Christophe GISQUET
98f24ecd6c rv34: joint coefficient decoding and dequantization
Perform dequantization while decoding coefficients instead of performing it
on the entire coefficients buffer.

Since quantized coefficients are very sparse, this usually causes a small
speedup. Speedup of around 1% on Panda board compared to the removed here
neon code. Global speedup is probably around 3%.

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-01-04 10:30:01 +01:00
Ronald S. Bultje
400ba1d735 h264: return index in buffer on end-of-sequence.
Fixes hangs if the last packet contains an end-of-sequence NAL unit,
bug 158.
2012-01-03 19:50:22 -08:00
Diego Biurrun
54e68fb3b8 Merge some declarations and initializations.
This fixes compilation failures related to START_TIMER/STOP_TIMER macros and
-Werror=declaration-after-statement.  START_TIMER declares variables and thus
may not be placed after statements outside of a new block.
2012-01-04 01:28:28 +01:00
Diego Biurrun
9dec55748c cabac: drop unused and disabled get_cabac_u() / get_cabac_ueg() functions 2012-01-04 01:09:54 +01:00
Diego Biurrun
e451c26c5f cabac: drop unused STRICT_LIMITS code branch 2012-01-04 01:09:53 +01:00
Justin Ruggles
9785082c15 libspeexenc: fix pts calculations for more than 1 frame per packet 2012-01-03 18:56:41 -05:00
Justin Ruggles
730280f90d adxdec: clear eof flag and channel states when seeking 2012-01-03 18:47:42 -05:00
Justin Ruggles
754ebd1a5b adxenc: check output buffer size before writing 2012-01-03 18:47:42 -05:00
Justin Ruggles
1fb47728cd adxenc: use bytestream functions for header writing.
also add more documentation about the header structure
2012-01-03 18:47:42 -05:00
Justin Ruggles
656e606cae adxenc: use BLOCK_SIZE and BLOCK_SAMPLES macros 2012-01-03 18:47:42 -05:00
Justin Ruggles
f1be41c63d adxenc: use a loop to encode each channel 2012-01-03 18:47:42 -05:00
Justin Ruggles
6c117bd8e0 adxenc: remove unneeded loops
avctx->frame_size is 32, so that is how many samples we process per call.
2012-01-03 18:47:42 -05:00
Justin Ruggles
613668210b adxenc: avoid stereo deinterleaving 2012-01-03 18:47:41 -05:00
Justin Ruggles
6b77f07074 adxenc: remove unnecessary setting of coded_frame->key_frame.
It is already set by avcodec_alloc_frame().
2012-01-03 18:47:41 -05:00
Justin Ruggles
cc40c056d0 adxenc: log an error message and return AVERROR(EINVAL) for invalid channels 2012-01-03 18:47:41 -05:00
Justin Ruggles
a85ab8ad45 adxenc: cosmetics: pretty-printing 2012-01-03 18:47:41 -05:00
Justin Ruggles
25edfc88e3 adxenc: change some data types 2012-01-03 18:47:41 -05:00
Justin Ruggles
c98c6e18d8 adxenc: remove unneeded log message 2012-01-03 18:47:41 -05:00
Justin Ruggles
e3d4f59f95 adxenc: remove unneeded comments 2012-01-03 18:47:41 -05:00
Michael Niedermayer
b024209b1f adx_parser: rewrite.
The previous code ended in multiple different infinite
loops. See stl_ten_1_big.sfd as example with and without zzuf

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-01-03 16:28:17 -05:00
Justin Ruggles
6fd075f180 adxdec: Validate channel count to fix a division by zero. 2012-01-03 16:28:17 -05:00
Michael Niedermayer
4f1a787744 adxdec: Do not require extradata.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-01-03 16:28:17 -05:00
Justin Ruggles
e49d21306a alacdec: implement the 2-pass prediction type.
The reference encoder does not generate any streams using this, but the
reference decoder can handle it, so we should as well.
2012-01-03 13:15:24 -05:00
Justin Ruggles
bb63475aec alacenc: implement the 2-pass prediction type.
This isn't used by the reference encoder, but it is supported by the decoder.
2012-01-03 13:15:23 -05:00
Justin Ruggles
149e1b0468 alacenc: do not generate invalid multi-channel ALAC files 2012-01-03 13:15:23 -05:00
Justin Ruggles
e76c7b856f alacdec: fill in missing or guessed info about the extradata format.
Now that there is official documentation from Apple about this, we don't have
to guess anymore.
2012-01-03 13:15:23 -05:00
Kostya Shishkov
490dcda6b6 utvideo: proper median prediction for interlaced videos 2012-01-03 17:08:49 +01:00
Shitiz Garg
f37b4efe03 dca: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-01-03 15:25:54 +01:00
Aneesh Dogra
2e70b2de58 dct: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-01-03 15:25:51 +01:00
Daniel Verkamp
02e8f4272c win32: detect number of CPUs using affinity
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-01-03 14:25:57 +01:00
Diego Biurrun
418f066f8c snow: Restore three mistakenly removed casts. 2012-01-03 10:27:45 +01:00
Janne Grunau
881a5e047d mpegenc: use avctx->slices as number of slices
Adds a new member to MpegEncContext to hold the number of used slice
contexts. Fixes segfaults with '-threads 17 -thread_type slice' and
fate-vsynth{1,2}-mpeg{2,4}thread{,_ilace} with --disable-pthreads.
2012-01-02 19:20:23 +01:00
Janne Grunau
264808219d v410enc: fix undefined signed left shift caused by integer promotion 2012-01-02 19:20:23 +01:00
Diego Biurrun
8fd35b1aac Fix a bunch of typos. 2012-01-02 16:41:25 +01:00
Diego Biurrun
44b0edda3f Drop some pointless void* return value casts from av_malloc() invocations. 2012-01-02 16:41:24 +01:00
Justin Ruggles
3a1867deac wavpack: fix typos in previous cosmetic clean-up commit 2012-01-02 08:54:30 -05:00
Justin Ruggles
513c238fa9 wavpack: cosmetics: K&R pretty-printing 2012-01-02 08:52:59 -05:00
Hendrik Leppkes
14165fe125 wavpack: determine sample_fmt before requesting a buffer
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-01-01 23:24:15 -05:00
Justin Ruggles
8893fbdf7a bmv audio: implement new audio decoding API 2012-01-01 22:56:04 -05:00
Justin Ruggles
03fafdec82 mpegaudiodec: skip all channels when skipping granules
Also fix calculation of new position when switching buffers.
This fixes "overread" error messages when seeking.
2012-01-01 22:37:50 -05:00
Aneesh Dogra
f7e30cc13b bfi: K&R cosmetics
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-01-01 22:27:04 +01:00
Aneesh Dogra
87d9874864 bgmc: K&R cleanup
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-01-01 22:27:04 +01:00
Stefano Sabatini
28b4af8e38 rawdec: propagate pict_type information to the output frame
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-01-01 22:27:04 +01:00
Piotr Bandurski
d3a5c26986 rawdec: Support more QT 1bpp rawvideo files.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-01-01 22:27:04 +01:00
Janne Grunau
b12d217339 threads: limit the number of automatic threads to MAX_AUTO_THREADS
The extra thread added in {frame_}*thread_init was not taken into
account. Explicitly sets thread_count to 1 if only one CPU core was
detected. Also fixes two typos in comments.
2012-01-01 21:11:43 +01:00
Janne Grunau
b6064d9a59 threads: set thread_count to 1 when thread support is disabled 2012-01-01 14:37:38 +01:00
Janne Grunau
b4d44a45f9 threads: introduce CODEC_CAP_AUTO_THREADS and add it to libx264
Some external codecs have their own code to determine the best number
of threads. This number is not necessary the number of cpu cores.
Thread_count will be only 0 if the codec has CODEC_CAP_AUTO_THREADS.
2012-01-01 14:37:37 +01:00
Ronald S. Bultje
464f26889c mpegaudiodec: fix seeking.
The safe bitstream reader does not allow using skip_bits_long() to seek to a
point before the start of the buffer, which was needed by the mp3 decoder.
This change instead calculates the start point of the first valid granule and
skips to that position.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2011-12-31 14:19:09 -05:00
Justin Ruggles
481a7ff5bd mpegaudiodec: fix compilation when testing the unchecked bitstream reader 2011-12-31 14:19:09 -05:00
Janne Grunau
bcc7396065 threads: add sysconf based number of CPUs detection
Can act as fallback and should work on a couple of Unix systems.
2011-12-31 17:40:12 +01:00
Janne Grunau
937ff3a18a threads: always include necessary headers for number of CPUs detection
Since the conditions for the actual usage are more specific a less
preferred method can be used. This would cause compilation errors
because necessary headers are not included.
2011-12-31 17:40:12 +01:00
Janne Grunau
e4e30256f8 threads: default to automatic thread count detection 2011-12-31 17:40:12 +01:00
Shitiz Garg
c3513477bb cook: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-12-31 01:04:09 +01:00
Diego Biurrun
d4b63054d9 cosmetics: Drop unnecessary parentheses around return values. 2011-12-30 22:18:07 +01:00
Diego Biurrun
ca5ab8cd21 libvorbis: K&R reformatting cosmetics 2011-12-29 23:30:20 +01:00
Aneesh Dogra
c4db344664 libmp3lame: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-12-29 23:30:20 +01:00
Aneesh Dogra
9342ecf02e mpegvideo_enc: K&R cosmetics (line 1000-2000).
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-12-29 13:52:04 -08:00
Kostya Shishkov
1fbd3d30ae indeo4: remove two unused variables 2011-12-29 17:42:31 +01:00
Thad Ward
7af507ea99 lagarith: add decode support for arith rgb24 mode
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-12-29 07:37:33 +01:00
Michael Niedermayer
8f5216905f v410dec: Check for sufficient input data. Fixes crash
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-12-28 12:47:36 -08:00
Kostya Shishkov
adfe0c942e Indeo 4 decoder
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2011-12-28 15:22:18 +01:00
Aneesh Dogra
bd96be6e27 mpegvideo_enc: K&R cosmetics
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-12-27 10:20:20 -08:00
Janne Grunau
06bb590558 threads: test for sys/param.h and include it for sysctl on OpenBSD 2011-12-27 16:09:41 +01:00
Martin Storsjö
676a9ee1d2 x86: Fix constraints for decode_significance*_x86
Originally, prior to 8742a4ff8, the caller code was compiled
within this condition:

ARCH_X86 && HAVE_7REGS && HAVE_EBX_AVAILABLE && !defined(BROKEN_RELOCATIONS)

Since HAVE_7REGS is defined as
(ARCH_X86_64 || (HAVE_EBX_AVAILABLE && HAVE_EBP_AVAILABLE))
the subcondition HAVE_7REGS && HAVE_EBX_AVAILABLE is equal
to HAVE_7REGS (for 32 bit at least). The correct simplification
of the original condition thus is HAVE_7REGS, not
HAVE_EBX_AVAILABLE.

This fixes compilation in some cases where HAVE_EBP_AVAILABLE = 0
and HAVE_EBX_AVAILABLE = 1.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-12-27 09:05:14 +02:00
Anton Khirnov
80dc7c0160 avs: call release_buffer() at the end.
Fixes a memleak.
2011-12-25 20:50:20 +01:00
Anton Khirnov
06e8d38f2b Add minor bumps and APIchanges entries for lavc/lavfi changes. 2011-12-25 20:50:16 +01:00
Konstantin Todorov
c65dfac466 mpegvideo.c: K&R formatting and cosmetics.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-12-25 10:07:19 -08:00
Stefano Sabatini
8a4a5f6ff7 lavc: add format field to AVFrame
The format is a per-frame property, having it in AVFrame simplify the
operation of extraction of that information, since avoids the need to
access the codec/stream context.
2011-12-25 16:18:57 +01:00
Stefano Sabatini
3a2ddf7c2c lavc: add width and height fields to AVFrame
width and height are per-frame properties, setting these values in
AVFrame simplify the operation of extraction of that information,
since avoids the need to check the codec/stream context.
2011-12-25 16:18:57 +01:00
Stefano Sabatini
b58dbb5b03 lavc: add a sample_aspect_ratio field to AVFrame
The sample aspect ratio is a per-frame property, so it makes sense to
define it in AVFrame rather than in the codec/stream context.
Simplify application-level sample aspect ratio information extraction,
and allow further simplifications.
2011-12-25 16:18:57 +01:00
Reinhard Tartler
8b94df0f20 vp3dec: Check coefficient index in vp3_dequant()
Based on a patch by Michael Niedermayer <michaelni@gmx.at>

Fixes NGS00145, CVE-2011-4352

Found-by: Phillip Langlois
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
2011-12-23 15:42:24 +01:00
Michael Niedermayer
6e24b9488e svq1dec: call avcodec_set_dimensions() after dimensions changed.
Fixes NGS00148, CVE-2011-4579

Found-by: Phillip Langlois
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-12-23 15:42:24 +01:00
Janne Grunau
7052618c7e threads: check defines before using them in automatic thread detection 2011-12-23 14:41:03 +01:00
Janne Grunau
846dca1aa3 pthread: include sys/types.h before sys/sysctl.h
Fixes compilation on FreeBSD with clang 3.
2011-12-23 14:40:39 +01:00
Anton Khirnov
d09298f0d6 4xm: remove unused variables. 2011-12-23 09:23:20 +01:00
Alexander Strange
bc6a3bd4a5 h264: Fix a possible overread in decode_nal_units()
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-12-23 08:32:18 +01:00
Sergey Radionov
01eb9805f3 w32thread: call ResetEvent() in pthread_cond_broadcast().
Also add "volatile" to broadcast flag (since it is used from
multiple threads).

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-12-22 19:48:52 -08:00
Gaurav Narula
ad3161ec1d kvmc: fix invalid reads
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2011-12-23 00:11:19 +01:00
Shitiz Garg
355d917c0b 4xm: Add a check in decode_i_frame to prevent buffer overreads
Fixes bugzilla #135

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2011-12-22 23:26:55 +01:00
Paul B Mahol
01a01bf8bd adpcm: fix IMA SMJPEG decoding
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2011-12-22 23:04:30 +01:00
Janne Grunau
c32e4029d9 options: set minimum for "threads" to zero
A negative number of threads does not make sense and 0 is used for
autodetection. Adds a symbolic name for autodetection.
2011-12-22 21:50:07 +01:00
Janne Grunau
b9e2226972 bsd: use number of logical CPUs as automatic thread count 2011-12-22 21:50:07 +01:00
Janne Grunau
ad29ecbff0 windows: use number of CPUs as automatic thread count 2011-12-22 21:50:07 +01:00
Janne Grunau
ea4d5f4837 linux: use number of CPUs as automatic thread count
Use sched_getaffinity to determine the number of logical CPUs.
Limits the number of threads to 16 since slice threading of H.264
seems to be buggy with more than 16 threads.
2011-12-22 21:50:07 +01:00
Janne Grunau
f77f640b30 pthreads: reset active_thread_type when slice thread_init returrns early 2011-12-22 21:50:07 +01:00
Paul B. Mahol
fede015468 v410dec: include correct headers
This file does not use anything from get_bits.h but needs
intreadwrite.h.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2011-12-22 19:22:48 +01:00
Diego Biurrun
aaf47bcde7 Drop ALT_ prefix from BITSTREAM_READER_LE name.
The prefix is a historic remnant that probably meant "alternative".
Now that the A32 bitstream reader has been dropped it makes no sense anymore.
2011-12-22 16:51:23 +01:00
Justin Ruggles
9a3f10695a ra144enc: zero the reflection coeffs if the filter is unstable
fixes use of uninitialized values if the filter is still unstable after using
the previous frame lpc coefficients.
2011-12-22 08:31:07 -05:00
Alex Converse
4bf3c8f226 mov: Don't stick the QuickTime field ordering atom in extradata.
The 'fiel' atoms can be found in H.264 tracks clobbering the extradata.
MJPEG supports non field based extradata, and this data should be
preserved when copying.
2011-12-21 22:04:37 -08:00
Justin Ruggles
f264d336fe truespeech: fix invalid reads in truespeech_apply_twopoint_filter()
fixes Bug 171
2011-12-21 18:13:06 -05:00
Martin Storsjö
ce94948198 nellymoserdec: Indicate that the decoder can handle changed parameters
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-12-21 22:52:44 +02:00
Martin Storsjö
f13db94d0a libavcodec: Apply parameter change side data when decoding audio
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-12-21 22:52:42 +02:00
Martin Storsjö
fe75dc8583 libavcodec: Define a side data type for parameter changes
Also define a codec capability for codecs that can handle
parameters changed externally between decoded packets.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-12-21 22:52:39 +02:00
Martin Storsjö
132846b0c8 aacdec: Handle new extradata passed as side data
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-12-21 22:52:39 +02:00
Martin Storsjö
195c123cc8 libavcodec: Define a side data type for new extradata
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-12-21 22:52:36 +02:00
Diego Biurrun
6fdb2ce34a x86: Tighten register constraints for decode_significance*_x86.
On 32-bit OS X with gcc 4.0/4.2 and shared libraries enabled, the ebx register
is not available, but required to assemble the functions.

This reverts commit 8742a4f to a simplified version of the original constraints.
2011-12-21 12:06:37 +01:00
Diego Biurrun
c18365402b Replace Subversion revisions in comments by Git hashes. 2011-12-21 09:04:25 +01:00
Diego Biurrun
8742a4ff87 h264_cabac: synchronize decode_significance_*_x86 conditionals
The definition and the call site where under different #ifdefs.
2011-12-21 09:04:25 +01:00
Sergey Radionov
2003a29284 w32threads: wait for the waked thread in pthread_cond_signal.
This fixes a deadlock VLC triggered with multithreaded decoding. The
wait forces one of the current waiters to wake and not the thread
which calls pthread_cond_signal() itself.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-12-20 20:21:10 -08:00
Alex Converse
021914e27f aacdec: Cleanup decode_ics_info.
Remove unused function argument.
Return an AVERROR.
Don't zero out ICS on failure.
2011-12-20 18:32:41 -08:00
Rafaël Carré
37c0dc626d lavc: always align height by 32 pixel
Interlaced content for most codec requires it.
This patch is a stop-gap pending a serious rework to support
codecs with non 16 pixel macroblocks.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2011-12-21 00:00:23 +01:00
Luca Barbato
91b1e6f0c6 raw: add 10bit YUV definitions
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2011-12-21 00:00:03 +01:00
Diego Biurrun
1ce1578e4e mpegvideo_enc: separate declarations and statements
libavcodec/mpegvideo_enc.c:1209: warning: ISO C90 forbids mixed declarations and code
2011-12-20 22:38:54 +01:00
Diego Biurrun
bc4d156140 vp3: Reorder some functions to fix VP3 build with Theora disabled. 2011-12-20 22:38:53 +01:00
Diego Biurrun
19277d9335 build: fix standalone compilation of ADX encoder
The encoder depends on the common code, so link against it.
2011-12-20 22:38:52 +01:00
Diego Biurrun
18725fcdc2 build: fix standalone compilation of ADPCM decoders
The generic ADPCM codes depends on the ADPCM data tables.
2011-12-20 22:38:51 +01:00
Aneesh Dogra
1443ea93d9 4xm: Use bytestream2 functions to prevent overreads
Fixes Bug 110.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2011-12-20 13:17:09 -05:00
Aneesh Dogra
fd22616c59 bytestream: add a new set of bytestream functions with overread checking
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2011-12-20 13:17:03 -05:00
Martin Storsjö
b797f73520 vc1dec: Use the right pointer type for the tmp pointer
This fixes warnings about assignment from incompatible
pointer type.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-12-20 11:04:26 +02:00
Janne Grunau
729ebb2f18 h264: clear trailing bits in partially parsed NAL units
Trailing bits are likely to be non-zero if the NAL unit is truncated.
Clearing the bits make overreads of the bitstream less likely in this
case. Fixes playback of
http://streams.videolan.org/streams/mp4/Mr_MrsSmith-h264_aac.mp4 which
has a forbidden byte sequence of 0x00 0x00 0x00 in it SPS.
2011-12-19 23:14:21 +01:00
Aneesh Dogra
0a6aff6936 vc1: Handle WVC1 interlaced stream
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-12-19 22:22:15 +02:00
Aneesh Dogra
00aad121d8 xl: Fix overreads
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-12-19 20:36:26 +02:00
Asen Lekov
25c2d76b68 qcelpdec: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-12-19 16:22:30 +01:00
Diego Biurrun
2fd291846b qcelpdec: cosmetics: drop some pointless parentheses 2011-12-19 16:22:11 +01:00
Diego Biurrun
30bbd5cbc0 x86: conditionally compile dnxhd encoder optimizations 2011-12-19 13:54:10 +01:00
Janne Grunau
358ea75e9e Revert "h264: skip start code search if the size of the nal unit is known"
This reverts commit 87eebb3454.
2011-12-19 03:24:32 +01:00
Janne Grunau
87eebb3454 h264: skip start code search if the size of the nal unit is known
Start code emulation prevention is only required in Annex B bytestream
packed NAL units. For other coding formats the size is already known.
Looking for a start code prefix can result in false positives like in
http://streams.videolan.org/streams/mp4/Mr_MrsSmith-h264_aac.mp4
which has a false positive in the SPS.
2011-12-18 23:52:53 +01:00
Paul B. Mahol
2e7905eee8 cljr: fix buf_size sanity check
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2011-12-18 23:52:53 +01:00
Shitiz Garg
652d81b2c2 cljr: Check if width and height are positive integers
Width and height might get passed as 0 and would cause floating point
exceptions in decode_frame.
Fixes bugzilla #149

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2011-12-18 23:52:53 +01:00
Mans Rullgard
8400b126ac avcodec: deprecate AVFrame.age
This was intended as an optimisation for skipped blocks in MPEG2
P-frames and never used elsewhere.  Removing this "optimisation"
speeds up MPEG2 decoding by 1-2% (ARM Cortex-A9).

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-18 22:14:33 +00:00
Justin Ruggles
bc78ceec2b 4xm: remove unneeded check for remaining unused data.
This is unnecessary complication that only prints a message and does not
affect decoding.
2011-12-18 13:43:45 -05:00
Uoti Urpala
488a5b3fdd tmv decoder: set correct pix_fmt
Previously the decoder only worked if the user had set avctx->pix_fmt
manually. For some reason the libavformat tmv demuxer sets this, so
the problem was not visible in avplay etc.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-12-18 06:58:03 -08:00
Mans Rullgard
e064d46e61 dct-test: remove unused variable cropTbl
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-17 23:12:31 +00:00
Mans Rullgard
86a10281c7 get_bits: remove LAST_SKIP_CACHE macro
This macro is empty since the removal of the A32 bitstream reader.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-17 20:04:28 +00:00
Mans Rullgard
5d8122db5c get_bits: remove strange/obsolete comments
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-17 18:36:20 +00:00
Mans Rullgard
e42bb0ee01 get_bits: whitespace (mostly) cosmetics
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-17 18:36:20 +00:00
Mans Rullgard
adb28c49bd get_bits: remove unnecessary #includes
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-17 17:53:57 +00:00
Mans Rullgard
ac08f798bb mp3dec: hack: fix decoding with safe bitstream reader
The buffer splicing relies on the bitstream reader over-reading
the end of the buffer as declared in init_get_bits(), although
more data is actually present.  Manually moving the bitstream
boundary after init_get_bits() allows this to work as expected.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-17 17:51:22 +00:00
Shitiz Garg
e614fac2e6 adpcm: Check for channels to be a non-zero integer
channels would be 0 sometimes and would cause floating point exception
Fixes bugzilla #124

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2011-12-17 09:44:19 -05:00
Ronald S. Bultje
8cfbbd928c get_bits: introduce safe bitreading to prevent overreads.
When turned on, H264/CAVLC gets ~15% (CVPCMNL1_SVA_C.264) slower for
ultra-high-bitrate files, or ~2.5% (CVFI1_SVA_C.264) for lower-bitrate
files. Other codecs are affected to a lesser extent because they are
less optimized; e.g., VC-1 slows down by less than 1% (all on x86).
The patch generated 3 extra instructions (cmp, cmovae and mov) per
call to get_bits().

The performance penalty on ARM is within the error margin for most
files, up to 4% in extreme cases such as CVPCMNL1_SVA_C.264.

Based on work (for GCI) by Aneesh Dogra <lionaneesh@gmail.com>, and
inspired by patch in Chromium by Chris Evans <cevans@chromium.org>.
2011-12-17 14:03:41 +00:00
Mans Rullgard
a1e98f198e get_bits: remove A32 variant
The A32 bitstream reader variant is only used on ARMv5 and for
Prores due to the larger bit cache this decoder requires.

In benchmarks on ARMv5 (Marvell Sheeva) with gcc 4.6, the only
statistically significant difference between ALT and A32 is
a 4% advantage for ALT in FLAC decoding.  There is thus no (longer)
any reason to keep the A32 reader from this point of view.

This patch adds an option to the ALT reader increasing the bit
cache to 32 bits as required by the Prores decoder.  Benchmarking
shows no significant change in speed on Intel i7.  Again, the
A32 reader fails to justify its existence.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-16 21:21:48 +00:00
Derek Buitenhuis
bb9747c8ee wavpack: Fix 32-bit clipping
In the case that (frame_flags & 0x03) == 3, hybrid_maxclip
may have had a signed integer overflow.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-12-16 20:55:53 +01:00
Derek Buitenhuis
365e1ec26d wavpack: Clip samples after shifting
It doesn't make much sense to clip pre-shift,
nor is it correct for proper decoding.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-12-16 20:55:46 +01:00
Ronald S. Bultje
0b4c323213 h264: don't drop B-frames after next keyframe on POC reset.
The keyframe after a POC reset may not be the first to be returned to
the user. Therefore, don't reset the expected next POC once we return
a keyframe to the user, but once we know that the next frame in the
return-queue is a keyframe.
2011-12-16 11:24:18 -08:00
Mans Rullgard
b8909cb364 get_bits: remove useless pointer casts
These pointers are already of the correct type.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-16 15:34:35 +00:00
Mans Rullgard
11b1db2759 rv40: NEON optimised weak loop filter
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-16 14:36:01 +00:00
Mans Rullgard
dabba0c676 v410enc: fix output buffer size check
The encoder clearly needs width * height * 4 bytes.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-15 17:47:10 +00:00
Mans Rullgard
0249144a1c v410enc: include correct headers
This file does not use anything from put_bits.h but needs
intreadwrite.h.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-15 17:47:10 +00:00
Mans Rullgard
b536c7a3e1 ARM: fix external symbol refs in rv40 asm
External symbol references need prefixes on some systems.
This should fix build errors on Darwin.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-15 11:02:59 +00:00
Martin Storsjö
1b35af3225 libgsm: Reset the MS mode of GSM in the flush function
The mode is set in libgsm_decode_init, but the decoder
object is simply destroyed and recreated in the flush
function - therefore the mode has to be set again.

This fixes playback using the libgsm_ms decoder in avplay.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-12-15 09:08:40 +02:00
Martin Storsjö
8637af8d24 libgsm: Set options on the right object
This fixes regressions in decoding using the libgsm_ms decoder,
broken since 0eea212943.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-12-15 09:08:21 +02:00
Mans Rullgard
f7de52354f ARM: dca: disable optimised decode_blockcodes() for old gcc
Old gcc versions have trouble compiling this function, and
no simple, targeted test is possible.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-15 01:02:58 +00:00
Andrey Utkin
4f820131fa mpegvideo: remove abort() in ff_find_unused_picture()
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2011-12-14 18:17:21 +01:00
Mans Rullgard
71ce76027d rv40: NEON optimised loop filter strength selection
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-14 11:26:30 +00:00
Mans Rullgard
d8edf1b515 rv40: rearrange loop filter functions
This splits the loop filter functions into smaller, more SIMD-friendly
functions.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-14 11:26:30 +00:00
Diego Biurrun
88b9735753 build: conditionally compile x86 H.264 chroma optimizations 2011-12-14 11:58:45 +01:00
Derek Buitenhuis
80f6c0bb95 v410 encoder and decoder
v410 is a packed 10-bit 4:4:4 YCbCr format used in
QuickTime.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-12-13 23:34:24 +01:00
Gaurav Narula
a99273ebf3 ulti: Fix invalid reads
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-12-13 20:08:15 +02:00
Luca Barbato
4f3667ba59 vc1: mark with ER_MB_ERROR bits overconsumption
This patch is a generalization of what Michael Niedermayer
fixed in a single case.

The wmv8-drm fate test had been updated accordingly.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2011-12-13 16:20:58 +01:00
Luca Barbato
63ccd46687 lavc: introduce ER_MB_END and ER_MB_ERROR
Simplify a little error resilience calls

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2011-12-13 16:20:58 +01:00
Luca Barbato
5bf2ac2b37 error_resilience: use the ER_ namespace
Add the namespace to {AC_,DC_,MV_}{END,ERROR} macros

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2011-12-13 16:20:58 +01:00
Mans Rullgard
878dda5db1 build: move inclusion of subdir.mak to main subdir loop
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-13 14:26:49 +00:00
Mans Rullgard
4722a03c75 rv34: NEON optimised 4x4 dequant
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-13 12:06:21 +00:00
Mans Rullgard
40901fc14e rv34: move 4x4 dequant to RV34DSPContext
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-13 12:05:34 +00:00
Alex Converse
5cd56e193f aacdec: Use intfloat.h rather than local punning union. 2011-12-12 21:36:54 -08:00
Diego Biurrun
58c42af722 doxygen: misc consistency, spelling and wording fixes 2011-12-12 23:06:23 +01:00
Paul B Mahol
8b494b7b27 vcr1: drop unnecessary emms_c() calls without MMX code
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-12-12 21:17:13 +01:00
Dustin Brody
5b22d6e132 lavc: convert error_recognition to err_recognition.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-12-12 19:42:50 +01:00
Martin Storsjö
f1dba9e498 x86: Require 7 registers for the cabac asm
The change in 599b4c6ef didn't turn out to work properly on
i386 on OS X, where it broke building with PIC enabled.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-12-12 15:36:20 +02:00
Mans Rullgard
5695ae46f8 h264: remove useless cast
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-12 00:02:48 +00:00
Mans Rullgard
179ae53fed proresdec: fix decode_slice() prototype
Make the function prototype match the argument of
AVCodecCntext.execute() and remove the cast hiding
this mismatch.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-12 00:02:47 +00:00
Mans Rullgard
599b4c6efd x86: cabac: replace explicit memory references with "m" operands
This replaces the explicit offset(reg) memory references with
"m" operands for the same locations.  As a result, one fewer
register operand is needed for these inline asm statements.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-11 22:29:22 +00:00
Mans Rullgard
4424fe9c02 wmapro: use av_float2int()
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-11 18:55:16 +00:00
Mans Rullgard
a09bb3ba5e lavc: avoid invalid memcpy() in avcodec_default_release_buffer()
When the buf and last pointers are equal, the FFSWAP() results
in an invalid call to memcpy() with same source and destination
on some targets.  Although assigning a struct to itself is valid
C99, gcc does not check for this before calling memcpy().
See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32667

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-11 18:54:28 +00:00
Mans Rullgard
3383a53e7d lavu: replace int/float punning functions
The existing functions defined in intfloat_readwrite.[ch] are
both slow and incorrect (infinities are not handled).

This introduces a new header with fast, inline conversion
functions using direct union punning assuming an IEEE-754
system, an assumption already made throughout the code.

The one use of Intel/Motorola extended 80-bit format is
replaced by simpler code sufficient under the present
constraints (positive normal values).

The old functions are marked deprecated and retained for
compatibility.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-11 18:47:19 +00:00
Mans Rullgard
373211d828 Remove extraneous semicolons
These semicolons cause invalid empty top-level declarations.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-11 17:23:24 +00:00
Diego Biurrun
da9cea77e3 Fix a bunch of common typos. 2011-12-11 00:32:25 +01:00
Shitiz Garg
8bd1f1a4c8 ttadec: check channel count as read from extradata.
fixes floating-point exception due to channels being set to 0.
fixes Bug 128.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2011-12-10 14:54:19 -05:00
Paul B Mahol
65c1011404 cljr: remove unused code
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-12-10 20:11:28 +01:00
Janne Grunau
8d61eef917 ptx: fix inverted check for sufficient data
Fix regression introduced in 2b53e69.
2011-12-10 17:01:27 +01:00
Janne Grunau
2b53e696c8 ptx: emit a warning on insufficient picture data
Return the whole packet as consumed in this case and not the size the
packet should have had. Move the insufficient data check into the for
condition to fix a ISO C90 error on bigendian.
2011-12-10 15:29:54 +01:00
Kostya Shishkov
19341c58e0 Dxtory capture format decoder
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-12-10 11:58:03 +01:00
Diego Biurrun
6b60a4c9c9 cljr: K&R cosmetics 2011-12-08 20:28:27 +01:00
Diego Biurrun
1c45c64c9d cljr: return a more sensible value when encountering invalid headers 2011-12-08 20:28:27 +01:00
Diego Biurrun
163682fab3 cljr: drop unnecessary emms_c() calls without MMX code 2011-12-08 20:28:26 +01:00
Mans Rullgard
bbc10185ee cljr: remove useless casts
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-08 15:56:31 +00:00
Mans Rullgard
baf3b6e594 cljr: group encode/decode parts under single ifdefs
This groups the encode/decode parts under single ifdefs and
eliminates the encode_init() function as it merely calls
common_init().  Also fix whitespace in moved code.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-08 15:56:30 +00:00
Mans Rullgard
9a1420bfda cljr: remove stray semicolon
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-08 15:56:30 +00:00
Paul B Mahol
ca52bae6ec cljr: add missing return statement in decode_end()
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-08 14:44:05 +00:00
John Brooks
8562d9bd6c shorten: avoid abort() on unknown audio types
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2011-12-08 11:30:24 +01:00
Paul B Mahol
e93947b7d8 cljr: add encoder
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-12-08 09:47:53 +01:00
Diego Biurrun
4dccfff9dd tests/examples: Mark some variables only used within their files as static. 2011-12-08 01:01:00 +01:00
Diego Biurrun
9a5d6c23c5 tests/tools/examples: Replace direct exit() calls by return. 2011-12-08 01:00:58 +01:00
Paul B. Mahol
04a5eaa1a5 cljr: release picture at end of decoding
Otherwise after transcoding from cljr we get: Found 1 unreleased buffers!

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2011-12-08 00:36:32 +01:00
Mans Rullgard
392107ad07 rv40: NEON optimised rv40 qpel motion compensation
Based on patch by Janne Grunau.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-07 22:38:14 +00:00
Hendrik Leppkes
bc057f7592 pcm-mpeg: implement new audio decoding api
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2011-12-07 13:52:00 -05:00
Ronald S. Bultje
8b03d7fe95 w32thread: port fixes to pthread_cond_broadcast() from x264. 2011-12-07 10:30:54 -08:00
Rafaël Carré
7efea2a051 dxva2.h: include d3d9.h to define LPDIRECT3DSURFACE9
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2011-12-07 16:54:23 +01:00
Diego Biurrun
ff159e7816 doxygen: Replace '\' by '@' in Doxygen markup tags. 2011-12-07 15:29:14 +01:00
Diego Biurrun
ee41963f19 cosmetics: drop some completely pointless parentheses 2011-12-07 15:29:13 +01:00
Paul B. Mahol
fc9489f6ad cljr: simplify CLJRContext
There is no need to have delta, offset and gb in CLJRContext.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2011-12-07 15:15:02 +01:00
Konstantin Todorov
4d9ec050a2 Code cleanup - mpegvideo.c - 500-1000line
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-12-06 11:32:38 -08:00
Janne Grunau
6c88988866 rv40: NEON optimised weighted prediction
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-06 13:48:25 +00:00
Janne Grunau
f5c05b9aa5 rv40: NEON optimised chroma MC
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-06 13:48:25 +00:00
Mans Rullgard
f054a82727 ARM: move NEON H264 chroma mc to a separate file
This allows sharing code with the rv40 version of these functions.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-06 13:48:24 +00:00
Janne Grunau
42d32cf53c rv34: NEON optimised inverse transform functions
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-06 13:48:24 +00:00
Diego Biurrun
e873c03ac7 misc Doxygen markup improvements 2011-12-05 13:06:58 +01:00
Diego Biurrun
c68fafe0d2 doxygen: eliminate Qt-style doxygen syntax 2011-12-05 13:06:58 +01:00
Sjoerd Simons
f32fd31858 g722: Change bits per sample to 4
Earlier, bits per sample was defined as 8, since
bits_per_coded_sample was used to indicate whether to ignore
the lower bits of the codeword, having values 6, 7 or 8.

g722 encodes 2 samples into one byte codeword, therefore the
bits per sample is 4. By changing this, the generated timestamps
for streams encoded with g722 become correct.

This makes timestamp generation for g722 data correct (both when
encoding and when demuxing from raw g722 files).

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-12-05 12:41:46 +02:00
Martin Storsjö
6fcbb0f553 g722dec: Signal skipping the lower bits via AVOptions instead of bits_per_coded_sample
This avoids using bits_per_coded_sample for this information.
bits_per_coded_sample should be 4 for this codec normally,
since two samples are encoded into one 8 bit codeword.

In principle, this might be info that needs to be passed from
a demuxer, and in that case, a private AVOption isn't the best
choice, but no such samples are available at the moment, so
that use case is purely theoretical at the moment.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-12-05 12:41:23 +02:00
Justin Ruggles
0bafe04917 api-example: update to use avcodec_decode_audio4() 2011-12-04 18:29:51 -05:00
Chris Berov
dc6d043050 adpcmenc: cosmetics: pretty-printing
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2011-12-04 17:07:48 -05:00
Chris Berov
541d083a40 ac3dec: cosmetics: pretty-printing
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2011-12-04 16:15:48 -05:00
Paul B. Mahol
eda8731285 shorten: remove dead initialization
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2011-12-04 15:12:05 -05:00
Reimar Döffinger
7679bd6e60 roqvideodec: set AVFrame reference before reget_buffer.
Otherwise it might return a write-only frame which would break
decoding completely.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-12-04 16:04:27 +01:00
Carl Eugen Hoyos
1e92d58e44 bmp: fix some 1bit samples.
<= 8bpp BMP images always have palette.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-12-04 16:04:27 +01:00
Derek Buitenhuis
a548b6cbfc wavpack: Properly clip samples during lossy decode
When decoding lossy WavPack samples, they are supposed
to be clipped, in order to be decoded correctly.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-12-03 15:32:21 -08:00
Nathan Adil Maxson
8f8c785ffc zmbv.c: coding style clean-up.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-12-03 14:11:39 -08:00
Nathan Adil Maxson
6eedeefe0b xan.c: coding style clean-up.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-12-03 14:11:26 -08:00
Konstantin Todorov
363114e813 mpegvideo.c: code cleanup - first 500 lines.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-12-03 14:03:27 -08:00
Ronald S. Bultje
adedd840e2 h264: fix frame reordering code.
Fixes fate-h264-conformance-{mr2_tandberg_e,mr3_tandberg_b} without
requiring -strict 1.
2011-12-03 08:24:27 -08:00
Janne Grunau
d268b79e34 aac_latm: reconfigure decoder on audio specific config changes 2011-12-03 00:42:48 +01:00
Janne Grunau
fd095539d1 latmdec: fix audio specific config parsing
Pass the correct size in bits to mpeg4audio_get_config and add a flag
to disable parsing of the sync extension when the size is not known.

Latm with AudioMuxVersion 0 does not specify the size of the audio
specific config. Data after the audio specific config can be
misinterpreted as sync extension resulting in random and wrong configs.
2011-12-03 00:42:48 +01:00
Justin Ruggles
0eea212943 Add avcodec_decode_audio4().
Deprecate avcodec_decode_audio3().
Implement audio support in avcodec_default_get_buffer().
Implement the new audio decoder API in all audio decoders.
2011-12-02 17:40:40 -05:00
Justin Ruggles
560f773c7d avcodec: change number of plane pointers from 4 to 8 at next major bump.
Add AV_NUM_DATA_POINTERS to simplify the bump transition.
This will allow for supporting more planar audio channels without having to
allocate separate pointer arrays.
2011-12-02 17:40:40 -05:00
Mans Rullgard
51a16077da svq1dec: avoid undefined get_bits(0) call
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-02 21:52:09 +00:00
Mans Rullgard
59807fee6d ARM: h264dsp_neon cosmetics
- Replace 'ip' with 'r12'.
- Use correct size designators for vld1/vst1.
- Whitespace fixes.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-02 19:59:18 +00:00
Janne Grunau
a760f530bb ARM: make some NEON macros reusable
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-02 19:59:18 +00:00
Aaron Colwell
e02dec25ab vp8: flush buffers on size changes. 2011-12-02 07:21:08 -08:00
Nathan Adil Maxson
d0fd6fc201 Cleaned up alacenc.c
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-12-01 20:14:21 -08:00
Ronald S. Bultje
2574f08d4c h264: cap max has_b_frames at MAX_DELAYED_PIC_COUNT - 1.
This prevents frame allocation overflows, and fixed
fate-h264-conformance-mr3_tandberg_b with 2 threads.
2011-12-01 12:46:28 -08:00
Mans Rullgard
3adba2de3d ARM: fix indentation in ff_dsputil_init_neon()
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-01 19:41:36 +00:00
Mans Rullgard
96fef6cf31 ARM: NEON put/avg_pixels8/16 cosmetics
This makes whitespace and register names consistent with
the style used in more recent code.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-01 19:41:36 +00:00
Mans Rullgard
716f1705e9 ARM: add remaining NEON avg_pixels8/16 functions 2011-12-01 19:41:36 +00:00
Mans Rullgard
94267ddfb2 ARM: clean up NEON put/avg_pixels macros
Although this adds a few lines, the macro calls are less convoluted.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-01 19:41:35 +00:00
Mans Rullgard
37fed0e635 rv34: align temporary block of "dct" coefs
This is needed for optimised transforms.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-01 14:29:29 +00:00
Michael Niedermayer
adfdcf87b1 vble: use dsp.add_hfyu_median_prediction() this allows asm optimizations to be used.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-11-30 21:06:32 -08:00
Michael Niedermayer
317ea97bff vble: remove flags copy, its not used in any speed relevant code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-11-30 21:06:15 -08:00
Derek Buitenhuis
e46abbcf77 vble: merge len and val arrays
There's no reason to use two arrays for this.

Based off commit 2fea60c600
to FFmpeg by Michael Niedermayer.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-11-30 21:05:55 -08:00
Michael Niedermayer
0dd704dbd4 vble: remove unused variable len.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-11-30 21:05:31 -08:00
Janne Grunau
bb8a6e03cc rv40: move loop filter to rv34dsp context
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-30 20:54:59 +00:00
Aneesh Dogra
464ccb0144 indeo3: check per-plane data buffer against input buffer bounds.
Fixes : http://bugzilla.libav.org/show_bug.cgi?id=102

Signed-off-by: Alex Converse <alex.converse@gmail.com>
2011-11-29 09:58:05 -08:00
Aaron Colwell
39a7a5b8ab pthread: don't increment index on zero-sized packets.
The next call to decode() will update from an invalid index, which will
either lead to a memcpy() where dest==src (2 threads), or lead to a
crash (>2 threads).

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-11-28 20:30:30 -08:00
Alex Converse
a27805189b txd: Fix order of operations. 2011-11-28 11:22:36 -08:00
Diego Biurrun
c88ebdb42c Eliminate pointless 0/NULL initializers in AVCodec and similar declarations. 2011-11-28 10:01:50 +01:00
Kostya Shishkov
1469f943ad indeo3: cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-11-28 10:01:49 +01:00
Alex Converse
999e7ebd23 dca: Replace oversized unused get_bits() with skip_bits_long(). 2011-11-27 15:57:38 -08:00
Luca Barbato
1f948745c3 vc1: use an enum for Frame Coding Mode
Document it a little and possibly fix a bug in dxva2_vc1.
2011-11-28 00:40:22 +01:00
Aneesh Dogra
97980db487 indeo3: error out if no motion vector is set.
This fixes a crash on a corrupt bitstream (bugzilla #93).

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-11-27 13:30:00 -08:00
Justin Ruggles
0df5e869cb mpegaudio: do not use init_static_data() for initializing tables.
It is called once for each mpegaudio codec that is registered, which adds
significant overhead.
2011-11-27 13:59:34 -05:00
Alex Converse
f11b0e9543 wmavoice: Make format string match variable type. 2011-11-26 19:40:34 -08:00
Kostya Shishkov
498605b4ad vc1: select interlaced scan table by FCM element
Interlaced videos can contain progressive frames too and now wrong scantable
is selected for them.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-11-26 18:14:07 -08:00
Cheng Sun
3f5aa7dfa6 pthread: track thread existence in a separate variable.
This fixes a compile error on mingw32 when using p->thread
directly (as if it were a pointer) to track thread existence,
because the type is opaque and may be a non-pointer.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-11-26 17:14:13 -08:00
Mans Rullgard
8540dcfd7a snow: fix integer overflows
The way these values are used, they should have an unsigned type.
A similar change was made for mpegvideo in cb66847.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-26 22:53:47 +00:00
Mans Rullgard
0e55edcb57 svq1enc: remove stale altivec-related hack
altivec.h is no longer (indirectly) included, so this hack is not
needed.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-26 22:53:47 +00:00
Mans Rullgard
ff6d9cc558 snow: fix signed overflow in byte to 32-bit replication
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-26 22:53:46 +00:00
Justin Ruggles
9d2dd356c2 adx: rename ff_adx_decode_header() to avpriv_adx_decode_header()
It is used by the ADX decoder, and therefore needs to be exported in order to
work with shared libs.
2011-11-26 17:00:00 -05:00
Justin Ruggles
a17c3c7d15 avformat: add CRI ADX format demuxer 2011-11-26 16:25:07 -05:00
Justin Ruggles
27360ccc5e adx: add an ADX parser.
This simplifies the decoder so it doesn't have to process an in-packet header
or handle arbitrary-sized packets. It also fixes decoding of files with large
headers.
2011-11-26 16:25:07 -05:00
Justin Ruggles
d8cec2d7fc adx: move header decoding to ADX common code 2011-11-26 16:25:07 -05:00
Justin Ruggles
7ff55d9bdb adx: calculate the number of blocks in a packet 2011-11-26 16:25:07 -05:00
Justin Ruggles
05c1f11b56 adx: define and use 2 new macro constants BLOCK_SIZE and BLOCK_SAMPLES 2011-11-26 16:25:07 -05:00
Justin Ruggles
d1745619db adx: check for unsupported ADX formats 2011-11-26 16:25:07 -05:00
Justin Ruggles
994238536a adx: simplify encoding by using put_sbits() 2011-11-26 16:25:07 -05:00
Justin Ruggles
b237248e29 adx: calculate correct LPC coeffs
Instead of using fixed coefficients, the correct way is to calculate the
coefficients using the highpass cutoff frequency from the ADX stream header
and the sample rate.
2011-11-26 16:25:06 -05:00
Justin Ruggles
954d94dd5e adx: use 12-bit coefficients instead of 14-bit to avoid integer overflow 2011-11-26 16:25:06 -05:00
Justin Ruggles
c52ddc6024 adx: simplify adx_decode() by using get_sbits() to read residual samples 2011-11-26 16:25:06 -05:00
Justin Ruggles
ca9e4727ba adx: fix the data offset parsing in adx_decode_header()
first 2 bytes are 0x80, 0x00. offset is only 16-bit.
this is according to format descriptions on multimedia wiki and wikipedia.
2011-11-26 16:25:06 -05:00
Justin Ruggles
837bbd19eb adx: remove unneeded post-decode channel interleaving
instead interleave channels while decoding
2011-11-26 16:25:06 -05:00
Justin Ruggles
e2d1eace00 adx: validate header values 2011-11-26 16:25:06 -05:00
Justin Ruggles
8db67610c0 adx: cosmetics: general pretty-printing and comment clean-up 2011-11-26 16:25:06 -05:00
Justin Ruggles
fbc79a9101 adx: remove useless comments 2011-11-26 16:25:06 -05:00
Justin Ruggles
e0722d7fb7 adx: change short to int16_t 2011-11-26 16:25:06 -05:00
Justin Ruggles
dd1b9f7cd9 adx: rename struct PREV to ADXChannelState 2011-11-26 16:25:06 -05:00
Mans Rullgard
3a83b2461e dnxhdenc: fix signed overflows
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-26 20:52:10 +00:00
Mans Rullgard
b6ae086682 dv: simplify bitstream splicing in dv_decode_ac()
This is simpler and fixes some overflow checker warnings.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-26 20:52:09 +00:00
Mans Rullgard
b02aa3a8ea s3tc: fix shift overflow by using unsigned constant
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-26 18:50:42 +00:00
Mans Rullgard
f7f892e4d5 svq1enc: fix signed multiplication overflow
This multiplication can overflow the signed range but not the
unsigned.  After right-shifting it will thus fit in the signed
range again.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-26 18:50:27 +00:00
Mans Rullgard
e4faa31a0a svq1dec: use sign_extend()
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-26 18:50:02 +00:00
Mans Rullgard
171ec81223 rv34: fix signed multiplication overflow
Multiply by unsigned 0x01010101 to replicate bytes into 32-bit
word.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-26 18:49:51 +00:00
Cheng Sun
e524eadbf8 [PATCH] Fix crash when initializing multi-threaded decoding for corrupted file.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-11-26 10:46:08 -08:00
Mans Rullgard
b7581b5c83 cook: use a table for xor key rotation
This is simpler and avoids an invalid shift by 32 in the
aligned case.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-26 11:38:41 +00:00
Mans Rullgard
644bff6c9b apedec: fix signed integer overflows
This bit manipulation is equivalent but avoids undefined
shifts and overflows.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-26 11:38:41 +00:00
Mans Rullgard
93c286e54f qtrle: simplify 32-bit decode using intreadwrite macros
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-26 11:38:41 +00:00
Mans Rullgard
3bd1162a52 gif: fix invalid signed shifts
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-26 11:38:40 +00:00
Reimar Döffinger
7fb55e0b02 rtjpeg: simplify get_block() by using get_bits_left.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-11-26 08:40:51 +01:00
Reimar Döffinger
7a62ddb689 rtjpeg: check get_block return value for error.
This avoids crashes due to reading out-of-bounds.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-11-26 08:39:58 +01:00
Reimar Döffinger
f6afacdb3b nuv: check per-frame header for validity.
Since it contains dimensions parsing an invalid one has rather
annoying effects.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-11-26 08:38:59 +01:00
Reimar Döffinger
785baa738a nuv: use FFALIGN.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-11-26 08:38:14 +01:00
Carl Eugen Hoyos
1484b5dec5 flicvideo: check extradata_size before accessing extradata.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-11-26 08:36:16 +01:00
Michael Niedermayer
5ace144fe0 fraps: check for overread.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-11-26 08:35:57 +01:00
K.Y.H
51f316a997 cook: fix apparent typo in extradata parsing
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-11-26 08:33:31 +01:00
Anton Khirnov
488eec1044 lavc: update doxy to use nondeprecated API. 2011-11-26 08:26:24 +01:00
Mans Rullgard
cc276c85d1 Make channel layout masks unsigned
It makes more sense for a bit mask to use an unsigned type.
The change should be source and binary compatible on all
supported systems, hence micro version bump.

Fixes a few invalid shifts.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-25 13:19:54 +00:00
Mans Rullgard
00a856e3f9 dca: ARMv6 optimised decode_blockcode()
This is a hand-tuned version of the code with impossible parts of
the FASTDIV function ommitted.

2-5% faster overall on Cortex-A8.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-25 13:19:53 +00:00
Janne Grunau
117e2a30f2 frame-mt: return consumed packet size in ff_thread_decode_frame
This is required to fulfill avcodec_decode_video2() promise to return
the number of consumed bytes on success.
2011-11-25 08:25:12 +01:00
Luca Barbato
7f1b427018 snow: split snow in snowdec and snowenc
The common non inlined code goes in snow.c, the common inlined code in
snow.h, tables move in snowdata.h (included only by snow.c)
2011-11-24 21:35:47 +01:00
Anton Khirnov
8b7412fe4e tiffenc: deprecate using compression_level 2011-11-24 21:31:36 +01:00
Ronald S. Bultje
db431f7efe h264: add support for decoding planar RGB images. 2011-11-24 08:25:36 -08:00
Justin Ruggles
c1848c4b26 pcmdec: remove unneeded resetting of samples pointer 2011-11-23 16:26:15 -05:00
Anton Khirnov
3eedd29bd7 bethsoftvideo: return proper consumed size for palette packets.
Also check for sufficient packet size.
2011-11-23 21:58:30 +01:00
Anton Khirnov
a94c769dad tiffenc: add a private option for selecting compression algorithm 2011-11-23 20:29:25 +01:00
Mans Rullgard
3a0b72dee0 ARM: remove needless .text/.align directives
The 'function' macro already includes the appropriate
directives.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-23 15:06:50 +00:00
Alex Converse
963f685535 aacdec: Fix PS in ADTS.
Fixes File1.aac and Bug 80.
2011-11-22 14:33:11 -08:00
Justin Ruggles
0e8fdd41c2 dsputil: use cpuflags in x86 emu_edge_core
avoids passing around the extra argument among all the macros it uses
2011-11-22 15:40:51 -05:00
Justin Ruggles
395f2e70dd dsputil: use movups instead of movdqu in ff_emu_edge_core_sse()
This allows emulated_edge_mc_sse() and gmc_sse() to be used under
AV_CPU_FLAG_SSE.
2011-11-22 15:40:51 -05:00
Justin Ruggles
05d1e45d1f wma: initialize prev_block_len_bits, next_block_len_bits, and block_len_bits.
The initial values are not checked against the number of block sizes.
Initializing them to frame_len_bits will result in a block size index of 0
in these cases instead of something that might be out-of-range.

Fixes Bug 81.
2011-11-22 13:50:18 -05:00
Mans Rullgard
85770d6e56 Add libavutil/mathematics.h #includes for INFINITY
This fixes build errors in some environments.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-22 16:36:44 +00:00
Luca Barbato
e97e5a2e02 doxy: introduce an empty structure in libavcodec 2011-11-22 17:16:02 +01:00
Mans Rullgard
8ee2b4672f ARM: add explicit .arch and .fpu directives to asm.S
This prevents build errors when compiler and assembler default
targets differ.  Ideally each file would declare the highest
level it requires.  This is however not easily possible as it
complicates assembling pre-armv6t2 code in Thumb-2 mode.

HAVE_NEON is used as indicator for ARMv7-A since no other
symbol exists for this and NEON is only available in this
variant.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-22 12:13:02 +00:00
Janne Grunau
0945eddec0 pthread: do not touch has_b_frames
Adding the thread count in frame level multithreading to has_b_frames
as an additional delay causes more problems than it solves.
For example inconsistent behaviour during timestamp calculation in
libavformat.
Thread count and frame level multithreading are both set by the user.
If the additional delay caused by frame level multithreading needs
to be considered in the calling code it has all information to take
it into account.
Should it become necessary to calculate a maximum delay inside
libavcodec it should be exported as its own field and not reusing
an existing field.

Based on a patch by Michael Niedermayer.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2011-11-22 09:50:33 +01:00
Justin Ruggles
a8fe9a7242 pthread: add some malloc failure checks 2011-11-21 10:18:25 -05:00
Justin Ruggles
f3a29b750a avcodec: move some AVCodecContext fields to an internal struct.
A new field, AVCodecContext.internal is used to hold a new struct
AVCodecInternal, which has private fields that are not codec-specific and are
used by general libavcodec functions.

Moved internal_buffer, internal_buffer_count, and is_copy.
2011-11-19 10:01:05 -05:00
Justin Ruggles
513b691955 avcodec: use av_opt_set() instead of deprecated av_set_string3() 2011-11-19 01:14:27 -05:00
Justin Ruggles
fa9aeb82e2 avcodec: fix some const warnings
libavcodec/options.c:583: warning: assignment discards qualifiers from pointer
target type
libavcodec/options.c:589: warning: initialization discards qualifiers from
pointer target type
2011-11-19 01:10:58 -05:00
Justin Ruggles
86d3730360 avcodec: remove pointless AVOption, internal_buffer_count 2011-11-19 00:36:49 -05:00
Luca Barbato
b7d939d998 cinepack: return non-generic errors 2011-11-18 12:10:41 +01:00
Michael Niedermayer
a4009c6a9a cinepak: remove redundant coordinate checks
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-18 11:58:45 +02:00
Michael Niedermayer
867b496681 cinepak: check strip_size
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-18 11:58:43 +02:00
Michael Niedermayer
d92fea2b14 cinepak, simplify, use AV_RB24()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-18 11:58:42 +02:00
Michael Niedermayer
a2b51fe87c cinepak: simplify, use FFMIN()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-18 11:36:05 +02:00
Michael Niedermayer
b55aa7df6b cinepak: Fix division by zero, ask for sample if encoded_buf_size is 0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-18 11:35:56 +02:00
Alex Converse
bb4b0ad83b vp5: Fix illegal read.
Found with Address Sanitizer
2011-11-17 11:58:49 -08:00
Thierry Foucu
e0966eb140 vp6: Fix illegal read.
Found with Address Sanitizer

Signed-off-by: Alex Converse <alex.converse@gmail.com>
2011-11-17 11:58:40 -08:00
Martin Storsjö
268fb3f985 mpegaudiodec: Don't use a nonexistent log context for av_dlog
This fixes builds with DEBUG defined, broken since
1158745a2d.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-16 12:01:32 +02:00
Mike Melanson
747283a078 cinepak: Add another special case so that it can handle the following file:
http://samples.mplayerhq.hu/V-codecs/CVID/bad_cinepak_frame_size.mov

This fix works around another work around which handles a different type
of odd Cinepak data.

Thanks to Matthew Hoops (clone2727 - gmail.com) for the sample and fix.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-16 10:50:52 +02:00
Kostya Shishkov
ffc638c283 lagarith: add some RGBA decoding support
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-16 10:49:51 +02:00
Nathan Caldwell
39616fc307 lagarith: Add correct line prediction for RGB
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-16 10:46:30 +02:00
Justin Ruggles
f1d1516e55 cosmetics: indentation 2011-11-15 12:17:20 -05:00
Justin Ruggles
1158745a2d mpegaudiodec: init static tables in AVCodec.init_static_data() 2011-11-15 12:17:20 -05:00
Mans Rullgard
3f5d6a665a binkvideo: simplify and remove invalid shifts
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-14 15:35:29 +00:00
Sebastien Zwickert
ac3dbb4d58 hwaccel: OS X Video Decoder Acceleration (VDA) support.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2011-11-14 16:07:32 +01:00
Janne Grunau
29ae0565d9 vble: remove vble_error_close
It does not make much sense to factor the error handling to its own
av_always_inline function. Fixes "format not a string literal and no
format arguments" warning in the av_log.
2011-11-11 22:05:51 +01:00
Derek Buitenhuis
c433a3f9a5 VBLE Decoder
Add a decoder for the VBLE Lossless Codec, which
still has a cult following. Used to be popular
several years ago on doom9.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-11 22:46:47 +02:00
Justin Ruggles
b656c4d08e tta: use an integer instead of a pointer to iterate output samples 2011-11-11 14:18:22 -05:00
Justin Ruggles
5c210e2cb9 shorten: do not modify samples pointer when interleaving 2011-11-11 14:18:22 -05:00
Justin Ruggles
befc473c00 mpc7: only support stereo input.
The Musepack SV7 reference encoder converts mono to stereo when encoding.
2011-11-11 14:17:40 -05:00
Justin Ruggles
8dbc6d03c0 dpcm: do not try to decode empty packets 2011-11-11 14:17:39 -05:00
Justin Ruggles
e79da63282 dpcm: remove unneeded buf_size==0 check.
It is already checked in avcodec_decode_audio3()
2011-11-11 14:17:39 -05:00
Justin Ruggles
9d06037d48 twinvq: add SSE/AVX optimized sum/difference stereo interleaving 2011-11-11 14:13:58 -05:00
Justin Ruggles
7b966566da vqf/twinvq: pass vqf COMM chunk info in extradata
This is needed because the twinvq decoder cannot rely on bit_rate to be set.
The API documentation says that bit_rate is set by libavcodec, not by the
user.
2011-11-11 14:06:14 -05:00
Justin Ruggles
a8a6da4a0e twinvq: check for allocation failure in init_mdct_win() 2011-11-11 14:06:14 -05:00
Alex Converse
88b2436911 mpc7: Fix memset call in mpc7_decode_frame function 2011-11-10 09:30:49 -08:00
Justin Ruggles
164fca39bd atrac1: use correct context for av_log() 2011-11-10 10:25:47 -05:00
Justin Ruggles
c298b2b8db apedec: consume the whole packet when copying to the decoder buffer.
This avoids artifically consuming a partial packet but ignoring remaining data
in subsequent calls.
2011-11-10 10:25:47 -05:00
Justin Ruggles
de157f2118 apedec: do not needlessly copy s->samples to nblocks.
also move nblocks to the local scope where it is used.
2011-11-10 10:25:47 -05:00
Justin Ruggles
4315c7d35a apedec: check output buffer size after calculating actual output size 2011-11-10 10:25:47 -05:00
Justin Ruggles
ad17207b51 apedec: remove unneeded entropy decoder normalization.
The decoder already skips data at the end of the packet without this.
Also remove 2 APEContext fields that were only used for the end-of-frame
normalization.
2011-11-10 10:25:47 -05:00
Justin Ruggles
59f4d1b8bb truespeech: use memmove() in truespeech_update_filters() 2011-11-10 10:25:46 -05:00
Justin Ruggles
41899b9acb vorbisdec: remove AVCODEC_MAX_AUDIO_FRAME_SIZE check
The user could provide a larger buffer, which is already checked separately
before writing output.
2011-11-10 10:25:46 -05:00
Justin Ruggles
e551a6f49a vorbisdec: remove unneeded buf_size==0 check 2011-11-10 10:25:46 -05:00
Justin Ruggles
f666276fa6 vorbisdec: return proper error codes instead of made-up ones 2011-11-10 10:25:46 -05:00
Laurent Aimar
2305742b2a sunrast: Check for invalid/corrupted bitstream
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2011-11-10 12:32:26 +01:00
Justin Ruggles
f1f6d3615f avcodec: add support for planar signed 8-bit PCM.
It is found in some 8svx files (e.g. ones created by SoX).
Currently the decoder reuses the 8svx functions because we already have
handling of a single large planar packet for the compressed 8svx codecs.
2011-11-09 17:48:54 -05:00
Justin Ruggles
fed5ca255f ra144enc: add sample_fmts list to ff_ra_144_encoder
This enables the user (i.e. avconv) to automatically convert to the supported
sample format if needed.
2011-11-09 16:53:23 -05:00
Justin Ruggles
818a3bdedf smackaud: use uint8_t* for 8-bit output buffer type
This matches the output sample format and the range of the output values.
2011-11-09 16:21:08 -05:00
Justin Ruggles
375ca0aca8 smackaud: clip output samples 2011-11-09 16:20:45 -05:00
Justin Ruggles
c86c3c8017 smackaud: use sign_extend() for difference value instead of casting 2011-11-09 16:19:52 -05:00
Justin Ruggles
979c8de549 sipr: use a function pointer to select the decode_frame function 2011-11-09 14:59:52 -05:00
Justin Ruggles
3468ff1060 sipr: set mode based on block_align instead of bit_rate
the user is not required to set bit_rate
2011-11-09 14:59:51 -05:00
Justin Ruggles
0005f9a35b sipr: do not needlessly set *data_size to 0 when returning an error 2011-11-09 14:59:51 -05:00
Justin Ruggles
9cb70ce34b ra288: fix formatting of LOCAL_ALIGNED_16 2011-11-09 13:45:50 -05:00
shahriman AMS
c33d4916fb VC1: Add bottom field offset to block_index[] to avoid rewriting (+10L)
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-11-09 11:00:49 +01:00
shahriman AMS
62622d04eb vc1dec: move an if() block.
There are no reason for "if (c_valid) { ... }" to appear before
"if (b_valid) { ... }".

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-11-09 11:00:20 +01:00
shahriman AMS
4bceeaf0c1 vc1dec: use correct hybrid prediction threshold.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-11-09 10:53:24 +01:00
shahriman AMS
4344ce08f1 vc1dec: Partial rewrite of vc1_pred_mv()
The current code is a generalization of the earlier progressive MV
prediction code. This was supposed to predict MVs for both interlaced
and progressive pictures. But the interlaced MV prediction is buggy
and works mostly by luck.

This partially fixes interlaced MV prediction.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-11-09 10:51:58 +01:00
shahriman AMS
6475a6e1ca vc1dec: take ME precision into account while scaling MV predictors.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-11-09 10:51:22 +01:00
Alex Converse
1149fbc763 indeo3: Fix a fencepost error.
Found with asan and the venerable 1-dog.avi sample.
2011-11-08 10:59:52 -08:00
Justin Ruggles
2467d8d9ea ra288: return error if input buffer is too small 2011-11-08 12:36:56 -05:00
Justin Ruggles
0131e70af5 ra288: utilize DSPContext.vector_fmul() 2011-11-08 12:36:48 -05:00
Justin Ruggles
03e5d6118c ra288: use memcpy() to copy decoded samples to output 2011-11-08 12:36:41 -05:00
Justin Ruggles
f50b6be57d mace: only calculate output buffer size once 2011-11-08 12:36:14 -05:00
Diego Biurrun
ce33320b30 Remove redundant filename self-references inside files.
Filenames are brittle across renames and add no useful information.
2011-11-08 17:52:56 +01:00
Diego Biurrun
9412f81138 indeo3data: add missing config.h #include for HAVE_BIGENDIAN 2011-11-08 17:52:56 +01:00
Diego Biurrun
276b995d85 x86: drop pointless ARCH_X86 #ifdef from files in x86 subdirectory 2011-11-08 17:52:55 +01:00
Kostya Shishkov
f545e00677 BMV demuxer and decoder
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-08 00:36:45 +02:00
Alex Converse
090aaaf752 mpeg12enc: Remove write-only variables. 2011-11-07 10:53:55 -08:00
Alex Converse
7c5dfc174b mpeg12enc: Don't set up run-level info for level 0.
run: The number of zero coefficients preceding a non-zero coefficient,
in the scan order. The absolute value of the non-zero coefficient is
called "level".

The run-level code makes illegal reads when trying to set up tables for
nonsense level 0.
2011-11-07 10:50:48 -08:00
Alex Converse
a1684cf82d msmpeg4: Don't set up run-level info for level 0.
run: The number of zero coefficients preceding a non-zero coefficient,
in the scan order. The absolute value of the non-zero coefficient is
called "level".

The run-level code makes illegal reads when trying to set up tables for
nonsense level 0.
2011-11-07 10:48:53 -08:00
Justin Ruggles
b8f02f5b4e dsputil: use cpuflags in x86 versions of vector_clip_int32() 2011-11-06 20:50:06 -05:00
Kostya Shishkov
66760b30a3 cosmetics: insert some spaces in explicit enum value assignments
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-11-06 08:13:11 +01:00
Kostya Shishkov
19900d60fd move 8SVX audio codecs to the audio codec list part on the next bump
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-11-06 08:12:42 +01:00
Kostya Shishkov
0e288b8c52 deprecate codec IDs that won't ever be used
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-11-06 07:41:58 +01:00
Ronald S. Bultje
717401aff2 h264_weight: remove duplication functions. 2011-11-05 07:16:30 -07:00
Ronald S. Bultje
ea2bb12e3e h264: improve calculation of codec delay.
Fixes the following conformance suite samples:
HCBP1_HHI_A.264, HCBP2_HHI_A.264, HCMP1_HHI_A.264 (main)
HCHP1_HHI_B.264, HCHP2_HHI_A.264, HCHP3_HHI_A.264 (frext)
2011-11-05 06:58:52 -07:00
Martin Storsjö
8148631269 w32threads: Wrap the mutex functions in inline functions returning int
This allows using these wrappers in the gcrypt mutex callbacks.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-05 12:09:24 +02:00
Martin Storsjö
2d1b6fb72b avcodec: Allow locking and unlocking an avformat specific mutex
This extends the lock manager in avcodec to manage two separate
mutexes via the user-specified lock functions.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-05 12:08:53 +02:00
Justin Ruggles
add7b1140f binkaudio: expand quant_table to accommodate all possible values 2011-11-04 10:23:53 -04:00
Martin Storsjö
c38404ee1a libx264: Set the default of the rc_lookahead option to -1
This allows it to use the defaults specified by preset/tune,
without overwriting it with the default value from the
AVCodecContext field.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-04 12:46:35 +02:00
Martin Storsjö
adc85ce20b avcodec: Set flags2 default value depending on availability
This makes the code compile when FF_API_X264_GLOBAL_OPTS or
FF_API_LAME_GLOBAL_OPTS is 0.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-04 12:46:33 +02:00
Alex Converse
2a6eb06254 vp6: Fix illegal read. 2011-11-03 16:40:34 -07:00
Martin Storsjö
cae4f4b77e avcodec: Make sure codec_type is set by avcodec_get_context_defaults2
This function used to set codec_type. With the current fallback
implementation based on avcodec_get_context_defaults3, codec_type
won't be set to the value passed in, but will be set to
AVMEDIA_TYPE_UNKNOWN. Legacy callers of this function might expect
this field to be set to the value passed in.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-03 13:29:48 +02:00
Martin Storsjö
1b6da627d4 avcodec: Remove a misplaced and useless attribute_deprecated
If attribute_deprecated is used in an enum declaration, it
should follow the 'enum' keyword, otherwise it's ignored
silently. This is the only case of attribute_deprecated for
enum declarations currently.

Currently, this attribute_deprecated doesn't have any effect.
If moved to the right place, it emits a warning every single
time avcodec.h is included, like this:

avcodec.h:2827: warning: ‘AVLPCType’ is deprecated (declared at avcodec.h:543)

There is already a working attribute_deprecated for the
corresponding field in AVCodecContext, so therefore this
one shouldn't be needed.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-03 09:47:57 +02:00
Justin Ruggles
5463e83dbc fmtconvert: fix int32_to_float_fmul_scalar() for windows x86_64
The calling convention only allows 4 non-stack parameter, with each
float or int register being skipped if not used.

fixes Bug 64
2011-11-02 21:44:58 -04:00
Maxim Poliakovski
594b54b51e replacement Indeo 3 decoder
The new decoder is much smaller and has better code quality.
Cleanup and fixes courtesy of Kostya Shishkov.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-11-03 00:59:12 +01:00
Justin Ruggles
c2d9a65bc0 ac3enc: doxygen update.
Add some parameters to existing function documentation.
Remove some unneeded documentation.
Convert some static function documentation to non-doxygen style.
2011-11-02 17:21:45 -04:00
Justin Ruggles
a4998e448f imc: return error codes instead of 0 for error conditions.
This fixes a bug where the whole buffer was returned as decoded audio due to
*data_size not being set to zero and the return value being >= 0.
2011-11-02 17:02:22 -04:00
Justin Ruggles
08e5cd3810 imc: return meaningful error codes instead of -1 2011-11-02 17:02:22 -04:00
Justin Ruggles
0473f29b60 imc: do not set channel layout for stereo
we only support decoding of mono imc
2011-11-02 17:02:22 -04:00
Justin Ruggles
7b7f47e733 imc: validate channel count
ask for a sample if not mono
2011-11-02 17:02:22 -04:00
Justin Ruggles
95fee70d67 imc: check for ff_fft_init() failure 2011-11-02 17:02:22 -04:00
Justin Ruggles
86962b13f6 imc: check output buffer size before decoding 2011-11-02 17:02:22 -04:00
Justin Ruggles
e9362aaedf imc: use DSPContext.bswap16_buf() to byte-swap packet data 2011-11-02 17:02:22 -04:00
Justin Ruggles
20e081dddc libgsm: add flush function to reset the decoder state when seeking 2011-11-02 14:41:17 -04:00
Justin Ruggles
480324e7ca libgsm: simplify decoding by using a loop 2011-11-02 14:41:17 -04:00
Justin Ruggles
9d52f0a711 gsm: log error message when packet is too small 2011-11-02 14:41:17 -04:00
Justin Ruggles
9671db8245 libgsmdec: do not needlessly set *data_size to 0 2011-11-02 14:41:16 -04:00
Justin Ruggles
a2e255783e gsmdec: do not needlessly set *data_size to 0 2011-11-02 14:41:16 -04:00
Justin Ruggles
fc43fc9faa gsmdec: add flush function to reset the decoder state when seeking 2011-11-02 14:41:16 -04:00
Justin Ruggles
b03761b130 libgsmdec: check output buffer size before decoding 2011-11-02 14:41:16 -04:00
Justin Ruggles
bac2597a32 gsmdec: log error message when output buffer is too small.
also return AVERROR(EINVAL) instead of -1
2011-11-02 14:41:16 -04:00
Justin Ruggles
d9c6eece21 gsm: use av_get_bytes_per_sample() in frame_bytes calculation 2011-11-02 14:41:16 -04:00
Diego Biurrun
f36b390275 Replace some forgotten FFmpeg references by Libav. 2011-11-02 10:42:55 +01:00
Diego Biurrun
2f5df0b12c Replace ffmpeg references with more accurate libav* references. 2011-11-02 10:42:55 +01:00
Diego Biurrun
20566eb0f0 Replace outdated references to ffmpeg tool with avconv. 2011-11-02 10:42:54 +01:00
Diego Biurrun
124e28847b Remove some stray unnecessary ffmpeg references. 2011-11-02 10:42:54 +01:00
Diego Biurrun
d1dfcb0829 vp3: remove some pointless comments 2011-11-02 10:42:54 +01:00
Anton Khirnov
5511ad14fe lavc: use designated initialisers for parsers. 2011-11-02 10:03:43 +01:00
Justin Ruggles
da24963725 g726dec: add flush() function to reset state when seeking 2011-11-01 21:23:04 -04:00
Justin Ruggles
97f5dd1d84 g726: don't pass index to g726_reset()
calculate it from c->code_size instead.
2011-11-01 21:23:04 -04:00
Justin Ruggles
615b2a2cf5 g726enc: add private option for setting code size directly.
This is an easy alternative to setting bit_rate. This patch also selects the
closest bit_rate to the requested one rather than requiring an exact value.
2011-11-01 21:23:04 -04:00
Justin Ruggles
7abb73d4ba g726: wrap the decoder functions with a CONFIG_ADPCM_G726_DECODER check 2011-11-01 21:23:04 -04:00
Justin Ruggles
437c11ca16 g726: group the g726_encoder AVCodec with the other encoding functions 2011-11-01 21:23:04 -04:00
Justin Ruggles
50969c0f46 g726: return AVERROR(EINVAL) instead of -1 for invalid channel count 2011-11-01 21:23:03 -04:00
Justin Ruggles
50c466d609 g726enc: use av_assert0() for sample_rate validation
This should never happen, but the check avoids a divide-by-zero.
2011-11-01 21:23:03 -04:00
Justin Ruggles
9e78d8cfdf g726: treat sample rates other than 8kHz as unofficial. 2011-11-01 21:23:03 -04:00
Justin Ruggles
6e8d4a7afb g726dec: remove the sample_rate validation 2011-11-01 21:23:03 -04:00
Justin Ruggles
6ac34eed54 g726: use bits_per_coded_sample instead of bitrate to determine mode
This requires some workarounds in the WAV muxer and demuxer. We need to write
the correct bits_per_coded_sample and block_align in the muxer. In the
demuxer, we cannot rely on the bits_per_coded_sample value, so we use the bit
rate and sample rate to determine the value.

This avoids having the decoder rely on AVCodecContext.bit_rate, which is not
required to be set by the user for decoding according to our API.
2011-11-01 21:23:03 -04:00
Justin Ruggles
d405237bae g726: split the init function for the encoder and decoder
This also allows for not having a decoder close function.
2011-11-01 21:23:03 -04:00
Justin Ruggles
c8d36d254e g726: pre-calculate the number of output samples.
Allows for checking output buffer size and simplification of decoding loop.
2011-11-01 21:23:03 -04:00
Justin Ruggles
e61a670b53 g726: use int16_t instead of short 2011-11-01 21:23:02 -04:00
Diego Biurrun
45235d69c2 libdirac/libschroedinger: Drop unnecessary symbol prefixes.
The names used in the libdirac/libschroedinger wrappers are long enough as-is.
Bloating them with unnecessary prefixes makes them even more unwieldy.
2011-10-30 21:40:52 +01:00
Justin Ruggles
7d1b17b833 cin audio: use sign_extend() instead of casting to int16_t 2011-10-29 16:43:40 -04:00
Justin Ruggles
405af43104 cin audio: restructure decoding loop to avoid a separate counter variable
Also check output buffer size instead of truncating output.
2011-10-29 16:43:40 -04:00
Justin Ruggles
859bdc33e4 cin audio: use local variable for delta value 2011-10-29 16:43:40 -04:00
Justin Ruggles
64e19ba48b cin audio: remove unneeded cast from void* 2011-10-29 16:43:40 -04:00
Justin Ruggles
03381c12b3 cin audio: validate the channel count 2011-10-29 16:43:40 -04:00
Justin Ruggles
664eb77dc3 cin audio: remove unneeded AVCodecContext pointer from CinAudioContext 2011-10-29 16:43:40 -04:00
Justin Ruggles
5bd0343bee flacdec: use av_get_bytes_per_sample() to get sample size 2011-10-29 16:05:25 -04:00
Justin Ruggles
272fcc32bb dca: handle errors from dca_decode_block()
Return error if core block decoding fails.
Do not enable XCh if XCh extension block decoding fails.
2011-10-29 16:04:07 -04:00
Justin Ruggles
aae6eead6a dca: return error if the frame header is invalid 2011-10-29 16:04:07 -04:00
Justin Ruggles
f44059d260 dca: return proper error codes instead of -1 2011-10-29 16:04:06 -04:00
Kostya Shishkov
46e1af3b0f utvideo: handle empty Huffman trees
If the frame is filled with the same colour, encoder may produce no data
and the fill value is indicated by zero code length (the rest of symbols
will have 0xFF for code length, meaning invalid).  So such Huffman trees
should be treated specially.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2011-10-29 12:54:08 -07:00
Justin Ruggles
425a843505 binkaudio: change short to int16_t 2011-10-29 15:16:54 -04:00