Commit Graph

185 Commits

Author SHA1 Message Date
Justin Ruggles d8870f120e use scale factor instead of sum for downmix level adjustment. avoids division
inside downmix loop. 7% faster 5.1-to-stereo downmixing.

Originally committed as revision 12287 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-03-01 16:10:19 +00:00
Justin Ruggles 9d10e6e6c0 pre-calculate downmix coefficient sums. 2% faster 5.1-to-stereo downmixing.
Originally committed as revision 12286 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-03-01 15:48:18 +00:00
Justin Ruggles a4de6dd2c1 Use 24-bit fixed-point transform coefficients until just before MDCT. This
gives 7% faster decoding on average.

Originally committed as revision 12284 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-03-01 04:39:39 +00:00
Robert Swain 3ed546fe52 Add variable alpha and size of half window for Kaiser-Bessel Derived window
generation. Hard code Bessel I0 approximation iterations to 50.

See thread for discussion:
[FFmpeg-devel] [PATCH] Move Kaiser-Bessel Derived window to mdct.c
Started on the 2008/01/10

Originally committed as revision 11520 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-13 11:02:08 +00:00
Robert Swain 4eb7a735cb Make the Kaiser-Bessel window generator a common function
Patch by Robert Swain, robert d swain a gmail d com

Originally committed as revision 11514 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-12 11:11:19 +00:00
Justin Ruggles f34b221bd2 used defined name for testing error resilience level
Originally committed as revision 11478 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-08 23:44:48 +00:00
Justin Ruggles f0b3a7ba12 split out init of downmix coeffs into a separate function that can be called
only when needed

Originally committed as revision 11441 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-07 00:18:02 +00:00
Justin Ruggles 82a6c4811a remove unneeded variable from AC3DecodeContext
Originally committed as revision 11439 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-06 23:56:19 +00:00
Justin Ruggles 4bc829bb8f make sure that the last coupling band stops at the end of the coupling range
Originally committed as revision 11438 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-06 23:33:30 +00:00
Justin Ruggles b02fbf7536 fix phase flag processing for the case when coupling coordinates are reused
for the right channel, but new for the left channel

Originally committed as revision 11436 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-06 20:15:24 +00:00
Justin Ruggles 646800f79c move E-AC3 header parsing to ff_ac3_parse_header()
Originally committed as revision 11420 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-05 18:39:55 +00:00
Justin Ruggles 86ad4c7e1b remove unneeded variables from AC3HeaderInfo
Originally committed as revision 11419 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-05 17:04:57 +00:00
Justin Ruggles 2816d32310 cosmetics: indentation
Originally committed as revision 11416 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-05 15:23:39 +00:00
Justin Ruggles 95283c1701 check for request_channels at codec init
Originally committed as revision 11415 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-05 15:22:53 +00:00
Aurelien Jacobs 3abe5fbdc4 improve CRC API
- don't export any global var
 - provide either generated or hardcoded tables

Originally committed as revision 11409 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-04 23:09:58 +00:00
Justin Ruggles 7564658bbc cosmetics: indentation and add a TODO comment
Originally committed as revision 11389 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-04 00:39:03 +00:00
Justin Ruggles 471db688c6 only check ac3 crc if AVCodecContext.error_resilience > 0
Originally committed as revision 11388 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-03 23:05:53 +00:00
Justin Ruggles d6939960d5 add crc check to ac3 decoder
Originally committed as revision 11379 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-03 02:26:29 +00:00
Justin Ruggles 12eaa3b760 simplify
Originally committed as revision 11360 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-30 22:58:20 +00:00
Justin Ruggles b35c67e58b pass an AC3DecodeContext to ac3_downmix() instead of multiple arguments
Originally committed as revision 11359 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-30 22:28:17 +00:00
Justin Ruggles 866181e5e8 cosmetics: rename sampling_rate to sample_rate
Originally committed as revision 11358 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-30 21:26:30 +00:00
Justin Ruggles 0345fade94 do not need to cast a (void *)
Originally committed as revision 11357 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-30 21:24:49 +00:00
Justin Ruggles 1b70d88b7a cosmetics: vertical realignment after last commit
Originally committed as revision 11356 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-30 21:09:08 +00:00
Justin Ruggles d802d7ca12 cosmetics: rename all AC3DecodeContext variables from ctx to s
Originally committed as revision 11355 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-30 20:58:50 +00:00
Justin Ruggles 23c8cb89c9 cosmetics: rename GetBitContext gb to gbc
Originally committed as revision 11354 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-30 20:47:22 +00:00
Justin Ruggles 005ab694ae remove unused context variable
Originally committed as revision 11353 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-30 03:10:18 +00:00
Justin Ruggles 1408352ada Add option for user to scale the amount of dynamic range compression which is
applied by the audio decoder, and use that option in the AC3 decoder.

