dca: consider a stream with XXCh/X96 in ExSS as DTS-HD HRA
authorAnssi Hannula <anssi.hannula@iki.fi>
Fri, 21 Jan 2011 20:00:40 +0000 (20:00 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 23 Jan 2011 18:32:07 +0000 (19:32 +0100)
DTS-HD HRA streams do not always have an XBR extension in the extension
substream. Instead they can have only XXCh and X96 extensions in
there and still be considered DTS-HD HRA.

This is also confirmed with Onkyo TX-SR607 receiver which recognizes
such a stream as HiRes Audio.

Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 8f4a5d225c6cd65c5f306a200da991f8a59a439a)

libavcodec/dca.c

index bc099e1..64a81d5 100644 (file)
@@ -1501,12 +1501,9 @@ static int dca_exss_parse_asset_header(DCAContext *s)
 
     if (extensions_mask & DCA_EXT_EXSS_XLL)
         s->profile = FF_PROFILE_DTS_HD_MA;
-    else if (extensions_mask & DCA_EXT_EXSS_XBR)
+    else if (extensions_mask & (DCA_EXT_EXSS_XBR | DCA_EXT_EXSS_X96 |
+                                DCA_EXT_EXSS_XXCH))
         s->profile = FF_PROFILE_DTS_HD_HRA;
-    else if (extensions_mask & DCA_EXT_EXSS_X96)
-        s->profile = FF_PROFILE_DTS_96_24;
-    else if (extensions_mask & DCA_EXT_EXSS_XXCH)
-        s->profile = FFMAX(s->profile, FF_PROFILE_DTS_ES);
 
     if (!(extensions_mask & DCA_EXT_CORE))
         av_log(s->avctx, AV_LOG_WARNING, "DTS core detection mismatch.\n");