Commit Graph

72 Commits

Author SHA1 Message Date
Nick Brereton
857c30ecba mlpdec: Comment channel_params field in struct SubStream.
Patch by Nick Brereton <nick at nbrereton dot net>

Originally committed as revision 23085 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-11 01:46:13 +00:00
Nick Brereton
22fb814c2f mlpdec: Allocate channel decoding parameters for each substream. Some file
was encountered with a channel range that overlapped the previous substreams,
and the code assumed no such overlap was possible.
Patch by Nick Brereton <nick at nbrereton dot net>

Originally committed as revision 23084 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-11 01:44:52 +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
Reimar Döffinger
d780511b94 Reduce log level of "Extracting .. channel downmix" to AV_LOG_DEBUG, the
message is pointless to ordinary users and is printed once per frame.

Originally committed as revision 21486 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-27 20:02:18 +00:00
Reimar Döffinger
0b882b4009 Fix crash in MLP decoder due to integer overflow.
Probably only DoS, init_get_bits sets buffer to NULL, thus causing a
NULL-dereference directly after.

Originally committed as revision 21426 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-24 18:07:29 +00:00
Diego Biurrun
547fc46ca7 Remove pointless CONFIG_MLP_DECODER preprocessor check.
The file is only ever compiled if the MLP decoder is enabled.

Originally committed as revision 20968 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-29 17:20:19 +00:00
Ramiro Polla
52ae1e869b mlp: Indent.
Originally committed as revision 20255 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-16 16:12:04 +00:00
Ramiro Polla
7fd8806924 mlp: Only initialize VLC tables once. This caused a crash when multiple
instances of the decoder were started at different times.
Bug reported by Maxim Anisiutkin.

Originally committed as revision 20254 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-16 16:10:00 +00:00
Ramiro Polla
13bd2044d3 mlp: Simplify adressing of state and coeffs arrays for both filters by making
the arrays sequential.

Originally committed as revision 18841 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-15 15:34:22 +00:00
Ramiro Polla
e282272667 mlpdec: Fix possible writing out of array bounds introduced by being
under-paranoid in r18651.

Originally committed as revision 18763 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-06 16:01:28 +00:00
Ramiro Polla
e8d341ce19 mlpdec: Split sync word error and MLP sync word check.
The previous code would print the wrong error message for MLP streams with
TrueHD noise type.

Originally committed as revision 18762 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-06 15:46:10 +00:00
Ramiro Polla
aff42ee0ff mlpdec: Fix indentation that got mangled from copy&paste.
Originally committed as revision 18761 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-06 15:37:25 +00:00
Ramiro Polla
bf4f19dc65 mlpdec: Move MLP's filter_channel() to dsputils.
Originally committed as revision 18721 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-30 12:30:05 +00:00
Ramiro Polla
77b12f809b mlpdec: Simplify filtering code by using only one counter variable.
Originally committed as revision 18695 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-26 20:37:40 +00:00
Ramiro Polla
420df93037 mlpdec: Don't overallocate buffers.
Now that max channels and primitive matrices are properly validated, there is
no need to be paranoid that random data will be overwritten.
As a bonus this makes matrix_coeff 16-byte aligned between matrices.

