Commit Graph
100 Commits
Author SHA1 Message Date
Justin Ruggles b90632d596 lavr: always reset mix function names and pointers in mix_function_init()
CC: libav-stable@libav.org
2013-01-17 19:27:01 -05:00
Justin Ruggles f07ef2d9c9 lavr: call mix_function_init() in ff_audio_mix_set_matrix()
This is needed if a custom matrix is set by the user after opening the
AVAudioResampleContext because the matrix channel count can change if
different mixing coefficients are used.

CC:libav-stable@libav.org
2013-01-17 19:27:01 -05:00
Justin Ruggles b805c725a3 idcin: fix memleaks in idcin_read_packet()
Fixes fate-id-cin-video failures when running FATE with valgrind.
2013-01-16 12:21:35 -05:00
Justin RugglesandLuca Barbato e034cc6c60 lavc: Move vector_fmul_window to AVFloatDSPContext
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-16 10:45:45 +01:00
Justin Ruggles 23098bbd50 vf_fps: add final flushed frames to the dropped frame count 2013-01-15 11:26:46 -05:00
Justin Ruggles 06deaf8ad3 idcin: return 0 from idcin_read_packet() on success.
This matches the AVInputFormat.read_packet() API.
2013-01-09 14:49:07 -05:00
Justin Ruggles 5d0450461f idcin: better error handling
Add some additional checks for EOF and print error messages on an incomplete
header or packet.

FATE reference updated for id-cin-video due to the demuxer no longer
returning a partial video packet at EOF.
2013-01-09 14:49:07 -05:00
Justin Ruggles 33f58c3616 idcin: check for integer overflow when calling av_get_packet()
chunk_size is unsigned 32-bit, but av_get_packet() takes a signed int as the
packet size.
2013-01-09 14:49:06 -05:00
Justin Ruggles 7040e479a1 idcin: allow seeking back to the first packet
Also, do not allow seek-by-byte, as there is no way to find the next packet
boundary.
2013-01-09 14:49:06 -05:00
Justin Ruggles 49543373f3 idcin: set AV_PKT_FLAG_KEY for video packets with a palette 2013-01-09 14:49:06 -05:00
Justin Ruggles ccc0ffb1ba idcin: set start_time and packet duration instead of manually tracking pts.
Also, use 1 / sample_rate for audio stream time_base.
2013-01-09 14:49:06 -05:00
Justin Ruggles 4b840930da idcin: set channel_layout 2013-01-09 14:49:06 -05:00
Justin Ruggles 12c2530b1d idcin: fix check for presence of an audio stream 2013-01-09 14:49:06 -05:00
Justin Ruggles b0c96e0613 idcin: validate header parameters
Avoids using unsupported parameters and signed integer overflows.
2013-01-09 14:49:06 -05:00
Justin Ruggles f7bf72a4a1 idcinvideo: correctly set AVFrame defaults 2013-01-09 14:49:06 -05:00
Justin Ruggles f7a3c540c5 au: remove unnecessary casts 2013-01-09 11:52:57 -05:00
Justin Ruggles 2f8207b1c6 au: return AVERROR codes instead of -1 2013-01-09 11:52:57 -05:00
Justin Ruggles fd9147f114 au: cosmetics: pretty-print and remove pointless comments 2013-01-09 11:52:57 -05:00
Justin Ruggles c88d245c98 au: use ff_raw_write_packet() 2013-01-09 11:52:57 -05:00
Justin Ruggles bdd00e2d1b au: set stream start time and packet durations 2013-01-09 11:52:57 -05:00
Justin Ruggles af68a2baae au: use %u when printing id and channels since they are unsigned 2013-01-09 11:52:57 -05:00
Justin Ruggles 47d029a4c1 au: validate sample rate 2013-01-09 11:52:57 -05:00
Justin Ruggles c837b38dd3 au: move skipping of unused data to before parameter validation
Also do not unnecessarily skip 0 bytes.
2013-01-09 11:52:57 -05:00
Justin Ruggles fb48f825e3 au: do not arbitrarily limit channel count
Nothing in the AU specification sets a limit on channel count.
We only need to avoid an overflow in the packet size calculation.
2013-01-09 11:52:57 -05:00
Justin Ruggles 2613de8805 au: do not set pkt->size directly
It is already set by av_get_packet() even for partial reads.
2013-01-09 11:52:57 -05:00
Justin Ruggles bd4cdef5a8 au: set block_align and use it in au_read_packet() 2013-01-09 11:52:56 -05:00
Justin Ruggles 9a7b56883d au: set bit rate 2013-01-09 11:52:56 -05:00
Justin Ruggles 3f98848d6e au: validate bits-per-sample separately from codec tag 2013-01-09 11:52:56 -05:00
Justin Ruggles 59220d559b oggenc: add a page_duration option and deprecate the pagesize option
This uses page duration instead of byte size to determine when to buffer
the page. Also, it tries to avoid continued pages by buffering the current
page if there are already packets in the page and adding the next packet
would require it to be continued on a new page. This can improve seeking
performance.

