summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Melanson <mike@multimedia.cx>2005-03-06 07:18:04 +0000
committerMike Melanson <mike@multimedia.cx>2005-03-06 07:18:04 +0000
commit165688f7f7edba241816df6e57b43df8e4b1d4e6 (patch)
treeb4e468fc91907a014f46007ff68f3968a22d4b06
parent5f7ace5152f4d3a1b173cacf171941fcd433bd72 (diff)
downloadxine-lib-165688f7f7edba241816df6e57b43df8e4b1d4e6.tar.gz
xine-lib-165688f7f7edba241816df6e57b43df8e4b1d4e6.tar.bz2
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
-rw-r--r--src/demuxers/demux_qt.c12
1 files 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;