Originally committed as revision 18651 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-21 22:53:46 +00:00
Ramiro Polla
309616b249 mlpdec: Validate num_primitive_matrices.
Originally committed as revision 18650 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-21 22:32:50 +00:00
Ramiro Polla
868170c4da mlpdec: Validate max_channel and max_matrix_channel.
Originally committed as revision 18649 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-21 22:12:30 +00:00
Ramiro Polla
46958efe97 mlpdec: Restart header sync must be 0x31ea for MLP.
Originally committed as revision 18648 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-21 21:57:23 +00:00
Ramiro Polla
a256445ec3 mlpdec: Read context variable to local variable to make code cleaner.
Originally committed as revision 18615 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-18 20:23:13 +00:00
Ramiro Polla
f95f6ab91e mlpdec: {}- and whitespace-related cosmetics.
Originally committed as revision 18614 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-18 19:52:52 +00:00
Ramiro Polla
63ad832dd6 mlpdec: Use some context arrays with local variables in rematrix_channels().
Originally committed as revision 18613 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-18 19:46:41 +00:00
Ramiro Polla
15e6748b72 truehd: Simplify rematrix_channels() as per Michael's original review.
Originally committed as revision 18612 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-18 19:39:07 +00:00
Ramiro Polla
95c14b1eea mlpdec: Make read_matrix_params() take unsigned int substr for consistency.
Originally committed as revision 18611 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-18 18:54:30 +00:00
Ramiro Polla
5d9e4eaa6d mlpdec: Check for {matrix,filter}_changed as soon as they are incremented.
Originally committed as revision 18610 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-18 18:51: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
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
Ramiro Polla
75428fa447 mlpdec: Filters and matrices may change only once per substream per access unit.
Originally committed as revision 18338 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-06 00:58:03 +00:00
Ramiro Polla
89e39be3b6 mlpdec: There must be no extraword for MLP.
Originally committed as revision 18337 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-05 20:54:19 +00:00
Ramiro Polla
cc9c512638 mlpdec: Validate non-restart bit from the substream header.
Originally committed as revision 18336 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-05 20:46:53 +00:00
Ramiro Polla
0091d8a164 mlpdec: matrix_out_ch must not be greater than max_matrix_channel, and not max_channel.
Originally committed as revision 18335 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-05 20:11:40 +00:00
Ramiro Polla
ab79fa44f1 mlpdec: Simplify check for substream_parity_present.
Originally committed as revision 18240 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-30 03:46:52 +00:00
Ramiro Polla
01aaf09274 mlpdec: Simplify no restart header seen error.
Originally committed as revision 18239 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-30 03:44:20 +00:00
Ramiro Polla
d7952be311 mlpdec: Simplify substream length mismatch error.
Originally committed as revision 18238 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-30 03:42:40 +00:00
Ramiro Polla
d544dcdf38 mlpdec: Prettify substream parity check.
Originally committed as revision 18237 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-30 03:37:19 +00:00
Ramiro Polla
7b18e13a7c mlpdec: Cleaner and better termination word check.
Originally committed as revision 18236 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-30 03:34:15 +00:00
Ramiro Polla
125cf771f6 mlpdec: More validation for read_channel_params()
Originally committed as revision 18235 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-30 03:20:01 +00:00
Ramiro Polla
06e34be88f mlpdec: whitespace cosmetics.
Originally committed as revision 18234 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-30 03:12:39 +00:00
Ramiro Polla
a44b9f9574 mlpdec: Simplify &foo[0] to foo and use index (which has just been initialized
to MAX_BLOCKSIZE) instead of MAX_BLOCKSIZE, so both copies to/from state data
look alike.

Originally committed as revision 18233 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-30 03:08:55 +00:00
Ramiro Polla
e71365f427 mlpdec: Split filter_state_buffer into [fi]irbuf and fp to [fi]ir.
Originally committed as revision 18232 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-30 03:05:38 +00:00
Ramiro Polla
0ae59bb01a mlpdec: Unroll copying filter state data and filtering for the two filters.
Originally committed as revision 18231 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-30 02:59:45 +00:00
Ramiro Polla
0c5670a0e5 mlpdec: Max filter orders for FIR and IIR are 8 and 4 respectively.
Originally committed as revision 18230 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-30 02:54:19 +00:00
Ramiro Polla
fa937faba4 mlpdec: Remove few random dprintf()s.
Originally committed as revision 18212 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-28 00:53:52 +00:00
Ramiro Polla
b864098c16 mlpdec: Check for blocksize in proper range.
Originally committed as revision 18211 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-27 23:55:38 +00:00
Ramiro Polla
8e9ee714fc mlpdec: quant_step_size can be any value from 0 to 0xF.
Originally committed as revision 18210 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-27 23:48:08 +00:00
Ramiro Polla
6fae7cbd7f mlpdec: output_shift can be any value from -8 to 7.
Originally committed as revision 18209 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-27 23:47:18 +00:00
Ramiro Polla
af04802640 mlpdec: output_shift is signed
Originally committed as revision 18208 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-27 23:45:52 +00:00
Ramiro Polla
43ee5fe035 mlpdec: Split read_channel_params() into its own function.
Originally committed as revision 18207 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-27 23:42:22 +00:00
Ramiro Polla
f8e6293bde mlpdec: Split read_matrix_params() into its own function.
Originally committed as revision 18206 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-27 23:32:32 +00:00
Ramiro Polla
9731e7f13e mlp, truehd: support non 1:1 channel mapping.
Originally committed as revision 18074 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-20 13:07:09 +00:00