参考链接
- ffmpeg 源代码简单分析 : avcodec_decode_video2()_雷霄骅的博客-CSDN博客_avcodec_decode_video2
avcodec_decode_video2
- ffmpeg中的avcodec_decode_video2()的作用是解码一帧视频数据。
- 输入一个压缩编码的结构体AVPacket,输出一个解码后的结构体AVFrame。
avcodec_send_packet 和 avcodec_receive_frame 替代 avcodec_decode_video2
- avcodec_decode_video2': 被声明为已否决:
- ret = avcodec_decode_video2(pCodecCtx, pFrame, &got_picture, packet); //got_picture_ptr Zero if no frame could be decompressed
- =>
- ret = avcodec_send_packet(pCodecCtx, packet);
- got_picture = avcodec_receive_frame(pCodecCtx, pFrame); //got_picture = 0 success, a frame was returned
- //注意:got_picture含义相反
- 或者:
- int ret = avcodec_send_packet(aCodecCtx, &pkt);
- if (ret != 0)
- {
- prinitf("%s/n","error");
- return;
- }
- while( avcodec_receive_frame(aCodecCtx, &frame) == 0){
- //读取到一帧音频或者视频
- //处理解码后音视频 frame
- }
- 参考链接:ffmpeg 新版本avcodec_send_packet 和avcodec_receive_frame实现解码_Lammyzp的博客-CSDN博客_avcodec_send_packet