H264解码深度解析——DM8168 OMX从H264文件读取一帧数据(do chunking of h264)

2023-11-14

 

源码来源:TI - DM8168 - EZSDK - OMX - examples - decode_display

 

基本执行流程如下:

 


Decode_GetNextFrameSize(H264_ParsingCtx *pc)函数源码(加注释)如下:

 

/*****************************************************************************\
*     Decode_GetNextFrameSize Function Declaration
\*****************************************************************************/
/**
*
* @brief    Gets the size of thenext frame, It is doing chunking of h264
*           elementary bitstream and providing frames to OMX component.
*
* @param in:
*           pc: Pointer to H264_ParsingCtx structure
*
* @param Out:
*           None
*
* @return   uint32_t - Frame Size
*
*/
 
unsigned int Decode_GetNextFrameSize(H264_ParsingCtx *pc)
{
 FILE *fp = pc->fp; // pc->fp指向的是H264文件
 unsigned char *readBuf = pc->readBuf;
 H264_ChunkingCtx *ctx = &pc->ctx;
 AVChunk_Buf *inBuf = &pc->inBuf;
 AVChunk_Buf *outBuf = &pc->outBuf;
 
 unsigned char termCond = 1;
  if(pc->firstParse == 1) // pc->firstParse的初始化值就是1
   termCond = 0;
 
 while ((!feof (fp)) ||
        ((((pc->firstParse == 0) && (pc->bytes != 0))
          && (pc->bytes <= READSIZE) && (pc->tmp <=pc->bytes))))
  {
   if (pc->firstParse == 1)
    {
     pc->bytes = fread (readBuf, 1, READSIZE, fp);//将H264比特流读取到readBuf
     if (!pc->bytes)
     {
       return 0;
     }
     inBuf->ptr = readBuf;  // inBuf->ptr也指向了H264比特流数据
     pc->tmp = 0;
     pc->firstParse = 0;
    }
   else
    {
     if (pc->bytes <= pc->tmp)
     {
       pc->bytes = fread (readBuf, 1, READSIZE, fp);
       if (!pc->bytes)
       {
         return 0;
       }
       inBuf->ptr = readBuf;
       pc->tmp = 0;
     }
    }
 
   while (pc->bytes > pc->tmp)
    {
     inBuf->bufsize =
       ((pc->bytes - pc->tmp) > 184) ? 184 : (pc->bytes -pc->tmp)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

H264解码深度解析——DM8168 OMX从H264文件读取一帧数据(do chunking of h264) 的相关文章

  • Android下基于Http协议的网络摄像机开发

    这段时间在做Android平台下的网络摄像机的兼容 摄像机的通讯采用Http1 1协议 现将遇到的问题简单总结一下 1 Http协议中需要用到身份认证部分 不同厂家的摄像机所采取的方案可能有所不同 但是大体无外乎都是将摄像机的用户名和密码简
  • 从 AVAssetWriter 读取实时 H.264 输出时数据损坏

    我正在使用一些技巧来尝试在将 AVAssetWriter 写入磁盘时读取其原始输出 当我通过连接各个文件来重新组装它们时 生成的文件与 AVAssetWriter 的输出文件的字节数完全相同 但是 重新组装的文件将无法在 QuickTime
  • 如何从 C# 中的一组图像创建 H.264 编码的电影?

    我今天做了很多搜索 C 库 这将允许我创建 H 264 编码的视频文件 有谁知道是否存在这样的库或第三方组件 Use ffmpeg 我建议直接运行 ffmpeg 进程 如本示例所示 http jasonjano wordpress com
  • 通过 MP4 进行直播

    我正在从事在线电视服务工作 目标之一是无需任何额外的浏览器插件 Flash 除外 即可播放视频 我决定使用 MP4 因为大多数 HTML5 浏览器和 Flash 作为后备 都支持它 这些视频由 FFMpeg 从服务器上的 ASF 进行转码
  • ffmpeg API h264编码的视频不能在所有平台上播放

    Edit 在之前的版本中 我使用了非常旧的 ffmpeg API 我现在使用最新的库 问题仅略有变化 从 主要 变为 高 我正在使用 ffmpeg C API 在 C 中创建 mp4 视频 我希望生成的视频具有 约束基线 配置文件 以便生成
  • H.264 中的 VBV(视频缓冲验证器)是什么?

    我不明白什么是 VBV 视频缓冲验证器 以及它与 maxrate 有什么关系 当我使用这个命令时 ffmpeg i input mp4 crf 21 maxrate 750k bufsize 750k codec v 0 libx264 s
  • H264 帧查看器

    您知道有什么应用程序可以向我显示单个 H264 帧的所有标头 参数吗 我不需要解码它 我只是想看看它是如何构建的 我想到了三种方法 如果您正在寻找免费的东西 否则谷歌 h264分析 以获取付费选项 下载h 264解析器 http www w
  • Android MediaCodec 似乎可以缓冲 H264 帧

    我正在手动读取 RTP H264 流并将 H264 帧传递给 Android MediaCodec 我使用 markerBit 作为框架的边框 MediaCodec 与 OpenGL 纹理 SurfaceTexture 绑定 一般来说 一切
  • 从 H.264 中删除 EIA-608 隐藏式字幕而不重新编码

    我希望从 H 264 视频 包含为 mkv 中删除隐藏字幕 EIA 608 而不需要重新编码 我最接近的是使用 ffmpeg ffmpeg f lavfi i movie input mkv out subcc map 0 0 output
  • 如何定量测量源和显示器之间的 gstreamer H264 延迟?

    我有一个项目 我们使用 gstreamer x264 等将视频流通过本地网络多播到多个接收器 连接到显示器的专用计算机 我们在视频源 摄像机 系统和显示监视器上使用 gstreamer 我们使用 RTP 有效负载 96 和 libx264
  • 视频流基础设施

    我们想建立一个实时视频聊天网站 并正在寻找基本的架构建议和 或针对要使用的特定框架的推荐 以下是该网站的基本功能 大多数流媒体将由一个人通过网络摄像头等进行现场直播 通常由 1 10 人观看 但最多可能有 100 多名观众 音频和视频不必是
  • 使用 ffmpeg 将视频从 .264 转换为 .265 (HEVC)

    我看到关于这个主题的一些问题 但我仍然收到错误 我想要做的就是将库中的视频转换为 HEVC 以便它们占用更少的空间 我试过这个 ffmpeg i input mp4 c v libx265 output mp4 ffmpeg 似乎需要很长时
  • 时间戳和合成时间偏移

    H 264 缓冲区是否包含时间戳和解码时间戳信息 当我们获得 H 264 nalu 数据时 其中是否包含计时信息 如果您指的是原始 H 264 NAL 单元 那么它们不包含计时信息 如果指的是 PTS DTS 之类的内容 MKV MP4 T
  • H264解析-切片头检测

    我知道在 h264 中我们可以通过位模式检测 NAL 单元0x000001 是否有等效的方法来检测 NAL 单元中的切片标头 如何处理多切片 NAL 单元 目前我正在使用 h264 的解析代码并获取相应结构中的切片标头 切片头语法在第 36
  • 实现 HTML5 视频的最佳方式

    我知道 HTML5 视频比其支持者希望我们相信的要复杂得多 Safari 使用专有的 H 264 编解码器 而 Firefox Chrome 和 Opera 都支持开源 Theora Internet Explorer 两者都不支持 因此需
  • 使用 libavformat API 读取 H264 SPS 和 PPS NAL 字节

    如何使用 libavformat API 读取 H264 SPS 和 PPS NAL 字节 我尝试使用 av read frame input avFormatContext avPkt API 从 mp4 视频 编解码器为 h264 文件
  • 非 IDR 图片 NAL 单元 - 0x21 和 0x61 含义

    有谁知道是什么0x21 and 0x61是指在 h 264 编码的视频流中吗 我知道0x01意味着它是一个b frame and 0x41意味着它是一个p frame 我的编码视频给了我两个0x21帧后跟一帧b frame I 21 21
  • 将 H.264 I 帧放入 AVSampleBufferDisplayLayer 但不显示视频图像

    在详细回顾了 WWDC2014 Session513 后 我尝试在 IOS8 0 上编写我的应用程序来解码和显示一个实时 H 264 流 首先 我成功构建了H264参数集 当我得到一个带有 4 位起始代码的帧时 就像 0x00 0x00 0
  • FFmpeg - H264 编码器找不到有效设备并且无法配置编码器

    我尝试使用 H264 编码器进行编码 但是当我这样做时 出现以下错误 h264 v4l2m2m 0x55682d2416c0 Could not find a valid device h264 v4l2m2m 0x55682d2416c0
  • 如何减少 MediaCodec H264 编码器延迟

    我正在尝试使用 Android6 0 的 MediaCodec 将 h264 实时低延迟编码为流 编码器大约有 6 帧延迟 我想知道如何减少 代码来自屏幕记录 cpp https android googlesource com platf

随机推荐

  • Discuz!开发之主题高亮字段highlight解析

    Discuz 开发之主题高亮字段highlight解析 相关数据表pre forum thread 我们可以看到主题高亮信息存储于字段highlight 且为一个整型数据 那么discuz 如何将这个整型数解析为高亮 包括 字体颜色 背景颜
  • FPGA开发流程概述

    Lesson 3 FPGA开发流程概述 开始学习FPGA 想尽快上手FPGA开发 那么先来了解一下FPGA的开发流程 1 需求分析到模块划分 需求说明文档 器件选择 逻辑资源 功耗 IO数量 封装等等 配置电路考虑 开发工具选择 电路板的可
  • 数据结构与算法实验-实验一:线性表基本操作

    线性表基本操作 文章目录 线性表基本操作 题目1 题目2 题目3 题目1 线性表是最常见和常用的ADT 假设线性表的元素为整数 请基于顺序存储结构实现线性表ADT 基本功能包括 1 建立线性表 输入有两行 第一行是一个整数n 线性表的长度
  • SpringMVC自定义视图完成步骤 和 视图解析的源码剖析

    自定义视图完成步骤 7 2 1自定义视图完成步骤 1 自定义视图 创建一个 View 的 bean 该 bean 需要继承自 AbstractView 并实现 renderMergedOutputModel 方法 2 并把自定义 View
  • 【项目实战】在win10上安装配置Hadoop的环境变量

    一 说明 注意 该教程适用于 远程连接Linux上的Hadoop集群 因此本步骤是不需要在本地再下载hadoop的 在win10操作系统上 运行Hadoop以及其相关依赖包 比如Hbase依赖包 时 我遇到的情况是 我需要使用SpringB
  • 素数(埃式筛法、线性筛法)

    文章目录 素数判断方法 埃式筛法 线性筛法 区间筛法 质因数分解 例题 第一题 第二题 第三题 素数判断方法 最简单的就是从 2 n 1 都去与 n 取余 看是否能整除 bool prime int n for int i 2 i lt n
  • 使用linuxdeployqt在linux下进行Qt打包发布(超详细)

    首先 来说下 本教程实现的功能 在linux下对开发的Qt应用 进行拷贝依赖文件so等 并打成deb安装包 实现可安装 卸载 安装完毕自动在开始菜单下和桌面添加快捷方式 卸载后自动删除快捷方式 以及删除应用生成的log文件 测试环境 ubu
  • 自学Android资料大全

    学习级别 很多人都往往划分成入门 初级 中间 骨灰级等 这里就简单地划分为两级 基础篇和进阶篇 另外 本文涉及到的所有书籍都是在学习过程中所读过的比较经典的一些书籍 一 基础篇 看书的姿态 学习过程往往大家都需要看书 网上一搜 往往会有一大
  • 浪潮服务器更换硬盘_携手希捷,浪潮领先业界完成希捷银河(Exos)X18企业级硬盘评测...

    全球领先的数据存储解决方案提供商希捷科技 NASDAQ STX 宣布 携手浪潮完成对希捷银河 Exos X18企业级硬盘的评估 该硬盘拥有目前业界最高的18TB超大容量 性能卓越 用于承载大规模数据中心的海量数据 双方在实际工作负载环境中测
  • Python @函数装饰器及用法(超级详细)

    使用 符号引用已有的函数 比如 staticmethod classmethod 后 可用于修饰其他函数 装饰被修饰的函数 那么我们是否可以开发自定义的函数装饰器呢 答案是肯定的 当程序使用 函数 比如函数 A 装饰另一个函数 比如函数 B
  • AcWing 420. 火星人

    y总讲得很好 学到很多所以安利一下 转载自Acwing yxc 算法 贪心 全排列 O nm O nm 这道题目可以直接用next permutation函数来做 这里我们考虑一下next permutation函数的原理 然后手动实现一遍
  • c++ modbusTCP

    Modbus TCP是一种基于TCP IP协议的Modbus协议 它允许Modbus协议通过以太网进行通信 在C 中 可以使用第三方库来实现Modbus TCP通信 例如libmodbus和QModbus 使用libmodbus库实现Mod
  • 介绍一种巧妙的删除程序自己的方法

    介绍一种巧妙的删除程序自己的方法 vcbear 近日看到网友询问如何实现程序运行之后把自己删除的方法 不知大家对木马甚么的兴趣实在太浓 还是想要这样的效果 用户只要一运行程序 可执行文件就没有了 可是程序还是在跑 胆小的只怕要喊 鬼呀 老婆
  • Pytorch英文官方文档学习笔记(三、Torch.nn及torch.optim)

    一 nn Module的使用 Every module in PyTorch subclasses the nn Module 自己定义的每个module都一定是nn Module的子类 pytorch在nn Module中 实现了 cal
  • lod地形

    lod地形 2014 05 17 23 29 1471人阅读 评论 0 收藏 举报 分类 图形学 17 OGRE相关 75 目录 http blog sina com cn s blog 5e3213f30100zxet html 最近在看
  • 对于同步和非同步,阻塞和非阻塞,BIO,NIO的概念的回顾

    同步和异步 同步和异步其实是指CPU时间片的利用 主要看请求发起方对消息结果的获取是主动发起的 还是被动通知的 如下图所示 如果是请求方主动发起的 一直在等待应答结果 同步阻塞 或者可以先去处理其他事情 但要不断轮询查看发起的请求是否有应答
  • 阿里云服务器实现 frp 内网穿透

    更多精彩内容请访问我的新博客站点 前言 前几天在一台具有公网IP的 vultr 云服务器上实现了 frp 内网穿透 参考链接 可以从寝室 ssh 登录到教研室的服务器 但是由于 vultr 的云服务器位于国外的节点 连接速度太慢了 导致连接
  • 信息采编功能扩展开发心得

    AEAI Portal门户为前端页面集成层而设计 在使用上简单 便捷 即使是非技术人员 通过操作文档也能够很好地将网站配置出来 不需要自身有很强的代码能力 同时门户平台搭配数通畅联的其他产品和组合方案 能够帮助企业快速搭建集成的 内容丰富
  • GoLand之学习之路--持续更新

    GoLand之学习之路 持续更新 基础包 time 获取当前时间 Bytes 多个 byte数组合并成一个 byte 高级用法 interface 得到调用者函数名 pprof sync Once 命令行参数实例 使用小技巧 string和
  • H264解码深度解析——DM8168 OMX从H264文件读取一帧数据(do chunking of h264)

    源码来源 TI DM8168 EZSDK OMX examples decode display 基本执行流程如下 Decode GetNextFrameSize H264 ParsingCtx pc 函数源码 加注释 如下 Decode