Commit Graph

247 Commits

Author SHA1 Message Date
Loren Merritt 45d9d61889 don't mark the delayed samples for upmixing if they haven't been downmixed
Originally committed as revision 14741 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-13 23:30:53 +00:00
Loren Merritt 3b6516f7e7 oops, non-normalized downmix to mono contaminated add_bias for non-simd float-to-int.
Originally committed as revision 14740 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-13 23:30:28 +00:00
Loren Merritt 557ac0c448 optimize ac3_downmix.
1.3x faster 5.1->stereo, 1.9x faster 5.1->mono.

Originally committed as revision 14719 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-12 23:45:46 +00:00
Loren Merritt 72745cff20 use float_to_int16_interleave in ac3
Originally committed as revision 14706 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-12 03:01:17 +00:00
Loren Merritt 916d5d6c32 use imdct_half in ac3
Originally committed as revision 14705 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-12 01:30:24 +00:00
Loren Merritt d46ac5bfde mdct wrapper function to match fft
Originally committed as revision 14703 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-12 00:38:30 +00:00
Loren Merritt 0a570e826d remove mdct tmp buffer
Originally committed as revision 14702 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-12 00:36:36 +00:00
Justin Ruggles 5e3e40756e cosmetics: use a better function name than uncouple_channels()
Originally committed as revision 14614 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 01:49:01 +00:00
Justin Ruggles 022845ed05 cosmetics: change function name and comments to refer to block decoding
instead of block parsing

Originally committed as revision 14613 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 01:31:40 +00:00
Justin Ruggles ba7f712c21 remove unneeded local variable
Originally committed as revision 14547 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-05 00:32:27 +00:00
Justin Ruggles 55aff0d901 Read bitstream parameters for E-AC-3 streams before returning an error.
Originally committed as revision 14528 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-03 22:29:06 +00:00
Justin Ruggles 602116df9b Hardcode the table for ungrouping 3 values in 5 bits. It will be reused by
the E-AC-3 decoder.

Originally committed as revision 14527 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-03 21:42:43 +00:00
Justin Ruggles 7417120b6f use the same table for ungrouping exponents and bap=2 mantissas
Originally committed as revision 14525 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-03 19:24:04 +00:00
Justin Ruggles 14b7062829 cosmetics: make all references to AC-3 capitalized and hyphenated
Originally committed as revision 14523 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-03 16:42:32 +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
Justin Ruggles 4760aec6a0 read 'coupling in use' parameter from bitstream into decoder context first,
then copy to the local variable.

