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
Anton Khirnov
52953d61ca
lavc: signal no output when a NULL frame is passed to audio encoder without delay
13 years ago
Ronald S. Bultje
87840eeb71
avcodec: disallow reget_buffer() if pix_fmt changed.
13 years ago
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().
13 years ago
Nicolas George
9cbf17e9af
lavc: introduce av_get_pcm_codec.
13 years ago
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.
13 years ago
Justin Ruggles
91a28b0e8e
avcodec: add ff_samples_to_time_base() convenience function to internal.h
13 years ago
Stefano Sabatini
3293b1adca
lavc: set bit_rate in the decoder context, just after the init stage
...
Also move the get_bit_rate() function, in order to avoid an undefined
symbol reference in avcodec_open2().
13 years ago
Martin Storsjö
9cf0841ef3
dsputil: Add ff_ prefix to the dsputil*_init* functions
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Paul B Mahol
148d1f4799
lavc: add missing PIX_FMT_YUVA444P
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Paul B Mahol
dcd2b55e1a
Check AVCodec.pix_fmts in avcodec_open2()
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
13 years ago
Justin Ruggles
b758cf7343
avcodec: set avpkt->size to 0 if encode2() did not output a packet
13 years ago
Justin Ruggles
a75bc764ec
avcodec: for audio encoding, set packet dts to packet pts.
...
There are no audio encoders which do frame reordering.
13 years ago
Anton Khirnov
52f82a1148
lavc: add avcodec_encode_video2() that encodes from an AVFrame -> AVPacket
...
Deprecate avcodec_encode_video().
13 years ago
Ronald S. Bultje
9b027c0d07
dsputil: set STRIDE_ALIGN to 16 for x86 also.
...
This fixes crashes in e.g. PNG decoding with SSE2 enabled. In fact, many
x86 optimizations for codecs assume that our buffer strides are 16-byte
aligned.
13 years ago
Justin Ruggles
1a670973a7
ff_alloc_packet: modify the size of the packet to match the requested size
...
This will simplify encoders which use this function to request the exact
packet size rather than the maximum size.
13 years ago
Janne Grunau
316fc7443b
avcodec: Add av_fast_padded_malloc().
...
Wrapper around av_fast_malloc() that keeps FF_INPUT_BUFFER_PADDING_SIZE
zero-padded bytes at the end of the used buffer.
Based on a patch by Reimar Döffinger <Reimar.Doeffinger@gmx.de>.
13 years ago
Anton Khirnov
bc90199848
lavc: set AVCodecContext.codec in avcodec_get_context_defaults3().
...
This way, if the AVCodecContext is allocated for a specific codec, the
caller doesn't need to store this codec separately and then pass it
again to avcodec_open2().
It also allows to set codec private options using av_opt_set_* before
opening the codec.
13 years ago
Anton Khirnov
0e72ad95f9
lavc: make avcodec_close() work properly on unopened codecs.
...
I.e. free the priv_data and other stuff allocated in
avcodec_alloc_context3() and not segfault.
13 years ago
Anton Khirnov
af08d9aeea
lavc: add avcodec_is_open().
...
It allows to check whether an AVCodecContext is open in a documented
way. Right now the undocumented way this check is done in lavf/lavc is
by checking whether AVCodecContext.codec is NULL. However it's desirable
to be able to set AVCodecContext.codec before avcodec_open2().
13 years ago
Anton Khirnov
2d9535ad31
avcodec_align_dimensions2: set only 4 linesizes, not AV_NUM_DATA_POINTERS.
...
This function is video-only, so there's no point in setting more
linesizes.
Fixes stack corruption in avplay.
13 years ago
Martin Storsjö
9a7dc618c5
libavcodec: Don't crash in avcodec_encode_audio if time_base isn't set
...
Earlier, calling avcodec_encode_audio worked fine even if time_base
wasn't set. Now it crashes due to trying to scale the output pts to
the codec context time base. This affects e.g. VLC.
If no time_base is set for audio codecs, set it to the sample
rate.
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Anton Khirnov
3211932c51
lavc: remove disabled FF_API_AVCODEC_INIT cruft.
13 years ago
Anton Khirnov
491f443e1f
lavc: remove disabled FF_API_ER cruft.
13 years ago
Anton Khirnov
d2d931500b
lavc: remove disabled FF_API_AVCODEC_OPEN cruft.
13 years ago
Anton Khirnov
fbca04e6f6
lavc: remove disabled FF_API_OLD_FF_PICT_TYPES cruft.
13 years ago
Anton Khirnov
9a79bb552a
lavc: remove disabled FF_API_THREAD_INIT cruft.
13 years ago
Anton Khirnov
284e65d64e
lavc: remove disabled FF_API_OLD_SAMPLE_FMT cruft.
13 years ago
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.
13 years ago
Michael Niedermayer
e49780f749
lavc: call ff_init_buffer_info() from default reget buffer.
...
This is needed in case the get_buffer() callback doesnt set
width/height.
Ideally all decoders would make calls through some wraper
to the callbacks and that wraper would call ff_init_buffer_info()
But until thats done, the default reget buffer must call this
itself as it needs the values for the changed size check later.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago