1 /* 2 * Copyright (C) 2020 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #pragma once 18 19 #include <limits> 20 #include <type_traits> 21 22 #include <system/audio.h> 23 24 #include <android/media/AudioAttributesInternal.h> 25 #include <android/media/AudioClient.h> 26 #include <android/media/AudioConfig.h> 27 #include <android/media/AudioConfigBase.h> 28 #include <android/media/AudioDualMonoMode.h> 29 #include <android/media/AudioEncapsulationMode.h> 30 #include <android/media/AudioEncapsulationMetadataType.h> 31 #include <android/media/AudioEncapsulationType.h> 32 #include <android/media/AudioFlag.h> 33 #include <android/media/AudioGain.h> 34 #include <android/media/AudioGainMode.h> 35 #include <android/media/AudioInputFlags.h> 36 #include <android/media/AudioIoConfigEvent.h> 37 #include <android/media/AudioIoDescriptor.h> 38 #include <android/media/AudioMixLatencyClass.h> 39 #include <android/media/AudioMode.h> 40 #include <android/media/AudioOutputFlags.h> 41 #include <android/media/AudioPlaybackRate.h> 42 #include <android/media/AudioPort.h> 43 #include <android/media/AudioPortConfigType.h> 44 #include <android/media/AudioPortDeviceExt.h> 45 #include <android/media/AudioPortExt.h> 46 #include <android/media/AudioPortMixExt.h> 47 #include <android/media/AudioPortSessionExt.h> 48 #include <android/media/AudioProfile.h> 49 #include <android/media/AudioTimestampInternal.h> 50 #include <android/media/AudioUniqueIdUse.h> 51 #include <android/media/EffectDescriptor.h> 52 #include <android/media/ExtraAudioDescriptor.h> 53 #include <android/media/TrackSecondaryOutputInfo.h> 54 55 #include <android/media/SharedFileRegion.h> 56 #include <binder/IMemory.h> 57 #include <media/AidlConversionUtil.h> 58 #include <media/AudioClient.h> 59 #include <media/AudioCommonTypes.h> 60 #include <media/AudioIoDescriptor.h> 61 #include <media/AudioTimestamp.h> 62 #include <system/audio_effect.h> 63 64 namespace android { 65 66 // maxSize is the size of the C-string buffer (including the 0-terminator), NOT the max length of 67 // the string. 68 status_t aidl2legacy_string(std::string_view aidl, char* dest, size_t maxSize); 69 ConversionResult<std::string> legacy2aidl_string(const char* legacy, size_t maxSize); 70 71 ConversionResult<audio_module_handle_t> aidl2legacy_int32_t_audio_module_handle_t(int32_t aidl); 72 ConversionResult<int32_t> legacy2aidl_audio_module_handle_t_int32_t(audio_module_handle_t legacy); 73 74 ConversionResult<audio_io_handle_t> aidl2legacy_int32_t_audio_io_handle_t(int32_t aidl); 75 ConversionResult<int32_t> legacy2aidl_audio_io_handle_t_int32_t(audio_io_handle_t legacy); 76 77 ConversionResult<audio_port_handle_t> aidl2legacy_int32_t_audio_port_handle_t(int32_t aidl); 78 ConversionResult<int32_t> legacy2aidl_audio_port_handle_t_int32_t(audio_port_handle_t legacy); 79 80 ConversionResult<audio_patch_handle_t> aidl2legacy_int32_t_audio_patch_handle_t(int32_t aidl); 81 ConversionResult<int32_t> legacy2aidl_audio_patch_handle_t_int32_t(audio_patch_handle_t legacy); 82 83 ConversionResult<audio_unique_id_t> aidl2legacy_int32_t_audio_unique_id_t(int32_t aidl); 84 ConversionResult<int32_t> legacy2aidl_audio_unique_id_t_int32_t(audio_unique_id_t legacy); 85 86 ConversionResult<audio_hw_sync_t> aidl2legacy_int32_t_audio_hw_sync_t(int32_t aidl); 87 ConversionResult<int32_t> legacy2aidl_audio_hw_sync_t_int32_t(audio_hw_sync_t legacy); 88 89 // The legacy enum is unnamed. Thus, we use int32_t. 90 ConversionResult<int32_t> aidl2legacy_AudioPortConfigType_int32_t( 91 media::AudioPortConfigType aidl); 92 // The legacy enum is unnamed. Thus, we use int32_t. 93 ConversionResult<media::AudioPortConfigType> legacy2aidl_int32_t_AudioPortConfigType( 94 int32_t legacy); 95 96 ConversionResult<unsigned int> aidl2legacy_int32_t_config_mask(int32_t aidl); 97 ConversionResult<int32_t> legacy2aidl_config_mask_int32_t(unsigned int legacy); 98 99 ConversionResult<audio_channel_mask_t> aidl2legacy_int32_t_audio_channel_mask_t(int32_t aidl); 100 ConversionResult<int32_t> legacy2aidl_audio_channel_mask_t_int32_t(audio_channel_mask_t legacy); 101 102 ConversionResult<pid_t> aidl2legacy_int32_t_pid_t(int32_t aidl); 103 ConversionResult<int32_t> legacy2aidl_pid_t_int32_t(pid_t legacy); 104 105 ConversionResult<uid_t> aidl2legacy_int32_t_uid_t(int32_t aidl); 106 ConversionResult<int32_t> legacy2aidl_uid_t_int32_t(uid_t legacy); 107 108 ConversionResult<String8> aidl2legacy_string_view_String8(std::string_view aidl); 109 ConversionResult<std::string> legacy2aidl_String8_string(const String8& legacy); 110 111 ConversionResult<String16> aidl2legacy_string_view_String16(std::string_view aidl); 112 ConversionResult<std::string> legacy2aidl_String16_string(const String16& legacy); 113 114 ConversionResult<std::optional<String16>> 115 aidl2legacy_optional_string_view_optional_String16(std::optional<std::string_view> aidl); 116 ConversionResult<std::optional<std::string_view>> 117 legacy2aidl_optional_String16_optional_string(std::optional<String16> legacy); 118 119 ConversionResult<audio_io_config_event> aidl2legacy_AudioIoConfigEvent_audio_io_config_event( 120 media::AudioIoConfigEvent aidl); 121 ConversionResult<media::AudioIoConfigEvent> legacy2aidl_audio_io_config_event_AudioIoConfigEvent( 122 audio_io_config_event legacy); 123 124 ConversionResult<audio_port_role_t> aidl2legacy_AudioPortRole_audio_port_role_t( 125 media::AudioPortRole aidl); 126 ConversionResult<media::AudioPortRole> legacy2aidl_audio_port_role_t_AudioPortRole( 127 audio_port_role_t legacy); 128 129 ConversionResult<audio_port_type_t> aidl2legacy_AudioPortType_audio_port_type_t( 130 media::AudioPortType aidl); 131 ConversionResult<media::AudioPortType> legacy2aidl_audio_port_type_t_AudioPortType( 132 audio_port_type_t legacy); 133 134 ConversionResult<audio_format_t> aidl2legacy_AudioFormat_audio_format_t( 135 media::audio::common::AudioFormat aidl); 136 ConversionResult<media::audio::common::AudioFormat> legacy2aidl_audio_format_t_AudioFormat( 137 audio_format_t legacy); 138 139 ConversionResult<audio_gain_mode_t> 140 aidl2legacy_AudioGainMode_audio_gain_mode_t(media::AudioGainMode aidl); 141 ConversionResult<media::AudioGainMode> 142 legacy2aidl_audio_gain_mode_t_AudioGainMode(audio_gain_mode_t legacy); 143 144 ConversionResult<audio_gain_mode_t> aidl2legacy_int32_t_audio_gain_mode_t_mask(int32_t aidl); 145 ConversionResult<int32_t> legacy2aidl_audio_gain_mode_t_int32_t_mask(audio_gain_mode_t legacy); 146 147 ConversionResult<audio_devices_t> aidl2legacy_int32_t_audio_devices_t(int32_t aidl); 148 ConversionResult<int32_t> legacy2aidl_audio_devices_t_int32_t(audio_devices_t legacy); 149 150 ConversionResult<audio_gain_config> aidl2legacy_AudioGainConfig_audio_gain_config( 151 const media::AudioGainConfig& aidl, media::AudioPortRole role, media::AudioPortType type); 152 ConversionResult<media::AudioGainConfig> legacy2aidl_audio_gain_config_AudioGainConfig( 153 const audio_gain_config& legacy, audio_port_role_t role, audio_port_type_t type); 154 155 ConversionResult<audio_input_flags_t> aidl2legacy_AudioInputFlags_audio_input_flags_t( 156 media::AudioInputFlags aidl); 157 ConversionResult<media::AudioInputFlags> legacy2aidl_audio_input_flags_t_AudioInputFlags( 158 audio_input_flags_t legacy); 159 160 ConversionResult<audio_output_flags_t> aidl2legacy_AudioOutputFlags_audio_output_flags_t( 161 media::AudioOutputFlags aidl); 162 ConversionResult<media::AudioOutputFlags> legacy2aidl_audio_output_flags_t_AudioOutputFlags( 163 audio_output_flags_t legacy); 164 165 ConversionResult<audio_input_flags_t> aidl2legacy_int32_t_audio_input_flags_t_mask( 166 int32_t aidl); 167 ConversionResult<int32_t> legacy2aidl_audio_input_flags_t_int32_t_mask( 168 audio_input_flags_t legacy); 169 170 ConversionResult<audio_output_flags_t> aidl2legacy_int32_t_audio_output_flags_t_mask( 171 int32_t aidl); 172 ConversionResult<int32_t> legacy2aidl_audio_output_flags_t_int32_t_mask( 173 audio_output_flags_t legacy); 174 175 ConversionResult<audio_io_flags> aidl2legacy_AudioIoFlags_audio_io_flags( 176 const media::AudioIoFlags& aidl, media::AudioPortRole role, media::AudioPortType type); 177 ConversionResult<media::AudioIoFlags> legacy2aidl_audio_io_flags_AudioIoFlags( 178 const audio_io_flags& legacy, audio_port_role_t role, audio_port_type_t type); 179 180 ConversionResult<audio_port_config_device_ext> 181 aidl2legacy_AudioPortConfigDeviceExt_audio_port_config_device_ext( 182 const media::AudioPortConfigDeviceExt& aidl); 183 ConversionResult<media::AudioPortConfigDeviceExt> 184 legacy2aidl_audio_port_config_device_ext_AudioPortConfigDeviceExt( 185 const audio_port_config_device_ext& legacy); 186 187 ConversionResult<audio_stream_type_t> aidl2legacy_AudioStreamType_audio_stream_type_t( 188 media::AudioStreamType aidl); 189 ConversionResult<media::AudioStreamType> legacy2aidl_audio_stream_type_t_AudioStreamType( 190 audio_stream_type_t legacy); 191 192 ConversionResult<audio_source_t> aidl2legacy_AudioSourceType_audio_source_t( 193 media::AudioSourceType aidl); 194 ConversionResult<media::AudioSourceType> legacy2aidl_audio_source_t_AudioSourceType( 195 audio_source_t legacy); 196 197 ConversionResult<audio_session_t> aidl2legacy_int32_t_audio_session_t(int32_t aidl); 198 ConversionResult<int32_t> legacy2aidl_audio_session_t_int32_t(audio_session_t legacy); 199 200 ConversionResult<audio_port_config_mix_ext> aidl2legacy_AudioPortConfigMixExt( 201 const media::AudioPortConfigMixExt& aidl, media::AudioPortRole role); 202 ConversionResult<media::AudioPortConfigMixExt> legacy2aidl_AudioPortConfigMixExt( 203 const audio_port_config_mix_ext& legacy, audio_port_role_t role); 204 205 ConversionResult<audio_port_config_session_ext> 206 aidl2legacy_AudioPortConfigSessionExt_audio_port_config_session_ext( 207 const media::AudioPortConfigSessionExt& aidl); 208 ConversionResult<media::AudioPortConfigSessionExt> 209 legacy2aidl_audio_port_config_session_ext_AudioPortConfigSessionExt( 210 const audio_port_config_session_ext& legacy); 211 212 ConversionResult<audio_port_config> aidl2legacy_AudioPortConfig_audio_port_config( 213 const media::AudioPortConfig& aidl); 214 ConversionResult<media::AudioPortConfig> legacy2aidl_audio_port_config_AudioPortConfig( 215 const audio_port_config& legacy); 216 217 ConversionResult<struct audio_patch> aidl2legacy_AudioPatch_audio_patch( 218 const media::AudioPatch& aidl); 219 ConversionResult<media::AudioPatch> legacy2aidl_audio_patch_AudioPatch( 220 const struct audio_patch& legacy); 221 222 ConversionResult<sp<AudioIoDescriptor>> aidl2legacy_AudioIoDescriptor_AudioIoDescriptor( 223 const media::AudioIoDescriptor& aidl); 224 225 ConversionResult<media::AudioIoDescriptor> legacy2aidl_AudioIoDescriptor_AudioIoDescriptor( 226 const sp<AudioIoDescriptor>& legacy); 227 228 ConversionResult<AudioClient> aidl2legacy_AudioClient_AudioClient( 229 const media::AudioClient& aidl); 230 ConversionResult<media::AudioClient> legacy2aidl_AudioClient_AudioClient( 231 const AudioClient& legacy); 232 233 ConversionResult<audio_content_type_t> 234 aidl2legacy_AudioContentType_audio_content_type_t(media::AudioContentType aidl); 235 ConversionResult<media::AudioContentType> 236 legacy2aidl_audio_content_type_t_AudioContentType(audio_content_type_t legacy); 237 238 ConversionResult<audio_usage_t> 239 aidl2legacy_AudioUsage_audio_usage_t(media::AudioUsage aidl); 240 ConversionResult<media::AudioUsage> 241 legacy2aidl_audio_usage_t_AudioUsage(audio_usage_t legacy); 242 243 ConversionResult<audio_flags_mask_t> 244 aidl2legacy_AudioFlag_audio_flags_mask_t(media::AudioFlag aidl); 245 ConversionResult<media::AudioFlag> 246 legacy2aidl_audio_flags_mask_t_AudioFlag(audio_flags_mask_t legacy); 247 248 ConversionResult<audio_flags_mask_t> 249 aidl2legacy_int32_t_audio_flags_mask_t_mask(int32_t aidl); 250 ConversionResult<int32_t> 251 legacy2aidl_audio_flags_mask_t_int32_t_mask(audio_flags_mask_t legacy); 252 253 ConversionResult<audio_attributes_t> 254 aidl2legacy_AudioAttributesInternal_audio_attributes_t(const media::AudioAttributesInternal& aidl); 255 ConversionResult<media::AudioAttributesInternal> 256 legacy2aidl_audio_attributes_t_AudioAttributesInternal(const audio_attributes_t& legacy); 257 258 ConversionResult<audio_encapsulation_mode_t> 259 aidl2legacy_AudioEncapsulationMode_audio_encapsulation_mode_t(media::AudioEncapsulationMode aidl); 260 ConversionResult<media::AudioEncapsulationMode> 261 legacy2aidl_audio_encapsulation_mode_t_AudioEncapsulationMode(audio_encapsulation_mode_t legacy); 262 263 ConversionResult<audio_offload_info_t> 264 aidl2legacy_AudioOffloadInfo_audio_offload_info_t(const media::AudioOffloadInfo& aidl); 265 ConversionResult<media::AudioOffloadInfo> 266 legacy2aidl_audio_offload_info_t_AudioOffloadInfo(const audio_offload_info_t& legacy); 267 268 ConversionResult<audio_config_t> 269 aidl2legacy_AudioConfig_audio_config_t(const media::AudioConfig& aidl); 270 ConversionResult<media::AudioConfig> 271 legacy2aidl_audio_config_t_AudioConfig(const audio_config_t& legacy); 272 273 ConversionResult<audio_config_base_t> 274 aidl2legacy_AudioConfigBase_audio_config_base_t(const media::AudioConfigBase& aidl); 275 ConversionResult<media::AudioConfigBase> 276 legacy2aidl_audio_config_base_t_AudioConfigBase(const audio_config_base_t& legacy); 277 278 ConversionResult<sp<IMemory>> 279 aidl2legacy_SharedFileRegion_IMemory(const media::SharedFileRegion& aidl); 280 ConversionResult<media::SharedFileRegion> 281 legacy2aidl_IMemory_SharedFileRegion(const sp<IMemory>& legacy); 282 283 ConversionResult<sp<IMemory>> 284 aidl2legacy_NullableSharedFileRegion_IMemory(const std::optional<media::SharedFileRegion>& aidl); 285 ConversionResult<std::optional<media::SharedFileRegion>> 286 legacy2aidl_NullableIMemory_SharedFileRegion(const sp<IMemory>& legacy); 287 288 ConversionResult<AudioTimestamp> 289 aidl2legacy_AudioTimestampInternal_AudioTimestamp(const media::AudioTimestampInternal& aidl); 290 ConversionResult<media::AudioTimestampInternal> 291 legacy2aidl_AudioTimestamp_AudioTimestampInternal(const AudioTimestamp& legacy); 292 293 ConversionResult<audio_uuid_t> 294 aidl2legacy_AudioUuid_audio_uuid_t(const media::AudioUuid& aidl); 295 ConversionResult<media::AudioUuid> 296 legacy2aidl_audio_uuid_t_AudioUuid(const audio_uuid_t& legacy); 297 298 ConversionResult<effect_descriptor_t> 299 aidl2legacy_EffectDescriptor_effect_descriptor_t(const media::EffectDescriptor& aidl); 300 ConversionResult<media::EffectDescriptor> 301 legacy2aidl_effect_descriptor_t_EffectDescriptor(const effect_descriptor_t& legacy); 302 303 ConversionResult<audio_encapsulation_metadata_type_t> 304 aidl2legacy_AudioEncapsulationMetadataType_audio_encapsulation_metadata_type_t( 305 media::AudioEncapsulationMetadataType aidl); 306 ConversionResult<media::AudioEncapsulationMetadataType> 307 legacy2aidl_audio_encapsulation_metadata_type_t_AudioEncapsulationMetadataType( 308 audio_encapsulation_metadata_type_t legacy); 309 310 ConversionResult<uint32_t> 311 aidl2legacy_AudioEncapsulationMode_mask(int32_t aidl); 312 ConversionResult<int32_t> 313 legacy2aidl_AudioEncapsulationMode_mask(uint32_t legacy); 314 315 ConversionResult<uint32_t> 316 aidl2legacy_AudioEncapsulationMetadataType_mask(int32_t aidl); 317 ConversionResult<int32_t> 318 legacy2aidl_AudioEncapsulationMetadataType_mask(uint32_t legacy); 319 320 ConversionResult<audio_mix_latency_class_t> 321 aidl2legacy_AudioMixLatencyClass_audio_mix_latency_class_t( 322 media::AudioMixLatencyClass aidl); 323 ConversionResult<media::AudioMixLatencyClass> 324 legacy2aidl_audio_mix_latency_class_t_AudioMixLatencyClass( 325 audio_mix_latency_class_t legacy); 326 327 ConversionResult<audio_port_device_ext> 328 aidl2legacy_AudioPortDeviceExt_audio_port_device_ext(const media::AudioPortDeviceExt& aidl); 329 ConversionResult<media::AudioPortDeviceExt> 330 legacy2aidl_audio_port_device_ext_AudioPortDeviceExt(const audio_port_device_ext& legacy); 331 332 ConversionResult<audio_port_mix_ext> 333 aidl2legacy_AudioPortMixExt_audio_port_mix_ext(const media::AudioPortMixExt& aidl); 334 ConversionResult<media::AudioPortMixExt> 335 legacy2aidl_audio_port_mix_ext_AudioPortMixExt(const audio_port_mix_ext& legacy); 336 337 ConversionResult<audio_port_session_ext> 338 aidl2legacy_AudioPortSessionExt_audio_port_session_ext(const media::AudioPortSessionExt& aidl); 339 ConversionResult<media::AudioPortSessionExt> 340 legacy2aidl_audio_port_session_ext_AudioPortSessionExt(const audio_port_session_ext& legacy); 341 342 ConversionResult<audio_profile> 343 aidl2legacy_AudioProfile_audio_profile(const media::AudioProfile& aidl); 344 ConversionResult<media::AudioProfile> 345 legacy2aidl_audio_profile_AudioProfile(const audio_profile& legacy); 346 347 ConversionResult<audio_gain> 348 aidl2legacy_AudioGain_audio_gain(const media::AudioGain& aidl); 349 ConversionResult<media::AudioGain> 350 legacy2aidl_audio_gain_AudioGain(const audio_gain& legacy); 351 352 ConversionResult<audio_port_v7> 353 aidl2legacy_AudioPort_audio_port_v7(const media::AudioPort& aidl); 354 ConversionResult<media::AudioPort> 355 legacy2aidl_audio_port_v7_AudioPort(const audio_port_v7& legacy); 356 357 ConversionResult<audio_mode_t> 358 aidl2legacy_AudioMode_audio_mode_t(media::AudioMode aidl); 359 ConversionResult<media::AudioMode> 360 legacy2aidl_audio_mode_t_AudioMode(audio_mode_t legacy); 361 362 ConversionResult<audio_unique_id_use_t> 363 aidl2legacy_AudioUniqueIdUse_audio_unique_id_use_t(media::AudioUniqueIdUse aidl); 364 ConversionResult<media::AudioUniqueIdUse> 365 legacy2aidl_audio_unique_id_use_t_AudioUniqueIdUse(audio_unique_id_use_t legacy); 366 367 ConversionResult<volume_group_t> 368 aidl2legacy_int32_t_volume_group_t(int32_t aidl); 369 ConversionResult<int32_t> 370 legacy2aidl_volume_group_t_int32_t(volume_group_t legacy); 371 372 ConversionResult<audio_dual_mono_mode_t> 373 aidl2legacy_AudioDualMonoMode_audio_dual_mono_mode_t(media::AudioDualMonoMode aidl); 374 ConversionResult<media::AudioDualMonoMode> 375 legacy2aidl_audio_dual_mono_mode_t_AudioDualMonoMode(audio_dual_mono_mode_t legacy); 376 377 ConversionResult<audio_timestretch_fallback_mode_t> 378 aidl2legacy_int32_t_audio_timestretch_fallback_mode_t(int32_t aidl); 379 ConversionResult<int32_t> 380 legacy2aidl_audio_timestretch_fallback_mode_t_int32_t(audio_timestretch_fallback_mode_t legacy); 381 382 ConversionResult<audio_timestretch_stretch_mode_t> 383 aidl2legacy_int32_t_audio_timestretch_stretch_mode_t(int32_t aidl); 384 ConversionResult<int32_t> 385 legacy2aidl_audio_timestretch_stretch_mode_t_int32_t(audio_timestretch_stretch_mode_t legacy); 386 387 ConversionResult<audio_playback_rate_t> 388 aidl2legacy_AudioPlaybackRate_audio_playback_rate_t(const media::AudioPlaybackRate& aidl); 389 ConversionResult<media::AudioPlaybackRate> 390 legacy2aidl_audio_playback_rate_t_AudioPlaybackRate(const audio_playback_rate_t& legacy); 391 392 ConversionResult<audio_standard_t> 393 aidl2legacy_AudioStandard_audio_standard_t(media::AudioStandard aidl); 394 ConversionResult<media::AudioStandard> 395 legacy2aidl_audio_standard_t_AudioStandard(audio_standard_t legacy); 396 397 ConversionResult<audio_extra_audio_descriptor> 398 aidl2legacy_ExtraAudioDescriptor_audio_extra_audio_descriptor( 399 const media::ExtraAudioDescriptor& aidl); 400 ConversionResult<media::ExtraAudioDescriptor> 401 legacy2aidl_audio_extra_audio_descriptor_ExtraAudioDescriptor( 402 const audio_extra_audio_descriptor& legacy); 403 404 ConversionResult<audio_encapsulation_type_t> 405 aidl2legacy_AudioEncapsulationType_audio_encapsulation_type_t( 406 const media::AudioEncapsulationType& aidl); 407 ConversionResult<media::AudioEncapsulationType> 408 legacy2aidl_audio_encapsulation_type_t_AudioEncapsulationType( 409 const audio_encapsulation_type_t & legacy); 410 411 using TrackSecondaryOutputInfoPair = std::pair<audio_port_handle_t, std::vector<audio_io_handle_t>>; 412 ConversionResult<TrackSecondaryOutputInfoPair> 413 aidl2legacy_TrackSecondaryOutputInfo_TrackSecondaryOutputInfoPair( 414 const media::TrackSecondaryOutputInfo& aidl); 415 ConversionResult<media::TrackSecondaryOutputInfo> 416 legacy2aidl_TrackSecondaryOutputInfoPair_TrackSecondaryOutputInfo( 417 const TrackSecondaryOutputInfoPair& legacy); 418 419 420 } // namespace android 421