AVPicture中data与linesize关系
来源:互联网 发布:小米手机移动网络改dns 编辑:程序博客网 时间:2024/06/10 12:01
AVPicture结构中data和linesize关系
AVPicture里面有data[4]和linesize[4]其中data是一个指向指针的指针(二级、二维指针),也就是指向视频数据缓冲区的首地址,而data[0]~data[3]是一级指针,可以用如下的图来表示:
data -->xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
^ ^ ^
| | |
data[0] data[1] data[2]
比如说,当pix_fmt=PIX_FMT_YUV420P时,data中的数据是按照YUV的格式存储的,也就是:
data -->YYYYYYYYYYYYYYYYYYYYYYYYUUUUUUUUUUUVVVVVVVVVVVV
^ ^ ^
| | |
data[0] data[1] data[2]
linesize是指对应于每一行的大小,为什么需要这个变量,是因为在YUV格式和RGB格式时,每行的大小不一定等于图像的宽度。
linesize = width + padding size(16+16) for YUV
linesize = width*pixel_size for RGB
padding is needed during Motion Estimation and Motion Compensation for Optimizing MV serach and P/B frame reconstruction
for RGB only one channel is available
so RGB24 : data[0] = packet rgbrgbrgbrgb......
linesize[0] = width*3
data[1],data[2],data[3],linesize[1],linesize[2],linesize[2] have no any means for RGB
测试如下:(原始的320×182视频)
如果pix_fmt=PIX_FMT_RGBA32
linesize 的只分别为:1280 0 0 0
如果pix_fmt=PIX_FMT_RGB24
linesize 的只分别为:960 0 0 0
如果pix_fmt=PIX_FMT_YUV420P
linesize 的只分别为:352 176 176 0
参考:http://bbs.chinavideo.org/viewthread.php?tid=119&extra=page%3D1%26filter%3Ddigest&page=1
- AVPicture中data与linesize关系
- AVPicture中data与linesize关系
- AVPicture中data与linesize关系
- AVPicture中data与linesize关系
- AVPicture中data与linesize关系
- AVPicture结构中data和linesize关系
- AVFrame中data与linesize关系
- 关于解码后的data与linesize的关系
- avframe中的linesize与width的关系
- AVPicture中函数功能介绍
- AVFrame 中 linesize 含义剖析
- sqlplus 中 set wrap off/on;set linesize N
- AVPicture解析
- AVPicture解析
- OC中data与date
- 阐述对core data 与sqlite之间关系的理解
- 简单描述QAbstractItemModel::dataChanged() 与 QAbstractItemModel::data() 的关系
- Scala中()与{}的关系
- 数据库设计三大范式
- 数组中只出现一次的数字
- dedecms标签:arclistsg独立单表模型文档列表
- sublime ctags 老是找不到正确版本的解决方法
- javascript:从 复选框来选中俩个数值,然后从单选框按钮来选择加减乘除运算符,实现简单的计算器.
- AVPicture中data与linesize关系
- C# 对象与json互转
- [LeetCode] Two Sum [17]
- 九度online:题目1002:Grading
- 条款22:将成员变量声明为private
- Dijkstra算法
- dedecms标签:channel获取栏目列表标签
- 【LeetCode】Divide Two Integers
- oracle命令学习笔记(二)