0

我阅读了 Apple 技术说明https://developer.apple.com/library/mac/#technotes/tn2267/_index.html

我尝试调用示例代码“CreateDecoder()”,如下所示:

OSStatus stat = 0;
VDADecoder *decoder = NULL;
CFDataRef data;
char dataStr[] = "data";
data = CFDataCreate(kCFAllocatorDefault, (UInt8*)dataStr, 5);   
stat = CreateDecoder(320, 480, 'avc1', data, decoder);

但它返回状态码 -50,表示“操作无法完成”。
为什么?我应该如何正确称呼它?我想传递“数据”字符串是错误的,坚果我不知道实际上要传递什么......

有人知道解决方案吗?谢谢!

4

1 回答 1

0

根据我对技术说明的阅读,您不能只为 CreateDecoder 的 inAVCCData 参数(在您的情况下为字符串“data”)发送任何随机数据流。查看描述解码器配置键的技术说明部分:

kVDADecoderConfiguration_avcCData - 包含来自 H.264 比特流的 avcC 数据的 CFDataRef。在 QuickTime 电影文件中,这与存储在图像描述中的数据与 avcC 原子相同。

这是您需要在解码器设置期间检索和传递的传输文件的一个组件。

于 2013-03-23T04:43:58.353 回答