The default page duration is 1 second, which is much saner than filling
all page segments by default.
2013-01-08 15:42:36 -05:00
Justin Ruggles a6a3164b13 x86: lavr: add SSE2/AVX dither_int_to_float() 2013-01-08 14:52:43 -05:00
Justin Ruggles 1fb8f6a44f x86: lavr: add SSE2 quantize() for dithering 2013-01-08 14:52:43 -05:00
Justin Ruggles 142c39097c doc/APIchanges: fill in missing dates and hashes. 2013-01-08 14:51:30 -05:00
Justin Ruggles 7ff3fd7ae4 lavr: log channel conversion description for any-to-any functions 2013-01-07 21:49:07 -05:00
Justin Ruggles 4164b0e8d3 lavr: mix: reduce the mixing matrix when possible
If the matrix results in an output channel not getting a contribution
from any input channel and the corresponding input channel does not
contribute to any outputs, we can skip the channel during mixing and
silence it after mixing.

If the matrix results in an input channel not contributing to any output
channels and it is not in the output mix, or if the input channel only
contributes fully to the same output channel, we can skip the channel
during mixing.

If the matrix results in an output channel only getting full
contribution from the corresponding input channel and that input channel
does not contribute to any other output channels, we can skip the
channel during mixing.
2013-01-07 21:49:06 -05:00
Justin Ruggles 1ccf82cfd8 lavr: cosmetics: reindent 2013-01-07 21:49:06 -05:00
Justin Ruggles 074a00d192 lavr: add a public function for setting a custom channel map
This allows reordering, duplication, and silencing of input channels.
2013-01-07 21:49:06 -05:00
Justin Ruggles 4d68269d58 lavr: typedef internal structs in internal.h
Simplifies header dependencies by not including all other internal headers
in internal.h.
2013-01-07 21:49:05 -05:00
Justin Ruggles 95d01c3f1c x86: lavr: use the x86inc.asm automatic stack alignment in mixing functions
CC:libav-stable@libav.org
2013-01-05 16:14:35 -05:00
Justin Ruggles d02202e08a opt: avoid segfault in av_opt_next() if the class does not have an option list
CC: libav-stable@libav.org
2012-12-22 15:43:27 -05:00
Justin Ruggles 5778299c7e ttadec: fix last frame handling when seeking
Using a frame count, as is done currently, does not work at all with
seeking. Instead, when the number of samples in the final frame has
been decoded, we check if only the 32-bit CRC is remaining. If so, we
assume that it is the final frame.

There is no longer a need to keep total_frames in TTAContext.
2012-12-22 14:45:35 -05:00
Justin Ruggles 68a04b0cce alacdec: do not be too strict about the extradata size
Sometimes the extradata has duplicate atoms, but that shouldn't prevent
decoding. Just ensure that it is at least 36 bytes as a sanity check.

CC: libav-stable@libav.org
2012-12-22 12:18:41 -05:00
Justin Ruggles aef5150719 flac: only set channel layout if not previously set or on channel count change
Fixes Bug 402
2012-12-22 01:35:28 -05:00
Justin Ruggles b2fe6756e3 lavr: add option for dithering during sample format conversion to s16 2012-12-19 18:52:54 -05:00
Justin Ruggles f1c2915ce1 lavr: remove automatic context close/open for resampling compensation
It adds unnecessary complication for insignificant usability improvement.
The user really should know if they'll need resampling compensation before
opening the context.

