文章转自:http://www.isvee.com/archives/2018
PIX_FMT_YUV420P -> AV_PIX_FMT_YUV420P 'AVStream::codec': 被声明为已否决: if(pFormatCtx->streams[i]->codec->codec_type==AVMEDIA_TYPE_VIDEO){ => if(pFormatCtx->streams[i]->codecpar->codec_type==AVMEDIA_TYPE_VIDEO){ 'AVStream::codec': 被声明为已否决: pCodecCtx = pFormatCtx->streams[videoindex]->codec; => pCodecCtx = avcodec_alloc_context3(NULL); avcodec_parameters_to_context(pCodecCtx, pFormatCtx->streams[videoindex]->codecpar); 'avpicture_get_size': 被声明为已否决: avpicture_get_size(AV_PIX_FMT_YUV420P, pCodecCtx->width, pCodecCtx->height) => #include "libavutil/imgutils.h" av_image_get_buffer_size(AV_PIX_FMT_YUV420P, pCodecCtx->width, pCodecCtx->height, 1) 'avpicture_fill': 被声明为已否决: avpicture_fill((AVPicture *)pFrameYUV, out_buffer, AV_PIX_FMT_YUV420P, pCodecCtx->width, pCodecCtx->height); => av_image_fill_arrays(pFrameYUV->data, pFrameYUV->linesize, out_buffer, AV_PIX_FMT_YUV420P, pCodecCtx->width, pCodecCtx->height, 1); '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含义相反 'av_free_packet': 被声明为已否决: av_free_packet(packet); => av_packet_unref(packet);