Bug #115180
测试 Test-IT #110961: V2.0功能测试
测试 Test-IT #112101: AF-V2.0-Launcher/SystemUI-控制中心
【AF】【EVT】【控制中心】点击结束屏幕录制,上划关闭控制中心,此时无法正常关闭,并出现ANR提示
Status: | CLOSED | Start date: | 2023-01-09 | |
---|---|---|---|---|
Priority: | High | Due date: | 2023-02-23 | |
Assignee: | CD Test赵飞 | % Done: | 100% | |
Category: | AUDIO-FW | |||
Target version: | VC1_FSE_0090_20230411 | |||
Need_Info: | -- | Found Version: | FlatBuild_HH_VX1_MCE_FSE.M.D.user.01.00.X101.202301080304 | |
Resolution: | FIXED | Degrated: | -- | |
Severity: | Critical | Verified Version: | ||
Reproducibility: | Every time | Fixed Version: | ||
Test Type: | ST | Root cause: | 配置音频链路到TDM数据 |
Description
【前提条件】
1、设备已开机
【测试步骤】
1、下划打开控制中心
2、点击屏幕录制
3、勾选所有选项
4、下划打开控制中心
5、点击屏幕录制组件
6、上划关闭控制中心
【预期结果】
5、屏幕录制立马结束
6、控制中心被关闭
【实际结果】
5、视频生成时间较长
6、无法正常关闭控制中心
Related issues
History
#1 Updated by CD FW 曹覃刚 over 2 years ago
- Due date set to 2023-02-10
- Status changed from New to ASSIGNED
#2 Updated by CD FW 曹覃刚 over 2 years ago
- Category changed from CD-FW to AUDIO-FW
- Assignee changed from CD FW 曹覃刚 to CD MM陈海波
Hi 海波
问题原因是因为主线程在操作音频记录停止的方法耗时太久造成,大约十秒,在此期间,做任何的触摸滑动操作都会引起超时无响应
屏幕录制时,不选择录制设备音频和麦克风,问题不会发生
堆栈信息如下
android.media.AudioRecord.native_stop(Native method)
---------------
"main" prio=5 tid=1 Native
| group="main" sCount=1 ucsCount=0 flags=1 obj=0x729355d8 self=0xb4000078c0ed7380
| sysTid=6404 nice=-10 cgrp=default sched=0/0 handle=0x7a8c1b24f8
| state=S schedstat=( 10018571276 1706601634 9501 ) utm=664 stm=337 core=6 HZ=100
| stack=0x7fce163000-0x7fce165000 stackSize=8188KB
| held mutexes=
native: #00 pc 00000000000a1c88 /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+8)
native: #01 pc 000000000005b8d4 /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156)
native: #02 pc 0000000000053070 /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+292)
native: #03 pc 00000000000542ac /system/lib64/libbinder.so (android::IPCThreadState::waitForResponse(android::Parcel*, int*)+64)
native: #04 pc 0000000000053ff0 /system/lib64/libbinder.so (android::IPCThreadState::transact(int, unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+224)
native: #05 pc 000000000004bafc /system/lib64/libbinder.so (android::BpBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+196)
native: #06 pc 000000000002c744 /system/lib64/audioflinger-aidl-cpp.so (android::media::BpAudioRecord::stop()+684)
native: #07 pc 000000000005296c /system/lib64/libaudioclient.so (android::AudioRecord::stop()+244)
native: #08 pc 000000000016ef28 /system/lib64/libandroid_runtime.so (android_media_AudioRecord_stop(_JNIEnv*, _jobject*)+144)
at android.media.AudioRecord.native_stop(Native method)
at android.media.AudioRecord.stop(AudioRecord.java:1344)
- locked <0x00a06345> (a java.lang.Object)
at com.android.systemui.screenrecord.ScreenInternalAudioRecorder.end(ScreenInternalAudioRecorder.java:291)
at com.android.systemui.screenrecord.ScreenMediaRecorder.stopInternalAudioRecording(ScreenMediaRecorder.java:279)
at com.android.systemui.screenrecord.ScreenMediaRecorder.end(ScreenMediaRecorder.java:272)
at com.android.systemui.screenrecord.RecordingService.stopRecording(RecordingService.java:445)
at com.android.systemui.screenrecord.RecordingService.onStartCommand(RecordingService.java:184)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4640)
at android.app.ActivityThread.access$2000(ActivityThread.java:248)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2092)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7880)
at java.lang.reflect.Method.invoke(Native method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1009)
---------------
请帮助分析音频录制结束方法耗时过久的原因,谢谢
#3 Updated by CD TPM-王祥林 over 2 years ago
- Assignee changed from CD MM陈海波 to CD BSP何伟
#4 Updated by CD TPM-王祥林 over 2 years ago
何伟
接上中控和AMP,安装中控给的临时apk,并且把音源切换到AMP后,再试试这个问题是否复现。
#5 Updated by CDTS-TEST 周婷 over 2 years ago
- Due date changed from 2023-02-10 to 2023-02-15
#6 Updated by CD BSP何伟 over 2 years ago
- Due date changed from 2023-02-15 to 2023-02-17
音源切换到AMP后,问题依然复现
根据log发现在创建AudioRecord时出了错,getInputForDevice 去打开输入流失败
失败原因时没找到AudioPolicyMix的policy
registerMix(): adding mix for dev=0x8000 addr=-1416755123:ap:0mixp:0
getInputMixForAttr() no policy for address -1416755123:ap:0mixp:0
下一步需要调查policy为什么没匹配上
#7 Updated by CD TPM-王祥林 over 2 years ago
- Target version set to VC1_FSE_0078_20230228
#8 Updated by CDTS-TEST 周婷 over 2 years ago
- Due date changed from 2023-02-17 to 2023-02-23
#9 Updated by CD BSP何伟 over 2 years ago
在执行stop方法时binder超时,因为此时的binder已达到上限15个并被阻塞了,而这15个都是读数据的线程
问题原因就是这些读方法未读到数据被阻塞,导致主线程被阻塞产生ANR
客户端没有读到数据是因为服务端没有写数据成功
#10 Updated by CDTS-TEST 周婷 over 2 years ago
- Severity changed from Major to Critical
#11 Updated by CD TPM-王祥林 over 2 years ago
- Target version changed from VC1_FSE_0078_20230228 to VC1_FSE_0082_20230314
#12 Updated by CD TPM-王祥林 over 2 years ago
- Assignee changed from CD BSP何伟 to CD MM唐驭俊
#13 Updated by CD TPM-王祥林 over 2 years ago
- Assignee changed from CD MM唐驭俊 to Multimedia组-RD3_TSCD 梁卿山
#14 Updated by Multimedia组-RD3_TSCD 梁卿山 over 2 years ago
- Category changed from AUDIO-FW to BSP
- Assignee changed from Multimedia组-RD3_TSCD 梁卿山 to CD BSP何伟
Hi 何伟
麻烦继续分析,服务端写入数据没有成功的原因,谢谢
#15 Updated by CD BSP-杜磊 over 2 years ago
- Assignee changed from CD BSP何伟 to CD BSP-唐金泽
#16 Updated by CD BSP何伟 over 2 years ago
当开始录制时,systemui会创建客户端record线程并实例化AudioRecord
在AudioRecord创建的时候,使用的音源是AUDIO_SOURCE_REMOTE_SUBMIX
音频数据的传输使用的是MonoPipe和MonoPipeReader,MonoPipeReader消费MonoPipe的数据
在结束录制时产生ANR是由stop方法binder超时产生,因为此时binder数达到上限15,且都为读线程
我这调查到此时正好在执行 primary-hal/hal/audio_hw.c:in_read -> pcm_read 在等待中
----- Waiting Channels: pid 1301 at 2023-02-13 15:07:46.182444270+0800 -----
Cmd line: /system/bin/mediaserver
sysTid=1301 binder_thread_read
sysTid=1389 binder_thread_read
sysTid=1804 binder_thread_read
sysTid=1805 binder_thread_read
sysTid=1810 binder_thread_read
sysTid=1811 binder_thread_read
sysTid=1856 binder_thread_read
sysTid=1869 binder_thread_read
sysTid=2957 futex_wait_queue_me
sysTid=2963 futex_wait_queue_me
sysTid=2964 __arm64_compat_sys_nanosleep
sysTid=3327 binder_thread_read
sysTid=3512 binder_thread_read
sysTid=3534 binder_thread_read
sysTid=3641 binder_thread_read
sysTid=3645 binder_thread_read
sysTid=3664 binder_thread_read
sysTid=4429 futex_wait_queue_me
sysTid=4430 futex_wait_queue_me
sysTid=4633 binder_thread_read
----- end 1301 -----
另外在结束录制时会报以下错误,错误是参数无效,可能也与binder有关,具体原因未知:
02-08 05:44:51.146 1013 1338 W APM_AudioPolicyMix: getInputMixForAttr() no policy for address -1416755123:ap:0mixp:0
02-08 05:44:51.146 1013 1338 W APM_AudioPolicyManager: getInputForAttr could not find input mix for attr { Content type: AUDIO_CONTENT_TYPE_UNKNOWN Usage: AUDIO_USAGE_UNKNOWN Source: AUDIO_SOURCE_REMOTE_SUBMIX Flags: 0x800 Tags: addr=-1416755123:ap:0mixp:0 }
02-08 05:44:51.146 1013 1338 E AudioFlinger: createRecord() getInputForAttr return error -22
02-08 05:44:51.146 1960 4236 E AudioRecord: createRecord_l(40): AudioFlinger could not create record track, status: -22
02-08 05:44:51.147 1960 4236 W AudioRecord: restoreRecord_l(40): failed status -22, retries 2
02-08 05:44:51.217 1314 4089 I OMX-VENC: venc_dev: stats: avg. fps 43.28, bitrate 1377652
01-01 08:14:32.513 0 0 I : boot log copy done
02-08 05:44:51.647 1960 4236 I BpBinder: onLastStrongRef automatically unlinking death recipients: <uncached descriptor>
02-08 05:44:51.664 1013 1338 W APM_AudioPolicyMix: getInputMixForAttr() no policy for address -1416755123:ap:0mixp:0
02-08 05:44:51.664 1013 1338 W APM_AudioPolicyManager: getInputForAttr could not find input mix for attr { Content type: AUDIO_CONTENT_TYPE_UNKNOWN Usage: AUDIO_USAGE_UNKNOWN Source: AUDIO_SOURCE_REMOTE_SUBMIX Flags: 0x800 Tags: addr=-1416755123:ap:0mixp:0 }
02-08 05:44:51.664 1013 1338 E AudioFlinger: createRecord() getInputForAttr return error -22
02-08 05:44:51.665 1960 4236 E AudioRecord: createRecord_l(40): AudioFlinger could not create record track, status: -22
02-08 05:44:51.665 1960 4236 W AudioRecord: restoreRecord_l(40): failed status -22, retries 1
其他信息:
录制mic加屏幕,结束录制时不会产生ANR
录制系统内部音加屏幕,结束录制时会产生ANR (卡顿时间大概4-5秒)
三者同时录制,结束时会产生ANR (卡顿时间10秒,pcm_read的等待时间为10秒)
#17 Updated by IoT scm over 2 years ago
ID | Project | Branch | Uploader |
186682 | general/platform/hardware/qcom/audio | Pre_figure_turbox-c2130c-la1.1-vendor-dev | tangjz1204@thundersoft.com |
BSP:Audio: Change PRI_TDM_RX&TX Route(2/2) 1.Add PRI_TDM_RX config to every path_router 2.Change audio-record-voip mixer_path 3.Change audio-playback-voip mixer_path TC-RID: 1201-0101104 IssueID: TS-R-DF-115180 Change-Id: Ife8a2a0b3dfe99a232cd16f3ae196515932eea58 |
#18 Updated by IoT scm over 2 years ago
ID | Project | Branch | Uploader |
187460 | general/platform/vendor/opensource/audio-kernel | Pre_figure_turbox-c2130c-la1.1-vendor-dev | tangjz1204@thundersoft.com |
BSP:Audio: Change MultiMedia10 backend path(1/2) change MultiMedia10 backend TX path TC-RID: 1201-0101104 IssueID: TS-R-DF-115180 Change-Id: Ib55e3a811f6be7b4986e8fdd43efb3ff313ce383 |
#19 Updated by CD BSP-唐金泽 over 2 years ago
- Status changed from ASSIGNED to RESOLVED
- Assignee changed from CD BSP-唐金泽 to CD TEST-方永红
- Resolution changed from -- to FIXED
- Root cause set to 配置音频链路到TDM数据
配置音频链路到TDM数据;
梳理音频链路配置;
为音频链路和TDM配置相匹配。
#20 Updated by CD BSP-唐金泽 over 2 years ago
- File 录屏没有音频数据.jpg added
Hi,永红,
请帮忙连接好中控台架,使用最新更新的中控版本进行测试;
若情况复现,帮忙看下几率。
有可能还有相关问题:
1、录屏的文件是否含带音频数据
2、音频比特率是否为0等;入附图。
#21 Updated by CD TEST-方永红 over 2 years ago
- Assignee changed from CD TEST-方永红 to CD Test赵飞
#22 Updated by CD Test赵飞 over 2 years ago
- File 音频比特率为空.png added
- Status changed from RESOLVED to ASSIGNED
- Assignee changed from CD Test赵飞 to CD BSP-唐金泽
副屏版本:3/19号DB
中控版本:60
副屏连接中控的情况下,此问题仍然复现,复现概率:5/5
查看录制的视频文件,音频比特率为空,见附件截图
#23 Updated by CDTS_TEST 王成 over 2 years ago
- Target version changed from VC1_FSE_0082_20230314 to VC1_FSE_0086_20230328
#24 Updated by CD BSP-唐金泽 over 2 years ago
- Target version changed from VC1_FSE_0086_20230328 to VC1_FSE_0090_20230411
还依赖于Qualcomm这边CASE提供思路
#25 Updated by CD BSP-唐金泽 over 2 years ago
- Category changed from BSP to AUDIO-FW
- Status changed from ASSIGNED to RESOLVED
- Assignee changed from CD BSP-唐金泽 to CD Test赵飞
请使用2023-04-03以后DB进行验证
#26 Updated by CD Test赵飞 over 2 years ago
- Status changed from RESOLVED to VERIFIED
- % Done changed from 0 to 100
验证版本:FlatBuild_HH_MCE_FSE.M.R.user.01.00.0088.C102
验证结果:PASS
#27 Updated by CD Test赵飞 over 2 years ago
- Status changed from VERIFIED to CLOSED