From 165688f7f7edba241816df6e57b43df8e4b1d4e6 Mon Sep 17 00:00:00 2001 From: Mike Melanson Date: Sun, 6 Mar 2005 07:18:04 +0000 Subject: special-case time in order to support ALAC (when it gets imported from FFmpeg) CVS patchset: 7429 CVS date: 2005/03/06 07:18:04 --- src/demuxers/demux_qt.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/demuxers/demux_qt.c b/src/demuxers/demux_qt.c index 778a047ad..27b5ebacb 100644 --- a/src/demuxers/demux_qt.c +++ b/src/demuxers/demux_qt.c @@ -30,7 +30,7 @@ * build_frame_table * free_qt_info * - * $Id: demux_qt.c,v 1.199 2005/03/01 04:50:44 tmmm Exp $ + * $Id: demux_qt.c,v 1.200 2005/03/06 07:18:04 tmmm Exp $ * */ @@ -1172,8 +1172,16 @@ 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 == ALAC_FOURCC) + 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 */ + trak->stsd_atoms[k].audio.properties_atom_size = 36; + trak->stsd_atoms[k].audio.properties_atom = + xine_xmalloc(trak->stsd_atoms[k].audio.properties_atom_size); + memcpy(trak->stsd_atoms[k].audio.properties_atom, + &trak_atom[atom_pos + 0x20], + trak->stsd_atoms[k].audio.properties_atom_size); + } if (trak->stsd_atoms[k].audio.codec_fourcc == DRMS_FOURCC) { last_error = QT_DRM_NOT_SUPPORTED; -- cgit v1.2.3