Commit Graph

14533 Commits

Author SHA1 Message Date
Justin Ruggles
d0b1b1c5c7 wmadec: consolidate 2 output buffer size checks into 1 check 2011-10-28 12:02:23 -04:00
Justin Ruggles
9a33264478 apedec: assert that s->samples is not negative before trying to decode 2011-10-28 11:47:29 -04:00
Justin Ruggles
0927154d37 apedec: use FFALIGN macro for internal data buffer size 2011-10-28 11:47:28 -04:00
Justin Ruggles
5b8009f4c8 apedec: do not keep incrementing the input data pointer past the end of the
buffer during entropy decoding.

The pointer address could overflow, which would likely segfault. Instead set
the context error flag to indicate that the decoder tried to read past the
end of the packet data.
2011-10-28 11:47:28 -04:00
Justin Ruggles
a4c32c9a63 apedec: check for input buffer overflow while reading frame header 2011-10-28 11:47:28 -04:00
Justin Ruggles
fd244ae3a0 apedec: use unsigned int for offset
avoids implementation-defined unsigned-to-signed conversion and simplifies
the bounds checking.
2011-10-28 11:47:28 -04:00
Justin Ruggles
89ec474a43 apedec: remove pointless increment of 'buf'
The variable is not used anymore at that point.
2011-10-28 11:47:28 -04:00
Justin Ruggles
52d4fb2a3d apedec: set s->currentframeblocks after validating nblocks 2011-10-28 11:47:28 -04:00
Justin Ruggles
2cab578489 apedec: use unsigned int for 'nblocks' and make sure that it's within int range 2011-10-28 11:47:27 -04:00
Justin Ruggles
b7e5145759 apedec: do not set s->samples until after validation.
This prevents errors and/or invalid writes in the next decode call due to
s->samples still being negative.
2011-10-28 11:47:27 -04:00
Justin Ruggles
11ca8b2d74 apedec: check for data buffer realloc failure 2011-10-28 11:47:27 -04:00
Justin Ruggles
91b71460b5 apedec: return meaningful error values in ape_decode_frame() 2011-10-28 11:47:27 -04:00
Justin Ruggles
c6defb41ef apedec: correct an error message 2011-10-28 11:47:27 -04:00
Justin Ruggles
da55e0980e apedec: cosmetics
break some excessively long lines and remove space after '*'
2011-10-28 11:46:41 -04:00
Justin Ruggles
f64e0a2f37 apedec: return meaningful error codes from ape_decode_init() 2011-10-28 11:41:39 -04:00
Justin Ruggles
7500781313 apedec: check for filter buffer allocation failure 2011-10-28 11:41:39 -04:00
Justin Ruggles
b9d6b02713 apedec: use memcpy for pseudo-stereo mode 2011-10-28 11:41:39 -04:00
Justin Ruggles
3c25209bd9 apedec: remove unneeded check for zero-size packet.
This is already checked by avcodec_decode_audio3().
2011-10-28 11:41:39 -04:00
Justin Ruggles
ec6d743118 mp3on4: do not needlessly set data_size to 0 2011-10-27 22:06:32 -04:00
Justin Ruggles
99975966c3 mp3adu: return error instead of just consuming bad packets 2011-10-27 22:06:32 -04:00
Justin Ruggles
e2e6c8799b mpegaudiodec: check output data size based on avctx->frame_size 2011-10-27 22:06:32 -04:00
Justin Ruggles
512557b291 avcodec: remove avcodec_parse_frame and deprecate associated elements.
The documentation for CODEC_CAP_PARSE_ONLY and AVCodecContext.parse_only
indicates that they are utilized through avcodec_parse_frame(), which was
never actually implemented.
2011-10-27 22:06:32 -04:00
Justin Ruggles
cd816d9bbb mpegaudiodec: cosmetics: basic pretty-printing 2011-10-27 22:06:32 -04:00
Justin Ruggles
c17e534f2e mpegaudiodec: remove frame_count field from MPADecodeContext.
Its functionality was removed several years ago, so it doesn't do anything.
AVCodecContext.frame_number could serve the same purpose if someone
wants to debug the frame count.
2011-10-27 22:06:32 -04:00
Justin Ruggles
dac15a03af mpegaudiodec: return AVERROR return codes instead of -1 2011-10-27 22:06:32 -04:00
Justin Ruggles
4be1e1dfa7 mpegaudiodec: Skip only bad frames instead of the whole packet.
On frame decoding failure, return an error if the frame is the same size as
the whole packet, otherwise just log an error message and return the number
of bytes consumed.
2011-10-27 22:06:31 -04:00
Anton Khirnov
15946eb8a9 lavc: remove "legacy" mpegvideo decoder. 2011-10-27 23:06:26 +02:00
Justin Ruggles
4a6a29a7fb libopencore-amr: check output buffer size before decoding 2011-10-26 16:00:37 -04:00
Justin Ruggles
345d15d2f9 libopencore-amr: remove unneeded buf_size==0 check.
avcodec_decode_audio3() already checks it before sending the packet to the
decoder.
2011-10-26 16:00:37 -04:00
Justin Ruggles
402c98783d libopencore-amr: remove unneeded frame_count field.
Use AVCodecContext.frame_number instead.
2011-10-26 16:00:36 -04:00
Justin Ruggles
71ccfb3f14 aac_latm: remove unneeded check for zero-size packet.
This is already checked by avcodec_decode_audio3()
2011-10-26 12:21:18 -04:00
Justin Ruggles
f1901180e0 pcmdec: fix output buffer size check by calculating the actual output size
prior to decoding.
2011-10-26 12:01:07 -04:00
Justin Ruggles
154cd253e5 pcmdec: move codec-specific variable declarations to the corresponding codec
blocks.
2011-10-26 12:01:07 -04:00
Justin Ruggles
0093f96d34 pcmdec: return buf_size instead of src-buf.
The values will always be the same, so this change eliminates an unneeded
variable. It also gets rid of the need to reset src when memcpy() is used.
2011-10-26 12:01:07 -04:00
Justin Ruggles
85579b6381 avcodec: remove the Zork PCM encoder.
The Zork PCM decoder does not decode the 1 sample we have correctly, therefore
the encoder based on the decoder is also incorrect. There is no good reason to
keep the encoder.
2011-10-26 12:01:07 -04:00
Justin Ruggles
67a3b67c71 pcm_zork: use AV_SAMPLE_FMT_U8 instead of shifting all samples by 8. 2011-10-26 12:01:07 -04:00
Justin Ruggles
06af335a33 pcmenc: remove unneeded sample_fmt check.
It is already checked by avcodec_open2().
2011-10-26 12:01:07 -04:00
Justin Ruggles
d94e29cac9 pcmdec: move number of channels check to pcm_decode_init() 2011-10-26 12:01:06 -04:00
Justin Ruggles
83efd7652e pcmdec: remove unnecessary check for sample_fmt change 2011-10-26 12:01:06 -04:00
Justin Ruggles
381e195b46 pcmdec: move DVD PCM bits_per_coded_sample check near to the code that sets
the sample size.
2011-10-26 12:01:06 -04:00
Justin Ruggles
6b94711f15 pcmdec: do not needlessly set *data_size to 0 2011-10-26 12:01:06 -04:00
Justin Ruggles
30f3e7b524 alacdec: remove unneeded NULL or zero-size packet checks.
This is already done in avcodec_decode_audio3()
2011-10-26 11:50:17 -04:00
Justin Ruggles
68f7e9cd8e alacdec: simplify buffer allocation by using FF_ALLOC_OR_GOTO() 2011-10-26 11:50:17 -04:00
Justin Ruggles
b316af7a7c alacdec: ask for a sample for unsupported sample depths.
Also return AVERROR_PATCHWELCOME.
2011-10-26 11:50:17 -04:00
Justin Ruggles
63cf54df7a alacdec: cosmetics: use 'ch' instead of 'chan' to iterate channels 2011-10-26 11:50:17 -04:00
Justin Ruggles
01200f1283 alacdec: move some declarations to the top of the function 2011-10-26 11:50:17 -04:00
Justin Ruggles
c3a92412c0 alacdec: always use get_sbits_long() for uncompressed samples 2011-10-26 11:50:17 -04:00
Justin Ruggles
b46e58f741 alacdec: remove unneeded local variable 2011-10-26 11:50:17 -04:00
Justin Ruggles
7080533cda alacdec: remove the numchannels parameter from several functions.
They only operate on stereo content, so the extra param is not necessary and
also allows for simplifying the code.
2011-10-26 11:50:17 -04:00
Justin Ruggles
cb50329fc5 alacdec: rename 2 functions.
Now they only do stereo interleaving.
2011-10-26 11:50:16 -04:00
Justin Ruggles
c39bddd392 alacdec: move appending of extra_bits to a separate function.
This should also fix decoding of mono 24-bit.
2011-10-26 11:50:16 -04:00
Justin Ruggles
e739d35156 alacdec: split stereo decorrelation into a separate function.
It is identical for 16-bit and 24-bit, so there is no need to have duplicate
code.
2011-10-26 11:50:16 -04:00
Justin Ruggles
d251c85dce alacdec: cosmetics: rename 'wasted_bits' to 'extra_bits'.
The bits are not wasted, they are additional low bits that are added to the
16-bit decompressed samples to increase the output sample depth.
2011-10-26 11:50:16 -04:00
Justin Ruggles
dbbb9262ca alacdec: remove unneeded numsamples checks 2011-10-26 11:50:16 -04:00
Justin Ruggles
53df079a73 alacdec: check for buffer allocation failure.
Also rearranges some functions for easier cleanup on failure.
2011-10-26 11:50:16 -04:00
Justin Ruggles
e5e4f92b5c alacdec: allocate per-channel buffers based on channel count.
reduces memory usage when the stream has fewer than MAX_CHANNELS
2011-10-26 11:50:16 -04:00
Justin Ruggles
dcaa83a0fc alacdec: read/validate number of channels from the extradata.
check frame header channel count against header/container channel count.
2011-10-26 11:50:16 -04:00
Justin Ruggles
47e9c75b36 alacdec: remove unneeded validation of setinfo_sample_size.
It is already done when using it to set sample_fmt.
2011-10-26 11:50:16 -04:00
Justin Ruggles
0f26f3d5c4 alacdec: set sample_fmt in alac_decode_init() 2011-10-26 11:50:16 -04:00
Justin Ruggles
aec8383348 alacdec: set bytespersample using av_get_bytes_per_sample() 2011-10-26 11:50:15 -04:00
Janne Grunau
d6174bfe5f threads: restore has_b_frames in frame_thread_free
Otherwise the delay expressed in has_b_frames increases with every
avcodec_close/avcodec_open.
Fixes fate-ea-dct with more than 1 thread.
2011-10-26 16:55:54 +02:00
Daniel Kang
ded3e9f054 H.264: Cometics to dsputil_mmx.c
Add whitespace.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-10-26 06:41:32 -07:00
Justin Ruggles
a3a8572165 g722dec: check output buffer size before decoding 2011-10-25 11:30:50 -04:00
Justin Ruggles
4e41973794 g722dec: cosmetics: reindent/linewrap 2011-10-25 11:30:50 -04:00
Justin Ruggles
d0a196962a g722dec: remove the use of lowres for half-rate decoding.
It is broken because an AVCodecContext can be opened/closed multiple
times, and sample_rate is getting divided by 2 each time that happens.

