# HG changeset patch # User rtognimp # Date 1112220607 0 # Node ID 17915d97622d3c0e31c053d977174b38972f3078 # Parent 0923dd27ddac6dd0e2137a4b150ce45c2ccc7bfe Fix alac from QTpro (in standard mov file, not in m4a file) Extradata is in a different place fixes samples/A-codecs/lossless/ALAC/alac.mov diff -r 0923dd27ddac -r 17915d97622d libmpdemux/demux_mov.c --- a/libmpdemux/demux_mov.c Wed Mar 30 20:34:47 2005 +0000 +++ b/libmpdemux/demux_mov.c Wed Mar 30 22:10:07 2005 +0000 @@ -950,8 +950,19 @@ int fcc=char2int(trak->stdata,48); // we have extra audio headers!!! printf("Audio extra header: len=%d fcc=0x%X\n",len,fcc); + if((len >= 4) && + (char2int(trak->stdata,52) >= 12) && + (char2int(trak->stdata,52+4) == MOV_FOURCC('f','r','m','a')) && + (char2int(trak->stdata,52+8) == MOV_FOURCC('a','l','a','c')) && + (len >= 36 + char2int(trak->stdata,52))) { + sh->codecdata_len = char2int(trak->stdata,52+char2int(trak->stdata,52)); + mp_msg(MSGT_DEMUX, MSGL_INFO, "MOV: Found alac atom (%d)!\n", sh->codecdata_len); + sh->codecdata = (unsigned char *)malloc(sh->codecdata_len); + memcpy(sh->codecdata, &trak->stdata[52+char2int(trak->stdata,52)], sh->codecdata_len); + } else { sh->codecdata_len = len-8; sh->codecdata = trak->stdata+44+8; + } } }