Commit Graph

112 Commits

Author SHA1 Message Date
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
Ramiro Polla
cbf3cf19f3 Support "next parameter flags present" flag.
Originally committed as revision 18073 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-20 13:04:14 +00:00
Ramiro Polla
932cee5d67 truehd: support up to 3 substreams.
Originally committed as revision 18072 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-20 13:02:15 +00:00
Ramiro Polla
9ba4821d93 Split TrueHD decoder from MLP
Originally committed as revision 18045 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-19 21:23:39 +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
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
Diego Biurrun
dc8a7c93d3 Add missing void keyword to parameterless function declarations.
Originally committed as revision 16860 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-30 18:38:25 +00:00
Diego Biurrun
0fa5f24c3b Change mplayerhq.hu references to ffmpeg.org where appropriate.
Originally committed as revision 16310 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-25 15:49:50 +00:00
Ramiro Polla
c687643c68 mlp: cosmetics: remove {}s over one-lined if.
Originally committed as revision 16027 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-07 00:58:41 +00:00
Ramiro Polla
ee1a8f6290 mlp: support bit-depths greater than 16 by default.
Originally committed as revision 16026 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-07 00:57:26 +00:00
Mathieu Velten
97679e6e38 mlp: Fix compilation under CONFIG_AUDIO_NONSHORT.
Patch by Mathieu Velten < matmaul at gmail dot com >

Originally committed as revision 16021 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-06 16:28:48 +00:00
Ramiro Polla
1e8bd10c57 mlp: Define End-of-Stream code in common header file and use it in decoder.
Originally committed as revision 14763 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-14 19:38:39 +00:00
Ramiro Polla
a7cc783d71 mlp: split simple inline function that xors 4 bytes into one.
Originally committed as revision 14747 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-14 03:58:05 +00:00
Ramiro Polla
ce15710f55 mlp: Split common code from parser and decoder to be used by encoder.
Originally committed as revision 14733 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-13 18:47:03 +00:00
Ramiro Polla
5dae0dd22c mlpdec: Put some doxy comments to the right of vars instead of interleaved.
Originally committed as revision 14721 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-13 01:41:06 +00:00
Ramiro Polla
f53acb7b17 mlpdec: Split channel parameters from context into their own struct.
Originally committed as revision 14720 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-13 01:36:01 +00:00
Ramiro Polla
db01fa131b mlpdec: whitespace and line-breaking cosmetics.
Originally committed as revision 14717 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-12 18:05:58 +00:00
Ramiro Polla
d6aa052dc5 mlpdec: Split filter parameters from context into their own struct.
Originally committed as revision 14716 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-12 17:53:59 +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
eb2cd99c73 mlpdec: Check for bits left before each read of End-of-Stream indicator and
Substream parity check independently. This allows decoding of streams that
have EOS but don't have Substream parity check.

Originally committed as revision 14206 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-13 14:59:39 +00:00
Diego Biurrun
0e74e1ff3c Add required stdint.h header #include.
Originally committed as revision 14077 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-05 10:16:27 +00:00
Diego Biurrun
9906a2be76 spelling cosmetics
Originally committed as revision 14076 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-05 10:11:42 +00:00
Ramiro Polla
b517af05b9 MLP/TrueHD decoder.
Originally committed as revision 14067 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-04 15:44:13 +00:00