从品牌网站建设到网络营销策划,从策略到执行的一站式服务
int avcodec_receive_frame(AVCodecContext *avctx, AVFrame *frame);
/*
brief:从×××中获取解码的输出数据
*/
@参数 avctx 编码上下文
@参数 frame 这将会指向从×××分配的一个引用计数的视频或者音频帧(取决于解码类型)
@注意该函数在处理其他事情之前会调用av_frame_unref(frame)
@返回值
0:成功,返回一帧数据
AVERROR(EAGAIN):当前输出无效,用户必须发送新的输入
AVERROR_EOF:×××已经完全刷新,当前没有多余的帧可以输出
AVERROR(EINVAL):×××没有被打开,或者它是一个编码器
其他负值:对应其他的解码错误
代码例子
avcodec_send_packet和avcodec_receive_frame调用关系并不一定是一对一的,比如一些音频数据一个AVPacket中包含了1秒钟的音频,调用一次avcodec_send_packet之后,可能需要调用25次 avcodec_receive_frame才能获取全部的解码音频数据,所以要做如下处理:
int re = avcodec_send_packet(codec, pkt);
if (re != 0)
{
return;
}
while( avcodec_receive_frame(codec, frame) == 0)
{
//读取到一帧音频或者视频
//处理解码后音视频 frame
}
根据上面的评论,下面的代码是否有问题,当前只是处理视频帧数据
while(1)
{
int nRet = avcodec_send_packet(pAVCodecContext, packet);
if (0 != nRet) continue;
if (avcodec_receive_frame(pVideoc->m_pAVCodecContext, pFrame) != 0) continue;
}
参考
http://www.bubuko.com/infodetail-2106896.html
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、网络空间、营销软件、网站建设、开平网站维护、网站推广。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图