dca: consider a stream with XXCh/X96 in ExSS as DTS-HD HRA

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>
oldabi
Anssi Hannula 14 years ago committed by Mans Rullgard
parent 187e23478b
commit 8f4a5d225c
  1. 7
      libavcodec/dca.c

@ -1501,12 +1501,9 @@ static int dca_exss_parse_asset_header(DCAContext *s)
if (extensions_mask & DCA_EXT_EXSS_XLL) if (extensions_mask & DCA_EXT_EXSS_XLL)
s->profile = FF_PROFILE_DTS_HD_MA; 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; 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)) if (!(extensions_mask & DCA_EXT_CORE))
av_log(s->avctx, AV_LOG_WARNING, "DTS core detection mismatch.\n"); av_log(s->avctx, AV_LOG_WARNING, "DTS core detection mismatch.\n");

Loading…
Cancel
Save