我们知道,一个AVPacket包含一个AVFrame,我们可以使用
int avcodec_decode_audio4(AVCodecContext *avctx, AVFrame *frame,
int *got_frame_ptr, const AVPacket *avpkt)
将数据包解码为帧,如果有效,got_frame_ptr
将设置为非零,否则为零。
int len = avcodec_decode_video2(pCodecCtx, pFrame, &frameFinished, &packet);
if ( len < 0 )
{
fprintf(stderr, "Problems decoding frame\n");
return 1;
}
fprintf(stderr, "len = %d\n", len );
// Did we get a video frame?
if(frameFinished) {
dosomething();
}
它怎么会失败(got_frame_ptr
为0)?是我们损坏的AVPacket还是其他什么?