提交 9ba4821d 编写于 作者: R Ramiro Polla

Split TrueHD decoder from MLP

Originally committed as revision 18045 to svn://svn.ffmpeg.org/ffmpeg/trunk
上级 5c3d507f
...@@ -544,8 +544,8 @@ following image formats are supported: ...@@ -544,8 +544,8 @@ following image formats are supported:
@item IMC (Intel Music Coder) @tab @tab X @item IMC (Intel Music Coder) @tab @tab X
@item MACE (Macintosh Audio Compression/Expansion) 3:1 @tab @tab X @item MACE (Macintosh Audio Compression/Expansion) 3:1 @tab @tab X
@item MACE (Macintosh Audio Compression/Expansion) 6:1 @tab @tab X @item MACE (Macintosh Audio Compression/Expansion) 6:1 @tab @tab X
@item MLP(Meridian Lossless Packing)/TrueHD @tab @tab X @item MLP (Meridian Lossless Packing) @tab @tab X
@tab Used in DVD-Audio and Blu-Ray discs. @tab Used in DVD-Audio discs.
@item Monkey's Audio @tab @tab X @item Monkey's Audio @tab @tab X
@tab Only versions 3.97-3.99 are supported. @tab Only versions 3.97-3.99 are supported.
@item MP1 (MPEG audio layer 1) @tab @tab IX @item MP1 (MPEG audio layer 1) @tab @tab IX
...@@ -598,6 +598,8 @@ following image formats are supported: ...@@ -598,6 +598,8 @@ following image formats are supported:
@item Speex @tab @tab E @item Speex @tab @tab E
@tab supported through external library libspeex @tab supported through external library libspeex
@item True Audio (TTA) @tab @tab X @item True Audio (TTA) @tab @tab X
@item TrueHD @tab @tab X
@tab Used in HD-DVD and Blu-Ray discs.
@item Vorbis @tab E @tab X @item Vorbis @tab E @tab X
@ A native but very primitive encoder exists. @ A native but very primitive encoder exists.
@item WavPack @tab @tab X @item WavPack @tab @tab X
......
...@@ -211,6 +211,7 @@ OBJS-$(CONFIG_THP_DECODER) += mjpegdec.o mjpeg.o ...@@ -211,6 +211,7 @@ OBJS-$(CONFIG_THP_DECODER) += mjpegdec.o mjpeg.o
OBJS-$(CONFIG_TIERTEXSEQVIDEO_DECODER) += tiertexseqv.o OBJS-$(CONFIG_TIERTEXSEQVIDEO_DECODER) += tiertexseqv.o
OBJS-$(CONFIG_TIFF_DECODER) += tiff.o lzw.o faxcompr.o OBJS-$(CONFIG_TIFF_DECODER) += tiff.o lzw.o faxcompr.o
OBJS-$(CONFIG_TIFF_ENCODER) += tiffenc.o rle.o lzwenc.o OBJS-$(CONFIG_TIFF_ENCODER) += tiffenc.o rle.o lzwenc.o
OBJS-$(CONFIG_TRUEHD_DECODER) += mlpdec.o mlp_parser.o mlp.o
OBJS-$(CONFIG_TRUEMOTION1_DECODER) += truemotion1.o OBJS-$(CONFIG_TRUEMOTION1_DECODER) += truemotion1.o
OBJS-$(CONFIG_TRUEMOTION2_DECODER) += truemotion2.o OBJS-$(CONFIG_TRUEMOTION2_DECODER) += truemotion2.o
OBJS-$(CONFIG_TRUESPEECH_DECODER) += truespeech.o OBJS-$(CONFIG_TRUESPEECH_DECODER) += truespeech.o
......
...@@ -215,6 +215,7 @@ void avcodec_register_all(void) ...@@ -215,6 +215,7 @@ void avcodec_register_all(void)
REGISTER_DECODER (SMACKAUD, smackaud); REGISTER_DECODER (SMACKAUD, smackaud);
REGISTER_ENCDEC (SONIC, sonic); REGISTER_ENCDEC (SONIC, sonic);
REGISTER_ENCODER (SONIC_LS, sonic_ls); REGISTER_ENCODER (SONIC_LS, sonic_ls);
REGISTER_DECODER (TRUEHD, truehd);
REGISTER_DECODER (TRUESPEECH, truespeech); REGISTER_DECODER (TRUESPEECH, truespeech);
REGISTER_DECODER (TTA, tta); REGISTER_DECODER (TTA, tta);
REGISTER_DECODER (VMDAUDIO, vmdaudio); REGISTER_DECODER (VMDAUDIO, vmdaudio);
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
#include "libavutil/avutil.h" #include "libavutil/avutil.h"
#define LIBAVCODEC_VERSION_MAJOR 52 #define LIBAVCODEC_VERSION_MAJOR 52
#define LIBAVCODEC_VERSION_MINOR 21 #define LIBAVCODEC_VERSION_MINOR 22
#define LIBAVCODEC_VERSION_MICRO 0 #define LIBAVCODEC_VERSION_MICRO 0
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
...@@ -310,6 +310,7 @@ enum CodecID { ...@@ -310,6 +310,7 @@ enum CodecID {
CODEC_ID_SIPR, CODEC_ID_SIPR,
CODEC_ID_MP1, CODEC_ID_MP1,
CODEC_ID_TWINVQ, CODEC_ID_TWINVQ,
CODEC_ID_TRUEHD,
/* subtitle codecs */ /* subtitle codecs */
CODEC_ID_DVD_SUBTITLE= 0x17000, CODEC_ID_DVD_SUBTITLE= 0x17000,
......
...@@ -287,7 +287,7 @@ lost_sync: ...@@ -287,7 +287,7 @@ lost_sync:
} }
AVCodecParser mlp_parser = { AVCodecParser mlp_parser = {
{ CODEC_ID_MLP }, { CODEC_ID_MLP, CODEC_ID_TRUEHD },
sizeof(MLPParseContext), sizeof(MLPParseContext),
mlp_init, mlp_init,
mlp_parse, mlp_parse,
......
...@@ -1038,6 +1038,7 @@ error: ...@@ -1038,6 +1038,7 @@ error:
return -1; return -1;
} }
#if CONFIG_MLP_DECODER
AVCodec mlp_decoder = { AVCodec mlp_decoder = {
"mlp", "mlp",
CODEC_TYPE_AUDIO, CODEC_TYPE_AUDIO,
...@@ -1047,6 +1048,20 @@ AVCodec mlp_decoder = { ...@@ -1047,6 +1048,20 @@ AVCodec mlp_decoder = {
NULL, NULL,
NULL, NULL,
read_access_unit, read_access_unit,
.long_name = NULL_IF_CONFIG_SMALL("MLP (Meridian Lossless Packing)/TrueHD"), .long_name = NULL_IF_CONFIG_SMALL("MLP (Meridian Lossless Packing)"),
}; };
#endif /* CONFIG_MLP_DECODER */
#if CONFIG_TRUEHD_DECODER
AVCodec truehd_decoder = {
"truehd",
CODEC_TYPE_AUDIO,
CODEC_ID_TRUEHD,
sizeof(MLPDecodeContext),
mlp_decode_init,
NULL,
NULL,
read_access_unit,
.long_name = NULL_IF_CONFIG_SMALL("TrueHD"),
};
#endif /* CONFIG_TRUEHD_DECODER */
...@@ -487,7 +487,7 @@ static int mpegps_read_packet(AVFormatContext *s, ...@@ -487,7 +487,7 @@ static int mpegps_read_packet(AVFormatContext *s,
codec_id = CODEC_ID_PCM_DVD; codec_id = CODEC_ID_PCM_DVD;
} else if (startcode >= 0xb0 && startcode <= 0xbf) { } else if (startcode >= 0xb0 && startcode <= 0xbf) {
type = CODEC_TYPE_AUDIO; type = CODEC_TYPE_AUDIO;
codec_id = CODEC_ID_MLP; codec_id = CODEC_ID_TRUEHD;
} else if (startcode >= 0xc0 && startcode <= 0xcf) { } else if (startcode >= 0xc0 && startcode <= 0xcf) {
/* Used for both AC-3 and E-AC-3 in EVOB files */ /* Used for both AC-3 and E-AC-3 in EVOB files */
type = CODEC_TYPE_AUDIO; type = CODEC_TYPE_AUDIO;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册