GNOME Bugzilla – Bug 644208
dcaparse: add depth and endianness to dts caps to allow elements to negotiate on these certain stream format requirements
Last modified: 2014-12-12 07:58:46 UTC
this is my scenario: i have a hardware sink which is able to only decode DTS in raw big endian format. no 14bit and no little endian are supported. now there's dcaparse which would technically be able to do all the necessary transformations to the bitstream, however there is no way how dcaparse and the sink could negotiate on the stream details because CAPS don't support this level of depth yet. ultimately this means that with the current means, i'd have to duplicate code from dcaparse and copy it into our dts-aware sink (dvbaudiosink). this is actually a real-life issue and not just academic since dts-audio cds, SACDs and audio dvds are usually ripped to wav containers which carry the 14bit LE DTS streams.
You could add this as new fields to the caps in dcaparse. In gst_dca_parse_parse_header() the requiremed information should all be available and in gst_dca_parse_parse_frame() the caps are generated if none were set yet or they changed. Want to make a patch? :)
commit 48e8c093dc322aa0962b1245b8668df27ff1357c Author: Sebastian Dröge <sebastian.droege@collabora.co.uk> Date: Mon Mar 14 18:25:25 2011 +0100 dcaparse: Add depth and endianness to the caps Some decoders can only handle specific endianness or a fixed depth and this allows better negotiation. Fixes bug #644208.
PS: please file a new bug if you also want dcaparse to convert from one format to the other (or at least 14-bit -> 16-bit) thanks!