Luca Barbato
68b1008719
adpcm: Unbreak ima-dk4
...
Was broken by commit b9dea1a085c4705e480bd17dfa8c8ce227fdce76
2013-09-21 15:33:11 +02:00
Luca Barbato
b9dea1a085
adpcm: Write the correct number of samples for ima-dk4
...
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
(cherry picked from commit 12576afe206d35231ccd61f9033c5fdab6a11e80)
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Conflicts:
libavcodec/adpcm.c
2013-09-13 15:50:41 +02:00
Ronald S. Bultje
6e5c07f4c8
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
(cherry picked from commit 86020073dbb9a3a9d1fbb76345b2ca29ba1f13d2)
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
2012-03-14 21:34:36 +01:00
Alex Converse
e891ee4bf6
adpcm: Clip step_index values read from the bitstream at the beginning of each frame.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
(cherry picked from commit bbeb29133b55b7256d18f5aaab8b5c8e919a173a)
2012-03-06 15:28:01 -08: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
Martin Storsjö
e0ae6c17fe
Flush the PutBitsContext at the end of each block when encoding ADPCM IMA QT
...
Originally committed as revision 24938 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-26 07:39:34 +00:00
Carl Eugen Hoyos
b9542223a3
Only 4-bit ADPCM IMA WAV files are supported.
...
Originally committed as revision 24493 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-25 14:33:16 +00:00
Måns Rullgård
07ece20c69
adpcm: convert VLAs to malloc/free
...
Originally committed as revision 23819 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-27 09:44:10 +00:00
Diego Biurrun
ba87f0801d
Remove explicit filename from Doxygen @file commands.
...
Passing an explicit filename to this command is only necessary if the
documentation in the @file block refers to a file different from the
one the block resides in.
Originally committed as revision 22921 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-20 14:45:34 +00:00
Stefano Sabatini
72415b2adb
Define AVMediaType enum, and use it instead of enum CodecType, which
...
is deprecated and will be dropped at the next major bump.
Originally committed as revision 22735 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-30 23:30:55 +00:00
Michael Niedermayer
9f72b23c5c
Revert Revision: 21362
...
Log:
Set CODEC_CAP_SUBFRAMES for adpcm decoders
This makes ffmpeg stop printing millions of
Multiple frames in a packet from stream 0
when decoding adpcm.
Reason: adpcm has no subframes, the flag does not belong there
Originally committed as revision 21481 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-27 13:30:05 +00:00