mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2026-02-05 04:06:37 -05:00
milan-avb: using pull and frequency as a union
This commit is contained in:
parent
e7f1a8f55d
commit
f70fc7ea28
3 changed files with 21 additions and 8 deletions
|
|
@ -94,7 +94,12 @@ struct avb_aem_desc_configuration {
|
|||
struct avb_aem_desc_descriptor_count descriptor_counts[0];
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
struct avb_aem_desc_sampling_rate {
|
||||
|
||||
union avb_aem_desc_sampling_rate {
|
||||
struct {
|
||||
uint32_t frequency:29;
|
||||
uint32_t pull:3;
|
||||
};
|
||||
uint32_t pull_frequency;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
|
|
@ -134,10 +139,10 @@ struct avb_aem_desc_audio_unit {
|
|||
uint16_t base_transcoder;
|
||||
uint16_t number_of_control_blocks;
|
||||
uint16_t base_control_block;
|
||||
uint32_t current_sampling_rate;
|
||||
union avb_aem_desc_sampling_rate current_sampling_rate;
|
||||
uint16_t sampling_rates_offset;
|
||||
uint16_t sampling_rates_count;
|
||||
struct avb_aem_desc_sampling_rate sampling_rates[0];
|
||||
union avb_aem_desc_sampling_rate sampling_rates[0];
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
/* IEEE 1722.1-2021, Table 7-28 - AUDIO_CLUSTER format values */
|
||||
|
|
|
|||
|
|
@ -104,10 +104,18 @@ struct avb_packet_aecp_aem_setget_association_id {
|
|||
uint64_t association_id;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
union avb_packet_aecp_aem_pull_frequency {
|
||||
struct {
|
||||
uint32_t frequency:29;
|
||||
uint32_t pull:3;
|
||||
};
|
||||
uint32_t pull_frequency;
|
||||
}__attribute__ ((__packed__));
|
||||
|
||||
struct avb_packet_aecp_aem_setget_sampling_rate {
|
||||
uint16_t descriptor_type;
|
||||
uint16_t descriptor_id;
|
||||
uint32_t sampling_rate;
|
||||
union avb_packet_aecp_aem_pull_frequency sampling_rate;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
struct avb_packet_aecp_aem_setget_clock_source {
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ static void init_descriptor_legacy_avb(struct server *server)
|
|||
|
||||
struct {
|
||||
struct avb_aem_desc_audio_unit desc;
|
||||
struct avb_aem_desc_sampling_rate sampling_rates[6];
|
||||
union avb_aem_desc_sampling_rate sampling_rates[6];
|
||||
} __attribute__ ((__packed__)) audio_unit =
|
||||
{
|
||||
{
|
||||
|
|
@ -133,7 +133,7 @@ static void init_descriptor_legacy_avb(struct server *server)
|
|||
.base_transcoder = htons(0),
|
||||
.number_of_control_blocks = htons(0),
|
||||
.base_control_block = htons(0),
|
||||
.current_sampling_rate = htonl(48000),
|
||||
.current_sampling_rate.pull_frequency = htonl(48000),
|
||||
.sampling_rates_offset = htons(
|
||||
4 + sizeof(struct avb_aem_desc_audio_unit)),
|
||||
.sampling_rates_count = htons(6),
|
||||
|
|
@ -541,7 +541,7 @@ static void init_descriptor_milan_v12(struct server *server)
|
|||
|
||||
struct {
|
||||
struct avb_aem_desc_audio_unit desc;
|
||||
struct avb_aem_desc_sampling_rate sampling_rates[DSC_AUDIO_UNIT_SUPPORTED_SAMPLING_RATE_COUNT];
|
||||
union avb_aem_desc_sampling_rate sampling_rates[DSC_AUDIO_UNIT_SUPPORTED_SAMPLING_RATE_COUNT];
|
||||
} __attribute__ ((__packed__)) audio_unit =
|
||||
{
|
||||
{
|
||||
|
|
@ -580,7 +580,7 @@ static void init_descriptor_milan_v12(struct server *server)
|
|||
.base_transcoder = htons(DSC_AUDIO_UNIT_BASE_TRANSCODER),
|
||||
.number_of_control_blocks = htons(DSC_AUDIO_UNIT_NUMBER_OF_CONTROL_BLOCKS),
|
||||
.base_control_block = htons(DSC_AUDIO_UNIT_BASE_CONTROL_BLOCK),
|
||||
.current_sampling_rate = htonl(DSC_AUDIO_UNIT_CURRENT_SAMPLING_RATE_IN_HZ),
|
||||
.current_sampling_rate.pull_frequency = htonl(DSC_AUDIO_UNIT_CURRENT_SAMPLING_RATE_IN_HZ),
|
||||
.sampling_rates_offset = htons(DSC_AUDIO_UNIT_SAMPLING_RATES_OFFSET),
|
||||
.sampling_rates_count = htons(DSC_AUDIO_UNIT_SUPPORTED_SAMPLING_RATE_COUNT),
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue