我尝试使用OpenMAX解码器解码h264视频流:
https://gist.github.com/NicholasShatokhin/f6a86d03707decf53d684c4c82f909a6
看起来一切正常,但是当我向解码器发送数据时,它并没有填充输出缓冲区。在应用程序运行期间不会调用FillBufferDone回调。只有在调用Flush函数时,才会使用空缓冲区进行此回调。
我在这里想念什么?我的代码或解码器本身有问题吗?如何检查?
答案 0 :(得分:0)
我想这个问题已经很久没有回答了,您可以在其他地方找到它,但是无论如何我都会回答。
在PortSettingsChanged事件的回调事件处理程序中,您仅输出有关该消息的消息,但是OpenMAX规范在3.4.5节中描述的是动态端口重新配置。 如果采用隧道实施,则仅需要禁用/重新启用发生此事件的端口(禁用该端口将导致连接到该端口的缓冲区的返回和释放,启用将分配使用新端口设置配置的新缓冲区)。 如果是非隧道实施,则必须: -禁用端口, -免费缓冲区 -读取端口设置, -启用端口, -根据设置分配新缓冲区。
应该从那里开始工作。