我正在使用MediaCodec并MediaExtractor以可变速率播放视频,包括向前和向后.代码使用类似SpeedControlCallback的东西来建立帧间暂停 - presentationTimeUs从输出缓冲区向它提供字段.
99%的情况下,这种方法很好,但是看起来三星S6上的AVC编解码器在向后搜索时提供了错误的演示时间 - 它们被固定在寻求转发的最高价值时,如果这有意义的话.缓冲区中的数据是正确/更改的 - 它只是与固定的显示时间不对应.
S6可以处理具有品牌/ ftype的MP4文件中的后向搜索avc1,但我尝试过的其他品牌的H.264视频(mp42,isom)在100%的时间内都不起作用.相同的文件在三星S5以及我尝试过的所有其他设备上都能正常工作.
编解码器记录这个:
09-15 11:16:21.611 2992-16618/? W/EXYNOS_VIDEO_DEC? sCurrentTimestamp(6002033) is smaller than latestTimeStamp(7001744), uses latestTimeStamp
在每个向后搜索(SEEK_TO_PREVIOUS_SYNC),并将latestTimestampValue为所有关键帧提供错误.
有没有人在Galaxy S6上遇到与AVC编解码器类似的问题,或者是否可以提供任何(非hacky)解决方案?
任何人都知道CB iOS应用程序在中央和外围模式下运行,并且作为中心,连接到外围设备?某个存储库中的实际应用程序或草图会很棒.
在这两种模式下工作已经让之前(开始讨论在这里),并Unknown Error: 1309在didFailToConnectPeripheral已经提到(在这里).
在两种模式下进行的大量实验,以及与Apple员工就TSI打开的对话,使我确信在使用中央和外围模式的应用程序中连接到外设将导致1309,这非常高在后续连接到该外围设备时重复出现的可能性(直到设备重新启动).
Apple表示这是因为在使用这两种模式时造成了死锁,但我一直非常小心地将呼叫分区为CBCentralManagervs. CBPeripheralManager,并确保其活动不重叠.
鉴于这个bug根本没有被提及,我有点好奇其他人是否设法避免它,或者只是对这个用例不感兴趣.