AVPicture中data与linesize关系
来源:互联网 发布:mac下载软件怎么安装 编辑:程序博客网 时间:2024/06/11 03:46
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中()与{}的关系
- axis1.4 websercice服务客户端开发
- 畅通工程续
- sqlite limit用法
- uva128 - 软件CRC
- 笔记:Linux shell(一): 简单入门
- AVPicture中data与linesize关系
- STL map 、PHP HashTable、hash_map 性能比较
- 算法:堆栈与深度优先搜索(迷宫问题)
- 可输入的下拉框
- 客户端防表单重复提交和服务器端session防表单重复提交
- 不可错过的250款独立游戏(珍藏版)
- static_cast, dynamic_cast和reinterpret_cast的区别和应用(转载)
- hadoop中的公平调度的实现算法
- .net动态生成控件,获取属性