1。首先确认wfd连接的信道是5G还是2.4G频段。可以通过wpi_cli -i wlan0,然后进行投屏,可以看到日志,或者status也可以查看已经连接的状态。也可以通过wpa_cli -i p2p0 -p /data/misc/wifi/socket
2。如果wfd所在信道是2.4G频段,那么source端操作蓝牙和连接2.4G的wifi上网会对其造成影响。其中wfd和蓝牙共存2.4G可以优化,但是会对蓝牙性能造成影响。和优先级有关联。
3。抓取tcpdump和rtpdump日志。
tcpdump抓取:adb shell tcpdump -i any -p -s 0 -w /data/op_pcap.pcap
rtpdump抓取:
1, dump ts
File : /system/etc/wfdconfig.xml
from:
<RTPDumpEnable>
<Valid>0</Valid>
</RTPDumpEnable>
to:
<RTPDumpEnable>
<Valid>1</Valid>
</RTPDumpEnable>
rtpdump under dir /data/ or /data/misc/media or /data/media/misc/
rtpdump是audio打包传到wifi层的视频文件,如果rtpdump存在问题,就属于audio的问题,如果rtpdump是正常的,但是link端出现了异常,那就是wfd传输过程导致的问题。
可以使用screenrecord /sdcard/aaa.mp4进行操作的时候录屏。
如果发现是dump.ts出现花屏,可以修改一下编码方式试试,方法如下:
Please dump the wfd encode input yuv by follow methods:
1, run the follow command
//Dump codec buffer
adb root
adb remount
adb shell setprop vidc.enc.log.in 1
adb shell setprop vidc.enc.log.out 1
// Dump codec buffer Android O
adb root
adb remount
adb setenforce 0
adb shell chmod 777 /data/vendor/media
adb shell setprop vendor.vidc.debug.level 7
adb shell setprop vendor.vidc.enc.log.in 1
adb shell setprop vendor.vidc.enc.log.out 1
bitstreams/yuv will be stored at /data/vendor/media
这样修改后在继续测试,查看rtpdump,看是否还花屏,如果不花屏,就是编码问题导致的。