GNOME Bugzilla – Bug 580731
qtmux needs mapping for ALAC
Last modified: 2010-02-16 15:43:36 UTC
It would be nice if the qtmux element supported muxing ALAC audio
Found various test files for this combination here: http://samples.mplayerhq.hu/A-codecs/lossless/ALAC/
While trying to implement the feature I ran into some problems. First, ffenc_alac is not working (http://bugzilla.gnome.org/show_bug.cgi?id=581379). So I tried to remux .mov files with alac audio from the link Christian provided. The problem is that qtdemux gets some stuff under some point in the 'stsd' atom and puts in the caps as codec_data. Inspecting the file in the link, there are a lot of different stuff under the 'stsd' atom, depending on the version of the sound media description used. This way it gets difficult to fill in the stsd atom again in qtmux. So, in the ideal world, qtdemux should be able to parse the information correctly and put those into caps in separate fields (if suitable) and put only in codec_data what really belongs there (what would this be? someone knows?). ABI breakage has to be taken in consideration to update qtdemux to do this, one intermediary change is to parse the alac stsd correctly and add more info to the caps (if there is info that should be added), maintaining the actual codec_data as is, right? What alac decoders do we have currently? Only ffmpeg's one?
Situation seems to be as follows: * ffdec_alac expects 36 bytes as codec-data, the latter 28 being "real" codec-data, and the first 8 an 'alac' atom prefix (so 4 bytes size + 4 bytes fourcc). The atom prefix in there may not be ideal (gst-ish), but if that's the way it is (for now) ..., at least the prefix is easily recognizable * qtdemux does not do a very nice job of extracting the proper alac atom, commit mentioned below fixes that * ffenc_alac provides as codec-data what is described above, so it is feasible for qtmux (and co) to take this and put/wrap into proper locations (and possibly also detect whether or not is provided along with atom prefix). Another commit given below takes care of that. ---- commit d14685eb083270802459a73e569252bfeb4b40c6 Author: Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> Date: Tue Feb 16 16:22:28 2010 +0100 qtdemux: fix ALAC codec-data handling ALAC codec-data apparently comes in (at least) two flavours (mov, mp4), so use atom based parsing to retrieve required data, rather than aiming for a specific offset. See also #580731. commit eed915a6fb2fc2ff8b5d5524247acc5b7a51cce1 Author: Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> Date: Tue Feb 16 16:24:12 2010 +0100 qtmux: support for ALAC Fixes #580731.