Note that only the documentation has changed. The current functionality will
still work until the next major bump.
2012-12-16 19:26:17 -05:00
Justin Ruggles f322b20735 lavr: only save/restore the mixing matrix if mixing is being done 2012-12-16 19:26:17 -05:00
Justin Ruggles 230acdde26 lavr: move AudioMix struct definition to audio_mix.c 2012-12-15 12:26:15 -05:00
Justin Ruggles 4e5a8878d5 asyncts: ignore min_delta only if first_pts is set 2012-12-13 18:51:56 -05:00
Justin Ruggles c0dc57f126 asyncts: merge two conditions 2012-12-13 18:51:56 -05:00
Justin Ruggles 0ee440fe38 asyncts: cosmetics: reindent 2012-12-13 13:02:21 -05:00
Justin Ruggles b35e5d985d doc: improve documentation for the asyncts filter first_pts option
Note the time base for the option. Add an additional example description.
2012-12-13 13:02:21 -05:00
Justin Ruggles c143de40c3 asyncts: fix the asyncts behavior when using the first_pts option
Currently it will do padding, but it does not properly handle
start-of-stream trimming as documented.
2012-12-13 13:02:21 -05:00
Justin Ruggles 8083332c2d asyncts: use clipped delta value when setting resample compensation
The max_comp option is supposed to limit maximum compensation, but
currently the clipped value is not actually used.
2012-12-13 13:02:21 -05:00
Justin Ruggles f266486b2e asyncts: fix flushing of final samples at EOF 2012-12-13 13:02:21 -05:00
Justin RugglesandLuca Barbato 42b5688d5e lavr: fix segfault due to overlooked change needed in 14758e3
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-12-12 09:09:00 +01:00
Justin Ruggles 14758e3211 lavr: temporarily store custom matrix in AVAudioResampleContext
This allows AudioMix to be treated the same way as other conversion contexts
and removes the requirement to allocate it at the same time as the
AVAudioResampleContext.

The current matrix get/set functions are split between the public interface
and AudioMix private functions.
2012-12-11 14:00:32 -05:00
Justin Ruggles 887d4c05c9 lavr: clarify documentation for avresample_get/set_matrix() 2012-12-11 14:00:32 -05:00
Justin Ruggles d04c17c913 swfdec: cosmetics: fix indentation 2012-12-11 09:37:17 -05:00
Justin Ruggles e70c5b034c swfdec: do better validation of tag length
Avoids trying to read a packet with 0 or negative size.
Avoids a potential infinite loop due to seeking backwards.

