48 Commits

Author SHA1 Message Date
Vittorio Giovara
970c76f322 mlp_parser: Drop in-parser downmix functionality
request_channel_layout is a decoder option and it makes no sense
to have it in a parser.

This feature was needed in the past when the decoder was allowed
to reuse the avctx from the demuxer. Nowadays the decoder receives
only the parameters from it, already containing the real channel
layout (and the correct request_channel_layout option).

After initialization the decoder overwrites the channel layout
with the downmixed one that is actually output, so there is no need
to preserve this functionality in the parser.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2017-04-27 14:19:54 -04:00
Vittorio Giovara
94c54d97e7 mlp: Factor out channel layout subset checks 2017-04-26 11:21:27 -04:00
Vittorio Giovara
cea7fd9afb mlp: Drop ff_ prefix from a static function 2017-04-26 11:21:18 -04:00
Diego Biurrun
a25dac976a Use bitstream_init8() where appropriate 2017-02-07 18:27:21 +01:00
Alexandra Hájková
00c72a1e01 mlp: Convert to the new bitstream reader 2016-12-19 13:22:29 +01:00
Vittorio Giovara
dc70c19476 lavc: Drop deprecated request_channels related functions
Deprecated in 04/2011.
2015-08-28 16:01:16 +02:00
Hendrik Leppkes
f36f6a608b mlpdec: support major sync headers with optional extension blocks
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-03-11 16:03:13 +01:00
Tim Walker
c1e7de8f62 mlp_parser: fix request_channel_layout behavior.
When request_channel_layout is 0,
all substreams should be decoded.

Thanks to Michael Niedermayer for spotting.

Also fix a mismatch between the parser and
decoder when request_channel_layout is a
subset of Stereo.
2014-02-08 20:10:51 +01:00
Tim Walker
c0c45188e5 mlp: improve request_channel_layout behavior.
Don't decode further substreams if request_channel_layout
is a subset of the current substream's channel_layout.

Before, we would only discard further substreams if
request_channel_layout matched the substream's
channel_layout extactly, thus decoding additional
channels which the caller would probably end up downmixing.
2014-02-08 13:39:37 +01:00
Tim Walker
4b7f1a7ced mlp: Parse TrueHD decoder channel modifiers and set the AVMatrixEncoding for each substream. 2014-01-05 16:41:56 +01:00
Diego Biurrun
7950e519bb Disable deprecation warnings for cases where a replacement is available 2013-08-02 19:19:02 +02:00
Tim Walker
ed1b01131e mlp: implement support for AVCodecContext.request_channel_layout.
Also wrap usage of AVCodecContext.request_channels in FF_API_REQUEST_CHANNELS directives.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2013-01-22 16:10:02 -05:00
Tim Walker
b0c7e3ffd0 mlp_parser: account for AVCodecContext.request_channels when setting the channel layout.
Allows users to configure the output based on what's actually decoded, rather than the full native layout.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2013-01-22 16:10:02 -05:00
Tim Walker
99ccd2ba10 mlp: store the channel layout for each substream.
Also stop storing the channel arrangement in the header info, as it's unused outside of ff_mlp_read_major_sync.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>

CC:libav-stable@libav.org
2013-01-22 16:10:02 -05:00
Justin Ruggles
a903f8f087 Include libavutil/channel_layout.h instead of libavutil/audioconvert.h
Also reorder some other #include when applicable.
2012-11-11 13:35:12 -05:00
Tim Walker
3844572887 mlp_parser: avoid mapping multiple disctinct TrueHD channels to the same Libav channel.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-09-12 18:26:53 -04:00
Anton Khirnov
36ef5369ee Replace all CODEC_ID_* with AV_CODEC_ID_* 2012-08-07 16:00:24 +02:00
Tim Walker
0a9efe4c6e mlp_parser: fix the channel mask value used for the top surround channel
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-25 17:24:43 -05:00
Tim Walker
6bbaf6e0dd mlpdec_parser: fix a few channel layouts.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-22 10:50:22 -05:00
Justin Ruggles
b3a4c7e0f1 mlp parser: set duration instead of frame_size 2012-02-20 15:08:41 -05:00
Mans Rullgard
cc276c85d1 Make channel layout masks unsigned
It makes more sense for a bit mask to use an unsigned type.
The change should be source and binary compatible on all
supported systems, hence micro version bump.

Fixes a few invalid shifts.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-25 13:19:54 +00:00
Anton Khirnov
5511ad14fe lavc: use designated initialisers for parsers. 2011-11-02 10:03:43 +01:00
Justin Ruggles
82be06bbb3 mlpdec: return meaningful error codes instead of -1 2011-10-13 15:13:02 -04:00
Anton Khirnov
6f3d3eacf6 lavc: add missing audioconvert includes 2011-04-02 16:17:01 +02:00
John Stebbins
4b6f097b21 mlp_parse.c: set AVCodecContext channel_layout
The channel layout isn't getting set for mlp and truehd audio.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-03-30 17:41:48 +02:00
Mans Rullgard
2912e87a6c Replace FFmpeg with Libav in licence headers
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-19 13:33:20 +00:00
Diego Elio Pettenò
d36beb3f69 Add ff_ prefix to data symbols of encoders, decoders, hwaccel, parsers, bsf.
None of these symbols should be accessed directly, so declare them as
hidden.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-01-26 16:08:45 +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
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
Jai Menon
8790961d7e mlp_parser: Fix memleak.
ff_combine_frame() is called, which allocates ParseContext->buffer if needed,
so ff_parse_close() must be called to free it.
Patch by jai.

Originally committed as revision 22005 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-23 16:54:05 +00:00
Reimar Döffinger
7e2ef1b9e1 Fix possible crashes in mlp parser, it tries to go back 7 bytes after
finding the 4-byte signature.
Add a check that ignores the signature if we do not have enough previous
data to go back at least 7 bytes.

Originally committed as revision 21487 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-27 20:04:19 +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
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
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
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
Laurent Aimar
7a2efd2e44 mlp: initialize all CRC tables in a common function.
This way the decoder does not have to depend on the parser being initialized
before.
Patch by Laurent Aimar <fenrir at via dot ecp dot fr>.

Originally committed as revision 15986 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-03 01:14:06 +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
ee5b34d56e mlp_parser: Initialize crc data in its own function.
Originally committed as revision 14722 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-13 02:44:38 +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
5faf3a4449 Clarify comment about parity nibble.
Originally committed as revision 14047 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-02 12:24:50 +00:00
Ramiro Polla
49de8d1e9c Make ff_mlp_read_major_sync() take a GetBitContext instead of buffers.
Originally committed as revision 14044 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-01 01:36:16 +00:00
Ramiro Polla
ae10e1fd3d Seek the file forwards instead of backwards when sync is lost.
Originally committed as revision 14014 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-27 21:36:01 +00:00
Ramiro Polla
c624c2195f Make it a little easier to spot that the code is not dealing only with
substream headers.

Originally committed as revision 13961 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-25 12:08:39 +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
Diego Biurrun
f2c68f9c7e cosmetics: spelling fixes
Originally committed as revision 11155 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-03 11:03:16 +00:00
Ian Caulfield
6b493b2f2f MLP/TrueHD parser
Patch by Ian Caulfield, ian D caulfield <at> gmail D com
Thread: [PATCH] MLP/TrueHD decoder, 12 Oct 14:26

Originally committed as revision 11109 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-11-28 14:27:53 +00:00