Justin Ruggles
c7bd556d48
lavfi: amix: check active input count before calling request_samples
...
fixes use of the amix filter with only 1 input
2012-05-30 16:20:03 -04:00
Justin Ruggles
b75726cb79
lavr: add x86-optimized function for mixing 2 to 1 s16p with q8 coeffs
2012-05-29 15:33:25 -04:00
Justin Ruggles
c140fb2cbc
lavr: add x86-optimized functions for mixing 2 to 1 s16p with float coeffs
2012-05-29 15:33:18 -04:00
Justin Ruggles
8dfc122719
lavr: add C functions for mixing 2 to 1 channels with s16p format
2012-05-29 15:16:20 -04:00
Justin Ruggles
c7448c182a
lavfi: add audio mix filter
2012-05-23 16:37:34 -04:00
Justin Ruggles and Diego Biurrun
713548cbad
x86: lavc: use %if HAVE_AVX guards around AVX functions in yasm code.
...
This is needed for older versions of yasm/nasm that do not support AVX.
Signed-off-by: Diego Biurrun <diego@biurrun.de >
2012-05-22 20:46:02 +02:00
Justin Ruggles
e0d8427dce
af_resample: remove an extra space in the log output
2012-05-21 18:26:51 -04:00
Justin Ruggles
afeb3590fc
lavfi: add an audio split filter
...
Based on current version of the asplit filter in FFmpeg written by
Stefano Sabatini and others.
2012-05-21 14:49:52 -04:00
Justin Ruggles
cc30080b3f
lavfi: rename vf_split.c to split.c
...
This is in preparation for adding an audio split filter.
2012-05-21 14:49:52 -04:00
Justin Ruggles
95a98ab3f0
ac3dsp: simplify x86 versions of ac3_max_msb_abs_int16
...
Simplifies the code by using cpuflags and a new macro.
Also fixes the invalid use of the MMX2 pshufw operation in the MMX-only
function.
2012-05-15 15:23:59 -04:00
Justin Ruggles and Michael Niedermayer
6f67d9833b
libswresample: Implement MMX, SSE4 and AVX 6ch float and int32 packing function.
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-05-13 19:31:59 +02:00
Justin Ruggles
5cc6d5244d
lavr: replace the SSE version of ff_conv_fltp_to_flt_6ch() with SSE4 and AVX
...
The current SSE version is slower than the MMX version on Athlon64 and Sandy
Bridge, but the SSE4 and AVX versions are faster on Sandy Bridge.
2012-05-09 16:17:59 -04:00
Justin Ruggles
85e5b866dc
avplay: properly close/reopen AVAudioResampleContext on channel layout change
...
fixes Bug#280
2012-05-07 12:42:32 -04:00
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()
2012-05-07 12:14:05 -04:00
Justin Ruggles
74e10b6204
avcodec: for audio encoding, reset output packet when it is not valid
2012-05-07 12:14:05 -04:00
Justin Ruggles
fa0319b4fd
avcodec: refactor avcodec_encode_audio2() to merge common branches
2012-05-07 12:14:05 -04:00
Justin Ruggles
b461cd4deb
avcodec: remove fallbacks for AVCodec.encode() in avcodec_encode_audio2()
...
We no longer have any audio encoders using AVCodec.encode().
2012-05-07 12:14:04 -04:00
Justin Ruggles
e5356ebf22
cosmetics: indentation
2012-05-03 16:28:08 -04:00
Justin Ruggles
8916f1fbcb
avformat: only fill-in interpolated timestamps if duration is non-zero
...
This avoids returning duplicate timestamps for multiple packets when the
demuxer does not provide all timestamps and packet duration is not known.
2012-05-03 16:28:08 -04:00
Justin Ruggles
ff499157a1
avformat: remove a workaround for broken timestamps
...
This modifies pts in situations other than what was intended, leading to
invalid timestamps.
Reverts commit 90bb394dcc
2012-05-03 16:28:08 -04:00
Justin Ruggles and Michael Niedermayer
6d5bf67f04
swr: add lfe_mix_level
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-05-02 01:12:10 +02:00
Justin Ruggles and Michael Niedermayer
9b42653b22
swr: update side to back mixing.
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-05-02 01:11:55 +02:00
Justin Ruggles
4010d724e1
lavr: use 8.8 instead of 10.6 as the 16-bit fixed-point mixing coeff type
2012-05-01 13:52:59 -04:00
Justin Ruggles
f1ffb01ee9
avplay: use libavresample for sample format conversion and channel mixing
...
SDL only supports s16 sample format and a limited number of channel layouts.
Some versions of SDL on some systems support 4-channel and 6-channel output,
but it's safer overall to downmix any layout with more than 2 channels to
stereo.
2012-05-01 13:38:23 -04:00
Justin Ruggles
f7ff099997
APIchanges: fill in some dates and commit hashes
2012-04-30 13:51:41 -04:00
Justin Ruggles
394dbde548
FATE: use updated reference for aac-latm_stereo_to_51
...
This uses correct stereo to 5.1 upmixing via libavresample.
2012-04-24 23:38:54 -04:00
Justin Ruggles
bcb82fe1f4
avconv: use libavresample
2012-04-24 23:38:54 -04:00
Justin Ruggles
c8af852b97
Add libavresample
...
This is a new library for audio sample format, channel layout, and sample rate
conversion.
2012-04-24 21:28:27 -04:00
Justin Ruggles
c5671aeb77
FATE: avoid channel mixing in lavf-dv_fmt
...
This partially reverts acb1730218
which would only have needed to change the checksums if channel mixing had
been properly avoided. This changes the output file size reference and the
seek test reference back to the previous values.
2012-04-24 15:55:45 -04:00
Justin Ruggles
83b26046fc
avutil: change default buffer size alignment for sample buffer functions
...
Aligning nb_samples will give both correct plane pointer alignment and enough
padding for SIMD-optimized functions.
2012-04-23 14:06:45 -04:00
Justin Ruggles
b0e9edc44f
avcodec: add a cook parser to get subpacket duration
...
Fixes jittery video playback of rm files with cook audio.
2012-04-20 12:11:20 -04:00
Justin Ruggles
acb1730218
FATE: allow lavf tests to alter input parameters
...
Change some lavf tests to avoid resampling and channel mixing.
2012-04-20 10:23:57 -04:00
Justin Ruggles
5052980400
FATE: replace the acodec-pcm_s24daud test with an enc_dec_pcm checksum test
...
This avoids resampling and channel mixing by using a source with
the correct channel layout and sample rate.
2012-04-20 10:23:57 -04:00
Justin Ruggles
03caef1bed
FATE: replace the acodec-g726 test with 4 new encode/decode tests
...
Avoids resampling and channel mixing. This only tests the behavior
with respect to input and output audio rather than also testing changes
to the encoder or muxer that do not affect the resulting decoded output.
2012-04-20 10:23:57 -04:00
Justin Ruggles
a6c8cca2a8
FATE: replace current g722 encoding tests with an encode/decode test
...
Avoids resampling and channel mixing. This only tests the behavior
with respect to input and output audio rather than also testing changes
to the encoder or muxer that do not affect the resulting decoded output.
2012-04-20 10:23:57 -04:00
Justin Ruggles
870165e217
FATE: add a pattern rule for generating asynth wav files
2012-04-20 10:23:57 -04:00
Justin Ruggles
010943c6ce
FATE: optionally write a WAVE header in audiogen
2012-04-20 10:23:57 -04:00
Justin Ruggles
0c0d1bce7c
avutil: add audio fifo buffer
...
The functions operate on the sample level rather than the byte level and work
with all audio sample formats.
2012-04-20 09:43:11 -04:00
Justin Ruggles
9cc338b1de
FATE: pass the decoded output format and audio source file to enc_dec_pcm
...
This will allow decoding to md5 and doing a diff comparison to a reference
checksum instead of a fuzzy stddev or oneoff comparison.
Signed-off-by: Mans Rullgard <mans@mansr.com >
2012-04-18 22:26:56 -04:00
Justin Ruggles
c755b1fbbc
FATE: specify the input format when decoding in enc_dec_pcm()
...
The output format is not always the same as the file extension,
which is sometimes required for correct probing. We can avoid
probing by specifying the format since it is already known.
2012-04-18 22:26:49 -04:00
Justin Ruggles
d8b06521a9
avconv: check for an incompatible changing channel layout
...
The decoder can change the layout and channel count during decoding,
but currently we only validate that the two are compatible when opening
the codec. This checks for incompatibilities after each decoded frame.
2012-04-18 21:02:16 -04:00
Justin Ruggles
8099fc763b
riff: use bps instead of bits_per_coded_sample in the WAVEFORMATEXTENSIBLE header
...
This matches the value for the plain WAVEFORMATEX header.
Also fixes stream copy to WAVE for non-16-bit raw pcm.
2012-04-17 00:09:19 -04:00
Justin Ruggles
b1041f8048
avconv: only set the "channels" option when it exists for the specified input format
...
This allows the user to specify an input channel layout without avconv aborting because the
"channels" option was not found.
2012-04-16 23:44:49 -04:00
Justin Ruggles
5e8280d177
avutil: add better documentation for AVSampleFormat
2012-04-16 15:26:55 -04:00
Justin Ruggles and Ronald S. Bultje
de7f22ab0c
ac3dsp: call femms/emms at the end of float_to_fixed24() for 3DNow and SSE
...
Fixes ac3-encode and eac3-encode FATE test failures with SSE2 disabled.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com >
2012-04-12 21:33:04 -07:00
Justin Ruggles
d3c59d5003
avconv: use default channel layouts when they are unknown
...
If either input or output layout is known and the channel counts match,
use the known layout for both. Otherwise choose the default layout based on
av_get_default_channel_layout().
Changed some FATE references due to some WAVE files now having a non-zero
channel mask.
2012-04-10 11:30:01 -04:00
Justin Ruggles
95a8dac57b
avconv: parse channel layout string
...
This allows the user to use channel layout names instead of having to use the
channel mask values.
2012-04-10 11:30:01 -04:00
Justin Ruggles
b073819bc9
avconv: allow '-async -1' to disable timestamp sync for audio encoding
...
This will allow a workaround for cases where input timestamps are invalid or
when decoder delay of 1 packet or more confuses avconv into using the wrong
timestamps as a sync reference.
2012-04-09 13:47:11 -04:00
Justin Ruggles
679a973e97
avconv: use default alignment for audio buffer
2012-04-09 10:20:35 -04:00
Justin Ruggles
c58846f3a8
avcodec: use align == 0 for default alignment in avcodec_fill_audio_frame()
...
Use default alignment in audio_get_buffer()
2012-04-09 10:20:35 -04:00
Justin Ruggles
0109a09dc3
avutil: use align == 0 for default alignment in audio sample buffer functions
2012-04-09 10:20:35 -04:00
Justin Ruggles
18ed3788b0
avutil: allow NULL linesize in av_samples_fill_arrays() and av_samples_alloc()
2012-04-09 10:20:35 -04:00
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.
2012-04-08 18:45:58 -04:00
Justin Ruggles
4d693b023c
avutil: add av_get_packed_sample_fmt() and av_get_planar_sample_fmt()
...
Based on a patch by Clément Bœsch <ubitux@gmail.com >
2012-04-08 15:13:28 -04:00
Justin Ruggles
bb0618e68b
avcodec: remove avcodec_guess_channel_layout()
...
It is not public because the header is not installed, and its functionality
has been replaced by av_get_default_channel_layout().
2012-04-05 16:40:51 -04:00
Justin Ruggles
5cc51a5847
avutil: Add av_get_default_channel_layout()
...
Also, use the new function in the AC-3 encoder.
2012-04-05 16:35:14 -04:00
Justin Ruggles
67aec401d8
libspeexdec: set frame size in libspeex_decode_init()
...
This fixes speex decoding, which was broken in 85469f1c .
2012-03-30 16:30:37 -04:00
Justin Ruggles
eed691f7d1
oggdec: calculate correct timestamps in Ogg/FLAC
...
We need to parse the individual packet durations when there is more than one
packet in a page.
2012-03-27 16:11:06 -04:00
Justin Ruggles
4094fc9971
avconv: fix the resampling safety factors for output audio buffer allocation
...
This matches the output size required for audio_resample()
2012-03-23 01:19:43 -04:00
Justin Ruggles
9869e963a6
avconv: move audio output buffer allocation to a separate function
...
Allows for removing a goto and makes the code easier to follow.
2012-03-23 01:19:43 -04:00
Justin Ruggles
f3ab3e1aee
avconv: make the async buffer global and free it in exit_program()
2012-03-23 01:19:42 -04:00
Justin Ruggles
f036342b4b
aiffdec: set block_duration to 1 for PCM codecs that are supported in AIFF-C
2012-03-22 11:45:46 -04:00
Justin Ruggles
b38b7cc392
aiffdec: factor out handling of integer PCM for AIFF-C and plain AIFF
2012-03-22 11:45:46 -04:00
Justin Ruggles
2c07c18048
aiffdec: use av_get_audio_frame_duration() to set block_duration for AIFF-C
2012-03-22 11:45:46 -04:00
Justin Ruggles
02f88eec1d
aiffdec: do not set bit rate if block duration is unknown
...
CC: libav-stable@libav.org
2012-03-22 11:45:36 -04:00
Justin Ruggles
6aba117f12
adxenc: use AVCodec.encode2()
2012-03-21 15:04:42 -04:00
Justin Ruggles
54e6cf8a94
adxenc: Use the AVFrame in ADXContext for coded_frame
2012-03-21 15:04:42 -04:00
Justin Ruggles
5d4017b8f3
vorbisenc: use AVCodec.encode2()
2012-03-21 12:49:36 -04:00
Justin Ruggles
e5aab2d7a4
libvorbis: use AVCodec.encode2()
2012-03-21 12:49:36 -04:00
Justin Ruggles
8ccf545b95
libopencore-amrnbenc: use AVCodec.encode2()
2012-03-21 12:49:36 -04:00
Justin Ruggles
330d9d1b50
ra144enc: use AVCodec.encode2()
2012-03-21 12:49:36 -04:00
Justin Ruggles
f090428234
nellymoserenc: use AVCodec.encode2()
2012-03-21 12:49:35 -04:00
Justin Ruggles
32173df3d2
roqaudioenc: use AVCodec.encode2()
...
The first frame pts must be saved until we have 8 frames since RoQ audio
requires 8 frames in the first packet.
2012-03-21 12:49:35 -04:00
Justin Ruggles
b03dcf07f6
libspeex: use AVCodec.encode2()
2012-03-21 12:49:35 -04:00
Justin Ruggles
57a52f258e
libvo_amrwbenc: use AVCodec.encode2()
2012-03-21 12:49:35 -04:00
Justin Ruggles
db440fa12d
libvo_aacenc: use AVCodec.encode2()
2012-03-21 12:49:35 -04:00
Justin Ruggles
27bacfeb57
wmaenc: use AVCodec.encode2()
2012-03-21 12:49:32 -04:00
Justin Ruggles
b0f75ba272
mpegaudioenc: use AVCodec.encode2()
...
Update FATE references due to encoder delay.
2012-03-20 18:56:22 -04:00
Justin Ruggles
3d853d7ab3
libmp3lame: use AVCodec.encode2()
2012-03-20 18:56:18 -04:00
Justin Ruggles
1987a940b7
libgsmenc: use AVCodec.encode2()
2012-03-20 18:55:39 -04:00
Justin Ruggles
d1afb2f94e
libfaac: use AVCodec.encode2()
...
Encoder output is delayed by several frames, so we keep a queue of input
frame timing info to match up with corresponding output packets.
2012-03-20 18:55:36 -04:00
Justin Ruggles
59041fd053
g726enc: use AVCodec.encode2()
2012-03-20 18:47:23 -04:00
Justin Ruggles
bb03b6f7b1
g722enc: use AVCodec.encode2()
...
FATE reference updated due timestamp rounding because of resampling from
44100 Hz to 16000 Hz in avconv.
2012-03-20 18:47:23 -04:00
Justin Ruggles
910bdb9a42
flacenc: use AVCodec.encode2()
2012-03-20 18:47:19 -04:00
Justin Ruggles
24e74f0a0f
adpcmenc: update to AVCodec.encode2()
2012-03-20 18:46:57 -04:00
Justin Ruggles
aa872af5e3
ac3enc: update to AVCodec.encode2()
...
Update FATE references due to encoder delay.
2012-03-20 18:46:56 -04:00
Justin Ruggles
ad95307f92
aacenc: use AVCodec.encode2()
2012-03-20 18:46:49 -04:00
Justin Ruggles
4bf64961a9
avcodec: add code for a frame queue for use by audio encoders with delay
...
This simplifies matching of timestamps between input frames and output
packets.
2012-03-20 16:04:21 -04:00
Justin Ruggles
c9594fe0fb
avconv: free packet in write_frame() when discarding due to frame number limit
...
Fixes a memleak when using the -frames option with audio.
2012-03-20 15:51:58 -04:00
Justin Ruggles
e056f8d37d
FATE: use +/- flag option syntax for vp8 emu-edge tests
2012-03-20 15:51:58 -04:00
Justin Ruggles
f63412fc74
oggdec: output correct timestamps for Vorbis
...
Takes encoder delay into account by comparing first the coded page
duration with the calculated page duration. Handles last packet duration
if needed, also by comparing coded duration with calculated duration.
Also does better handling of timestamp generation for packets in the
first page for streamed ogg files where the start time is not
necessarily zero.
2012-03-20 14:39:57 -04:00
Justin Ruggles
9b9fc9ba32
avconv: pass input stream timestamps to audio encoders
...
5 FATE test references updated due to using demuxer-generated timestamps that
are either not sample-accurate or are slightly off in the input file.
2012-03-20 14:12:54 -04:00
Justin Ruggles
a1977e0103
lavc: shrink encoded audio packet size after encoding.
2012-03-20 14:12:54 -04:00
Justin Ruggles
777365fe86
xa: set correct bit rate
...
Also fixes stream duration calculation.
2012-03-20 14:12:54 -04:00
Justin Ruggles
a54bc52265
xa: do not set bit_rate, block_align, or bits_per_coded_sample
...
The values in the header refer to decoded data, not compressed data.
2012-03-20 14:12:53 -04:00
Justin Ruggles
64de57f645
xa: fix end-of-file handling
...
Do not output an extra packet when out_size is reached.
Also return AVERROR_EOF instead of AVERROR(EIO).
2012-03-20 14:12:53 -04:00
Justin Ruggles
cd2ffb67ad
xa: fix timestamp calculation
...
The packet duration is always 28 samples.
2012-03-20 14:12:53 -04:00
Justin Ruggles
6ca3b248e2
resample: allocate a large enough output buffer
...
Fixes invalid writes and crashes when doing conversions such as stereo to 5.1
channels or sample rate conversion on 5.1 channels.
2012-03-17 13:37:44 -04:00
Justin Ruggles
c3da9f5060
wmaenc: remove bit-exact hack
...
It may have improved cross-platform stability, but wasn't the only place in
the encoder with bitexact issues. It is no longer needed because we have FATE
tests for float encoders using fuzzy comparison.
2012-03-17 11:46:15 -04:00
Justin Ruggles
85cf49fab7
FATE: remove WMA acodec tests
2012-03-17 11:46:15 -04:00