Michael Niedermayer
a1bb0823a9
libavcodec: correct consumed bytes for decoders
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Diego Biurrun
0c517644b2
avcodec/utils: cast a function argument to shut up a compiler warning
...
libavcodec/utils.c:251: note: expected ‘const uint8_t *’ but argument is of type ‘const short int *’
13 years ago
Michael Niedermayer
8ea5df4fac
lavc/utils: fix division by 0
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Anton Khirnov
c22953b8a3
lavc: check that extended_data is properly set in avcodec_encode_audio2().
13 years ago
Anton Khirnov
a5117a2444
lavc: pad last audio frame with silence when needed.
13 years ago
Carl Eugen Hoyos
143a5c55ff
Add yuva422p pix_fmt.
13 years ago
Michael Niedermayer
011004152f
lavc/utils: change a few asserts to av_assert0()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Justin Ruggles
f132248028
avcodec: do not needlessly set packet size to 0 in avcodec_encode_audio2()
...
It is already set to 0 by av_free_packet()
13 years ago
Justin Ruggles
74e10b6204
avcodec: for audio encoding, reset output packet when it is not valid
13 years ago
Justin Ruggles
fa0319b4fd
avcodec: refactor avcodec_encode_audio2() to merge common branches
13 years ago
Justin Ruggles
b461cd4deb
avcodec: remove fallbacks for AVCodec.encode() in avcodec_encode_audio2()
...
We no longer have any audio encoders using AVCodec.encode().
13 years ago
Anton Khirnov
828bd088f3
lavc: add sample rate and channel layout to AVFrame.
...
Rationale is the same as for video width/height etc.
13 years ago
Nicolas George
e296f1b1c4
lavc: implement accessors for some AVFrame fields.
...
Compared to av_opt_ptr, accessors bring:
- better performance (negligible);
- compile-time type check;
- link-time existence check
(or at worst, a dynamic linker error instead of a NULL dereference).
13 years ago
Nicolas George
128dda7016
lavc: add a sample_rate field to AVFrame.
...
The field is filled with the codec context information.
13 years ago
Nicolas George
4b0521eca9
lavc: add a channel_layout field to AVFrame.
...
The field is filled with the codec context information.
FIXME need a minor version bump.
13 years ago
Michael Niedermayer
70d54392f5
lowres2 support.
...
The new lowres support is limited to decoders where lowres decoding
is possible in high quality.
I was not able to measure any speed difference, but if one is found
the 2-3 lines that might affect speed can be made compile time conditional
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Mans Rullgard
2bcbd98459
Remove lowres video decoding
...
This feature is complex, of questionable utility, and slows down
normal decoding.
Signed-off-by: Mans Rullgard <mans@mansr.com>
13 years ago
Robert Nagy
c58290e5e5
Reset pts_correction state on codec flush.
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Alex Converse
df8d5eaa14
avcodec_string: Favor AVCodecContext.codec over the default codec.
...
This improves output for formats with more than one AVCodec.
13 years ago
Justin Ruggles
c58846f3a8
avcodec: use align == 0 for default alignment in avcodec_fill_audio_frame()
...
Use default alignment in audio_get_buffer()
13 years ago
Justin Ruggles
1337de0c4b
avcodec: validate the channel layout vs. channel count for decoders
...
Set avctx->channel_layout to 0 if the channel count does not match
avctx->channels.
13 years ago
Reimar Döffinger
069cf86d32
Fix side-data memleak also for audio.
...
This uses the same code as in decode_video also in decode_audio.
Should fix valgrind FATE failures for nellymoser encode test.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
13 years ago
Michael Niedermayer
7c9d69360c
lavc: check media type of the decoder before calling it.
...
This fixes a segfault where a video decoder was called
from avcodec_decode_audio*().
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Anton Khirnov
3c6607eb6f
avcodec_encode_{audio,video}: only reallocate output packet when it has non-zero size.
...
Otherwise realloc would free it, which would result in double free
later.
13 years ago
Ronald S. Bultje
bc1ef85520
lavc/avconv: support changing frame sizes in codecs with frame mt.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
13 years ago
Michael Niedermayer
59a4b73531
pthread/mpegvideo: detect and block attempts to init frames after setup.
...
This fixes race conditions that ultimately lead to memory corruption.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Michael Niedermayer
532f1c7aa7
lavc: limit realloc() on encoding to the libav compatibility API.
...
Neither the old nor new need it.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Michael Niedermayer
740b9ff44e
lavc: Redesign the internal encoding API.
...
The new API allows (optionally and on by default) using a internal buffer to encode, avoiding
the need to allocate large buffers or risking failure on too small buffers.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Michael Niedermayer
dca0e4cd61
avcodec_encode_audio2: use ff_alloc_packet2()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Michael Niedermayer
00663de3b7
lavc: add ff_alloc_packet2().
...
This contains a AVCodecContext thus allowing us to prevent the
error message duplication
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Michael Niedermayer
6c9db40205
avcodec_encode_audio2: add missing padding to realloc()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Justin Ruggles
a1977e0103
lavc: shrink encoded audio packet size after encoding.
13 years ago
Michael Niedermayer
fc8ed1117e
avcodec_encode_audio2: Increase the audio buffer size.
...
Fixes Ticket1104
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Ronald S. Bultje
c346f6304c
adpcm: fix nb_samples rounding for adpcm_ima_dk3, and update reference.
13 years ago
Nicolas George
15d75dabee
lavc/utils: fix three const warnings.
...
No change in assembly code produced on x86_64.
13 years ago
Michael Niedermayer
57986c501e
lavc/utils: fix const correctness of AVClass cast
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Michael Niedermayer
11344792e8
lavc/utils: remove unused variable from avcodec_encode_video2.
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
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.
13 years ago
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.
13 years ago
Anton Khirnov
44fe77b350
lavc: make codec_is_decoder/encoder() public.
13 years ago
Nicolas George
b2792a436b
lavc: unify similar code merged from both branches.
13 years ago
Anton Khirnov
7fb6c9225c
lavc: free the output packet when encoding failed or produced no output.
13 years ago
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.
13 years ago
Anton Khirnov
eb727387fd
lavc: shrink encoded video packet size after encoding.
...
Based on a patch by Nicolas George <nicolas.george <at> normalesup.org>
13 years ago
Michael Niedermayer
a77c8ade2e
lavc: fix 10l oversight in realloc of avcodec_encode_video2.
...
Packets are not guranteed to be allocated by av_malloc().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Nicolas George
33b9fe562a
encode_video2: shrink packet after encoding.
...
With the encode2 API, encoders allocate huge packets to be
sure they have enough room (a typical case is mpeg4, which
allocs ~10M for 1280x768 yuv420p) but only actually use a
very small part of the buffer.
13 years ago
Michael Niedermayer
c250063523
get_buffers: Check that pix_fmt is not NONE.
...
This is somewhat redundant as no decoder should call get_buffer() with such argument.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Diego Biurrun
d10319d87f
avcodec_default_reget_buffer(): fix compilation in DEBUG mode
13 years ago
Anton Khirnov
03ca0a5b30
lavc: merge two if()s with the same condition.
13 years ago
Anton Khirnov
d55fa6f9cb
lavc: factorize setting got_packet_ptr in avcodec_encode_video2()
13 years ago