Partially based on a patch by Michael Niedermayer.
2012-12-11 09:36:26 -05:00
Justin Ruggles 1c012e6bfb x86: float_dsp: fix loading of the len parameter on x86-32 2012-12-07 21:19:29 -05:00
Justin Ruggles b64ba37c4c Changelog: add an entry for deprecating the avconv -vol option 2012-12-06 11:33:38 -05:00
Justin RugglesandJanne Grunau ecc8b02194 x86: float_dsp: fix compilation of ff_vector_dmul_scalar_avx() on x86-32
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-12-06 14:11:15 +01:00
Justin Ruggles 5e1bbb8c7e alacenc: add support for multi-channel encoding 2012-12-05 16:13:37 -05:00
Justin Ruggles 9a71d362a6 avconv: deprecate the -vol option
Remove the code for volume scaling in avconv.c and instead auto-insert a
volume filter into the beginning of the filter chain.
2012-12-05 11:23:37 -05:00
Justin Ruggles b30a363331 x86: af_volume: add SSE2/SSSE3/AVX-optimized s32 volume scaling 2012-12-05 11:23:37 -05:00
Justin Ruggles f96f1e06a4 x86: af_volume: add SSE2-optimized s16 volume scaling 2012-12-05 11:23:37 -05:00
Justin Ruggles b384e031da lavfi: add volume filter
Based on the volume filter in FFmpeg written by Stefano Sabatini
<stefasab@gmail.com>.
2012-12-05 11:23:37 -05:00
Justin Ruggles 9d5c62ba5b lavu/opt: do not filter out the initial sign character except for flags
This allows parsing of special-case negative numbers like decibels.
2012-12-05 11:23:36 -05:00
Justin Ruggles 5312268b34 eval: treat dB as decibels instead of decibytes 2012-12-05 11:23:36 -05:00
Justin Ruggles ac7eb4cb20 float_dsp: add vector_dmul_scalar() to multiply a vector of doubles
Include x86-optimized versions for SSE2 and AVX.
2012-12-05 11:23:36 -05:00
Justin Ruggles 95682d8cd2 avconv: fix variable shadowing in configure_input_audio_filter() 2012-11-28 18:13:21 -05:00
Justin Ruggles ab87d9b667 nuv: check for malloc failure when allocating extradata
Also make sure extradata is freed in the case where multiple
NUV_EXTRADATA frame types are found. This may not happen in practice,
but it could happen in a malformed stream, which would lead to a memleak
if not handled.
2012-11-28 11:18:50 -05:00
Justin Ruggles 838ed296df nuv: use the stream indices generated by avformat_new_stream() 2012-11-28 11:18:50 -05:00
Justin Ruggles c74f81786d nuv: cosmetics: pretty-printing 2012-11-28 11:18:50 -05:00
Justin Ruggles 5c7bf2ddde lavf: move nuv fourcc audio tags from riff to nuv 2012-11-28 11:18:50 -05:00
Justin Ruggles 261e9348ef lavf: add a common function for selecting a pcm codec from parameters 2012-11-28 11:18:50 -05:00
Justin Ruggles bfe5454cd2 lavf: move ff_codec_get_tag() and ff_codec_get_id() definitions to internal.h 2012-11-28 11:18:49 -05:00
Justin Ruggles cdaa1f84fb lavf: move "MP3 " fourcc from riff to nut
Original commit, 7b24f9b, says it was added because it is used in libnut.
2012-11-28 11:18:49 -05:00
Justin Ruggles 1d86aa8b0f lavr: do not pass consumed samples as a parameter to ff_audio_resample()
Since the resampler handles buffering of unconsumed samples internally, the
caller does not need this information.
2012-11-27 16:49:19 -05:00
Justin Ruggles d2f9f8e094 lavr: correct the documentation for the ff_audio_resample() return value 2012-11-27 16:49:18 -05:00
Justin Ruggles 7f534d11ed lavr: do not pass sample count as a parameter to ff_audio_convert()
It will always be the number of samples in the input buffer, so just use that
directly instead of passing it as a separate parameter.
2012-11-27 16:49:18 -05:00
Justin Ruggles 259d8c5647 riff: do not add empty metadata tags in INFO chunk 2012-11-26 19:08:51 -05:00
Justin Ruggles 3c370f5abc riff: only warn on a bad INFO chunk code size instead of failing
fixes Bug 392
2012-11-26 19:08:51 -05:00
Justin Ruggles 947f933687 x86: float_dsp: add SSE version of vector_fmul_scalar() 2012-11-26 11:30:19 -05:00
Justin Ruggles 284ea790d8 dsputil: move vector_fmul_scalar() to AVFloatDSPContext in libavutil 2012-11-26 11:29:06 -05:00
Justin Ruggles 3d3cf6745e aacdec: use float planar sample format for output 2012-11-25 19:06:36 -05:00
Justin Ruggles 8e134e5104 lavc: clarify get_buffer() documentation
This is needed for the AAC decoder, which may need to call get_buffer()
more than once if the channel configuration changes.
2012-11-25 19:06:36 -05:00
Justin Ruggles 3ffed68c2a mpegaudiodec: use planar sample format for output unless packed is requested 2012-11-25 19:05:58 -05:00
Justin Ruggles 2d3993ce8c x86: h264 qpel: use the correct number of utilized xmm regs in cglobal
Fixes xmm register clobbering on win64.
2012-11-25 18:48:43 -05:00
Justin Ruggles 00dd9a6d6a pcm: fix decoding of pcm_s16le_planar on big-endian
The sample count is decremented by the DECODE() macro and needs to be reset
in each loop iteration. Also, DECODE() increments the src pointer so that does
not need to be done separately.
2012-11-20 10:52:49 -05:00
Justin Ruggles b353321caa FATE: add 24-bit ALAC tests 2012-11-20 00:26:46 -05:00
Justin Ruggles 3e6c2a67a1 FATE: rename ALAC tests from alac-* to alac-16-*
This will distinguish ALAC 16-bit tests from ALAC tests with other bit
depths.
2012-11-20 00:26:45 -05:00
Justin Ruggles 7c278d2ae4 alacenc: support 24-bit encoding 2012-11-20 00:26:45 -05:00
Justin Ruggles c9d0f4506f pcmdec: use planar sample format for pcm_s16le_planar 2012-11-19 23:48:37 -05:00
Justin Ruggles 79b7747556 vorbisdec: use float planar sample format 2012-11-19 23:48:37 -05:00
Justin Ruggles 02738792c5 lavr: fix the decision for writing directly to the output buffer
If there are any samples remaining in the output fifo from previous conversion
calls, we have to output those samples first instead of doing direct output
of the current samples.
2012-11-17 20:09:40 -05:00
Justin Ruggles b9629acb6b yop: set channel layout 2012-11-12 10:33:23 -05:00
Justin Ruggles 935fbb66ef wtv: set channel layout for mpeg audio 2012-11-12 10:33:23 -05:00
Justin Ruggles 7b48d93e8a westwood_aud: set channel layout 2012-11-12 10:33:22 -05:00
Justin Ruggles 2ce7f820d4 wc3movie: set channel layout 2012-11-12 10:33:22 -05:00
Justin Ruggles a94b0267f2 tmv: set channel layout 2012-11-12 10:33:22 -05:00