Ronald S. Bultje
c23acbaed4
Don't use ff_cropTbl[] for IDCT.
...
Results of IDCT can by far outreach the range of ff_cropTbl[], leading
to overreads and potentially crashes.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-06 10:47:42 -08:00
Martin Storsjö
338978a7c1
libx264: Allow overriding the sliced threads option
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-06 13:40:22 +02:00
Alex Converse
3574a85ce5
Replace computations of remaining bits with calls to get_bits_left().
2012-03-05 11:22:11 -08:00
Alex Converse
b70feb4053
amrnb/amrwb: Remove get_bits usage.
...
It is used to parse fixed sized fields out of a single octet. The code
is simpler without it.
2012-03-05 11:22:11 -08:00
Justin Ruggles
11ac796f7a
dca_parser: parse the sample rate and frame durations
2012-03-05 13:08:17 -05:00
Justin Ruggles
85469f1c9e
libspeexdec: do not set AVCodecContext.frame_size
...
It is not necessary
2012-03-05 13:08:17 -05:00
Justin Ruggles
adbf61ff8a
libopencore-amr: do not set AVCodecContext.frame_size
...
It is not necessary
2012-03-05 13:08:17 -05:00
Justin Ruggles
0efa4073bf
alsdec: do not set AVCodecContext.frame_size
...
It is not necessary
2012-03-05 13:08:17 -05:00
Justin Ruggles
9524cf79df
avcodec: add av_get_audio_frame_duration() function.
...
This is a utility function for the user to get the frame duration based on
the codec id, frame size in bytes, and various AVCodecContext parameters.
2012-03-05 13:08:15 -05:00
Justin Ruggles
6699d07480
avcodec: add av_get_exact_bits_per_sample() function
...
This only returns bits per sample when it is exactly correct. That is, the
codec contains only raw samples with no frame headers or padding. This applies
to basically all PCM codecs and a small subset of ADPCM codecs.
2012-03-05 13:08:15 -05:00
Fabian Greffrath
c9dbac36ad
Fix format string vulnerability detected by -Wformat-security.
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-03-05 17:03:00 +01:00
Mans Rullgard
356ee8d7de
x86: clean up ff_dsputil_init_mmx()
...
This splits ff_dsputil_init_mmx() into multiple functions, one for
each MMX/SSE level, somewhat simplifying the nested conditions.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-03-05 14:40:03 +01:00
Anton Khirnov
44fe77b350
lavc: make codec_is_decoder/encoder() public.
2012-03-04 21:08:52 +01:00
Anton Khirnov
02beb9826b
lavc: deprecate AVCodecContext.sub_id.
...
In most places where it's used, it's as a pointless write-only field.
Only rv10 decoder actually reads from it, but it stores some internal
version info in it. There is no reason for it to be in a public field.
2012-03-04 21:02:45 +01:00
Kostya Shishkov
4db4b53dc8
proresenc: give user a possibility to alter some encoding parameters
...
This allows user to select quantisation matrix from different profile,
stamp frames with custom vendor string and change target bitrate.
2012-03-04 07:35:00 +01:00
Justin Ruggles
1ba08c94f5
vorbisenc: add output buffer overwrite protection
2012-03-04 01:16:54 -05:00
Justin Ruggles
fe78470a8b
libopencore-amrnbenc: fix end-of-stream handling
...
Use CODEC_CAP_DELAY and CODEC_CAP_SMALL_LAST_FRAME to properly pad and flush
the encoder at the end of encoding. This is needed in order to have all input
samples decoded.
2012-03-04 01:14:53 -05:00
Justin Ruggles
b0350c1c30
ra144enc: fix end-of-stream handling
...
Use CODEC_CAP_DELAY and CODEC_CAP_SMALL_LAST_FRAME to properly pad and flush
the encoder at the end of encoding. This is needed in order to have all input
samples decoded.
2012-03-04 01:14:53 -05:00
Justin Ruggles
29e2c85310
nellymoserenc: zero any leftover packet bytes
...
fixes writing of uninitialized packet data
2012-03-04 01:14:52 -05:00
Justin Ruggles
6c7a01621c
nellymoserenc: use proper MDCT overlap delay
2012-03-04 01:14:52 -05:00
Aneesh Dogra
3e9cd8b4b0
qpeg: Use bytestream2 functions to prevent buffer overreads.
...
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-03 20:40:00 -08:00
Ronald S. Bultje
b4188f0d46
vp8: convert simple loopfilter x86 assembly to use named arguments.
2012-03-03 20:40:00 -08:00
Ronald S. Bultje
8476ca3b4e
vp8: convert idct x86 assembly to use named arguments.
2012-03-03 20:40:00 -08:00
Ronald S. Bultje
21ffc78fd7
vp8: convert mc x86 assembly to use named arguments.
2012-03-03 20:40:00 -08:00
Ronald S. Bultje
28170f1a39
vp8: convert loopfilter x86 assembly to use cpuflags().
2012-03-03 20:40:00 -08:00
Ronald S. Bultje
e25be47154
vp8: convert idct/mc x86 assembly to use cpuflags().
2012-03-03 20:39:59 -08:00
Justin Ruggles
51ddf35c90
wmaenc: fix m/s stereo encoding for the first frame
...
We need to set ms_stereo in encode_init() in order to avoid incorrectly
encoding the first frame as non-m/s while flagging it as m/s. Fixes an
uncomfortable pop in the left channel at the start of playback.
CC:libav-stable@libav.org
2012-03-03 18:20:10 -05:00
Justin Ruggles
8ed7488ea3
wmaenc: return s->block_align instead of recalculating it
2012-03-03 18:20:10 -05:00
Justin Ruggles
5d652e063b
wmaenc: check final frame size against output packet size
...
Currently we have an assert() that prevents the frame from being too large,
but it is more user-friendly to give an error message instead of aborting on
assert(). This condition is quite unlikely due to the minimum bit rate check
in encode_init(), but it is still worth having.
2012-03-03 18:20:10 -05:00
Justin Ruggles
dfc4fdedf8
wmaenc: require a large enough output buffer to prevent overwrites
...
The maximum theoretical frame size is around 17000 bytes. Although in
practice it will generally be much smaller, we require a larger buffer
just to be safe.
CC: libav-stable@libav.org
2012-03-03 18:20:10 -05:00
Justin Ruggles
1ec075cfec
wmaenc: limit allowed sample rate to 48kHz
...
ff_wma_init() allows up to 50kHz, but this generates an exponent band
size table that requires 65 bands. The code assumes 25 bands in many
places, and using sample rates higher than 48kHz will lead to buffer
overwrites.
CC:libav-stable@libav.org
2012-03-03 18:20:10 -05:00
Justin Ruggles
c2b8dea182
wmaenc: limit block_align to MAX_CODED_SUPERFRAME_SIZE
...
This is near the theoretical limit for wma frame size and is the most that
our decoder can handle. Allowing higher bit rates will just end up padding
each frame with empty bytes.
Fixes invalid writes for avconv when using very high bit rates.
CC:libav-stable@libav.org
2012-03-03 18:20:09 -05:00
Justin Ruggles
0b8b7db01b
mpegaudio_parser: do not ignore information from the first parsed frame
...
Update some demuxing and seeking fate tests.
2012-03-03 17:03:26 -05:00
Michael Niedermayer
6776a8f189
mpegaudio_parser: be less picky about the start position
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-03-03 17:03:26 -05:00
Justin Ruggles
5602a464c9
avcodec: add a Vorbis parser to get packet duration
...
This also allows for removing some of the Vorbis-related hacks.
2012-03-03 16:43:11 -05:00
Justin Ruggles
737ca4482b
vorbisdec: read the previous window flag for long windows
...
When reading sequentially, we are using the actual flag from the previous
frame, but when seeking we do not know what the previous window flag was, so
we need to read it from the bitstream.
2012-03-03 16:43:11 -05:00
Anton Khirnov
7fb6c9225c
lavc: free the output packet when encoding failed or produced no output.
2012-03-03 06:31:41 +01:00
Anton Khirnov
e42e9b0e4d
lavc: preserve avpkt->destruct in ff_alloc_packet().
...
Also, don't bother with saving/restoring data, av_init_packet doesn't
touch it.
2012-03-03 06:31:41 +01:00
Anton Khirnov
c179c9e19d
lavc: clarify the meaning of AVCodecContext.frame_number.
2012-03-03 06:31:41 +01:00
Ronald S. Bultje
9d87374ec0
amrwb: remove duplicate arguments from extrapolate_isf().
...
Prevents warnings because the dst and src overlap (are the same) in the
memcpy() inside the function.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-02 12:50:00 -08:00
Ronald S. Bultje
154b8bb800
amrwb: error out early if mode is invalid.
...
Prevents using the invalid mode as an index in a static array, which
would generate invalid reads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-02 10:34:50 -08:00
Ronald S. Bultje
291c9b6285
h264: change underread for 10bit QPEL to overread.
...
This prevents us from reading before the start of the buffer, and thus
prevents crashes resulting from this behaviour. Fixes bug 237.
2012-03-02 10:33:05 -08:00
Ronald S. Bultje
45549339bc
vp8: disable mmx functions with sse/sse2 counterparts on x86-64.
...
x86-64 is guaranteed to have at least SSE2, therefore the MMX/MMX2
functions will never be used in practice.
2012-03-02 10:32:05 -08:00
Ronald S. Bultje
bd66f073fe
vp8: change int stride to ptrdiff_t stride.
...
On 64bit platforms with 32bit int, this means we won't have to sign-
extend the integer anymore.
2012-03-02 10:31:50 -08:00
Ronald S. Bultje
349b7977e4
wma: fix invalid buffer size assumptions causing random overreads.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-02 10:31:28 -08:00
Mashiat Sarker Shakkhar
9d25f1f619
Windows Media Audio Lossless decoder
...
Decodes 16-bit WMA Lossless encoded files. 24-bit is not supported yet.
Bitstream parser written by Andreas Öman with contributions from
Baptiste Coudurier and Ulion.
Includes a number of bug-fixes from Benjamin Larsson, Michael Niedermayer and
Konstantin Shishkov, shine and polish by Diego Biurrun.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-03-02 19:10:29 +01:00
Alex Converse
9243ec4a50
rv10/20: Fix slice overflow with checked bitstream reader.
2012-03-02 09:31:32 -08:00
Michael Niedermayer
71db86d53b
h263dec: Disallow width/height changing with frame threads.
...
Fixes CVE-2011-3937
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-02 09:31:32 -08:00
Alex Converse
2f6528537f
rv10/20: Fix a buffer overread caused by losing track of the remaining buffer size.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-02 09:31:32 -08:00
Martin Storsjö
b087ce2bee
g722: Fix the QMF scaling
...
This fixes clipping if the encoder input used the full 16 bit
input range (samples with a magnitude below 16383 worked fine).
The filtered subband samples should be 15 bit maximum, while
the code earlier produced them scaled to 16 bit.
This makes the decoder output have double the magnitude
compared to before.
The spec reference samples doesn't test the QMF at all, which
was why this part slipped past initially.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-02 18:58:19 +02:00
Derek Buitenhuis
f604eab30a
wavpack: Fix an integer overflow
...
Integer Overflow Checker detected an integer
overflow while FATE was running.
See: http://fate.libav.org/x86_64-linux-ioc/
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-03-02 08:26:36 +01:00
Diego Biurrun
1c4717be4f
mjpegdec: use correct variable in av_log invocation
...
libavcodec/mjpegdec.c:1463: warning: format ‘%x’ expects type ‘unsigned int’, but argument 5 has type ‘const uint8_t *’
2012-03-01 23:11:15 +01:00
Diego Biurrun
324deaa268
Replace AVFrame pointer type punning by proper struct member assignments.
2012-03-01 23:11:13 +01:00
Diego Biurrun
47c0ac96aa
Replace AVFrame pointer casts by proper struct member accesses.
2012-03-01 23:11:11 +01:00
Diego Biurrun
562b6c744a
Remove unnecessary AVFrame pointer casts.
2012-03-01 23:11:10 +01:00
Diego Biurrun
2f4b476e04
msmpeg4: Split encoding backend code off from general backend code.
2012-03-01 23:11:09 +01:00
Anton Khirnov
eb727387fd
lavc: shrink encoded video packet size after encoding.
...
Based on a patch by Nicolas George <nicolas.george <at> normalesup.org>
2012-03-01 22:21:35 +01:00
Ronald S. Bultje
0ce4fe482c
h264: error out on invalid bitdepth.
...
Fixes invalid reads while initializing the dequant tables, which uses
the bit depth to determine the QP table size.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-01 12:15:51 -08:00
Christophe Gisquet
cc412b7104
aacsbr: use a swap index for the Y matrix rather than copy buffers.
...
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-03-01 11:03:00 -08:00
Ronald S. Bultje
63c9de6469
huffyuv: do not abort on unknown pix_fmt; instead, return an error.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-01 10:23:36 -08:00
Ronald S. Bultje
bd17a40a7e
lcl: return negative error codes on decode_init() errors.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-01 07:12:29 -08:00
Martin Storsjö
bdc1220eeb
h263enc: Add an option for outputting info about MBs as side data
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-01 16:08:31 +02:00
Martin Storsjö
442c1320e7
avpacket: Add a function for shrinking already allocated side data
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-01 16:08:30 +02:00
Vitor Sessak
5cd1337f5d
nellymoserdec: Saner and faster IMDCT windowing
...
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-29 15:38:35 -08:00
Vitor Sessak
882abda5a2
amrnbdec: check frame size before decoding.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-29 14:13:58 -08:00
Ronald S. Bultje
8a9faf33f2
cscd: use negative error values to indicate decode_init() failures.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-29 14:04:23 -08:00
Ronald S. Bultje
d1604b3de9
h264: prevent overreads in intra PCM decoding.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-29 13:17:34 -08:00
Vitor Sessak
9b4cd58611
mpegaudiodec: use DSPUtil.butterflies_float().
...
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-29 12:12:50 -08:00
Ronald S. Bultje
07a180972f
vmnc: return error on decode_init() failure.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-29 11:58:27 -08:00
Justin Ruggles
a45a1ea521
libvorbis: add/update error messages
...
also use AVERROR codes for some return values instead of -1
2012-02-29 14:54:25 -05:00
Justin Ruggles
592c4dbc7e
libvorbis: use AVFifoBuffer for output packet buffer
...
simplifies the code and does less memmove()
2012-02-29 14:54:24 -05:00
Justin Ruggles
1fe7c1be54
libvorbis: remove unneeded e_o_s check
...
vorbis_bitrate_flushpacket() does not return any packets that should not be
output in the bitstream.
2012-02-29 14:54:24 -05:00
Justin Ruggles
94025d8a99
libvorbis: check return values for functions that can return errors
2012-02-29 14:54:24 -05:00
Justin Ruggles
c5063e0348
libvorbis: use float input instead of s16
...
libvorbis takes float input, so we can just deinterleave/reorder the input
as-is instead of also converting.
2012-02-29 14:54:24 -05:00
Justin Ruggles
f15c4281dc
libvorbis: do not flush libvorbis analysis if dsp state was not initialized
...
Fixes a segfault if init() fails before initializing the dsp state
2012-02-29 14:54:23 -05:00
Justin Ruggles
147ff24a0e
libvorbis: use VBR by default, with default quality of 3
2012-02-29 14:54:20 -05:00
Justin Ruggles
182d4f1f38
libvorbis: fix use of minrate/maxrate AVOptions
...
- enable the options for audio encoding
- properly check for user-set maxrate
- use correct calling order in vorbis_encode_setup_managed()
2012-02-29 14:44:15 -05:00
Justin Ruggles
eb35ef2932
libvorbis: cosmetics: renaming/pretty-printing/comments/unused code
2012-02-29 14:44:15 -05:00
Justin Ruggles
4e99501f62
(e)ac3enc: select a default bit rate based on the channel layout
2012-02-29 14:36:00 -05:00
Justin Ruggles
6aeea1dfb2
ac3enc: choose the closest bit rate to the one requested instead of failing
2012-02-29 14:36:00 -05:00
Ronald S. Bultje
78e9852a2e
rpza: error out on buffer overreads.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-29 11:21:01 -08:00
Ronald S. Bultje
e54ae60e46
qtrle: return error on decode_init() failure.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-29 11:20:29 -08:00
Martin Storsjö
85b221e4d3
dpxenc: Don't include the libavcodec ident if bitexact mode is enabled
...
This avoids breaking fate every time the lavc version is bumped.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-29 20:08:09 +02:00
Kostya Shishkov
12b812d2e5
prores: store and retrieve extended colourspace information
...
Based on the patch by Phil Barrett.
2012-02-29 09:29:02 +01:00
Phil Barrett
c7084182e8
proresenc: correct edge emulation
...
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-02-29 09:28:45 +01:00
Kostya Shishkov
235d693286
prores: handle 444 chroma in right order
...
ProRes codes chroma blocks in 444 mode in different order than luma blocks,
so make both decoder and encoder read/write chroma blocks in right order.
Reported by Phil Barrett
2012-02-29 09:28:34 +01:00
Anton Khirnov
23bfcc066d
mpegvideo_enc: add quantizer_noise_shaping private option.
...
Deprecate corresponding AVCodecContext field.
2012-02-29 07:26:24 +01:00
Anton Khirnov
16b7557b79
lavc: deprecate AVCodecContext.inter_threshold.
...
It's unused.
2012-02-29 07:25:44 +01:00
Anton Khirnov
4f07f8196c
lavc: deprecate AVCodecContext.color_table_id.
...
It's currently only used as temporary storage by the mov demuxer. Make
it use a local variable instead.
2012-02-29 07:25:00 +01:00
Anton Khirnov
63efd83ae1
mpegvideo_enc: add chroma/luma_elim_threshold private options.
...
Deprecate corresponding AVCodecContext fields.
2012-02-29 07:23:31 +01:00
Anton Khirnov
af3d804f9f
mpegvideo_enc: add cbp_rd flag to mpv_flags.
...
Deprecate CODEC_FLAG_CBP_RD.
2012-02-29 07:13:58 +01:00
Anton Khirnov
ff71a383ac
mpegvideo_enc: add qp_rd flag to mpv_flags.
...
Deprecate CODEC_FLAG_QP_RD.
2012-02-29 07:12:10 +01:00
Anton Khirnov
a249f0cc23
mpegvideo_enc: add strict_gop flag to mpv_flags.
...
Deprecate CODEC_FLAG2_STRICT_GOP.
2012-02-29 07:11:02 +01:00
Anton Khirnov
ed019b8e5b
lavc: add -mpv_flags to mpegvideo_enc-based encoders.
...
Deprecate CODEC_FLAG2_SKIP_RD in favor of the corresponding mpv_flags
flag.
2012-02-29 07:09:29 +01:00
Michael Niedermayer
956fb91e03
aacdec: Support stereo streams that erroneously signal predefined channel configuration 1 (mono).
...
[alex.converse@mgail.com ]
Move code to get_che()
Update for AAC new channel configuration interface
Only set chan_config if output_configure succeeds.
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-02-28 21:38:16 -08:00
Alex Converse
2564f6e6d4
aacdec: Reshuffle functions so get_che() can call set_default_channel_config() and output_configure().
2012-02-28 21:38:15 -08:00
Ronald S. Bultje
8bc396fc0e
vp56: error out on invalid stream dimensions.
...
Prevents crashes when playing corrupt vp5/6 streams.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-28 16:41:58 -08:00
Alex Converse
bbeb29133b
adpcm: Clip step_index values read from the bitstream at the beginning of each frame.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-02-28 12:11:06 -08:00
Diego Biurrun
cfac648e6a
doxygen: Remove documentation for non-existing parameters; misc small fixes.
2012-02-28 20:48:43 +01:00
Ronald S. Bultje
fc9bc08dca
Indeo3: fix crashes on corrupt bitstreams.
...
Splits at borders of cells are invalid, since it leaves one of the
cells with a width/height of zero. Also, propagate errors on buffer
allocation failures, so we don't continue decoding (which crashes).
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-28 10:34:35 -08:00
Diego Biurrun
bd7a647c0d
msmpeg4: Replace forward declaration by proper #include.
2012-02-28 15:36:47 +01:00
Alex Converse
5e239c7f9e
aacdec: Remove erroneous reference to global gain from the out of bounds scalefactor error message.
2012-02-27 17:59:47 -08:00
Diego Biurrun
d10319d87f
avcodec_default_reget_buffer(): fix compilation in DEBUG mode
2012-02-27 20:58:43 +01:00
Ronald S. Bultje
b0c4f04338
h264: fix mmxext chroma deblock to use correct TC values.
2012-02-27 09:38:44 -08:00
Anton Khirnov
b1edfce08a
lavc: reorder AVCodecContext fields.
...
Put related fields together, move the important ones closer to the
beginning, try to eliminate holes.
2012-02-27 07:09:43 +01:00
Anton Khirnov
1d428004c6
lavc: reorder AVFrame fields.
...
Put related fields together, move the important ones closer to the
beginning, try to eliminate holes.
2012-02-27 07:07:25 +01:00
Reinhard Tartler
790a367d9e
Fix parser not to clobber has_b_frames when extradata is set.
...
Because in contrast to the decoder, the parser does not setup low_delay.
The code in parse_nal_units would always end up setting has_b_frames
to "1", except when stream is explicitly marked as low delay.
Since the parser itself would create 'extradata', simply reopening
the parser would cause this.
This happens for instance in estimate_timings_from_pts(), which causes the
parser to be reopened on the same stream.
This fixes Libav #22 and FFmpeg (trac) #360
CC: libav-stable@libav.org
Based on a patch by Reimar Döffinger <Reimar.Doeffinger@gmx.de>
(commit 31ac0ac29b
)
Comments and description adapted by Reinhard Tartler.
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
2012-02-26 15:50:59 +01:00
Paul B Mahol
42459c6abb
cdxl: bit line plane arrangement support
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-26 00:04:32 -05:00
Paul B Mahol
cf6914e27f
cdxl: remove early check for bpp
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-26 00:04:32 -05:00
Paul B Mahol
126daeb550
cdxl: set pix_fmt PAL8 only if palette is available
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-26 00:04:32 -05:00
Tim Walker
0a9efe4c6e
mlp_parser: fix the channel mask value used for the top surround channel
...
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-25 17:24:43 -05:00
Justin Ruggles
be8d812c96
vorbisenc: check all allocations for failure
2012-02-25 11:49:43 -05:00
Justin Ruggles
f7a2e12f2a
roqaudioenc: return AVERROR codes instead of -1
2012-02-25 11:49:43 -05:00
Justin Ruggles
3fa9a999c1
roqaudioenc: set correct bit rate
2012-02-25 11:49:43 -05:00
Justin Ruggles
cf57c78b77
roqaudioenc: use AVCodecContext.frame_size correctly.
...
It is not allowed to change mid-stream like it does currently. Instead we need
to buffer the first 8 frames before returning them as a single packet, then
only return single frame packets after that.
2012-02-25 11:49:43 -05:00
Justin Ruggles
56279f1d61
roqaudioenc: remove unneeded sample_fmt check
2012-02-25 11:49:43 -05:00
Justin Ruggles
4b7f8838e8
ra144enc: use int16_t* for input samples rather than void*
2012-02-25 11:49:43 -05:00
Justin Ruggles
03359ebcf9
ra144enc: set AVCodecContext.coded_frame
2012-02-25 11:49:43 -05:00
Justin Ruggles
a65f7c96fc
ra144enc: remove unneeded sample_fmt check
2012-02-25 11:49:42 -05:00
Justin Ruggles
928672f1f1
nellymoserenc: set AVCodecContext.coded_frame
2012-02-25 11:49:42 -05:00
Justin Ruggles
370b44cda2
nellymoserenc: improve error checking in encode_init()
2012-02-25 11:49:42 -05:00
Justin Ruggles
333506c33f
nellymoserenc: return AVERROR codes instead of -1
2012-02-25 11:49:42 -05:00
Justin Ruggles
6f600ab354
libvorbis: improve error checking in oggvorbis_encode_init()
2012-02-25 11:49:42 -05:00
Justin Ruggles
be60eec668
mpegaudioenc: return AVERROR codes instead of -1
2012-02-25 11:49:42 -05:00
Justin Ruggles
7a8cbb39f6
libfaac: improve error checking and handling in Faac_encode_init()
2012-02-25 11:49:42 -05:00
Justin Ruggles
a8bdf2405c
check for coded_frame allocation failure in several audio encoders
2012-02-25 11:49:41 -05:00
Justin Ruggles
255ad8881d
audio encoders: do not set coded_frame->key_frame.
...
it is already set in avcodec_alloc_frame()
2012-02-25 11:49:41 -05:00
Justin Ruggles
8e2555d3b1
g722enc: check for trellis data allocation error
2012-02-25 11:49:41 -05:00
Justin Ruggles
ca300d938b
libspeexenc: export encoder delay through AVCodecContext.delay
2012-02-25 11:49:41 -05:00
Justin Ruggles
7600e5c5aa
avcodec: document the use of AVCodecContext.delay for audio encoders
2012-02-25 11:49:41 -05:00
Ronald S. Bultje
6c4c27adb6
kgv1: release reference picture on size change.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-25 07:53:44 -08:00
Anton Khirnov
03ca0a5b30
lavc: merge two if()s with the same condition.
2012-02-25 07:48:52 +01:00
Anton Khirnov
d55fa6f9cb
lavc: factorize setting got_packet_ptr in avcodec_encode_video2()
2012-02-25 07:48:46 +01:00
Anton Khirnov
52953d61ca
lavc: signal no output when a NULL frame is passed to audio encoder without delay
2012-02-25 07:48:36 +01:00
Paul B Mahol
99cff417f3
xwdenc: fix monow encoding
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-25 07:45:06 +01:00
Paul B Mahol
904817cb9f
cdxl: fix ham6/8 on big endian
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-25 00:18:14 -05:00
Justin Ruggles
19adb0bc2d
vorbisdec: add a flush() function
...
clear MDCT overlap buffer and reset previous window mode when seeking
2012-02-24 17:37:25 -05:00
Ronald S. Bultje
830f70442a
fraps: release reference buffer on pix_fmt change.
...
Prevents crash when trying to copy from a non-existing plane in e.g.
a RGB32 reference image to a YUV420P target image
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-24 14:28:15 -08:00
Ronald S. Bultje
87840eeb71
avcodec: disallow reget_buffer() if pix_fmt changed.
2012-02-24 14:28:15 -08:00
Ronald S. Bultje
33cd32b389
kgv1: use avctx->get/release_buffer().
...
Also fixes crashes on corrupt bitstreams.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-24 14:28:15 -08:00
Dale Curtis
b716542691
mpegaudiodec: Prevent premature clipping of mp3 input buffer.
...
Instead of clipping extrasize based on EXTRABYTES, clip based on the
amount of buffer actually left. Without this fix, there are warbles
and other distortions in the test case below.
http://kevincennis.com/mix/assets/sounds/1901_voxfx.mp3
2012-02-24 13:47:04 -05:00
Ronald S. Bultje
be129271ea
lcl: error out if uncompressed input buffer is smaller than framesize.
...
This prevents crashes when trying to read beyond the end of the buffer
while decoding frame data.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-24 07:28:57 -08:00
Ronald S. Bultje
ab492ca2ab
mjpeg: abort decoding if packet is too large.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-24 07:28:43 -08:00
Ronald S. Bultje
46b3fbc30b
golomb: use HAVE_BITS_REMAINING() macro to prevent infloop on EOF.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-24 07:28:33 -08:00
Ronald S. Bultje
b44b41633f
get_bits: add HAVE_BITS_REMAINING macro.
2012-02-24 07:28:14 -08:00
Alex Converse
447363870f
tiff: Prevent overreads in the type_sizes array.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-23 16:23:51 -08:00
Alex Converse
e32548d133
tiff: Make the TIFF_LONG and TIFF_SHORT types unsigned.
...
TIFF v6.0 (unimplemented) adds signed equivalents.
2012-02-23 16:23:51 -08:00
Christophe GISQUET
2784d18791
SBR DSP x86: implement SSE sbr_hf_g_filt
...
Unrolling the main loop to process, instead of 4 elements:
- 8: minor gain of 2 cycles (not worth the extra object size)
- 2: loss of 8 cycles.
Assigning STEP to a register is a loss. Output address (Y) is almost always
unaligned.
Timings:
- C (32/64 bits): 117/109 cycles
- SSE: 57 cycles
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-23 15:50:09 -08:00
Christophe GISQUET
34454c761f
SBR DSP x86: implement SSE sbr_sum_square_sse
...
The 32bits targets have been compiled with -mfpmath=sse for proper reference.
sbr_sum_square C /32bits: 82c (unrolled)/102c
C /64bits: 69c (unrolled)/82c
SSE/32bits: 42c
SSE/64bits: 31c
Use of SSE4.1 dpps to perform the final sum is slower.
Not unrolling to perform 8 operations in a loop yields 10 more cycles.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-23 15:50:06 -08:00
Christophe GISQUET
2e74a5abc2
SBR DSP: use intptr_t for the ixh parameter.
...
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-23 15:48:40 -08:00
Derek Buitenhuis
480b133e6f
wavpack: Don't shift minclip/maxclip
...
Since we are clipping before we shift the values to
16 or 32 bits, we should not shift the min/max clip
values to compensate.
Fixes 8 and 24 bit lossy decoding.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-23 20:43:39 +01:00
Anton Khirnov
ff311c0918
lavc: drop encode() support for video.
...
All video encoders have been converted to encode2(), all new encoders
should also use only encode2().
2012-02-23 20:26:26 +01:00
Anton Khirnov
171273fec8
snowenc: switch to encode2().
2012-02-23 20:26:14 +01:00
Anton Khirnov
8d3348c2c4
snowenc: don't abuse input picture for storing information.
2012-02-23 20:26:04 +01:00
Anton Khirnov
7340008f18
a64multienc: switch to encode2().
...
We have no decoder, so cannot test if the output is decodable.
2012-02-23 19:56:55 +01:00
Anton Khirnov
cfc6ab3199
a64multienc: don't write into output buffer when there's no output.
2012-02-23 19:56:45 +01:00
Anton Khirnov
4da6d194e5
libxvid: switch to encode2().
2012-02-23 19:55:23 +01:00
Anton Khirnov
760b004086
tiffenc: switch to encode2().
2012-02-23 19:53:20 +01:00
Anton Khirnov
62acb4937e
tiffenc: properly forward error codes in encode_frame().
2012-02-23 19:52:08 +01:00
Anton Khirnov
2257f66ec5
lavc: drop libdirac encoder.
...
Libschroedinger is the preferred way to encode dirac video now, it
produces better output and has a nicer API.
2012-02-23 19:50:46 +01:00
Anton Khirnov
577fed3b7c
gifenc: switch to encode2().
2012-02-23 19:50:46 +01:00
Anton Khirnov
d8f3365fb0
libvpxenc: switch to encode2().
2012-02-23 19:50:46 +01:00
Anton Khirnov
0ecf54f9dc
flashsvenc: switch to encode2().
2012-02-23 19:50:46 +01:00
Ronald S. Bultje
01cb62aba2
lcl: don't overwrite input memory.
...
If the PNG filter is enabled, a PNG-style filter will run over the
input buffer, writing into the buffer. Therefore, if no zlib compression
was used, ensure that we copy into a temporary buffer, otherwise we
overwrite user-provided input data.
2012-02-23 10:31:46 -08:00
Anton Khirnov
84db922bf9
libxavs: switch to encode2().
2012-02-23 19:25:50 +01:00
Anton Khirnov
d3b577f00d
libxavs: add an AVClass at the beginning of XavsContext.
2012-02-23 19:25:50 +01:00
Anton Khirnov
a5f848c86d
libxavs: split extradata writing out of encode_nals().
...
This is done in preparation for the following patch implementing
encode2().
This commit is analogous to 05d699222d
for
libx264.
2012-02-23 19:25:50 +01:00
Anton Khirnov
8e8124e173
ljpegenc: switch to encode2().
2012-02-23 19:25:50 +01:00
Ronald S. Bultje
2b83e8b700
truemotion2: error out if the huffman tree has no nodes.
...
This prevents crashers and errors further down when reading nodes in the
empty tree.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-23 07:46:25 -08:00
Anton Khirnov
3c0ed7d1a8
asv1enc: switch to encode2().
2012-02-23 14:11:08 +01:00
Anton Khirnov
df53a47317
libschroedingerenc: switch to encode2().
2012-02-23 13:54:34 +01:00
Anton Khirnov
278d88689b
ffv1enc: switch to encode2().
2012-02-23 13:51:29 +01:00
Anton Khirnov
f7fa73ac91
libtheoraenc: switch to encode2().
2012-02-23 13:48:34 +01:00
Anton Khirnov
6d9c27dc85
jpeglsenc: switch to encode2().
2012-02-23 11:12:39 +01:00
Anton Khirnov
148fc99506
lclenc: switch to encode2().
2012-02-23 11:11:42 +01:00
Anton Khirnov
21b46747ad
qtrleenc: switch to encode2().
2012-02-23 11:08:50 +01:00
Justin Ruggles
62d5f9e5ca
flacdec: set channel_layout based on channel count
...
Channel layouts are specified in the FLAC format description at
http://flac.sourceforge.net/format.html
fixes Bug 209
2012-02-22 20:14:00 -05:00
Justin Ruggles
3798205a77
mov: set channel layout for AC-3 streams based on the 'dac3' atom info
...
fixes Bug 225
2012-02-22 20:07:02 -05:00
Alex Converse
1cd9a6154b
aac: fix infinite loop on end-of-frame with sequence of 1-bits.
...
Based-on-work-by: Ronald S. Bultje <rsbultje@gmail.com>
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-22 11:23:43 -08:00
Tim Walker
6bbaf6e0dd
mlpdec_parser: fix a few channel layouts.
...
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-22 10:50:22 -05:00
Christophe GISQUET
b5696ff2b8
prores: use natural integer type for the codebook index
...
The operations that use it require it to be promoted to a larger (natural)
type and thus perform sign extension on it.
While an optimal compiler may account for this, gcc 4.6 (for x86 Windows)
fails. Using the natural integer type provides a 2% speedup for Win64
and 1% for Win32.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-22 09:21:39 +01:00
Anton Khirnov
5d42ac7ffb
mpegvideo_enc: only allocate output packet when we know there will be output
...
Fixes a memleak.
2012-02-21 22:47:01 +01:00
Aneesh Dogra
79c7064c5f
sunrast: Add a sample request for RMP_RAW colormap.
...
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-21 16:00:06 -05:00
Justin Ruggles
70749c483c
avcodec: do not override pts or duration from the audio encoder
...
This allows encoders to set pts and/or duration even if they do not use
CODEC_CAP_DELAY.
2012-02-21 15:18:51 -05:00
Alex Converse
b0f29db5c2
Mark mutable static data const where appropriate.
2012-02-21 09:47:07 -08:00
Janne Grunau
6a4cf065c7
dvbsubdec: avoid undefined signed left shift in RGBA macro
2012-02-21 16:01:31 +01:00
Paul B Mahol
ca085e667b
mlpdec: use av_log_ask_for_sample()
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-02-21 16:01:31 +01:00
Paul B Mahol
08630d25a2
png: make .long_name more descriptive
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-21 15:47:05 +01:00
Ronald S. Bultje
3ab9a2a557
rv34: change most "int stride" into "ptrdiff_t stride".
...
This prevents having to sign-extend on 64-bit systems with 32-bit ints,
such as x86-64. Also fixes crashes on systems where we don't do it and
arguments are not in registers, such as Win64 for all weight functions.
2012-02-20 14:58:25 -08:00
Justin Ruggles
770a5c6d02
adpcmenc: Use correct frame_size for Yamaha ADPCM.
...
Output packet size should match avctx->block_align. The target output packet
size is 1024 bytes.
Before:
mono - 1024 samples -> 512 bytes
stereo - 2048 samples -> 2048 bytes
After:
mono - 2048 samples -> 1024 bytes
stereo - 1024 samples -> 1024 bytes
2012-02-20 15:52:32 -05:00
Justin Ruggles
91a28b0e8e
avcodec: add ff_samples_to_time_base() convenience function to internal.h
2012-02-20 15:20:17 -05:00
Justin Ruggles
41ac9bb253
adx parser: set duration
2012-02-20 15:08:41 -05:00
Justin Ruggles
b3a4c7e0f1
mlp parser: set duration instead of frame_size
2012-02-20 15:08:41 -05:00
Justin Ruggles
2460b168b4
gsm parser: set duration
2012-02-20 15:08:41 -05:00
Justin Ruggles
7575ffac8a
mpegaudio parser: set duration instead of frame_size
2012-02-20 15:08:40 -05:00
Justin Ruggles
16e54ac725
(e)ac3 parser: set duration instead of frame_size
2012-02-20 15:08:40 -05:00
Justin Ruggles
c7f3f1c91e
flac parser: set duration instead of frame_size
2012-02-20 15:08:40 -05:00
Justin Ruggles
e9cda85351
avcodec: add duration field to AVCodecParserContext
...
This will allow parsers to export the duration of the current frame being
output, if known, instead of using AVCodecContext.frame_size.
2012-02-20 15:08:40 -05:00
Paul B Mahol
0996f406c4
pnmdec: remove useless .pix_fmts
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-20 13:46:57 -05:00
Justin Ruggles
e00959a9b1
libmp3lame: support float and s32 sample formats
2012-02-20 12:32:31 -05:00