avdtp: define events for MPEG Audio, MPEG AAC, ATRAC capabilities and configuration

This commit is contained in:
Matthias Ringwald 2020-12-14 18:22:47 +01:00
parent 608f51bbab
commit 930efd2767
3 changed files with 1572 additions and 74 deletions

View File

@ -1774,6 +1774,51 @@ typedef uint8_t sm_key_t[16];
*/ */
#define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 0x07 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 0x07
/**
* @format 12111111112
* @param subevent_code
* @param avdtp_cid
* @param remote_seid
* @param media_type
* @param layer_bitmap
* @param crc
* @param channel_mode_bitmap
* @param media_payload_format
* @param sampling_frequency_bitmap
* @param vbr
* @param bit_rate_index_bitmap
*/
#define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CAPABILITY 0x08
/**
* @format 121112131
* @param subevent_code
* @param avdtp_cid
* @param remote_seid
* @param media_type
* @param object_type_bitmap
* @param sampling_frequency_bitmap
* @param channels_bitmap
* @param bit_rate
* @param vbr
*/
#define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CAPABILITY 0x09
/**
* @format 1211111132
* @param subevent_code
* @param avdtp_cid
* @param remote_seid
* @param media_type
* @param version
* @param channel_mode_bitmap
* @param sampling_frequency_bitmap
* @param vbr
* @param bit_rate_index_bitmap
* @param maximum_sul
*/
#define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CAPABILITY 0x0A
/** /**
* @format 12112LV * @format 12112LV
* @param subevent_code * @param subevent_code
@ -1784,7 +1829,7 @@ typedef uint8_t sm_key_t[16];
* @param media_codec_information_len * @param media_codec_information_len
* @param media_codec_information * @param media_codec_information
*/ */
#define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x08 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x0B
/** /**
@ -1793,7 +1838,7 @@ typedef uint8_t sm_key_t[16];
* @param avdtp_cid * @param avdtp_cid
* @param remote_seid * @param remote_seid
*/ */
#define AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY 0x09 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY 0x0C
/** /**
@ -1802,7 +1847,7 @@ typedef uint8_t sm_key_t[16];
* @param avdtp_cid * @param avdtp_cid
* @param remote_seid * @param remote_seid
*/ */
#define AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY 0x0A #define AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY 0x0D
/** /**
@ -1814,7 +1859,7 @@ typedef uint8_t sm_key_t[16];
* @param maximum_recovery_window_size * @param maximum_recovery_window_size
* @param maximum_number_media_packets * @param maximum_number_media_packets
*/ */
#define AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 0x0B #define AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 0x0E
/** /**
@ -1826,7 +1871,7 @@ typedef uint8_t sm_key_t[16];
* @param cp_type_value_len * @param cp_type_value_len
* @param cp_type_value * @param cp_type_value
*/ */
#define AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 0x0C #define AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 0x0F
/** /**
@ -1843,7 +1888,7 @@ typedef uint8_t sm_key_t[16];
* @param tcid_2 * @param tcid_2
* @param tcid_3 * @param tcid_3
*/ */
#define AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 0x0D #define AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 0x10
/** /**
@ -1852,7 +1897,7 @@ typedef uint8_t sm_key_t[16];
* @param avdtp_cid * @param avdtp_cid
* @param remote_seid * @param remote_seid
*/ */
#define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x0E #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x11
/** /**
@ -1864,7 +1909,15 @@ typedef uint8_t sm_key_t[16];
* @param media * @param media
* @param recovery * @param recovery
*/ */
#define AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 0x0F #define AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 0x12
/**
* @format 121
* @param subevent_code
* @param avdtp_cid
* @param remote_seid
*/
#define AVDTP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x13
/** /**
@ -1884,7 +1937,60 @@ typedef uint8_t sm_key_t[16];
* @param min_bitpool_value * @param min_bitpool_value
* @param max_bitpool_value * @param max_bitpool_value
*/ */
#define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x10 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x14
/**
* @format 12111111111211
* @param subevent_code
* @param avdtp_cid
* @param local_seid
* @param remote_seid
* @param reconfigure
* @param media_type
* @param layer
* @param crc
* @param channel_mode
* @param num_channels
* @param media_payload_format
* @param sampling_frequency
* @param vbr
* @param bit_rate_index
*/
#define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CONFIGURATION 0x15
/**
* @format 12111113111
* @param subevent_code
* @param avdtp_cid
* @param local_seid
* @param remote_seid
* @param reconfigure
* @param media_type
* @param object_type
* @param sampling_frequency
* @param num_channels
* @param bit_rate
* @param vbr
*/
#define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CONFIGURATION 0x16
/**
* @format 1211111112112
* @param subevent_code
* @param avdtp_cid
* @param local_seid
* @param remote_seid
* @param reconfigure
* @param media_type
* @param version
* @param channel_mode
* @param num_channels
* @param sampling_frequency
* @param vbr
* @param bit_rate_index
* @param maximum_sul
*/
#define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CONFIGURATION 0x17
/** /**
* @format 1211112LV * @format 1211112LV
@ -1898,7 +2004,7 @@ typedef uint8_t sm_key_t[16];
* @param media_codec_information_len * @param media_codec_information_len
* @param media_codec_information * @param media_codec_information
*/ */
#define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x11 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x18
/** /**
* @format 12B111 * @format 12B111
@ -1909,7 +2015,7 @@ typedef uint8_t sm_key_t[16];
* @param remote_seid * @param remote_seid
* @param status 0 == OK * @param status 0 == OK
*/ */
#define AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED 0x12 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED 0x19
/** /**
* @format 121 * @format 121
@ -1917,7 +2023,7 @@ typedef uint8_t sm_key_t[16];
* @param avdtp_cid * @param avdtp_cid
* @param local_seid * @param local_seid
*/ */
#define AVDTP_SUBEVENT_STREAMING_CONNECTION_RELEASED 0x13 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_RELEASED 0x1A
/** /**
* @format 1212 * @format 1212
@ -1926,15 +2032,7 @@ typedef uint8_t sm_key_t[16];
* @param local_seid * @param local_seid
* @param sequence_number * @param sequence_number
*/ */
#define AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x14 #define AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x1B
/**
* @format 121
* @param subevent_code
* @param avdtp_cid
* @param remote_seid
*/
#define AVDTP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x15
/** /**
@ -1942,7 +2040,7 @@ typedef uint8_t sm_key_t[16];
* @param subevent_code * @param subevent_code
* @param avdtp_cid * @param avdtp_cid
*/ */
#define AVDTP_SUBEVENT_SIGNALING_SEP_DICOVERY_DONE 0x16 #define AVDTP_SUBEVENT_SIGNALING_SEP_DICOVERY_DONE 0x1C
/** /**
* @format 1212 * @format 1212
@ -1951,7 +2049,8 @@ typedef uint8_t sm_key_t[16];
* @param local_seid * @param local_seid
* @param delay_100us * @param delay_100us
*/ */
#define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORT 0x17 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORT 0x1D
/** A2DP Subevent */ /** A2DP Subevent */
/* Stream goes through following states: /* Stream goes through following states:
@ -1992,6 +2091,56 @@ typedef uint8_t sm_key_t[16];
*/ */
#define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x02 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x02
/**
* @format 1211111111211
* @param subevent_code
* @param avdtp_cid
* @param remote_seid
* @param reconfigure
* @param media_type
* @param layer
* @param crc
* @param channel_mode
* @param num_channels
* @param media_payload_format
* @param sampling_frequency
* @param vbr
* @param bit_rate_index
*/
#define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CONFIGURATION 0x03
/**
* @format 1211113111
* @param subevent_code
* @param avdtp_cid
* @param remote_seid
* @param reconfigure
* @param media_type
* @param object_type
* @param sampling_frequency
* @param num_channels
* @param bit_rate
* @param vbr
*/
#define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CONFIGURATION 0x04
/**
* @format 121111112112
* @param subevent_code
* @param avdtp_cid
* @param remote_seid
* @param reconfigure
* @param media_type
* @param version
* @param channel_mode
* @param num_channels
* @param sampling_frequency
* @param vbr
* @param bit_rate_index
* @param maximum_sul
*/
#define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CONFIGURATION 0x05
/** /**
* @format 1211112LV * @format 1211112LV
* @param subevent_code * @param subevent_code
@ -2004,7 +2153,7 @@ typedef uint8_t sm_key_t[16];
* @param media_codec_information_len * @param media_codec_information_len
* @param media_codec_information * @param media_codec_information
*/ */
#define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x03 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x06
/** /**
* @format 12B111 Stream is opened byt not started. * @format 12B111 Stream is opened byt not started.
@ -2015,7 +2164,7 @@ typedef uint8_t sm_key_t[16];
* @param remote_seid * @param remote_seid
* @param status * @param status
*/ */
#define A2DP_SUBEVENT_STREAM_ESTABLISHED 0x04 #define A2DP_SUBEVENT_STREAM_ESTABLISHED 0x07
/** /**
* @format 121 Indicates that media transfer is started. * @format 121 Indicates that media transfer is started.
@ -2023,7 +2172,7 @@ typedef uint8_t sm_key_t[16];
* @param a2dp_cid * @param a2dp_cid
* @param local_seid * @param local_seid
*/ */
#define A2DP_SUBEVENT_STREAM_STARTED 0x05 #define A2DP_SUBEVENT_STREAM_STARTED 0x08
/** /**
* @format 121 Stream is paused. * @format 121 Stream is paused.
@ -2031,7 +2180,7 @@ typedef uint8_t sm_key_t[16];
* @param a2dp_cid * @param a2dp_cid
* @param local_seid * @param local_seid
*/ */
#define A2DP_SUBEVENT_STREAM_SUSPENDED 0x06 #define A2DP_SUBEVENT_STREAM_SUSPENDED 0x09
/** /**
* @format 121 Stream is stoped or aborted. * @format 121 Stream is stoped or aborted.
@ -2039,7 +2188,7 @@ typedef uint8_t sm_key_t[16];
* @param a2dp_cid * @param a2dp_cid
* @param local_seid * @param local_seid
*/ */
#define A2DP_SUBEVENT_STREAM_STOPPED 0x07 #define A2DP_SUBEVENT_STREAM_STOPPED 0x0A
/** /**
* @format 121 Stream is released. * @format 121 Stream is released.
@ -2047,7 +2196,7 @@ typedef uint8_t sm_key_t[16];
* @param a2dp_cid * @param a2dp_cid
* @param local_seid * @param local_seid
*/ */
#define A2DP_SUBEVENT_STREAM_RELEASED 0x08 #define A2DP_SUBEVENT_STREAM_RELEASED 0x0B
/** /**
* @format 1211 * @format 1211
@ -2056,7 +2205,7 @@ typedef uint8_t sm_key_t[16];
* @param local_seid * @param local_seid
* @param signal_identifier * @param signal_identifier
*/ */
#define A2DP_SUBEVENT_COMMAND_ACCEPTED 0x09 #define A2DP_SUBEVENT_COMMAND_ACCEPTED 0x0C
/** /**
* @format 1211 * @format 1211
@ -2065,7 +2214,7 @@ typedef uint8_t sm_key_t[16];
* @param local_seid * @param local_seid
* @param signal_identifier * @param signal_identifier
*/ */
#define A2DP_SUBEVENT_COMMAND_REJECTED 0x0A #define A2DP_SUBEVENT_COMMAND_REJECTED 0x0D
/** /**
* @format 12B21 * @format 12B21
@ -2075,14 +2224,14 @@ typedef uint8_t sm_key_t[16];
* @param con_handle * @param con_handle
* @param status 0 == OK * @param status 0 == OK
*/ */
#define A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x0B #define A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x0E
/** /**
* @format 12 Signaling channel is released. * @format 12 Signaling channel is released.
* @param subevent_code * @param subevent_code
* @param a2dp_cid * @param a2dp_cid
*/ */
#define A2DP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x0C #define A2DP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x0F
/** /**
* @format 1211 Stream was reconfigured * @format 1211 Stream was reconfigured
@ -2091,7 +2240,80 @@ typedef uint8_t sm_key_t[16];
* @param local_seid * @param local_seid
* @param status * @param status
*/ */
#define A2DP_SUBEVENT_STREAM_RECONFIGURED 0x0D #define A2DP_SUBEVENT_STREAM_RECONFIGURED 0x10
/**
* @format 12111111111
* @param subevent_code
* @param avdtp_cid
* @param remote_seid
* @param media_type
* @param sampling_frequency_bitmap
* @param channel_mode_bitmap
* @param block_length_bitmap
* @param subbands_bitmap
* @param allocation_method_bitmap
* @param min_bitpool_value
* @param max_bitpool_value
*/
#define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 0x11
/**
* @format 12111111112
* @param subevent_code
* @param avdtp_cid
* @param remote_seid
* @param media_type
* @param layer_bitmap
* @param crc
* @param channel_mode_bitmap
* @param media_payload_format
* @param sampling_frequency_bitmap
* @param vbr
* @param bit_rate_index_bitmap
*/
#define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CAPABILITY 0x12
/**
* @format 121112111
* @param subevent_code
* @param avdtp_cid
* @param remote_seid
* @param media_type
* @param object_type_bitmap
* @param sampling_frequency_bitmap
* @param channels_bitmap
* @param bit_rate
* @param vbr
*/
#define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CAPABILITY 0x13
/**
* @format 1211111132
* @param subevent_code
* @param avdtp_cid
* @param remote_seid
* @param media_type
* @param version
* @param channel_mode_bitmap
* @param sampling_frequency_bitmap
* @param vbr
* @param bit_rate_index_bitmap
* @param maximum_sul
*/
#define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CAPABILITY 0x14
/**
* @format 12112LV
* @param subevent_code
* @param avdtp_cid
* @param remote_seid
* @param media_type
* @param media_codec_type
* @param media_codec_information_len
* @param media_codec_information
*/
#define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x15
/** /**
* @format 1211 * @format 1211
@ -2100,7 +2322,7 @@ typedef uint8_t sm_key_t[16];
* @param local_seid * @param local_seid
* @param remote_seid * @param remote_seid
*/ */
#define A2DP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x0E #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x16
/** /**
@ -2110,16 +2332,23 @@ typedef uint8_t sm_key_t[16];
* @param local_seid * @param local_seid
* @param delay_100us * @param delay_100us
*/ */
#define A2DP_SUBEVENT_SIGNALING_DELAY_REPORT 0x0F #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORT 0x17
/** /**
* @format 1211 * @format 121
* @param subevent_code * @param subevent_code
* @param avdtp_cid * @param avdtp_cid
* @param local_seid
* @param remote_seid * @param remote_seid
*/ */
#define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x10 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x18
/**
* @format 12
* @param subevent_code
* @param avdtp_cid
*/
#define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_COMPLETE 0x19
/** AVRCP Subevent */ /** AVRCP Subevent */

