H264 STAP-A解包代码(测试通过)
测试通过,并进行了优化。思路:
- 拷贝0001到数据区。
- 得到size,复制size到缓冲区。
- 循环直到结束。
为了保证性能,由调用方传递一个临时缓冲区。
具体代码如下,测试通过:
static int tdav_codec_h264_get_stapa_pay(const uint8_t* in_data, tsk_size_t in_size, const void** out_data, tsk_size_t *out_size, void** temp_buffer, tsk_size_t* temp_size)
{uint8_t* buf = in_data;tsk_size_t len = in_size;int dst_len = 0;uint8_t *dst = NULL;if (in_size <= H264_FUA_HEADER_SIZE) {TSK_DEBUG_ERROR("Too short");return -1;}if (*temp_size < (in_size*2)){*temp_size = in_size*2;*temp_buffer = tsk_realloc(*temp_buffer, *temp_size);}dst = *temp_buffer;buf ++;len --;const uint8_t *src = buf;int src_len = len;while (src_len > 2) {uint16_t nal_size = (src[0] << 8 | src[1]);src += 2;src_len -= 2;if (nal_size <= src_len){memcpy(dst, NAL_START_SEQUENCE, sizeof(NAL_START_SEQUENCE));dst += sizeof(NAL_START_SEQUENCE);dst_len += sizeof(NAL_START_SEQUENCE);memcpy(dst, src, nal_size);dst += nal_size;dst_len += nal_size;}else{TSK_DEBUG_ERROR("nal size exceeds length: %d %d\n", nal_size, src_len);return -1;}src += nal_size;src_len -= nal_size;}*out_data = *temp_buffer;*out_size = dst_len;return 0;
}
H264 STAP-A解包代码(测试通过)相关推荐
- 字符串拼接的四种方式详解,代码测试
字符串拼接的四种方式 1. 使用+ 号进行字符串拼接 2. concat() 方法 3 .StringBuffer(线程安全,效率没有 StringBuilder 高) 4. StringBuilde ...
- 文本搜索引擎Lucene之filed详解和代码测试
1.索引创建和查询过程 文档数据采集,一般是数据库的数据和爬虫获取的数据.而Lucene不提供信息采集的类库,需要自己编写一个爬虫程序实现信息采集,也可以通过一些开源软件实现信息采集,如下: Solr ...
- Protobuf解包组包
解包代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sy ...
- 头脑王者对战游戏html5源码,头脑王者分析笔记及微信小程序解包源码
最近感觉微信小程序比较火,周围很多人在玩"跳一跳"和"头脑王者"之类的小游戏. 对于小程序我也产生了浓厚的兴趣. 一开始看到官方的小程序的介绍,也看了小程序的部 ...
- 文件加密打包和解密解包
文件打包加密和解包解密 提示:这里记录上一章提到的加密解密进行一个进阶的 打包+加密 -- + --解包+解密 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 加密解密+打包解包 文 ...
- 【FFMPEG】基于RTP的H264视频数据打包解包类
最近考虑使用RTP替换原有的高清视频传输协议,遂上网查找有关H264视频RTP打包.解包的文档和代码.功夫不负有心人,找到不少有价值的文档和代码.参考这些资料,写了H264 RTP打包类.解包类,实现 ...
- 国标PS流解包(解封装)代码
该代码最初的版本来自于互联网,首先感谢前辈无私分享的精神,这个PS流解析代码小巧和可读性好,是学习PS格式的一个很好的参考例子.但原来的代码有不少Bug,QuickGBLink在原先代码基础上做了很多 ...
- java rtp 分片_RTP 协议解包为 H264 裸流
RTP 协议解包为 H264裸流 一. 为什么使用 RTP 协议? TCP 传输流媒体数据由于其可靠性,会造成很大的网络延时和卡顿. UDP 传输由于其不可靠性,会导致丢帧,如果是关键帧,则会花屏一个 ...
- CAN报文的打包与解包及代码自动生成
本文目录 1.背景 2.所需要的软件与硬件 3.Motorola编码和Intel编码 1.自动打包和解包 2.手动解包 4.实例 1.打包模型建立 2.数据对象管理 3.对比测试 4.等效性测试 5. ...
- H264视频传输、编解码----RTP协议对H264数据帧拆包、打包、解包过程
H264帧需要通过RTP协议进行传输,这其中就涉及到H264数据帧的封包.拆包和解包等过程. RTP协议格式 下面是 RFC 3550 中规定的 RTP 头的结构: 0 1 2 3 40 1 2 3 ...
最新文章
- cmake 常用变量和常用环境变量查表手册
- 日常生活小技巧 -- “Error: Encountered an improper argument”的解决方法
- ThreadLocal在Spring中的应用
- OS- -计算机硬件简介
- 计算机操作员理论知识试题,计算机操作员理论考试试题.doc
- 深度优先搜索——First Step(洛谷 P3654)
- stm32经典笔试题_嵌入式面试经典30问
- springboot+junit测试
- 手把手教你用jmeter做压力测试(详图)
- JAVA基础编程——数据库编程
- 遗传算法(Genetic Algorithm, GA)及MATLAB实现
- 各位大佬,Spark的重点难点系列暂时更新完毕
- JAVA 异或校验byte数组
- linux系统修改etc,Linux系统中修改/etc/profile文件的方法
- Mac显示隐藏文件命令
- 解决 have unmet dependencies: youdao-dict :
- 2004-2019年分省农产品进出口额
- 相亲app开发,解决内存循环引用的问题
- js高级面试题总结(es6)
- 在数据集Euroc v dataset下跑双目ORB-SLAM2
热门文章
- python语言的两种注释方法_python中编写注释的方法
- 在mysql中productname_ASP如何读出数据库里的英文符号.....%rs(ProductName)% 其是ProductName=10×26wood...
- 模板引擎工作原理_zuma致:新手SEO须知搜索引擎工作原理
- html如何加入浮动客服,css如何实现客服悬浮效果
- ip变更会影响账号登陆吗_代理IP的匿名度级别会影响自身稳定性吗
- 内是不是半包围结构_什么是结构化面试、无领导小组讨论、结构化小组面试?教你快速搞懂国考面试三大形式。...
- python中sort与sorted的区别_python排序函数sort()与sorted()的区别
- python中有readall吗_在python中使用tn.read_all()读取数据
- php无限极 left right,PHP超牛逼无限极分类生成树方法
- js highcharts拆线图