Ronald S. Bultje
5353ee3c30
adpcm: convert adpcm_ms to bytestream2.
2012-03-18 15:25:26 -07:00
Ronald S. Bultje
89f3aa8ce2
adpcm: use av_clip() in adpcm_ima_expand_nibble().
2012-03-18 15:25:25 -07:00
Ronald S. Bultje
689be85a9a
adpcm: convert adpcm_4xm to bytestream2.
2012-03-18 15:25:25 -07:00
Ronald S. Bultje
39505f4240
adpcm: convert adpcm_ima_wav to bytestream2.
2012-03-18 15:25:25 -07:00
Ronald S. Bultje
9604307dd8
adpcm: convert adpcm_ima_qt to bytestream2.
2012-03-18 15:25:25 -07:00
Ronald S. Bultje
c346f6304c
adpcm: fix nb_samples rounding for adpcm_ima_dk3, and update reference.
2012-03-18 15:25:25 -07:00
Ronald S. Bultje
86020073db
xa_adpcm: limit filter to prevent xa_adpcm_table[] array bounds overruns.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-14 13:24:40 -07:00
Alex Converse
bbeb29133b
adpcm: Clip step_index values read from the bitstream at the beginning of each frame.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-02-28 12:11:06 -08: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
Janne Grunau
bb5b3940b0
adpcm: ADPCM Electronic Arts has always two channels
2012-01-05 22:29:18 +01:00
Paul B Mahol
01a01bf8bd
adpcm: fix IMA SMJPEG decoding
...
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2011-12-22 23:04:30 +01:00
Shitiz Garg
e614fac2e6
adpcm: Check for channels to be a non-zero integer
...
channels would be 0 sometimes and would cause floating point exception
Fixes bugzilla #124
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2011-12-17 09:44:19 -05:00
Justin Ruggles
0eea212943
Add avcodec_decode_audio4().
...
Deprecate avcodec_decode_audio3().
Implement audio support in avcodec_default_get_buffer().
Implement the new audio decoder API in all audio decoders.
2011-12-02 17:40:40 -05:00
Mans Rullgard
c8477df019
adpcm: use sign_extend()
...
This avoids warnings from the overflow checker and simplifies the code.
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-10-24 15:26:24 +01:00
Justin Ruggles
a62c0f94ee
adpcmdec: calculate actual number of output samples for each decoder.
...
This also allows for removing some of the buf_size checks and using the
sample count for some of the decoding loops.
2011-10-14 15:53:41 -04:00
Justin Ruggles
439998e18b
adpcmdec: check remaining buffer size before decoding next block in the
...
ADPCM IMA WAV decoder.
2011-10-14 15:53:41 -04:00
Justin Ruggles
ff5790c761
adpcmdec: do not terminate early in ADPCM IMA Duck DK3 decoder.
...
There are still 2 nibbles to decode once the last byte in the packet has been
read. Updated FATE reference.
2011-10-14 15:53:41 -04:00
Justin Ruggles
8140a1288f
adpcmdec: remove unneeded buf_size==0 check.
...
This is already done by avcodec_decode_audio3()
2011-10-14 15:53:41 -04:00
Justin Ruggles
f7f7c1942b
adpcmdec: remove unneeded zeroing of *data_size
2011-10-14 15:53:40 -04:00
Laurent Aimar
c7f89064e2
adpcm: fix out of bound reads due to integer overflow
...
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2011-10-10 21:36:12 +02:00
Justin Ruggles
e562fbd003
adpcm: move codec-specific variable declarations to the sections for the corresponding codecs.
2011-09-29 16:54:01 -04:00
Justin Ruggles
9662539c10
adpcm: check buffer size in Funcom ISS decoder before reading header.
...
Also use the post-header data size to control termination of the main
decoding loop.
2011-09-29 16:54:01 -04:00
Justin Ruggles
ba5d2890d7
adpcm: simplify reading of Funcom ISS frame header.
2011-09-29 16:54:01 -04:00
Justin Ruggles
5c9eb4fabb
adpcm: check buffer size in IMA DK4 decoder before reading header.
...
Also use the post-header data size to control termination of the main
decoding loop.
2011-09-29 16:54:01 -04:00
Justin Ruggles
a57ea1a87e
adpcm: simplify reading of IMA DK4 frame header.
2011-09-29 16:54:01 -04:00
Justin Ruggles
8114f94ac9
adpcm_ms: clean up reading of predictor coefficients
2011-09-29 16:54:01 -04:00
Justin Ruggles
943f4db552
adpcm_4xm: process planar packets sequentially rather than simultaneously.
...
Also properly clip the right channel step_index.
2011-09-29 16:54:00 -04:00
Justin Ruggles
119974b164
adpcm_ima_wav: process channel-interleaved blocks sequentially rather than simultaneously.
...
Speeds up the ADPCM IMA WAV decoder by 15-20% overall.
2011-09-29 16:54:00 -04:00
Justin Ruggles
7c287b18a0
adpcm: update reference links
...
Add Multimedia Wiki link.
Mark dead links with [dead]. Some can still be accessed through archive.org.
Update URLs for pages which have moved.
Replace duplicated links in adpcmenc.c with a note to see the ADPCM decoder
reference documents.
2011-09-29 16:54:00 -04:00
Justin Ruggles
ac94b8bcc6
adpcm: simplify packet size bounds checking in the ADPCM IMA QT decoder.
...
This is easier to understand. It also avoids returning existing samples mixed
with new samples when the packet is too small.
2011-09-29 16:54:00 -04:00
Justin Ruggles
de0b586a87
adpcm: simplify and speed up several ADPCM decoders.
2011-09-29 16:54:00 -04:00
Justin Ruggles
5a9ed7c110
adpcm: pretty-print tables
2011-09-29 16:54:00 -04:00
Diego Biurrun
8671488799
Use explicit struct initializers for AVCodec declarations.
2011-09-24 12:11:19 +02:00
Baptiste Coudurier
bf334535b4
adpcmdec: Fix QT IMA ADPCM decoder
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-23 20:54:28 -04:00
Peter Ross
3a549eb82b
permit decoding of multichannel ADPCM_EA_XAS
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-23 20:54:28 -04:00
Reimar Döffinger
ffe92ff9f0
Fix input buffer size check in adpcm_ea decoder.
...
Unfortunately the output buffer size check assumes that the
input buffer is never over-consumed, thus this actually
also allowed to write outside the output buffer if "lucky".
Based on:
git.videolan.org/ffmpeg.git
commit 701d0eb185192542c4a17f296e39e37cedf7abc6
2011-09-23 20:54:28 -04:00
Justin Ruggles
826c56d16e
adpcm: split ADPCM encoders and decoders into separate files.
...
Move shared tables to a separate file as well.
2011-09-12 11:26:11 -04:00
Mans Rullgard
2912e87a6c
Replace FFmpeg with Libav in licence headers
...
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-19 13:33:20 +00:00
Mans Rullgard
44adbebe17
Remove final semicolon from some macros
...
This avoids double semicolons after macro expansion.
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-10 21:45:17 +00:00
Diego Elio Pettenò
d36beb3f69
Add ff_ prefix to data symbols of encoders, decoders, hwaccel, parsers, bsf.
...
None of these symbols should be accessed directly, so declare them as
hidden.
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-01-26 16:08:45 +00:00
Martin Storsjö
cfff297d98
adpcm: Skip samples whose ssd calculation has wrapped around
...
Wraparound in ssd is mainly avoided by subtracting the ssd of the
best node from all the others once it has grown large enough.
If using very large trellis sizes (e.g. -trellis 15), the frontier
is so large that the difference between the best and the worst is
large enough to cause wraparound, even if the ssd of the best one
is subtracted regularly.
When using -trellis 10 on a 30 second sample, this causes only a slight
slowdown, from 61 to 64 seconds.
Originally committed as revision 25858 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-01 08:57:45 +00:00
Martin Storsjö
1a68e7ed15
adpcm: Fix a comment in the trellis heap code
...
This makes the wording consistent with how people usually talk about heaps.
Originally committed as revision 25775 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-20 11:24:19 +00:00
Martin Storsjö
78f9d35c9a
adpcm: Only increment heap_pos after finding a good enough sample
...
This increases the PSNR slightly (about 0.1 dB) for trellis sizes
below 8, and gives equal PSNR for sizes above that.
Originally committed as revision 25769 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-19 17:36:29 +00:00
Martin Storsjö
d764e3ece9
adpcm: Use a hash table to improve checking for duplicate samples
...
This lowers the run time from 158 to 21 seconds, for -trellis 8
with a 30 second sample on my machine.
This requires 64 KB additional memory.
Originally committed as revision 25768 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-19 17:35:52 +00:00
Martin Storsjö
86abf868ec
adpcm: Fix a comment
...
Originally committed as revision 25751 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-14 10:23:58 +00:00
Martin Storsjö
38b3bda18f
adpcm: Replace any of the leaf nodes in the heap
...
By not looking for the exactly largest node, we avoid an O(n) seek through
the leaf nodes. Just pick one (not the same one every time) and try replacing
that node with the new one.
For -trellis 8, this lowers the run time from 190 to 158 seconds,
for a 30 second 44 kHz mono sample, on my machine.
Originally committed as revision 25733 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-12 12:30:27 +00:00
Martin Storsjö
4106b7f1cd
Reindent
...
Originally committed as revision 25732 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-12 12:28:02 +00:00
Martin Storsjö
f82e8f3482
adpcm: Store the trellis nodes in a heap instead of a sorted array
...
This avoids having to memmove the large parts of the array when inserting into
it.
For -trellis 8, this lowers the run time from 245 seconds to 190 seconds,
for a 30 second 44 kHz mono sample, on my machine.
Originally committed as revision 25731 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-12 12:27:27 +00:00
Stefano Sabatini
5d6e4c160a
Replace deprecated symbols SAMPLE_FMT_* with AV_SAMPLE_FMT_*, and enum
...
SampleFormat with AVSampleFormat.
Originally committed as revision 25730 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-12 11:04:40 +00:00