NAL聚合包(STAP-A)

NAL聚合包(STAP-A)安卓 N 版本 AAVCAssemble addSingleTim 对聚合的 NAL 包 STAP A 的处理

bool AAVCAssembler::addSingleTimeAggregationPacket(const sp<ABuffer> &buffer) { const uint8_t *data = buffer->data(); size_t size = buffer->size(); if (size < 3) { //对于聚合的NAL单元包(STAP-A)来说,数据最小的长度位3个字节,其中data[0]表明是聚合的 //NAL单元包(STAP-A)即,nalType = data[0] & 0x1f == 28 //data[1]和data[2]用16个bit位表示的一个16位整数的值表示紧跟着第一个NAL单元的长度 ALOGV("Discarding too small STAP-A packet."); return false; } //跳过data[0],data[0]表明是聚合的NAL单元包(STAP-A ++data; --size; //因为紧跟着data[0]后续会有多个NAL单元,所以需要循环处理这些NAL单元 while (size >= 2) { //前两个字节表示的16位整数的值表示的是该NAL单元的长度,不包括这两个字节 size_t nalSize = (data[0] << 8) | data[1]; if (size < nalSize + 2) { //标识一个NAL单元的范围位是2+nalSize,2表示的是该NAL单元的长度,nalSize //是实际一个NAL单元的长度 ALOGV("Discarding malformed STAP-A packet."); return false; } //创建一个buffer将该解析得到的单个的NAL单元拷贝到该buffer中 sp<ABuffer> unit = new ABuffer(nalSize); memcpy(unit->data(), &data[2], nalSize); //对该单个的NAL单元添加时间戳信息 CopyTimes(unit, buffer); //调用addSingleNALUnit(unit)方法处理单个的NAL单元 addSingleNALUnit(unit); //迭代进行处理下一个NAL单元 data += 2 + nalSize; size -= 2 + nalSize; } if (size != 0) { ALOGV("Unexpected padding at end of STAP-A packet."); } return true; }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/225221.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午9:49
下一篇 2026年3月17日 上午9:49


相关推荐

  • scrollIntoView 滑动卡顿或scrollIntoView不生效问题

    scrollIntoView 滑动卡顿或scrollIntoView不生效问题在实际生产中遇到 scrollIntoVi 滑动卡顿现象 dom scrollIntoVi behavior smooth block nearest start center end nearest 默认 inline nearest

    2026年3月16日
    1
  • pycharm怎么设置默认编码为utf-8

    pycharm怎么设置默认编码为utf-8一在我们的电脑上打开 pycharm 点击 file gt settings 二进去 settings 界面之后 点击 Editor gt FileEncoding 三将 GlobalEncodi 和 projectEncod 的编码设置为 utf 8 点击下拉框可以进行设置四可以看到已经设置项目默认编码为 utf 8 了 点击 OK 就设置完成了另外可以设置属性文件

    2026年3月27日
    2
  • php网站友链直显代码,discuz 友情链接 代码

    php网站友链直显代码,discuz 友情链接 代码discuz 首页不显示友情链接怎么办很简单 只要在模板 footer 上加上几句代码 其实 在 footer php 中添加以下代码即可调用显示友链模块 viewsourcepr 1 友情链接 discuz 论坛如何设置全站友情链接 discuz 论坛如何设置全站友情链接 每个页面底下都可以出现友情链接 怎页面 diy 后台勾分组 论坛 discuz 怎么添加一个友情链

    2026年3月19日
    2
  • Hibernate官网下载最新版jar包[通俗易懂]

    Hibernate官网下载最新版jar包[通俗易懂]官网地址:http://hibernate.org/1、点击HibernateORM的More2、点击下载最新版3、向下滚动,下载自己所需要的版本,点击Download4、等待几秒后弹出下载5、如果下载其他旧版本,可以在第一步后,点解页面中的otherseries.6、更老的版本点击seeolderseries7、下载4.2版本,点击Moreinfo8…

    2025年6月13日
    5
  • 【c#】枚举

    【c#】枚举【c#】枚举

    2022年4月25日
    47
  • 由真值表求逻辑表达式的方法是_与非门逻辑表达式

    由真值表求逻辑表达式的方法是_与非门逻辑表达式第一种方法:以真值表内输出端“1”为准第一步:从真值表内找输出端为“1”的各行,把每行的输入变量写成乘积形式;遇到“0”的输入变量上加非号。第二步:把各乘积项相加,即得逻辑函数的表达式。第二种方法:以真值表内输出端“0”为准第一步:从真值表内找输出端为“0”的各行,把每行的输入变量写成求和的形式,遇到“1”的输入变量上加非号。第二步:把各求和项相乘,即得逻辑函数表达式。总结,哪…

    2025年5月26日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号