1、第一层,Header Object,这个结构一般不解析。没什么用。跳过这30字节的结构
2、第二层,File Properties Object 、Header ExtensionObject和Stream Properties Object,前两个也没解析,直接跳过了。Header Object是一个容器,它里面必须包含一个File PropertiesObject, 一个Header Extension Object 和至少一个Stream Properties Object。
a) 用while循环从读入的数据中查找每个Stream Properties Object类型的128bit的Object ID,(Stream Properties Object是流属性对象,定义一个媒体流和其属性),如果找到,返回找到的位置pos。ff_asf_stream_header(B7DC0791-A9B7-11CF-8EE6-00C00C205365(guid),16进制guid的顺序是9107DCB7-B7A9-CF11-8EE6-00C00C205365)这个标志代表了Stream Properties Object类型的Object ID。
b) 获取16字节的Stream Type字段,判断当前stream的类型(video、audio)
i. 如果当前stream是ASF_Video_Media型,即Stream Type是BC19EFC0-5B4D-11CF-A8FD-00805F5C442B(guid),16进制guid的顺序是C0EF19BC-4D5B-CF11-A8FD-00805F5C442B,那么进行Video media type类型的Type-Specific Data数据解析。转第三层,BITMAPINFOHEADER 类型结构。
ii. 如