summaryrefslogtreecommitdiff
path: root/libavcodec/mlp_parser.c
diff options
context:
space:
mode:
authorTim Walker <tdskywalker@gmail.com>2013-12-11 02:03:32 +0000
committerTim Walker <tdskywalker@gmail.com>2014-01-05 16:41:56 +0100
commit4b7f1a7ced0e98f2cc698d896f7ebab8d30eaa09 (patch)
tree7973beb19a4ce117be284628eda4e18aa3bb6cd2 /libavcodec/mlp_parser.c
parent30d70e79a6b4ac7f4eb66446a9da275161ef6ea7 (diff)
mlp: Parse TrueHD decoder channel modifiers and set the AVMatrixEncoding for each substream.
Diffstat (limited to 'libavcodec/mlp_parser.c')
-rw-r--r--libavcodec/mlp_parser.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/libavcodec/mlp_parser.c b/libavcodec/mlp_parser.c
index 1a68014b32..8766bd0c1f 100644
--- a/libavcodec/mlp_parser.c
+++ b/libavcodec/mlp_parser.c
@@ -169,13 +169,16 @@ int ff_mlp_read_major_sync(void *log, MLPHeaderInfo *mh, GetBitContext *gb)
mh->group1_samplerate = mlp_samplerate(ratebits);
mh->group2_samplerate = 0;
- skip_bits(gb, 8);
+ skip_bits(gb, 4);
+
+ mh->channel_modifier_thd_stream0 = get_bits(gb, 2);
+ mh->channel_modifier_thd_stream1 = get_bits(gb, 2);
channel_arrangement = get_bits(gb, 5);
mh->channels_thd_stream1 = truehd_channels(channel_arrangement);
mh->channel_layout_thd_stream1 = truehd_layout(channel_arrangement);
- skip_bits(gb, 2);
+ mh->channel_modifier_thd_stream2 = get_bits(gb, 2);
channel_arrangement = get_bits(gb, 13);
mh->channels_thd_stream2 = truehd_channels(channel_arrangement);