Commit Graph

21 Commits

Author SHA1 Message Date
Jai Luthra
15b86f480a mlpenc: Working MLP/TrueHD encoder
* Multichannel support for TrueHD is experimental

    There should be downmix substreams present for 2+ channel bitstreams,
    but ffmpeg decoder doesn't need it. Will add support for this soon.

* There might be lossless check failures on LFE channels

* 32-bit sample support has been removed for now, will add it later

    While testing, some samples gave lossless check failures when enforcing
    s32. Probably this will also get solved with the LFE issues.

Signed-off-by: Jai Luthra <me@jailuthra.in>
2016-09-17 13:23:56 +01:00
Hendrik Leppkes
36bf549b27 mlpdec: support TrueHD streams with an Atmos substream
The fourth substream is being discarded, since its not raw audio data,
but an encoded Atmos stream which needs a specialized decoder.

Fixes decoding of the true hd stream from Transformers\ -\ Age\ of\ Extinction\ 2014\ 1080P-003.mkv

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-21 14:38:32 +02:00
Michael Niedermayer
b4107f7805 Merge commit '4b7f1a7ced0e98f2cc698d896f7ebab8d30eaa09'
* commit '4b7f1a7ced0e98f2cc698d896f7ebab8d30eaa09':
  mlp: Parse TrueHD decoder channel modifiers and set the AVMatrixEncoding for each substream.

Conflicts:
	libavcodec/mlp_parser.h
	libavcodec/mlpdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 22:53:13 +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
Michael Niedermayer
55c49afc42 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  yuv4mpeg: return proper error codes.
  Give all anonymously typedeffed structs in headers a name
  fate: Add parseutils test
  parseutils-test: Drop random colors from parsing test
  vf_pad/scale: use double precision for aspect ratios.
  build: error on variable-length arrays
  ppc: swscale: rework yuv2planeX_altivec()
  ppc: fmtconvert: kill VLA in float_to_int16_interleave_altivec()
  x86: dsputil: kill VLA in gmc_mmx()
  libspeexenc: Updated commentary to reflect recent changes
  libspeexenc: Add an option for enabling DTX
  doc/APIchanges: fill in missing dates and hashes.
  lavr: bump major to 1 and declare it stable.
  lavr: change the type of the data buffers to uint8_t**.
  lavc: deprecate the audio resampling API.

Conflicts:
	cmdutils.h
	configure
	doc/APIchanges
	ffplay.c
	libavcodec/dwt.h
	libavcodec/libspeexenc.c
	libavfilter/vf_pad.c
	libavfilter/vf_scale.c
	libavformat/asf.h
	tests/fate/libavutil.mak
	tests/ref/fate/parseutils

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-06 13:45:08 +02:00
Diego Biurrun
e4cbf7529b Give all anonymously typedeffed structs in headers a name
Anonymous structs cannot be forward declared and have no benefit.
2012-10-06 09:27:11 +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
Reimar Döffinger
a55247e761 Specify maximum sample rate of MLP by defining the factor relative to 48000
instead of directly.
This makes clear that the code assumes the maximum sample rate to be
a multiple of 48000 and also removes the division from the MAX_BLOCKSIZE
macros, which causes an issue with the Solaris assembler where "/" is
a comment marker unless the --divide option is used.

Originally committed as revision 20026 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-26 16:04:35 +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
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
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
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
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
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
Stefano Sabatini
987903826b Globally rename the header inclusion guard names.
Consistently apply this rule: the guard name is obtained from the
filename by stripping the leading "lib", converting '/' and '.'  to
'_' and uppercasing the resulting name. Guard names in the root
directory have to be prefixed by "FFMPEG_".

Originally committed as revision 15120 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-31 07:39:47 +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
06cddea060 mlp: Cosmetics: Close comments in an extra line and
remove empty lines between doxy comments and function declarations.

Originally committed as revision 14735 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-13 19:43:18 +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