【发布时间】:2021-05-13 07:22:15
【问题描述】:
因此,虽然我确定我不会为任何人提供足够的信息来修复我的特定代码,但我很想知道的是:
有谁知道 iOS14 可能发生了什么改变 HEVC 解码要求?
我有一个使用 VideoToolbox 为来自网络的 HEVC 编码视频流构建的解码器,它在 iOS 13 设备、和 iOS 14 模拟器上运行良好。但它在 iOS 设备上的 iOS 14(撰写本文时最高 14.4)中大部分时间都失败了。 “大部分时间”,因为有时它确实有效,具体取决于我尝试开始解码的流中的哪个位置。
我偶尔会从我的解压缩输出回调记录中得到一个错误是 OSStatus -12909 – kVTVideoDecoderBadDataErr。到目前为止,没有任何帮助。
或者我可能不会得到错误输出,例如在一个单元测试中,它接收固定的数据包并且应该始终生成视频帧。 (在设备上使用 iOS14 时,此测试同样无法生成预期的帧。)
还有其他人对 iOS 14 中的 HEVC 解码有任何问题吗?我真的在这里寻找线索...我尝试切换VTDecompressionSessionDecodeFrame()的所有常用输入标志(._EnableAsynchronousDecompression,._EnableTemporalProcessing,...)
我还尝试重做整个渲染层以使用AVSampleBufferDisplayLayer 和原始CMSampleBuffers。完美解码!!但我不能使用它...因为我需要自己对输出帧的时间进行微观管理(而且它们并不总是按顺序排列)。
(如果有帮助,我在单元测试中放入的固定输入数据包按顺序包括以下类型的 NALU:NAL_UNIT_VPS、NAL_UNIT_SPS、NAL_UNIT_PPS、NAL_UNIT_PREFIX_SEI ,NAL_UNIT_CODED_SLICE_CRA,最后是NAL_UNIT_CODED_SLICE_TRAIL_N 和NAL_UNIT_CODED_SLICE_TRAIL_R。我在过去的某个时候将这些从工作网络流中提取到服务器作为基本的健全性测试。)
【问题讨论】:
标签: ios14 hevc video-toolbox