Platform: SDM429 msm8937 android8.1
Usecase : video call
本篇日志重在结合log分析 BT蓝牙耳机模式下, video call音频流程。 本项目在configs/msm8937/msm8937.mk关闭了video call的 vendor.voice.path.for.pcm.voip 宏音频通路。所以VOIP通路走的本地录音和本地播放的path。
video call 蓝牙耳机模式下, mic输入走的MB的mic, 查看声音类型为:STREAM_MUSIC
11-10 10:57:40.837 641 5541 I bt_a2dp_hw: out_get_format: format 0x1
11-10 10:57:40.837 641 5541 I bt_a2dp_hw: out_get_channels: channels 0x3
11-10 10:57:40.849 1442 1594 I vol.Events: writeEvent level_changed STREAM_MUSIC 8
11-10 10:57:40.858 641 5541 I bt_a2dp_hw: out_get_format: format 0x1
11-10 10:57:40.859 641 5541 I bt_a2dp_hw: out_get_channels: channels 0x3
需要修改为:STREAM_VOICE_CALL
11-10 11:35:16.963 553 7523 I mm-camera: <CPP >< INFO> 371: cpp_hardware_set_clock: Set clock 133333333 BW avg 93312000 BW inst 93312000
11-10 11:35:17.051 553 7511 E mm-camera: GC2385,fl_lines=4703,gain=301, line=4687
11-10 11:35:17.113 1442 1594 I vol.Events: writeEvent level_changed STREAM_VOICE_CALL 2
11-10 11:35:17.174 553 7511 E mm-camera: GC2385,fl_lines=4703,gain=301, line=4687
adb 获取的BT 模式下video call log如下:
1.蓝牙BT Headset连接:
摘录: BT耳机通话状态下, 走的是HCI协议的SCO数据类型。
11-09 15:44:09.612 3184 3227 I AudioManager: In setBluetoothScoOn(), on: true, calling application: com.android.bluetooth
11-09 15:44:09.612 2702 3354 V AudioTrack: obtainBuffer(590) returned 406 = 406 + 0 err 0
11-09 15:44:09.613 967 1442 I AudioService: In setBluetoothScoOn(), eventSource: setBluetoothScoOn(true) from u/pid:1002/3184
log流程:
11-09 15:44:09.466 3184 3227 D HeadsetStateMachine: isAudioOn()
11-09 15:44:09.466 3184 3227 D HeadsetStateMachine: isInCall()
11-09 15:44:09.466 3184 3227 D HeadsetStateMachine: Exit processA2dpState()
11-09 15:44:09.466 3184 3227 D HeadsetStateMachine: Exit processCallState()
11-09 15:44:09.466 3184 3222 D bt_btif : bta_ag_sco_event: SCO Index 0x0000, State 1, Event 1
11-09 15:44:09.466 3184 3222 D bt_btif : bta_ag_remove_sco: SCO index 0x0000, status 0
11-09 15:44:09.466 3184 3227 D HeadsetStateMachine: Exit processIntentA2dpPlayStateChanged()
11-09 15:44:09.466 3184 3227 D HeadsetStateMachine: Exit Connected processMessage()
11-09 15:44:09.466 3184 3206 D HeadsetStateMachine: Enter onAudioStateChanged()
11-09 15:44:09.466 612 1081 V AudioFlinger: onIdleMixer
11-09 15:44:09.468 3184 3206 D HeadsetStateMachine: getDevice()
11-09 15:44:09.468 612 1098 V AudioFlinger: onIdleMixer
11-09 15:44:09.468 3184 3206 D HeadsetStateMachine: Exit onAudioStateChanged()
11-09 15:44:09.469 3184 3227 D HeadsetStateMachine: Connected process message=101, numConnectedDevices=1
11-09 15:44:09.469 3184 3227 D HeadsetStateMachine: Connected: event type: 2event device : 50:C9:71:93:F9:84
11-09 15:44:09.469 3184 3227 D HeadsetStateMachine: Enter Connected processAudioEvent()
11-09 15:44:09.469 3184 3227 D HeadsetStateMachine: Enter broadcastAudioState()
11-09 15:44:09.470 3184 3227 D HeadsetStateMachine: Audio state 50:C9:71:93:F9:84: 10->11
11-09 15:44:09.470 3184 3227 D HeadsetStateMachine: Exit broadcastAudioState()
11-09 15:44:09.470 3184 3227 D HeadsetStateMachine: Exit Connected processAudioEvent()
11-09 15:44:09.470 3184 3227 D HeadsetStateMachine: Exit Connected processMessage()
11-09 15:44:09.470 967 967 I AudioService: In onReceive(), mScoAudioState: 3, broadcast: false
11-09 15:44:07.814 1390 1390 W ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:966 android.content.ContextWrapper.sendBroadcast:437 com.qualcomm.qti.watchfaceanalogclock.BaseWatchService$Engine.onVisibilityChanged:155 android.service.wallpaper.WallpaperService$Engine.reportVisibility:1022 android.service.wallpaper.WallpaperService$Engine.doVisibilityChanged:1003
11-09 15:44:09.471 967 967 I Telecom : BluetoothRouteManager: Device 50:C9:71:93:F9:84 transitioned to audio state 11: BRM.oR@ADo
11-09 15:44:09.472 2702 3354 V AudioTrack: obtainBuffer(160) returned 882 = 160 + 722 err 0
11-09 15:44:09.472 2702 3354 V AudioTrack: obtainBuffer(590) returned 722 = 590 + 132 err 0
11-09 15:44:09.472 2702 3354 V AudioTrack: obtainBuffer(317) returned 449 = 317 + 132 err 0
11-09 15:44:09.472 2702 3354 V AudioTrack: obtainBuffer(590) returned 132 = 132 + 0 err 0
11-09 15:44:09.473 612 3315 V AudioFlinger: onIdleMixer
11-09 15:44:09.477 612 1081 V AudioFlinger: onIdleMixer
11-09 15:44:09.480 612 1098 V AudioFlinger: onIdleMixer
11-09 15:44:09.483 2702 3354 V AudioTrack: obtainBuffer(590) returned 132 = 132 + 0 err 0
11-09 15:44:09.483 2702 3354 V AudioTrack: obtainBuffer(466) returned 8 = 8 + 0 err 0
11-09 15:44:09.483 612 3315 V AudioFlinger: onIdleMixer
11-09 15:44:09.483 2702 3354 V AudioTrack: obtainBuffer(458) returned 0 = 0 + 0 err -11
11-09 15:44:09.484 612 3314 I bt_a2dp_hw: out_get_format: format 0x1
11-09 15:44:09.484 612 3314 I bt_a2dp_hw: out_get_channels: channels 0x3
11-09 15:44:09.484 612 3314 V AudioFlinger: onIdleMixer
11-09 15:44:09.486 612 1087 V AudioFlinger: onIdleMixer
11-09 15:44:09.487 612 1081 V AudioFlinger: onIdleMixer
11-09 15:44:09.492 2702 3354 V AudioTrack: obtainBuffer(458) returned 642 = 458 + 184 err 0
11-09 15:44:09.492 2702 3354 V AudioTrack: obtainBuffer(25) returned 449 = 25 + 424 err 0
11-09 15:44:09.492 2702 3354 V AudioTrack: obtainBuffer(590) returned 424 = 424 + 0 err 0
11-09 15:44:09.493 612 1098 V AudioFlinger: onIdleMixer
11-09 15:44:09.493 612 3315 V AudioFlinger: onIdleMixer
11-09 15:44:09.494 612 3314 I bt_a2dp_hw: out_get_format: format 0x1
11-09 15:44:09.494 612 3314 I bt_a2dp_hw: out_get_channels: channels 0x3
11-09 15:44:09.494 612 3314 V AudioFlinger: onIdleMixer
11-09 15:44:09.494 612 3314 I bt_a2dp_hw: out_write: stream suspended or closing
11-09 15:44:09.494 612 3314 I bt_a2dp_hw: out_get_format: format 0x1
11-09 15:44:09.494 612 3314 I bt_a2dp_hw: out_get_channels: channels 0x3
11-09 15:44:09.496 2702 3354 V AudioTrack: obtainBuffer(590) returned 424 = 424 + 0 err 0
11-09 15:44:09.496 2702 3354 V AudioTrack: obtainBuffer(174) returned 8 = 8 + 0 err 0
11-09 15:44:09.496 2702 3354 V AudioTrack: obtainBuffer(166) returned 0 = 0 + 0 err -11
11-09 15:44:09.497 612 1081 V AudioFlinger: onIdleMixer
11-09 15:44:09.503 612 3315 V AudioFlinger: onIdleMixer
11-09 15:44:09.504 544 3220 D [email protected]_hci: BluetoothHci::event call back-->
11-09 15:44:09.504 3184 3217 D bt_hci : hciEventReceived-->
11-09 15:44:09.504 3184 3217 D bt_hci : hciEventReceived<--
11-09 15:44:09.505 544 3220 D [email protected]_hci: BluetoothHci::event call back<--
11-09 15:44:09.505 544 3220 D [email protected]_hci: BluetoothHci::data call back-->
11-09 15:44:09.505 612 1098 V AudioFlinger: onIdleMixer
11-09 15:44:09.505 544 3220 D [email protected]_hci: BluetoothHci::data call back<--
11-09 15:44:09.506 544 3220 D [email protected]_hci: BluetoothHci::event call back-->
11-09 15:44:09.506 3184 3217 D bt_hci : hciEventReceived-->
11-09 15:44:09.506 3184 3217 D bt_hci : hciEventReceived<--
11-09 15:44:09.506 544 3220 D [email protected]_hci: BluetoothHci::event call back<--
11-09 15:44:09.507 612 1087 V AudioFlinger: onIdleMixer
11-09 15:44:09.507 612 1081 V AudioFlinger: onIdleMixer
11-09 15:44:09.512 2702 3354 V AudioTrack: obtainBuffer(166) returned 882 = 36 + 846 err 0
11-09 15:44:09.512 2702 3354 V AudioTrack: obtainBuffer(130) returned 846 = 130 + 716 err 0
11-09 15:44:09.512 2702 3354 V AudioTrack: obtainBuffer(590) returned 716 = 590 + 126 err 0
11-09 15:44:09.512 2702 3354 V AudioTrack: obtainBuffer(323) returned 449 = 323 + 126 err 0
11-09 15:44:09.512 2702 3354 V AudioTrack: obtainBuffer(590) returned 126 = 126 + 0 err 0
11-09 15:44:09.514 612 3315 V AudioFlinger: onIdleMixer
11-09 15:44:09.515 612 3314 I bt_a2dp_hw: out_get_format: format 0x1
11-09 15:44:09.515 612 3314 I bt_a2dp_hw: out_get_channels: channels 0x3
11-09 15:44:09.515 612 3314 V AudioFlinger: onIdleMixer
11-09 15:44:09.517 612 1098 V AudioFlinger: onIdleMixer
11-09 15:44:09.518 612 1081 V AudioFlinger: onIdleMixer
11-09 15:44:09.523 2702 3354 V AudioTrack: obtainBuffer(590) returned 126 = 126 + 0 err 0
11-09 15:44:09.523 2702 3354 V AudioTrack: obtainBuffer(472) returned 8 = 8 + 0 err 0
11-09 15:44:09.524 2702 3354 V AudioTrack: obtainBuffer(464) returned 0 = 0 + 0 err -11
11-09 15:44:09.524 612 3315 V AudioFlinger: onIdleMixer
11-09 15:44:09.525 612 3314 I bt_a2dp_hw: out_get_format: format 0x1
11-09 15:44:09.525 612 3314 I bt_a2dp_hw: out_get_channels: channels 0x3
11-09 15:44:09.525 612 3314 V AudioFlinger: onIdleMixer
11-09 15:44:09.525 612 3314 I bt_a2dp_hw: out_write: stream suspended or closing
11-09 15:44:09.525 612 3314 I bt_a2dp_hw: out_get_format: format 0x1
11-09 15:44:09.525 612 3314 I bt_a2dp_hw: out_get_channels: channels 0x3
11-09 15:44:09.527 612 1087 V AudioFlinger: onIdleMixer
11-09 15:44:09.528 612 1081 V AudioFlinger: onIdleMixer
11-09 15:44:09.530 612 1098 V AudioFlinger: onIdleMixer
11-09 15:44:09.531 2702 3354 V AudioTrack: obtainBuffer(464) returned 882 = 464 + 418 err 0
11-09 15:44:09.532 2702 3354 V AudioTrack: obtainBuffer(31) returned 449 = 31 + 418 err 0
11-09 15:44:09.532 2702 3354 V AudioTrack: obtainBuffer(590) returned 418 = 418 + 0 err 0
11-09 15:44:09.534 612 3315 V AudioFlinger: onIdleMixer
11-09 15:44:09.536 2702 3354 V AudioTrack: obtainBuffer(590) returned 418 = 418 + 0 err 0
11-09 15:44:09.536 2702 3354 V AudioTrack: obtainBuffer(180) returned 8 = 8 + 0 err 0
11-09 15:44:09.537 2702 3354 V AudioTrack: obtainBuffer(172) returned 0 = 0 + 0 err -11
11-09 15:44:09.538 612 1081 V AudioFlinger: onIdleMixer
11-09 15:44:09.542 612 1098 V AudioFlinger: onIdleMixer
11-09 15:44:09.545 612 3315 V AudioFlinger: onIdleMixer
11-09 15:44:09.546 612 3314 I bt_a2dp_hw: out_get_format: format 0x1
11-09 15:44:09.546 612 3314 I bt_a2dp_hw: out_get_channels: channels 0x3
11-09 15:44:09.546 612 3314 V AudioFlinger: onIdleMixer
11-09 15:44:09.548 612 1087 V AudioFlinger: onIdleMixer
11-09 15:44:09.549 612 1081 V AudioFlinger: onIdleMixer
11-09 15:44:09.552 2702 3354 V AudioTrack: obtainBuffer(172) returned 882 = 172 + 710 err 0
11-09 15:44:09.552 2702 3354 V AudioTrack: obtainBuffer(590) returned 710 = 148 + 562 err 0
11-09 15:44:09.552 2702 3354 V AudioTrack: obtainBuffer(442) returned 562 = 442 + 120 err 0
11-09 15:44:09.552 2702 3354 V AudioTrack: obtainBuffer(329) returned 449 = 329 + 120 err 0
11-09 15:44:09.552 2702 3354 V AudioTrack: obtainBuffer(590) returned 120 = 120 + 0 err 0
11-09 15:44:09.554 612 1098 V AudioFlinger: onIdleMixer
11-09 15:44:09.555 612 3315 V AudioFlinger: onIdleMixer
11-09 15:44:09.556 612 3314 I bt_a2dp_hw: out_get_format: format 0x1
11-09 15:44:09.556 612 3314 I bt_a2dp_hw: out_get_channels: channels 0x3
11-09 15:44:09.557 612 3314 V AudioFlinger: onIdleMixer
11-09 15:44:09.557 612 3314 I bt_a2dp_hw: out_write: stream suspended or closing
11-09 15:44:09.557 612 3314 I bt_a2dp_hw: out_get_format: format 0x1
11-09 15:44:09.557 612 3314 I bt_a2dp_hw: out_get_channels: channels 0x3
11-09 15:44:09.559 612 1081 V AudioFlinger: onIdleMixer
11-09 15:44:09.563 2702 3354 V AudioTrack: obtainBuffer(590) returned 120 = 120 + 0 err 0
11-09 15:44:09.563 2702 3354 V AudioTrack: obtainBuffer(478) returned 8 = 8 + 0 err 0
11-09 15:44:09.564 2702 3354 V AudioTrack: obtainBuffer(470) returned 0 = 0 + 0 err -11
11-09 15:44:09.565 612 3315 V AudioFlinger: onIdleMixer
11-09 15:44:09.567 612 1098 V AudioFlinger: onIdleMixer
11-09 15:44:09.569 612 1087 V AudioFlinger: onIdleMixer
11-09 15:44:09.569 612 1081 V AudioFlinger: onIdleMixer
11-09 15:44:09.572 2702 3354 V AudioTrack: obtainBuffer(470) returned 882 = 470 + 412 err 0
11-09 15:44:09.572 2702 3354 V AudioTrack: obtainBuffer(37) returned 449 = 37 + 412 err 0
11-09 15:44:09.573 2702 3354 V AudioTrack: obtainBuffer(590) returned 412 = 412 + 0 err 0
11-09 15:44:09.576 612 3315 V AudioFlinger: onIdleMixer
11-09 15:44:09.577 2702 3354 V AudioTrack: obtainBuffer(590) returned 412 = 412 + 0 err 0
11-09 15:44:09.577 2702 3354 V AudioTrack: obtainBuffer(186) returned 8 = 8 + 0 err 0
11-09 15:44:09.577 612 3314 I bt_a2dp_hw: out_get_format: format 0x1
11-09 15:44:09.577 612 3314 I bt_a2dp_hw: out_get_channels: channels 0x3
11-09 15:44:09.577 612 3314 V AudioFlinger: onIdleMixer
11-09 15:44:09.577 544 3220 D [email protected]_hci: BluetoothHci::data call back-->
11-09 15:44:09.578 2702 3354 V AudioTrack: obtainBuffer(178) returned 0 = 0 + 0 err -11
11-09 15:44:09.578 544 3220 D [email protected]_hci: BluetoothHci::data call back<--
11-09 15:44:09.580 612 1098 V AudioFlinger: onIdleMixer
11-09 15:44:09.579 544 3220 D [email protected]_hci: BluetoothHci::data call back-->
11-09 15:44:09.580 612 1081 V AudioFlinger: onIdl