After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 580731 - qtmux needs mapping for ALAC
qtmux needs mapping for ALAC
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
0.10.x
Other Linux
: Normal enhancement
: 0.10.18
Assigned To: Thiago Sousa Santos
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2009-04-29 11:14 UTC by Christian Fredrik Kalager Schaller
Modified: 2010-02-16 15:43 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Christian Fredrik Kalager Schaller 2009-04-29 11:14:52 UTC
It would be nice if the qtmux element supported muxing ALAC audio
Comment 1 Christian Fredrik Kalager Schaller 2009-05-04 11:28:17 UTC
Found various test files for this combination here:
http://samples.mplayerhq.hu/A-codecs/lossless/ALAC/
Comment 2 Thiago Sousa Santos 2009-05-05 17:00:17 UTC
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?

Comment 3 Mark Nauwelaerts 2010-02-16 15:43:36 UTC
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.