This removes the only use of lowres for audio.
2011-10-25 11:30:50 -04:00
Justin Ruggles
2f1d212fd0 tta: check for allocation failure of decode_buffer 2011-10-25 11:22:02 -04:00
Justin Ruggles
b5050539c9 tta: use correct frame_length calculation.
using a floating-point calculation is not necessary.
2011-10-25 11:22:02 -04:00
Justin Ruggles
c6056d4004 tta: add support for decoding 24-bit sample format
Note that this will not work in most cases with avconv and avplay due to the
AVCODEC_MAX_AUDIO_FRAME_SIZE limit, but it will decode correctly if given a
large enough output buffer.
2011-10-25 11:22:02 -04:00
Justin Ruggles
8664682d0e cosmetics: indentation 2011-10-25 11:22:02 -04:00
Justin Ruggles
7b7a74a150 tta: remove pointless braces 2011-10-25 11:22:02 -04:00
Justin Ruggles
e6923f683c tta: check output buffer size after adjusting frame length for last frame 2011-10-25 11:22:01 -04:00
Justin Ruggles
b16960a8a5 tta: fix reading of format in TTA header.
TTA does not support float at all, and format 2 is encrypted TTA.
2011-10-25 11:22:01 -04:00
Justin Ruggles
4d3e7a7516 tta: remove useless commented-out lines 2011-10-25 11:22:01 -04:00
Justin Ruggles
35f9d8c20a tta: check remaining bitstream size while reading unary value 2011-10-25 11:22:01 -04:00
Janne Grunau
28287045ca cosmetics: simplify latm_decode_init 2011-10-25 12:08:21 +02:00
Janne Grunau
785f876cee latm: avoid unnecessary reinit of the aac decoder 2011-10-25 12:08:21 +02:00
Janne Grunau
80e36425fb aacdec: initialize sbr context only in new channel elements 2011-10-25 12:07:58 +02:00
Janne Grunau
b2e56e08c9 resample: reject unhandled conversions
audio_resample can not reduce the number of channels
2011-10-25 12:06:48 +02:00
Janne Grunau
ec1ce86e7f resample: remove unused #define 2011-10-25 12:06:48 +02:00
Mans Rullgard
c8477df019 adpcm: use sign_extend()
This avoids warnings from the overflow checker and simplifies the code.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-10-24 15:26:24 +01:00
Janne Grunau
d99fe3a478 mpeg12: fix mpeg_decode_slice context parameter type
During slice threading only MpegEncContext is passed to
mpeg_decode_slice, remove a wrong cast and change the function
definition to take MpegEncContext pointer.
2011-10-24 01:05:00 +02:00
Janne Grunau
cd8c64e197 Revert "mpeg12: move full_pel from MpegEncContext to Mpeg1Context"
This reverts commit da22ba7df4 since it
broke slice threading. Slice threading just duplicates MpegEncContext
so every value used during mpeg_decode_slice has to be in it.
A second patch will fix the illusion that Mpeg1Context is available
in mpeg_decode_slice.
2011-10-24 00:59:41 +02:00
Justin Ruggles
704721bc9c g722: split decoder and encoder into separate files 2011-10-23 11:42:34 -04:00
Justin Ruggles
b95fbba705 cosmetics: remove extra spaces before end-of-statement semi-colons 2011-10-23 11:36:56 -04:00
Justin Ruggles
60aa1a358d vorbisdec: check output buffer size before writing output 2011-10-23 11:36:56 -04:00
Justin Ruggles
d2604f9260 wavpack: calculate bpp using av_get_bytes_per_sample() 2011-10-23 11:35:46 -04:00
John Stebbins
ddfb8e1adb ac3enc: Set max value for mode options correctly
for example:
Attempting to set ac3 dsur_mode to "on" results in:
[AC-3 Encoder @ 0x7f508f0a3280] Value 2.000000 for parameter 'dsur_mode' out of range
[AC-3 Encoder @ 0x7f508f0a3280] Error setting option dsur_mode to value on.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2011-10-23 11:30:54 -04:00
Anton Khirnov
1deb66c50c lavc: move get_b_cbp() from h263.h to mpeg4videoenc.c
It's not used anywhere else.
2011-10-23 14:16:16 +02:00
Anton Khirnov
3fc0830432 mpeg12: move closed_gop from MpegEncContext to Mpeg1Context
It's MPEG-1/2 specific.
2011-10-23 14:15:56 +02:00
Anton Khirnov
da22ba7df4 mpeg12: move full_pel from MpegEncContext to Mpeg1Context
It's MPEG-1 specific.
2011-10-23 14:14:39 +02:00
Anton Khirnov
cc05a45d33 mpeg12: move Mpeg1Context from mpeg12.c to mpeg12.h
It will be used in vdpau code.
2011-10-23 14:14:34 +02:00
Anton Khirnov
acffe45732 mpegvideo: remove some unused variables from MpegEncContext. 2011-10-23 14:13:40 +02:00
Mashiat Sarker Shakkhar
f18746528d VC1: restore mistakenly removed code
The code was mistakenly removed in cad16562c8.
It stored some motion vector data for future use in B-pictures.

This fixes Bugzilla bug #57.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-10-22 22:51:00 +02:00
Justin Ruggles
e53eecd0e7 twinvq: check output buffer size before decoding 2011-10-22 15:38:05 -04:00
Justin Ruggles
5ed6817822 twinvq: return an error when the packet size is too small 2011-10-22 15:38:05 -04:00
Dustin Brody
9abc98737f lavc: replace references to deprecated AVCodecContext.error_recognition to use AVCodecContext.err_recognition
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-10-22 14:49:55 +02:00
Dustin Brody
5ea0001f9e lavc: translate non-flag-based er options into flag-based ef options at codec open
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-10-22 14:49:22 +02:00
Dustin Brody
c8dad9a694 add -err_filter AVOptions to access flag-based error recognition
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-10-22 14:49:14 +02:00
Ronald S. Bultje
b0b3231074 h264_weight: initialize "height" function argument properly.
Right now it's not actually initialized on 32-bit, leading to crashes
on win32.
2011-10-22 00:23:24 -07:00
Justin Ruggles
b19e0c2b4e libspeexdec: include system headers before local headers 2011-10-21 17:07:05 -04:00