playsink: Integrate bayer2rgb and dsdconvert
Following the discussions from the DSD merge request and this issue about DSD support, fundamental DSD support is in place. However, DSD bits can be grouped into different formats. For example, DSDU32LE groups bits into 32-bit words. (These are not sample formats! See GstDsdInfo for details about this.) If for example an ALSA device can handle DSDU32LE, but the incoming data has its bits grouped as DSDU16BE, then a conversion is needed, otherwise there is a not-negotiated error.
The dsdconvert
element uses gst_dsd_convert to take care of this conversion. However, it needs to be integrated into playsink. Once that is done, DSD is fully covered by playbin and playsink - autoplugging would insert DSF / DFF parsers, and would detect if the downstream audio sink can handle DSD or not, inserting DSD->PCM elements if necessary. And, in case of hardware that can directly handle DSD, it would convert between grouping formats (DSDU8, DSDU32LE etc.) as needed.
Also, similarly, Bayer -> RGB conversion is needed to be able to fully support Bayer graphics out of the box. The bayer2rgb
element needs to be integrated into playsink
for this purpose.