ALSA: compress: add flac decoder params
authorVinod Koul <vkoul@kernel.org>
Fri, 15 Nov 2019 10:27:03 +0000 (15:57 +0530)
committerMark Brown <broonie@kernel.org>
Mon, 18 Nov 2019 13:02:25 +0000 (13:02 +0000)
The current design of sending codec parameters assumes that decoders
will have parsers so they can parse the encoded stream for parameters
and configure the decoder.

But this assumption may not be universally true and we know some DSPs
which do not contain the parsers so additional parameters are required
to be passed.

So add these parameters starting with FLAC decoder. The size of
snd_codec_options is still 120 bytes after this change (due to this
being a union)

Co-developed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Link: https://lore.kernel.org/r/20191115102705.649976-2-vkoul@kernel.org
Acked-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
include/uapi/sound/compress_params.h

index 3d4d6de66a17ea91b18cb0ed7d1ba93d1df7367c..9c96fb0e4d903d09023a0887058069576b81bc29 100644 (file)
@@ -317,12 +317,22 @@ struct snd_enc_generic {
        __s32 reserved[15];     /* Can be used for SND_AUDIOCODEC_BESPOKE */
 } __attribute__((packed, aligned(4)));
 
+struct snd_dec_flac {
+       __u16 sample_size;
+       __u16 min_blk_size;
+       __u16 max_blk_size;
+       __u16 min_frame_size;
+       __u16 max_frame_size;
+       __u16 reserved;
+} __attribute__((packed, aligned(4)));
+
 union snd_codec_options {
        struct snd_enc_wma wma;
        struct snd_enc_vorbis vorbis;
        struct snd_enc_real real;
        struct snd_enc_flac flac;
        struct snd_enc_generic generic;
+       struct snd_dec_flac flac_d;
 } __attribute__((packed, aligned(4)));
 
 /** struct snd_codec_desc - description of codec capabilities