Originally committed as revision 11280 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-20 00:55:08 +00:00
Justin Ruggles 03726b7042 Skip dialog normalization. It shouldn't be used by the decoder, and there is
not currently a clean way to pass the value to the user.

Originally committed as revision 11246 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-17 01:09:00 +00:00
Justin Ruggles 224bc440b2 Revert commit made in revision 11228. I'm getting some strange results in the
downmixed output that I can't quite figure out.

Originally committed as revision 11245 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-17 01:03:19 +00:00
Justin Ruggles b40211ff67 downmix before the IMDCT if no block switching is used
Originally committed as revision 11228 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-16 04:25:50 +00:00
Andreas Öman 6708eefe55 Make AC3 decoder honor avctx->request_channels
Originally committed as revision 11220 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-15 07:00:19 +00:00
Justin Ruggles e2270b4e1e cosmetics: rename ac3 decoder variables
Originally committed as revision 11197 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-09 03:28:10 +00:00
Justin Ruggles e59cc20593 cosmetics: rename common ac3 variables
Originally committed as revision 11196 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-09 03:27:14 +00:00
Justin Ruggles 5ce2134258 cosmetics: rename ac3 bit allocation variables
Originally committed as revision 11194 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-09 03:23:04 +00:00
Justin Ruggles 66ecf18e38 cosmetics: rename ac3 tables
Originally committed as revision 11193 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-09 03:21:33 +00:00
Diego Biurrun 56cc85a068 Misc spelling fixes, prefer American over British English.
Originally committed as revision 11126 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-02 15:43:08 +00:00
Justin Ruggles a135bea507 skip incomplete frames
Originally committed as revision 10497 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-09-15 02:44:28 +00:00
Justin Ruggles 3df880934e better AC3 header error reporting
Originally committed as revision 10496 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-09-15 02:41:24 +00:00
Justin Ruggles d5b7144e1f fix random dithering of zero-bit mantissas
Originally committed as revision 10495 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-09-15 00:43:40 +00:00
Justin Ruggles bfcf690c68 cosmetics: rename variables. tbl->tab for consistency with other AC3 tables
Originally committed as revision 10494 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-09-15 00:19:21 +00:00
Justin Ruggles 396a6ee50e fix decoding of DolbyNet AC3
Originally committed as revision 10493 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-09-15 00:00:57 +00:00
Justin Ruggles 222ae64c3d cosmetics: vertical alignment
Originally committed as revision 10002 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-09 00:39:35 +00:00
Justin Ruggles 5066f51502 comments modification: add, clean up, Doxygenize, and reword
Originally committed as revision 10001 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-09 00:36:49 +00:00
Justin Ruggles f5cefb21d5 cosmetics: blank lines, remove some comments
Originally committed as revision 9955 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-05 21:48:46 +00:00
Justin Ruggles 82758fd690 add pointer to the parent context for use with av_log()
Originally committed as revision 9954 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-05 21:34:33 +00:00
Justin Ruggles 77416325cb use array for dynamic range scaling factors
Originally committed as revision 9953 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-05 21:10:09 +00:00
Justin Ruggles 01f354531d add dialogue normalization
Originally committed as revision 9948 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-05 19:36:35 +00:00
Justin Ruggles 3bbb0bf82c add support for downmixing to stereo or mono
Originally committed as revision 9916 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-04 22:32:17 +00:00
Justin Ruggles 4e09232070 use dsputil for float to signed 16-bit sample conversion
Originally committed as revision 9914 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-04 20:59:22 +00:00
Justin Ruggles 775369e028 cosmetics: indentation
Originally committed as revision 9911 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-04 20:32:57 +00:00
Justin Ruggles 7b4076a777 consolidate decoding of lfe and coupling channels with decoding of full-bandwidth channels.
Originally committed as revision 9910 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-04 19:19:48 +00:00
Justin Ruggles 5e61de0cc1 there are only 4 rematrixing bands
Originally committed as revision 9908 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-04 15:01:21 +00:00
Justin Ruggles 75b9b0369b cosmetics: use more appropriate names for iterator variables.
Originally committed as revision 9907 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-04 13:52:56 +00:00
Justin Ruggles 8e2eb3b674 move some variables to a more local scope.
Originally committed as revision 9905 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-04 13:30:37 +00:00
Justin Ruggles 0bff58a59a make exponent decoding consistent (prepare for merging coupling and lfe code with normal channel code).
Originally committed as revision 9904 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-04 13:26:46 +00:00
Justin Ruggles eaf84d970f cosmetics: use braces when it makes the code easier to read.
Originally committed as revision 9893 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-04 12:04:41 +00:00
Justin Ruggles fc59010bbf change AC3DecodeContext variable to local variable
Originally committed as revision 9892 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-04 11:55:10 +00:00
Justin Ruggles 6d96d626c6 use array instead of bitmask
Originally committed as revision 9891 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-04 11:39:47 +00:00
Justin Ruggles 3357ff338b use table for converting dynamic range codes to scale factors
Originally committed as revision 9889 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-04 03:27:05 +00:00
Justin Ruggles 5aefe3ebef use floating-point mantissa dequantization tables
Originally committed as revision 9888 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-04 03:21:17 +00:00
Justin Ruggles 04ac5cada1 cosmetics: indentation
Originally committed as revision 9887 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-04 01:14:14 +00:00
Justin Ruggles 60f07fadd3 dither zero-bit mantissas by default. remove dithering only if it's explicitly turned off.
Originally committed as revision 9886 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-04 01:13:08 +00:00
Justin Ruggles d63f6fea50 simplify coefficient decoding
Originally committed as revision 9884 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-04 00:12:23 +00:00
Justin Ruggles 285bf28c67 merge decoding of coupling channel coefficients and regular channel coefficients
Originally committed as revision 9883 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-04 00:04:17 +00:00
Justin Ruggles d7dc7ad05c split out coupling coefficient reconstruction into a separate function
Originally committed as revision 9882 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-03 23:53:53 +00:00
Justin Ruggles dfd57c366f align array used in mdct. fixes segfault.
Originally committed as revision 9848 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-01 01:13:58 +00:00
Justin Ruggles 8b60bbbf5b simplify stereo rematrixing
Originally committed as revision 9824 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-29 00:58:32 +00:00
Justin Ruggles b6acc57f88 change 2 fields from context to local variables
Originally committed as revision 9823 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-29 00:35:30 +00:00
Justin Ruggles 8fbb368d2c BLOCK_SIZE is not used properly, just use numbers instead to avoid confusion
Originally committed as revision 9822 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-28 20:50:25 +00:00
Justin Ruggles 7bfd22f25a remove broken downmixing. will add new implementation later.
Originally committed as revision 9821 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-28 19:33:19 +00:00
Justin Ruggles 4611b64ec1 simplify snr offset and bit allocation
Originally committed as revision 9784 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-24 02:08:27 +00:00
Justin Ruggles e9a3824880 only use sized data types when necessary
Originally committed as revision 9783 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-24 01:43:47 +00:00
Justin Ruggles 8f58a4c943 set bit allocation parameters directly instead of copying
Originally committed as revision 9782 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-24 01:35:25 +00:00
Justin Ruggles e2cd6686fa use enum value instead of numerical value for acmod
Originally committed as revision 9781 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-23 22:47:49 +00:00
Justin Ruggles bc8edb7e53 use consistent data type for exponents. needs to be int8_t to pass to bit allocation.
Originally committed as revision 9780 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-23 22:23:37 +00:00
Justin Ruggles 878c40a137 change some bit masks to arrays
Originally committed as revision 9779 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-23 22:16:15 +00:00
Justin Ruggles bec37145da cosmetics: indentation
Originally committed as revision 9774 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-21 17:03:30 +00:00
Justin Ruggles 9fc1ab722e Use shared AC-3 header parsing. Move some initializations to block parsing function.
Originally committed as revision 9773 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-21 16:28:12 +00:00
Justin Ruggles 9ef6039043 don't need to synchronize in the decoder. the parser does that already.
Originally committed as revision 9772 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-21 13:56:04 +00:00
Justin Ruggles de34875c75 get rid of an ugly macro
Originally committed as revision 9771 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-21 11:54:19 +00:00
Justin Ruggles 614e9b2424 don't need to define ALT_BITSTREAM_READER
Originally committed as revision 9752 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-19 02:21:14 +00:00
Justin Ruggles 362664215d update license header. add copyright for myself. correct and complete the statement about liba52.
Originally committed as revision 9751 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-19 02:16:20 +00:00
Justin Ruggles 3bb004fcda revise comment for exponent decoding function
Originally committed as revision 9750 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-19 02:09:58 +00:00
Justin Ruggles 4415076f55 new implementation of exponent decoding
Originally committed as revision 9749 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-19 02:04:05 +00:00
Justin Ruggles d699d38393 cosmetics: indentation
Originally committed as revision 9748 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-19 00:51:19 +00:00
Justin Ruggles 0ce668015f remove portions of bit allocation which are no longer needed since they are shared with the encoder
Originally committed as revision 9747 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-19 00:50:31 +00:00
Justin Ruggles 0de73a46ff fix the 256-point MDCT
Originally committed as revision 9685 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-15 14:47:39 +00:00
Justin Ruggles 623b79435d use shared ac3 bit allocation function
Originally committed as revision 9684 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-15 13:53:42 +00:00
Justin Ruggles fa67992dea no need for the decoder to have the license as a prefix
Originally committed as revision 9682 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-15 01:38:13 +00:00
Justin Ruggles 76d357fd23 remove a debugging function and variable, and remove the commented-out code which uses them.
Originally committed as revision 9681 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-15 01:35:46 +00:00
Justin Ruggles a39532b0d9 ABS -> FFABS
Originally committed as revision 9680 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-15 01:32:04 +00:00
Justin Ruggles cc2a8443eb move some common values to ac3.h and utilize them
Originally committed as revision 9679 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-15 01:31:09 +00:00
Justin Ruggles cb503702ee use random number generator from libavutil
Originally committed as revision 9678 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-14 23:57:05 +00:00
Justin Ruggles 9d10960194 10l to me. I accidentally removed a word.
Originally committed as revision 9677 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-14 22:17:23 +00:00
Justin Ruggles 0ec2cc35f7 revise license header for simplicity and consistency
Originally committed as revision 9676 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-14 18:53:56 +00:00
Justin Ruggles 283614b5fc make ac3dec.c GPL until violations are fixed
Originally committed as revision 9674 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-14 16:07:56 +00:00
Justin Ruggles 967d397a6c AC-3 decoder, soc revision 402, Jul 14 13:45:14 2007 UTC by jbr
merge ac3_decoder.h into ac3_decoder.c

Originally committed as revision 9673 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-14 16:06:14 +00:00
Loren Merritt afb46fc092 AC-3 decoder, soc revision 148, Sep 28 18:38:27 2006 UTC by banan
Enable sse imdct, patch by Loren Merrit.

Originally committed as revision 9672 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-14 16:05:39 +00:00
Justin Ruggles de17eee70f AC-3 decoder, soc revision 109, Sep 22 22:42:54 2006 UTC by banan
Cosmetics.

Originally committed as revision 9671 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-14 16:05:13 +00:00
Justin Ruggles 1ea76064b4 AC-3 decoder, soc revision 72, Sep 7 04:20:00 2006 UTC by cloud9
fix short block imdct.

Originally committed as revision 9670 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-14 16:04:40 +00:00