由于ffmpeg api的变更,有两种方法解码h264帧数据
int m_i_frameFinished=0;
avcodec_decode_video2(ctx, frm, &m_i_frameFinished, &pkt);
/*int ret = avcodec_send_packet(ctx, &pkt);
if ((ret < 0) && (ret != AVERROR(EAGAIN)) && (ret != AVERROR_EOF)) {
qDebug() << "Video send to decoder failed, error code: " << ret;
mutex.unlock();
return;
}
ret = avcodec_receive_frame(ctx, frm);
if ((ret < 0) && (ret != AVERROR_EOF)) {
qDebug() << "Video frame decode failed, error code: " << ret;
mutex.unlock();
return;
}else{
m_i_frameFinished=1;
}*/
以上两种方法等价,特此记录一下