为什么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的错误(如下图),且无法显示图片
...全文
738 2 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
入队出队源码:
  • 打赏
  • 举报
回复
相关推荐
发帖
多媒体/流媒体开发
加入

2495

社区成员

专题开发/技术/项目 多媒体/流媒体开发
申请成为版主
帖子事件
创建了帖子
2017-11-13 08:21
社区公告
暂无公告