视频应用开发中常用的几个结构体

在视频应用的开发中,经常会使用到几个结构体,如MPEG2VIDEOINFO和VIDEOINFOHEADER2等,用来表示视频播放中所需要的一些参数。定义分别如下:

1、MPEG2VIDEOINFO:

typedef struct tagMPEG2VIDEOINFO
{
  VIDEOINFOHEADER2 hdr;<span style="white-space:pre">		</span>//兼容VIDEOINFOHEADER2类型
  DWORD dwStartTimeCode;<span style="white-space:pre">	</span>
  DWORD cbSequenceHeader;<span style="white-space:pre">	</span>//dwSequenceHeader的长度(字节为单位)
  DWORD dwProfile;<span style="white-space:pre">		</span>//标记MPEG2 profile的索引
  DWORD dwLevel;<span style="white-space:pre">		//标记MPEG2 </span>level<span style="white-space:pre">的索引</span>
  DWORD dwFlags;<span style="white-space:pre">		</span>//配置信息
  DWORD dwSequenceHeader[1];<span style="white-space:pre">	</span>//序列头数据
} MPEG2VIDEOINFO;

该结构体用于描述一个MPEG2格式的视频流对象。

2、VIDEOINFOHEADER2:

typedef struct tagVIDEOINFOHEADER2
{
  RECT rcSource;<span style="white-space:pre">			</span>//该成员和下一个成员分别表示原显示区域和目标显示区域,可用于目标视频区的拉伸或裁减
  RECT rcTarget;
  DWORD dwBitRate;<span style="white-space:pre">			</span>//当前视频的码率
  DWORD dwBitErrorRate;<span style="white-space:pre">			</span>//当前视频的误码率
  REFERENCE_TIME AvgTimePerFrame;<span style="white-space:pre">	</span>//以毫秒表示当前平均播放一帧的时间
  DWORD dwInterlaceFlags;<span style="white-space:pre">		</span>//标识当前视频是否为隔行视频
  DWORD dwCopyProtectFlags;<span style="white-space:pre">		</span>//限制拷贝标识
  DWORD dwPictAspectRatioX;<span style="white-space:pre">		</span>//该成员和下一个成员分别表示视频纵横比的x和y分量,以inch为单位
  DWORD dwPictAspectRatioY;
  DWORD dwReserved1;
  DWORD dwReserved2;
  BITMAPINFOHEADER bmiHeader;<span style="white-space:pre">		</span>//位图结构
} VIDEOINFOHEADER2;

该结构体记录了视频中的位图、扫描方式、纵横比等信息。

3、BITMAPINFOHEADER:

typedef struct tagBITMAPINFOHEADER
{
  DWORD biSize;
  LONG biWidth;
  LONG biHeight;
  WORD biPlanes;
  WORD biBitCount
  DWORD biCompression;
  DWORD biSizeImage;
  LONG biXPelsPerMeter;
  LONG biYPelsPerMeter;
  DWORD biClrUsed;
  DWORD biClrImportant;
} BITMAPINFOHEADER; 

BITMAPINFOHEADER结构体的作用相当容易理解,即包含了位图本身以及解码之后需要在显示设备上渲染的图像的特性,如图像大小、分辨率、位数等。

时间: 2024-09-20 00:59:02

视频应用开发中常用的几个结构体的相关文章

iOS开发中常用的数学函数

iOS开发中常用的数学函数   /*---- 常用数学公式 ----*/ //指数运算 3^2 3^3 NSLog(@"结果 %.f", pow(3,2)); //result 9 NSLog(@"结果 %.f", pow(3,3)); //result 27 //开平方运算 NSLog(@"结果 %.f", sqrt(16)); //result 4 NSLog(@"结果 %.f", sqrt(81)); //result

PHP网站开发中常用的8个小技巧

 这篇文章主要介绍了PHP网站开发中常用的8个小技巧,本文讲解了命名.使用.PHP判断Form表单是否提交.PHP 获取字符串长度.PHP超全局对象等内容,需要的朋友可以参考下     PHP是一种用于创建动态WEB页面的服务端脚本语言.如同ASP和ColdFusion,用户可以混合使用PHP和HTML编写WEB页面,当访 问者浏览到该页面时,服务端会首先对页面中的PHP命令进行处理,然后把处理后的结果连同HTML内容一起传送到访问端的浏览器.但是与ASP或 ColdFusion不同,PHP是一

PHP开发中常用的十个代码样例_php实例

一.黑名单过滤 function is_spam($text, $file, $split = ':', $regex = false){ $handle = fopen($file, 'rb'); $contents = fread($handle, filesize($file)); fclose($handle); $lines = explode("n", $contents); $arr = array(); foreach($lines as $line){ list($w

asp开发中常用函数

asp教程开发中常用函数 sub lastnextpage(pagecount,page,table_style,font_style) '生成上一页下一页链接  dim query, a, x, temp  action = "http://" & request.servervariables("http_host") & request.servervariables("script_name")  query = spli

移动开发-android开发中常用的framework 以及其应用场合

问题描述 android开发中常用的framework 以及其应用场合 在android开发的过程中 我们总会遇到这样或者那样的问题 从底层一路写过来 希望再了解android框架之后可以给我们的开发提高效率 谢谢大家了 解决方案 我对framework的理解是,做应用开发,开发出一套framework,在此基础进行app开发,就不用太操心适配的问题了. 解决方案二: 它可以复用,可以嵌入到其他activity,也可以放到viewpaper中,实现滑动翻页

asp.net 开发中常用正则表达式收藏

提供一几个开发中常用正则表达式,如有电话,手机,邮箱,url,有需要的朋友可能可以看一下. 第一个:验证输入的字符串是否为数字 view code    /// <summary>         /// 验证输入字符串为数字         /// </summary>         /// <param name="p_str_num">输入字符</param>         /// <returns>返回一个bool

iOS开发中常用的各种动画、页面切面效果_IOS

今天主要用到的动画类是CALayer下的CATransition至于各种动画类中如何继承的在这也不做赘述,网上的资料是一抓一大把.好废话少说切入今天的正题. 一.封装动画方法 1.用CATransition实现动画的封装方法如下,每句代码是何意思,请看注释之. #pragma CATransition动画实现 - (void) transitionWithType:(NSString *) type WithSubtype:(NSString *) subtype ForView : (UIVi

js开发中常用日期时间函数

js开发中常用日期时间函数 字符串转成日期类型,date.prototype.isleapyear 判断闰年 date.prototype.format 日期格式化 date.prototype.dateadd 日期计算 date.prototype.datediff 比较日期差 date.prototype.tostring 日期转字符串 date.prototype.toarray 日期分割为数组 date.prototype.datepart 取日期的部分信息 date.prototype

PHP网站开发中常用的8个小技巧_php实例

PHP是一种用于创建动态WEB页面的服务端脚本语言.如同ASP和ColdFusion,用户可以混合使用PHP和HTML编写WEB页面,当访 问者浏览到该页面时,服务端会首先对页面中的PHP命令进行处理,然后把处理后的结果连同HTML内容一起传送到访问端的浏览器.但是与ASP或 ColdFusion不同,PHP是一种源代码开放程序,拥有很好的跨平台兼容性.用户可以在Windows NT系统以及许多版本的Unix系统上运行PHP,而且可以将PHP作为Apache服务器的内置模块或CGI程序运行. 本