[alsa-devel] [PATCH] ALSA: Add definitions for CEA-861 Audio InfoFrames

Takashi Iwai tiwai at suse.de
Wed Apr 18 08:09:12 CEST 2012


At Tue, 17 Apr 2012 19:46:11 -0500,
Ricardo Neri wrote:
> 
> Along with the IEC-60958 channel status word, CEA-861 Audio InfoFrames
> are used in HDMI and DisplayPort to describe the parameters of the audio
> stream. Hence, drivers for such devices may use these definitions to, for
> instance, fill a CEA-861 data structure and pass it to a display driver
> to configure an IP.
> 
> Signed-off-by: Ricardo Neri <ricardo.neri at ti.com>

Thanks, applied to topic/cea861-audio branch in sound git tree.

If ASoC commits need this, just pull that branch.  It's freshly
branched from 3.4-rc1 just containing this.


Takashi

> ---
>  include/sound/asound.h   |   14 ++++++++++++++
>  include/sound/asoundef.h |   41 +++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 55 insertions(+), 0 deletions(-)
> 
> diff --git a/include/sound/asound.h b/include/sound/asound.h
> index a2e4ff5..0876a1e 100644
> --- a/include/sound/asound.h
> +++ b/include/sound/asound.h
> @@ -70,6 +70,20 @@ struct snd_aes_iec958 {
>  
>  /****************************************************************************
>   *                                                                          *
> + *        CEA-861 Audio InfoFrame. Used in HDMI and DisplayPort		    *
> + *                                                                          *
> + ****************************************************************************/
> +
> +struct snd_cea_861_aud_if {
> +	unsigned char db1_ct_cc; /* coding type and channel count */
> +	unsigned char db2_sf_ss; /* sample frequency and size */
> +	unsigned char db3; /* not used, all zeros */
> +	unsigned char db4_ca; /* channel allocation code */
> +	unsigned char db5_dminh_lsv; /* downmix inhibit & level-shit values */
> +};
> +
> +/****************************************************************************
> + *                                                                          *
>   *      Section for driver hardware dependent interface - /dev/snd/hw?      *
>   *                                                                          *
>   ****************************************************************************/
> diff --git a/include/sound/asoundef.h b/include/sound/asoundef.h
> index 20ebf32..bb05c02 100644
> --- a/include/sound/asoundef.h
> +++ b/include/sound/asoundef.h
> @@ -170,6 +170,47 @@
>  #define IEC958_AES5_CON_CGMSA_COPYNOMORE (2<<0)	/* condition not be used */
>  #define IEC958_AES5_CON_CGMSA_COPYNEVER	(3<<0)	/* no copying is permitted */
>  
> +/****************************************************************************
> + *                                                                          *
> + *        CEA-861 Audio InfoFrame. Used in HDMI and DisplayPort		    *
> + *                                                                          *
> + ****************************************************************************/
> +#define CEA861_AUDIO_INFOFRAME_DB1CC		(7<<0) /* mask - channel count */
> +#define CEA861_AUDIO_INFOFRAME_DB1CT		(0xf<<4) /* mask - coding type */
> +#define CEA861_AUDIO_INFOFRAME_DB1CT_FROM_STREAM (0<<4) /* refer to stream */
> +#define CEA861_AUDIO_INFOFRAME_DB1CT_IEC60958	(1<<4) /* IEC-60958 L-PCM */
> +#define CEA861_AUDIO_INFOFRAME_DB1CT_AC3	(2<<4) /* AC-3 */
> +#define CEA861_AUDIO_INFOFRAME_DB1CT_MPEG1	(3<<4) /* MPEG1 Layers 1 & 2 */
> +#define CEA861_AUDIO_INFOFRAME_DB1CT_MP3	(4<<4) /* MPEG1 Layer 3 */
> +#define CEA861_AUDIO_INFOFRAME_DB1CT_MPEG2_MULTICH (5<<4) /* MPEG2 Multichannel */
> +#define CEA861_AUDIO_INFOFRAME_DB1CT_AAC	(6<<4) /* AAC */
> +#define CEA861_AUDIO_INFOFRAME_DB1CT_DTS	(7<<4) /* DTS */
> +#define CEA861_AUDIO_INFOFRAME_DB1CT_ATRAC	(8<<4) /* ATRAC */
> +#define CEA861_AUDIO_INFOFRAME_DB1CT_ONEBIT	(9<<4) /* One Bit Audio */
> +#define CEA861_AUDIO_INFOFRAME_DB1CT_DOLBY_DIG_PLUS (10<<4) /* Dolby Digital + */
> +#define CEA861_AUDIO_INFOFRAME_DB1CT_DTS_HD	(11<<4) /* DTS-HD */
> +#define CEA861_AUDIO_INFOFRAME_DB1CT_MAT	(12<<4) /* MAT (MLP) */
> +#define CEA861_AUDIO_INFOFRAME_DB1CT_DST	(13<<4) /* DST */
> +#define CEA861_AUDIO_INFOFRAME_DB1CT_WMA_PRO	(14<<4) /* WMA Pro */
> +#define CEA861_AUDIO_INFOFRAME_DB2SF		(7<<2) /* mask - sample frequency */
> +#define CEA861_AUDIO_INFOFRAME_DB2SF_FROM_STREAM (0<<2) /* refer to stream */
> +#define CEA861_AUDIO_INFOFRAME_DB2SF_32000	(1<<2) /* 32kHz */
> +#define CEA861_AUDIO_INFOFRAME_DB2SF_44100	(2<<2) /* 44.1kHz */
> +#define CEA861_AUDIO_INFOFRAME_DB2SF_48000	(3<<2) /* 48kHz */
> +#define CEA861_AUDIO_INFOFRAME_DB2SF_88200	(4<<2) /* 88.2kHz */
> +#define CEA861_AUDIO_INFOFRAME_DB2SF_96000	(5<<2) /* 96kHz */
> +#define CEA861_AUDIO_INFOFRAME_DB2SF_176400	(6<<2) /* 176.4kHz */
> +#define CEA861_AUDIO_INFOFRAME_DB2SF_192000	(7<<2) /* 192kHz */
> +#define CEA861_AUDIO_INFOFRAME_DB2SS		(3<<0) /* mask - sample size */
> +#define CEA861_AUDIO_INFOFRAME_DB2SS_FROM_STREAM (0<<0) /* refer to stream */
> +#define CEA861_AUDIO_INFOFRAME_DB2SS_16BIT	(1<<0) /* 16 bits */
> +#define CEA861_AUDIO_INFOFRAME_DB2SS_20BIT	(2<<0) /* 20 bits */
> +#define CEA861_AUDIO_INFOFRAME_DB2SS_24BIT	(3<<0) /* 24 bits */
> +#define CEA861_AUDIO_INFOFRAME_DB5_DM_INH	(1<<7) /* mask - inhibit downmixing */
> +#define CEA861_AUDIO_INFOFRAME_DB5_DM_INH_PERMITTED (0<<7) /* stereo downmix permitted */
> +#define CEA861_AUDIO_INFOFRAME_DB5_DM_INH_PROHIBITED (1<<7) /* stereo downmis prohibited */
> +#define CEA861_AUDIO_INFOFRAME_DB5_LSV		(0xf<<3) /* mask - level-shift values */
> +
>  /*****************************************************************************
>   *                                                                           *
>   *                            MIDI v1.0 interface                            *
> -- 
> 1.7.5.4
> 


More information about the Alsa-devel mailing list