video call BT audio音频流程

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

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值