为什么av_parser_parse2()组包后将入队之前(AVPacket->data)数据保存至264文件和出队之后保存至264文件的数据相差16个字节?

Guton-2019 2017-11-13 08:21:55
数据:H264裸流
前提:将H264数据用av_parser_parse2()组包,数据在队列中的存取过程产生的问题;
入队前保存至264文件数据:AVPacket->data;
出队后保存至264文件数据:AVPacket->data;
如图:
二进制对比图:
结果:导致解码一直出现no frame的错误(如下图),且无法显示图片
...全文
823 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
amz_mall 2017-11-14
  • 打赏
  • 举报
回复
处理太简单了,需要把数据拷贝出来,而不是简单地把地址存进队列 入队前
AVPacket *pk_push = malloc(sizeof(AVPacket ));
*pk_push = *pktIn;
pk_push->data = malloc(pk_push->len);
memcpy(pk_push->data, pktIn->data, pk_push->len);
m_que.push(pk_push);
用完后不要忘了释放数据

free(pkout->data);
free(pkout);
Guton-2019 2017-11-13
  • 打赏
  • 举报
回复
入队出队源码:

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