File diff suppressed because it is too large Load Diff

View File

@ -256,12 +256,33 @@ typedef struct {
uint8_t num_frames; uint8_t num_frames;
} avdtp_sbc_codec_header_t; } avdtp_sbc_codec_header_t;
// typedef struct { typedef enum {
// uint8_t transaction_label; AVDTP_MPEG_LAYER_1 = 1,
// avdtp_packet_type_t packet_type; AVDTP_MPEG_LAYER_2,
// avdtp_message_type_t message_type; AVDTP_MPEG_LAYER_3,
// uint8_t signal_identifier; } avdtp_mpeg_layer_t;
// } avdtp_signaling_packet_header_t;
typedef enum {
AVDTP_AAC_MPEG2_LC = 1,
AVDTP_AAC_MPEG4_LC,
AVDTP_AAC_MPEG4_LTP,
AVDTP_AAC_MPEG4_SCALABLE
} avdtp_aac_object_type_t;
typedef enum {
AVDTP_ATRAC_VERSION_1 = 1,
AVDTP_ATRAC_VERSION_2,
AVDTP_ATRAC_VERSION_3
} avdtp_atrac_version_t;
// used for MPEG1/2 Audio, ATRAC (no stereo mode)
typedef enum {
AVDTP_CHANNEL_MODE_MONO = 1,
AVDTP_CHANNEL_MODE_DUAL_CHANNEL,
AVDTP_CHANNEL_MODE_STEREO,
AVDTP_CHANNEL_MODE_JOINT_STEREO,
} avdtp_channel_mode_t;
typedef struct { typedef struct {
uint8_t version; uint8_t version;