Originally committed as revision 14311 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-19 22:01:46 +00:00
Justin Ruggles 7645da9194 cosmetic: use hex value instead of decimal to show relation to 0x7FFFFF
Originally committed as revision 14290 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-19 02:54:54 +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
Justin Ruggles 227322b837 move rematrixing band table to ac3dec_data.c
Originally committed as revision 13716 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-08 21:09:02 +00:00
Justin Ruggles 4397d95ce0 split up header parsing function
Originally committed as revision 13705 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-07 22:30:51 +00:00
Justin Ruggles da04be10a2 store exp_strategy for all blocks in decode context
Originally committed as revision 13704 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-07 22:30:47 +00:00
Justin Ruggles 54624396fc store cpl_in_use for all blocks in decode context
Originally committed as revision 13703 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-07 22:30:43 +00:00
Justin Ruggles 58ce349f0a move the decode context and some macro constants to a new file, ac3dec.h
Originally committed as revision 13697 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-07 22:30:16 +00:00
Justin Ruggles 30f71adc46 move mix level tables from parser to decoder. have parser read bitstream value instead of using an index to a table in the decoder.
Originally committed as revision 13696 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-07 22:30:09 +00:00
Justin Ruggles caf0fbc889 add more gain levels and adjust mix level tables accordingly.
Originally committed as revision 13695 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-07 22:30:03 +00:00
Justin Ruggles 687671f03b pass bap table to ff_ac3_bit_alloc_calc_bap()
Originally committed as revision 13694 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-07 22:29:54 +00:00
Justin Ruggles 4921bbbae5 cosmetics: indent
Originally committed as revision 13692 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-07 22:29:38 +00:00
Justin Ruggles aa5d6be8df skip unsupported frame types and substream id's
Originally committed as revision 13691 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-07 22:29:27 +00:00
Justin Ruggles be5f17b96b read frame type from header info into decode context
Originally committed as revision 13690 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-07 22:29:19 +00:00
Justin Ruggles 3596aa6fe6 get substreamid from ac3 parser
Originally committed as revision 13689 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-07 22:29:11 +00:00
Justin Ruggles 6730e9f300 get the number of blocks from the ac3 parser and use in the ac3 decoder.
Originally committed as revision 13688 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-07 22:29:03 +00:00
Justin Ruggles 7af26d14ac return error on frame sync error
Originally committed as revision 13654 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-04 00:31:20 +00:00
Justin Ruggles fb2b88a816 cosmetics: add a comment, remove a comment
Originally committed as revision 13590 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-31 22:12:49 +00:00
Justin Ruggles 9b57545934 simplify
Originally committed as revision 13589 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-31 22:12:01 +00:00
Justin Ruggles 6e74513a48 set lfe params at frame init instead of in every block
Originally committed as revision 13588 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-31 21:57:45 +00:00
Justin Ruggles b85a15fe73 only calculate number of exponent groups when exponents are not reused.
Originally committed as revision 13587 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-31 21:53:31 +00:00
Justin Ruggles aa148649a4 cosmetics: remove unneeded braces
Originally committed as revision 13586 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-31 21:37:28 +00:00
Justin Ruggles 7e13b31c19 10l: cosmetics
Originally committed as revision 13585 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-31 19:59:10 +00:00
Justin Ruggles e25973a1fd new dba values requires running last 2 bit allocation stages
Originally committed as revision 13584 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-31 19:56:54 +00:00
Justin Ruggles ff5d419e2f get_transform_coeffs() never returns an error, so make the function and its children return void.
Originally committed as revision 13582 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-31 16:04:41 +00:00
Justin Ruggles fbe52e4188 use enum value for CRC error
Originally committed as revision 13580 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-31 15:31:57 +00:00
Justin Ruggles c78c6d6c58 move header error logging to after CRC check
Originally committed as revision 13579 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-31 15:30:55 +00:00
Justin Ruggles bd98e9e230 zero the upper frequencies of the correct coefficients
Originally committed as revision 13452 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-27 00:43:39 +00:00
Justin Ruggles eccba2bc4b safer solution for setting audio parameters
Originally committed as revision 13402 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-25 20:02:24 +00:00
Justin Ruggles cf03a8173a set audio parameters if frame header is ok, even if crc fails
Originally committed as revision 13399 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-25 18:54:17 +00:00
Justin Ruggles 3336110acf cosmetics: indent
Originally committed as revision 13398 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-25 18:06:01 +00:00
Justin Ruggles ecfe94b294 add error concealment
Originally committed as revision 13397 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-25 18:05:15 +00:00
Justin Ruggles 93a2c8c14f cosmetics: indent
Originally committed as revision 13385 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-25 16:20:06 +00:00
Justin Ruggles 43ad93a4f1 10l: fix error in commit r13382
Originally committed as revision 13384 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-25 16:19:44 +00:00
Justin Ruggles 82a591d8d1 add checks for missing information in the first block
Originally committed as revision 13382 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-25 15:34:48 +00:00
Justin Ruggles 3af9131398 add check for invalid channel mode when coupling is used
Originally committed as revision 13381 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-25 15:23:03 +00:00
Diego Biurrun 245976da2a Use full path for #includes from another directory.
Originally committed as revision 13098 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-09 11:56:36 +00:00
Stefano Sabatini 162d4fc99d Add long names to AVCodec declarations.
patch by Stefano Sabatini, stefano.sabatini-lala poste it

Originally committed as revision 13009 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-04-27 22:39:51 +00:00
Bartlomiej Wolowiec 55736cfbd2 change ff_ac3_parse_header() to take a GetBitContext instead of const char*
Originally committed as revision 12922 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-04-22 11:14:01 +00:00
Bartlomiej Wolowiec 79b25a27b8 change name from stream type to frame type in AC3 code
Originally committed as revision 12623 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-03-28 20:42:55 +00:00
Justin Ruggles 509fdb0b7e only allocate context input buffer if AVCodecContext.error_reslience is greater than 0.
Originally committed as revision 12600 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-03-26 22:36:41 +00:00
Justin Ruggles 984ff38a2b cosmetics: indentation after last commit
Originally committed as revision 12594 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-03-25 23:34:49 +00:00
Justin Ruggles c33a196716 additional protection from segmentation faults and memory access errors by
copying the input buffer to a local context buffer which is large enough to
hold the largest possible AC3 frame.

Originally committed as revision 12593 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-03-25 23:34:00 +00:00
Bartlomiej Wolowiec 4e6eeaf019 using stream type in eac3 parser
Originally committed as revision 12570 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-03-24 21:25:49 +00:00
Zuxy Meng 98a6fff98c Apply 'cold' attribute to init/uninit functions in libavcodec
Originally committed as revision 12525 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-03-21 03:11:20 +00:00
Justin Ruggles 98f6dfa653 make input buffer const, as it should be. fixes a warning.
Originally committed as revision 12418 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-03-10 21:59:30 +00:00
Justin Ruggles 38dae9c3a6 downmix before imdct unless different size transforms are used. about 20%
faster 5.1-to-stereo downmixing.

Originally committed as revision 12397 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-03-09 17:05:19 +00:00
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