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
Justin Ruggles
0b42a9388c
avutil: add av_rescale_q_rnd() to allow different rounding
2012-02-20 15:08:40 -05:00
Justin Ruggles
e00959a9b1
libmp3lame: support float and s32 sample formats
2012-02-20 12:32:31 -05:00
Justin Ruggles
e232225276
libmp3lame: renaming, rearrangement, alignment, and comments
2012-02-20 12:32:30 -05:00
Justin Ruggles
232e16dd02
libmp3lame: use the LAME default bit rate
...
Also, only set bit rate for CBR.
2012-02-20 12:32:30 -05:00
Justin Ruggles
1f516c0451
libmp3lame: use avpriv_mpegaudio_decode_header() for output frame parsing
2012-02-20 12:32:30 -05:00
Justin Ruggles
e3d2c89e9d
libmp3lame: cosmetics: remove some pointless comments
2012-02-20 12:32:30 -05:00
Justin Ruggles
bf909fc456
libmp3lame: convert some debugging code to av_dlog()
...
also remove unneeded commented-out full frame data debugging
2012-02-20 12:32:30 -05:00
Justin Ruggles
469d2a8e8e
libmp3lame: remove outdated comment.
...
We now require at least libmp3lame 3.98.3.
lame_encode_buffer_interleaved() still doesn't work for mono, but it does not
"die"; it just expects a stereo interleaved buffer.
2012-02-20 12:32:30 -05:00
Justin Ruggles
35cfd7d09c
libmp3lame: do not set coded_frame->key_frame.
...
it is already set in avcodec_alloc_frame()
2012-02-20 12:32:30 -05:00
Justin Ruggles
8dad25ebf7
libmp3lame: improve error handling in MP3lame_encode_init()
2012-02-20 12:32:30 -05:00
Justin Ruggles
310c372e12
libmp3lame: remove unneeded 'stereo' field from Mp3AudioContext
2012-02-20 12:32:30 -05:00
Justin Ruggles
f2a4559c77
ttadec: use branchless unsigned-to-signed unfolding
2012-02-17 14:35:35 -05:00
Justin Ruggles
c9fdf3241a
bethsoftvid: synchronize video timestamps with audio sample rate
...
According to unofficial documentation, the video rate is locked to the audio
sample rate. This results in proper synchronization of audio and video
timestamps from the demuxer. This only works if the first audio packet occurs
before the first video packet or the audio sample rate is the default rate of
11111 Hz, both of which are true for all samples in our archive.
2012-02-16 10:47:11 -05:00
Justin Ruggles
773ff823da
bethsoftvid: add audio stream only after getting the first audio packet
...
This avoids initializing a stream with dummy values or when the file does not
contain audio.
Also set duration for audio packets, using the sample rate as the time base.
2012-02-16 10:47:11 -05:00
Justin Ruggles
9546f331c6
bethsoftvid: Set video packet duration instead of accumulating pts.
2012-02-16 10:47:11 -05:00
Justin Ruggles
05e4ae833c
bethsoftvid: set packet key frame flag for audio and I-frame video packets.
...
Fixes avconv video stream copy of bethsoft video, which was skipping all
video frames unless the copyinkf option was used.
2012-02-16 10:47:11 -05:00
Justin Ruggles
17b115591f
bethsoftvid: fix read_packet() return codes.
...
Use proper AVERROR codes, and return 0 for no error.
2012-02-16 10:47:11 -05:00
Justin Ruggles
f320fb894c
bethsoftvid: pass palette in side data instead of in a separate packet.
...
Update FATE reference to account for now non-existent palette packet.
This also fixes the FATE test if frame data is not initialized in
get_buffer(), so update comment in avconv accordingly.
2012-02-16 10:47:11 -05:00
Justin Ruggles
b498867d66
FATE: update reference for seek-alac_mp4
...
This should have been updated in b590f3a7bf .
2012-02-11 16:41:01 -05:00
Justin Ruggles
764852d653
alacenc: use AVCodec.encode2()
2012-02-11 12:49:23 -05:00
Justin Ruggles
bee80054f7
alacenc: cosmetics: indentation
2012-02-11 12:49:22 -05:00
Justin Ruggles
b6e8ff72ea
alacenc: consolidate bitstream writing into a single function.
...
Simplifies use of verbatim mode.
2012-02-11 12:49:22 -05:00
Justin Ruggles
b590f3a7bf
alacenc: only encode frame size in header for a final smaller frame
...
Otherwise it is not needed because it matches the frame size as encoded in
the extradata.
2012-02-11 12:49:22 -05:00
Justin Ruggles
ba821b098b
alacenc: store current frame size in AlacEncodeContext.
...
This avoids an indirection and will simplify implementation of encode2()
2012-02-11 12:49:22 -05:00
Justin Ruggles
65d15aec77
alacenc: return AVERROR codes in alac_encode_frame()
2012-02-11 12:49:22 -05:00
Justin Ruggles
302daf5800
alacenc: calculate a new max frame size for the final small frame
...
Gives a better estimate of buffer requirements and a better decision of
whether or not to use verbatim mode.
2012-02-11 12:49:22 -05:00
Justin Ruggles
fc9cf0b2a6
alacenc: pretty-printing and other cosmetics
2012-02-11 12:49:22 -05:00
Justin Ruggles
51c2483862
alacenc: fix error handling and potential memleaks in alac_encode_init()
2012-02-11 12:49:22 -05:00
Justin Ruggles
6e63228323
alacenc: do not set coded_frame->key_frame
...
It is already set in avcodec_alloc_frame()
2012-02-11 12:49:21 -05:00
Justin Ruggles
64fe3eaeb3
alacenc: do not set bits_per_coded_sample
...
encoded ALAC does not have a fixed number of bits per sample
2012-02-11 12:49:21 -05:00
Justin Ruggles
43a4cb070b
alacenc: remove unneeded frame_size check in alac_encode_frame()
2012-02-11 12:49:21 -05:00
Justin Ruggles
6ab681a4c1
ttadec: fix invalid free when an error occurs while decoding 24-bit tta
2012-02-10 20:35:10 -05:00
Justin Ruggles
9d7cee50aa
wavpack: add needed braces for 2 statements inside an if block
2012-02-10 20:27:55 -05:00
Justin Ruggles
b758cf7343
avcodec: set avpkt->size to 0 if encode2() did not output a packet
2012-02-09 21:51:41 -05:00
Justin Ruggles
a75bc764ec
avcodec: for audio encoding, set packet dts to packet pts.
...
There are no audio encoders which do frame reordering.
2012-02-09 21:51:29 -05:00
Justin Ruggles
d483bb58c3
ac3dsp: do not use pshufb in ac3_extract_exponents_ssse3()
...
We need to do unsigned saturation in order to cover the corner case when the
absolute coefficient value is 16777215 (the maximum value).
Fixes Bug #216
2012-02-09 21:04:44 -05:00
Justin Ruggles
37390d5cca
apedec: allow the user to set the maximum number of output samples per call
...
It makes sense in some cases to split up the output packet to save on memory
usage (ape frames can be very large), but the current/default size is
arbitrary. Allowing the user to configure this gives more flexibility and
requires minimal additional code.
2012-02-07 10:01:15 -05:00
Justin Ruggles
39575eead2
apedec: do not unnecessarily zero output samples for mono frames
2012-02-07 10:01:15 -05:00
Justin Ruggles
1d3c672d27
apedec: allocate a single flat buffer for decoded samples
...
This will allow the decoder to return samples for the full packet, and it also
makes the decoded buffer pointers aligned.
2012-02-07 10:01:14 -05:00
Justin Ruggles
32c61400c0
apedec: use sizeof(field) instead of sizeof(type)
2012-02-07 10:01:14 -05:00
Justin Ruggles
ec1f3cab20
avplay: reset decoder flush state when seeking
...
Fixes seeking after decoder has already been flushed for codecs using
CODEC_CAP_DELAY.
2012-02-06 13:22:01 -05:00
Justin Ruggles
f1c3d4a68a
ape: skip packets with invalid size
2012-02-06 13:22:01 -05:00
Justin Ruggles
ac3f8d317c
ape: calculate final packet size instead of guessing
...
Calculates based on total file size and wavetaillength from the header.
Falls back to multiplying finalframeblocks by 8 instead of 4 so that it will
at least be overestimating for 24-bit. Currently it can underestimate the
final packet size, leading to decoding errors.
2012-02-06 13:22:01 -05:00
Justin Ruggles
c2c316158f
ape: stop reading after the last frame has been read
...
This avoids buffer overread when the last packet size estimate is too small.
2012-02-06 13:09:11 -05:00
Justin Ruggles
66f7be3603
ape: return AVERROR_EOF instead of AVERROR(EIO) when demuxing is finished
2012-02-06 13:09:11 -05:00
Justin Ruggles
1bc035bc03
ape: return error if seeking to the current packet fails in ape_read_packet()
2012-02-06 13:09:11 -05:00
Justin Ruggles
6f1a5e8d6b
dsputil: remove debug message in dsputil_init().
...
AVCodecContext.bits_per_raw_sample is used for audio too, and values other
than 8, 9, and 10 are valid.
2012-02-03 16:00:30 -05:00
Justin Ruggles
22c0babbb2
apedec: remove unneeded #include of get_bits.h and associated macro
2012-02-02 21:07:01 -05:00
Justin Ruggles
e4169612a1
apedec: av_fast_malloc() instead of av_realloc()
...
av_realloc() does not guarantee alignment, which is required for
DSPContext.bswap_buf().
2012-02-02 21:07:01 -05:00
Justin Ruggles
0759c8eb10
apedec: fix handling of packet sizes that are not a multiple of 4 bytes
2012-02-02 21:07:01 -05:00
Justin Ruggles
c3a06615bd
bethsoftvideo: fix palette reading.
...
Return the correct number of consumed bytes and set *data_size = 0.
Returned size is 1 too small, leading to that 1 byte being read as the next
frame, which results in an extra blank frame at the beginning of the stream.
2012-02-01 19:41:39 -05:00
Justin Ruggles
83ce51cc7d
mpc7: use av_fast_padded_malloc()
...
Avoids doing malloc/free for each frame.
Also fixes valgrind errors due to use of uninitialized padding bytes.
Based on a patch by Reimar Döffinger <Reimar.Doeffinger@gmx.de >
2012-02-01 19:35:59 -05:00
Justin Ruggles
b5b825c381
mpc7: simplify handling of packet sizes that are not a multiple of 4 bytes
2012-02-01 19:35:59 -05:00
Justin Ruggles
236a550c3f
Fix a typo in the x86 asm version of ff_vector_clip_int32()
...
Specifies the correct number of xmm registers used so that they can be saved
and restored on Win64 if necessary.
2012-02-01 19:02:32 -05:00
Justin Ruggles
3c432631e9
pcmenc: Do not set avpkt->size.
...
It is already the correct size as set by ff_alloc_packet().
2012-02-01 16:33:27 -05:00
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.
2012-02-01 16:33:27 -05:00
Justin Ruggles
a3a0691bde
adpcmenc: remove some unneeded casts
2012-01-30 19:12:55 -05:00
Justin Ruggles
149f2058a4
adpcmenc: use int16_t and uint8_t instead of short and unsigned char.
2012-01-30 19:12:55 -05:00
Justin Ruggles
dd88ae831a
adpcmenc: fix adpcm_ms extradata allocation
...
Add FF_INPUT_BUFFER_PADDING_SIZE.
If allocation fails, also free memory which was allocated previously in
adpcm_encode_init().
2012-01-30 19:12:55 -05:00
Justin Ruggles
877a1d409c
adpcmenc: return proper AVERROR codes instead of -1
2012-01-30 19:12:55 -05:00
Justin Ruggles
cb023d9afe
adpcmenc: check for coded_frame allocation failure
2012-01-30 19:12:55 -05:00
Justin Ruggles
ddf70db6d7
adpcmenc: Do not set coded_frame->key_frame.
...
It is already set in avcodec_alloc_frame().
2012-01-30 19:12:54 -05:00
Justin Ruggles
3c4add27f7
mpc7: check for allocation failure
2012-01-30 19:11:29 -05:00
Justin Ruggles
eac31dd163
mpc7: align local temp buffer
...
DSPContext.bswap_buf() requires aligned output
2012-01-30 19:11:29 -05:00
Justin Ruggles
89eea6df28
aacenc: make sure to encode enough frames to cover all input samples.
...
Currently, any samples in the final frame are not decoded because they are
only represented by one frame instead of two. So we encode two final frames to
cover both the analysis delay and the MDCT delay.
2012-01-30 14:20:24 -05:00
Justin Ruggles
f44005b610
aacenc: only use the number of input samples provided by the user.
...
Fixes handling of CODEC_CAP_SMALL_LAST_FRAME.
2012-01-30 14:20:24 -05:00
Justin Ruggles
2c577155a7
libspeexenc: use AVSampleFormat instead of deprecated/removed SampleFormat
...
Fixes build with --enable-libspeex
2012-01-27 11:28:21 -05:00
Justin Ruggles
b8dd555c63
aud: remove unneeded field, audio_stream_index from context
...
There is only one stream, so it will always be index 0.
This also allows for removal of the private context.
2012-01-24 14:13:47 -05:00
Justin Ruggles
be14a37066
aud: fix time stamp calculation for ADPCM IMA WS
...
also allows for removing some unused context fields
2012-01-24 14:13:47 -05:00
Justin Ruggles
10fef6bd6b
aud: simplify header parsing
...
also allows for removing some unused context fields
2012-01-24 14:13:47 -05:00
Justin Ruggles
0e6a8b5cf7
aud: set pts_wrap_bits to 64.
...
Time stamps are not read from the bitstream, so no wrapping is needed.
2012-01-24 14:13:47 -05:00
Justin Ruggles
98c290cc08
cosmetics: indentation
2012-01-24 14:13:46 -05:00
Justin Ruggles
d481227c54
aud: support Westwood SND1 audio in AUD files.
...
Fixes decoding of the handful of "death scream" samples from
"Command and Conquer" that use SND1. e.g.
http://samples.libav.org/game-formats/westwood-aud/nuyell1.aud
http://samples.libav.org/game-formats/westwood-aud/nuyell7.aud
2012-01-24 14:13:46 -05: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
Justin Ruggles
4340a6363e
vqa: remove unused context fields, audio_samplerate and audio_bits
2012-01-24 14:08:29 -05:00
Justin Ruggles
7e813d5933
vqa: clean up audio header parsing
...
Fix setting of bit_rate and bits_per_coded_sample.
Ask for sample for unsupported VQA versions.
2012-01-24 14:08:29 -05:00
Justin Ruggles
5b4c562897
vqa: set time base to frame rate as coded in the header.
...
According to Multimedia Wiki documentation, the frame rate is not always 15,
and the actual value can be found in the header.
2012-01-24 14:08:29 -05:00
Justin Ruggles
9ae846971f
vqa: set packet duration.
...
Also remove unused context field, audio_frame_counter.
2012-01-24 14:08:29 -05:00
Justin Ruggles
53ed79a260
vqa: use 1/sample_rate as the audio stream time base
2012-01-24 14:08:29 -05:00
Justin Ruggles
e1ac69fa27
vqa: set stream start_time to 0.
...
The format has no coded timestamps and must use packet durations to generate
them.
2012-01-24 14:08:29 -05:00
Justin Ruggles
e924a4ba71
westwood: split the AUD and VQA demuxers into separate files.
...
They have no code in common.
2012-01-23 10:34:48 -05: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
Justin Ruggles
ee458cb1fa
avconv: use avcodec_encode_audio2()
2012-01-15 21:24:18 -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
Justin Ruggles
4c82c6d993
FATE: convert output to rgba for the targa tests which currently output pal8
...
fixes the tests on big-endian systems
2012-01-13 18:40:12 -05:00
Justin Ruggles
9c2f9b0e2d
FATE: enable the 2 remaining targa conformance suite tests
2012-01-13 17:13:12 -05:00
Justin Ruggles
faaebcdf6b
targa: add support for rgb555 palette
2012-01-13 17:11:41 -05:00
Justin Ruggles
e1a7af6f29
FATE: fix targa tests on big-endian systems
2012-01-13 16:14:48 -05:00
Justin Ruggles
68d6012c72
FATE: add tests for targa
...
Based on a patch by Oana Stratulat <oanaandreeastratulat@gmail.com >
2012-01-13 15:45:30 -05: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
f01f6a8474
gsm demuxer: use generic seeking instead of a gsm-specific function.
...
Since packets all contain only a single block, the generic seek function can
be used while still maintaining block-accuracy.
2012-01-11 08:56:24 -05:00
Justin Ruggles
467879eb54
gsm demuxer: return packets with only 1 gsm block at a time.
...
fixes stream copy of raw gsm to mov.
tested with QuickTime.
2012-01-11 08:56:24 -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
Justin Ruggles
4556ebfb7d
ipmovie: fix pts for CODEC_ID_INTERPLAY_DPCM
...
frame sample count calculation was incorrect
2012-01-10 14:25:07 -05:00