xvid_decore 函数,在解码时有两个疑问
xvid_decore 函数,在解码时有两个疑问:
1 . 如果输出缓冲区不足以存放解码后的图象会发生什么情况? 是不是造成越界??
2. 在一段代码里我发现了调用xvid_decore前(yv12), 只设置了output.plane[0], 和output.stride[0], 为什么其他两个平面没有设置呢, 如果发生这种情况, 是不是意味着xvid根据plane[0]自动计算其他两个地址?
还有, 在官方自带的例子中, 似乎是实时解码的, 也就是说, 当调用xvid_decore完成后, 如果解出一帧,则返回值是该帧解码前的长度, 然后例子将输入缓冲指针自增该bytes, 也就是说那一段缓冲就是对应的解码前的数据, 而且, 该代码将这一段缓冲区存在文件里, 命名为frame%d.mp4v, 因此, 我认为作者就是认为是实时解码的, 如果解码出来的帧和消耗的数据不对应的话, 那么将该段数据存在文件里就是错误的---不能保证该段数据是一个有效帧。
但如果说实时解码, 在B帧这种情况下, 则明显不对劲, 因为要解码B帧是需要后继的帧的。 怎么也不可能实时解码出来。 这该怎么解释呢