diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/demuxers/demux_qt.c | 10 | ||||
-rw-r--r-- | src/xine-engine/buffer_types.c | 1 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/demuxers/demux_qt.c b/src/demuxers/demux_qt.c index 44b4dd8b8..41b5c5b5b 100644 --- a/src/demuxers/demux_qt.c +++ b/src/demuxers/demux_qt.c @@ -108,6 +108,8 @@ typedef unsigned int qt_atom; #define IN24_FOURCC ME_FOURCC('i', 'n', '2', '4') #define NI42_FOURCC ME_FOURCC('4', '2', 'n', 'i') #define AVC1_FOURCC ME_FOURCC('a', 'v', 'c', '1') +#define AC_3_FOURCC ME_FOURCC('a', 'c', '-', '3') +#define EAC3_FOURCC ME_FOURCC('e', 'c', '-', '3') #define UDTA_ATOM QT_ATOM('u', 'd', 't', 'a') #define META_ATOM QT_ATOM('m', 'e', 't', 'a') @@ -1283,6 +1285,8 @@ static qt_error parse_trak_atom (qt_trak *trak, * further, do not do load these parameters if the audio is just * PCM ('raw ', 'twos', 'sowt' or 'in24') */ if ((current_stsd_atom_size > 0x24) && + (trak->stsd_atoms[k].audio.codec_fourcc != AC_3_FOURCC) && + (trak->stsd_atoms[k].audio.codec_fourcc != EAC3_FOURCC) && (trak->stsd_atoms[k].audio.codec_fourcc != TWOS_FOURCC) && (trak->stsd_atoms[k].audio.codec_fourcc != SOWT_FOURCC) && (trak->stsd_atoms[k].audio.codec_fourcc != RAW_FOURCC) && @@ -1321,6 +1325,12 @@ static qt_error parse_trak_atom (qt_trak *trak, if (trak->stsd_atoms[k].audio.codec_fourcc == SAMR_FOURCC) trak->stsd_atoms[k].audio.vbr = 1; + if (trak->stsd_atoms[k].audio.codec_fourcc == AC_3_FOURCC) + trak->stsd_atoms[k].audio.vbr = 1; + + if (trak->stsd_atoms[k].audio.codec_fourcc == EAC3_FOURCC) + trak->stsd_atoms[k].audio.vbr = 1; + if (trak->stsd_atoms[k].audio.codec_fourcc == ALAC_FOURCC) { trak->stsd_atoms[k].audio.vbr = 1; /* further, FFmpeg's ALAC decoder requires 36 out-of-band bytes */ diff --git a/src/xine-engine/buffer_types.c b/src/xine-engine/buffer_types.c index edc0957ce..52777db91 100644 --- a/src/xine-engine/buffer_types.c +++ b/src/xine-engine/buffer_types.c @@ -808,6 +808,7 @@ static const audio_db_t audio_db[] = { { 0x2000, ME_FOURCC('m', 's', 0x20, 0x00), + ME_FOURCC('a', 'c', '-', '3'), 0 }, BUF_AUDIO_A52, |