我阅读了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,这反映了“操作无法完成”
为什么?我该怎么称呼它?我想传递“数据”字符串是错误的,坚果我不知道实际上要传递什么......
有谁知道解决方案?谢谢!
答案 0 :(得分:0)
根据我对技术说明的阅读,您不能只为CreateDecoder的inAVCCData参数(在您的情况下为字符串“data”)发送任何随机数据流。查看技术说明中描述解码器配置键的部分:
kVDADecoderConfiguration_avcCData - 包含avcC数据的CFDataRef 来自H.264比特流。在QuickTime电影文件中,这是相同的 数据,作为avcC原子存储在图像描述中。
这是在解码器设置期间需要检索和传递的传输文件的一个组件。