Commit Graph

146 Commits

Author SHA1 Message Date
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
Måns Rullgård
2a58e45724 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.

Originally committed as revision 21362 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-21 12:57:24 +00:00
Daniel Verkamp
b74d42ee33 Build extradata in adpcm_ms encoder.
This fixes issue #1244.

Originally committed as revision 20349 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-22 20:43:55 +00:00
Daniel Verkamp
bb7d0e87ae Indicate that AdaptCoeff1 and 2 are functions of the actual coefficients.
Originally committed as revision 20345 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-22 15:57:04 +00:00
Reimar Döffinger
b5f09d31c2 Make sample_fmts and channel_layouts compound literals const to reduce size of
.data section.

Originally committed as revision 19787 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-06 09:15:07 +00:00
Måns Rullgård
6816f8b8e4 ADPCM: remove unreachable break statement after return
Originally committed as revision 19312 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-01 00:55:17 +00:00
Carl Eugen Hoyos
1efe9fd5c0 Fix indentation after last commit.
Originally committed as revision 19238 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-20 13:10:17 +00:00
Yoshihisa Uchida
d8b2d83473 Fix yamaha adpcm stereo (issue 1117).
Patch by Yoshihisa Uchida, yoshihisa D uchida A gmail

Originally committed as revision 19237 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-20 13:07:21 +00:00
Vitor Sessak
6cf92f6d26 Check if there is enough bytes before reading the buffer in the EA ADPCM
decoder. Fix issue 990.

Originally committed as revision 18707 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-27 16:06:01 +00:00
Vitor Sessak
8a06cb14f9 Skip 0x0000 frame footer in EA ADPCM decoder.
Originally committed as revision 18706 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-27 16:04:43 +00:00
Stefano Sabatini
9106a698e7 Rename bitstream.h to get_bits.h.
Originally committed as revision 18494 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-13 16:20:26 +00:00
Stefano Sabatini
b275500706 Split bitstream.h, put the bitstream writer stuff in the new file
put_bits.h.

Originally committed as revision 18461 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-12 08:35:26 +00:00
Thilo Borgmann
7a00bbad21 Implement avcodec_decode_video2(), _audio3() and _subtitle2() which takes an
AVPacket argument rather than a const uint8_t *buf + int buf_size. This allows
passing of packet-specific flags from demuxer to decoder, such as the keyframe
flag, which appears necessary to playback corePNG P-frames.

Patch by Thilo Borgmann thilo.borgmann googlemail com, see also the thread
"Google Summer of Code participation" on the mailinglist.

Originally committed as revision 18351 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-07 15:59:50 +00:00
Diego Biurrun
fd75cedd15 cosmetics: Reformat long_names so that "ADPCM" comes first.
Originally committed as revision 17720 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-02 05:55:03 +00:00
Diego Biurrun
0ffbc258aa Change a bunch of codec long_names to be more consistent and descriptive.
Originally committed as revision 17716 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-02 05:18:33 +00:00
Daniel Verkamp
5ef251e504 Add missing av_cold in static init/close functions.
Patch by Daniel Verkamp daniel at drv dot nu.

Originally committed as revision 17526 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-22 13:48:55 +00:00
Stefan Gehrer
cc55c46498 check validity of pointer srcC
Originally committed as revision 16973 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-03 17:56:24 +00:00
Diego Biurrun
bad5537e2c Use full internal pathname in doxygen @file directives.
Otherwise doxygen complains about ambiguous filenames when files exist
under the same name in different subdirectories.

Originally committed as revision 16912 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-01 02:00:19 +00:00
Stefan Gehrer
8915009813 remove duplicate tables
Originally committed as revision 16866 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-30 20:39:39 +00:00
Stefan Gehrer
2ed421134e avoid indeterminate order of accessing src
Originally committed as revision 16855 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-30 06:38:46 +00:00
Stefan Gehrer
055dc116fc added demuxer for FunCom ISS audio files,
extended ADPCM decoder by ISS specific IMA variant

Originally committed as revision 16658 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-17 20:08:43 +00:00
Aurelien Jacobs
b250f9c66d Change semantic of CONFIG_*, HAVE_* and ARCH_*.
They are now always defined to either 0 or 1.

Originally committed as revision 16590 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-13 23:44:16 +00:00
Peter Ross
fd76c37fd9 Modify all codecs to report their supported input and output sample format(s).
Originally committed as revision 14482 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-31 10:47:31 +00:00
Ramiro Polla
6647ab80e3 bitstream: move put_sbits() from flacenc.c to bitstream.h and use it
throughout libavcodec.

Originally committed as revision 14204 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-13 14:27:48 +00:00
Reimar Döffinger
f9bd305694 clip MS ADPCM predictor range to correct [0..6] range, not [0..7]
Originally committed as revision 14203 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-13 14:25:31 +00:00
Reimar Döffinger
962fe7e1c4 Use bytestream and AV_RL* functions in ADPCM code where possible
Originally committed as revision 14202 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-13 14:12:51 +00:00
Reimar Döffinger
ae8afab998 Fix MS ADPCM de- and encoding: first and second sample are swapped.
Noticeable better decoding of e.g. http://samples.mplayerhq.hu/A-codecs/msadpcm-stereo/dance-b5th.asf

Originally committed as revision 14201 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-13 14:08:28 +00:00
Reimar Döffinger
8884b91898 100l, fix MS ADPCM decoding for e.g. http://samples.mplayerhq.hu/mov/qtaudio/surge-2-16-L-ms02.mov
First coefficient array must be unsigned to fit in 8 bits

Originally committed as revision 14175 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-12 09:23:37 +00:00
Reimar Döffinger
ff2271267e 10l, forgot to replace a / 256 for r14173.
Fixes MS ADPCM regression test.

Originally committed as revision 14174 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-12 07:28:45 +00:00
Reimar Döffinger
ddcf031f3b Change MS ADPCM table so they fit into int8_t and change array type.
Originally committed as revision 14173 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-11 21:38:42 +00:00
Diego Biurrun
bbdfa06d43 Add a note to remind people that new PCM/ADPCM formats need to be added to
the Makefile as well to allow proper selective compilation.

Originally committed as revision 14072 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-05 07:30:59 +00:00
Stefano Sabatini
fe4bf37455 Make AVCodec long_names definition conditional depending on CONFIG_SMALL.
Originally committed as revision 13759 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-12 21:50:13 +00:00
Michael Niedermayer
909a9ad08d Prevent 128*1<<trellis from becoming 0 and creating 0 sized arrays.
fixes CID84 RUN2
      CID85 RUN2
      CID86 RUN2
      CID87 RUN2
      CID88 RUN2
      CID89 RUN2
      CID90 RUN2
      CID91 RUN2
      CID92 RUN2
      CID93 RUN2
      CID94 RUN2
      CID95 RUN2
      CID96 RUN2
      CID97 RUN2
      CID98 RUN2
      CID99 RUN2
      CID100 RUN2
      CID101 RUN2
      CID102 RUN2
      CID103 RUN2
      CID104 RUN2
      CID105 RUN2
      CID106 RUN2

Originally committed as revision 13495 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-28 11:59:41 +00:00
Diego Biurrun
bcdab7e547 cosmetics: Fix typos in ADPCM codec long names.
Originally committed as revision 13173 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-15 23:02:43 +00:00
Diego Biurrun
d349334abc ADPCM codec long names by Stefano Sabatini, stefano.sabatini-lala poste it
Originally committed as revision 13157 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-15 11:35:19 +00:00
Baptiste Coudurier
3b4eccabae identation
Originally committed as revision 12969 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-04-25 15:15:56 +00:00