当前位置: 首页 > news >正文

做地图特效的网站成都注册公司多少钱

做地图特效的网站,成都注册公司多少钱,做外贸网站卖什么好,网站空间与域名的关系一、引言 AVIOContext是FFmpeg#xff08;本文演示用的FFmpeg源码版本为5.0.3#xff09;中的字节流上下文结构体#xff0c;用来管理输入输出数据。打开一个媒体文件的时候#xff0c;需要先把数据从硬盘读到缓冲区#xff0c;然后会用到AVIOContext中的如下成员#x…一、引言 AVIOContext是FFmpeg本文演示用的FFmpeg源码版本为5.0.3中的字节流上下文结构体用来管理输入输出数据。打开一个媒体文件的时候需要先把数据从硬盘读到缓冲区然后会用到AVIOContext中的如下成员 typedef struct AVIOContext { //.../** The following shows the relationship between buffer, buf_ptr,* buf_ptr_max, buf_end, buf_size, and pos, when reading and when writing* (since AVIOContext is used for both):************************************************************************************ READING************************************************************************************ | buffer_size |* |---------------------------------------|* | |** buffer buf_ptr buf_end* --------------------------------------* |/ / / / / / / /|/ / / / / / /| |* read buffer: |/ / consumed / | to be read /| |* |/ / / / / / / /|/ / / / / / /| |* --------------------------------------** pos* ------------------------------------------------------------* input file: | | |* ------------------------------------------------------------************************************************************************************* WRITING************************************************************************************ | buffer_size |* |--------------------------------------|* | |** buf_ptr_max* buffer (buf_ptr) buf_end* -------------------------------------* |/ / / / / / / / / / / /| |* write buffer: | / / to be flushed / / | |* |/ / / / / / / / / / / /| |* -------------------------------------* buf_ptr can be in this* due to a backward seek** pos* -----------------------------------------------------------* output file: | | |* -----------------------------------------------------------**/unsigned char *buffer; /** Start of the buffer. */int buffer_size; /** Maximum buffer size */unsigned char *buf_ptr; /** Current position in the buffer */unsigned char *buf_end; /** End of the data, may be less thanbufferbuffer_size if the read function returnedless data than requested, e.g. for streams whereno more data has been received yet. */ //...int64_t pos; /** position in the file of the current buffer */ //... } AVIOContext; 从输入缓冲区读取数据的时候 成员变量buffer恒指向输入缓冲区的开头。 成员变量buffer_size成员buffer指向的缓冲区的大小单位为字节。 成员变量buf_ptr指向输入缓冲区中当前读取到的位置。 成员变量buf_end恒指向输入缓冲区的末尾。 简单来讲 * READING************************************************************************************ | buffer_size |* |---------------------------------------|* | |** buffer buf_ptr buf_end* --------------------------------------* |/ / / / / / / /|/ / / / / / /| |* read buffer: |/ / consumed / | to be read /| |* |/ / / / / / / /|/ / / / / / /| |* -------------------------------------- FFmpeg源码中通过下面函数读取AVIOContext结构体中成员变量buffer指向的输入缓冲区的数据。这些函数都声明在FFmpeg源码的头文件libavformat/avio.h中 /*** name Functions for reading from AVIOContext* {** note return 0 if EOF, so you cannot use it if EOF handling is* necessary*/ int avio_r8 (AVIOContext *s); unsigned int avio_rl16(AVIOContext *s); unsigned int avio_rl24(AVIOContext *s); unsigned int avio_rl32(AVIOContext *s); uint64_t avio_rl64(AVIOContext *s); unsigned int avio_rb16(AVIOContext *s); unsigned int avio_rb24(AVIOContext *s); unsigned int avio_rb32(AVIOContext *s); uint64_t avio_rb64(AVIOContext *s); 二、avio_r8函数的定义 avio_r8函数定义在FFmpeg源码的源文件libavformat/aviobuf.c中 /* XXX: put an inline version */ int avio_r8(AVIOContext *s) {if (s-buf_ptr s-buf_end)fill_buffer(s);if (s-buf_ptr s-buf_end)return *s-buf_ptr;return 0; } 该函数作用是如果还没有读取到输入缓冲区的结尾返回读取到的该输入缓冲区中的一个字节数据也就是返回s-buf_ptr指向的一个字节数据然后让s-buf_ptr指向下一个字节数据。如果已经读取到输入缓冲区的末尾返回0。注意读取到缓冲区的结尾时该函数返回0所以不能同时用它来读取ASCII值为0的字节并且判断是否读到了结尾否则会冲突。也就是说avio_r8函数要么只能读取字符串但可以判断是否到了结尾要么能读取二进制数据但不能判断是否到了结尾。一般来讲选择后者的用法即用它读取二进制数据包含ASCII值为0的数据但不判断是否到了结尾。 三、avio_rl16函数的定义 avio_rl16函数定义在FFmpeg源码的源文件libavformat/aviobuf.c中 unsigned int avio_rl16(AVIOContext *s) {unsigned int val;val avio_r8(s);val | avio_r8(s) 8;return val; } 该函数作用是如果还没有读取到输入缓冲区的结尾返回按照小端模式读取到的该输入缓冲区中的二个字节数据然后让s-buf_ptr指向下下个字节的数据。如果已经读取到输入缓冲区的末尾返回0。注意该函数跟avio_r8函数一样一般用它来读取二进制数据包含ASCII值为0的数据但不判断是否到了结尾。 四、其它相关函数 同理 avio_rl24函数如果还没有读取到输入缓冲区的结尾返回按照小端模式读取到的该输入缓冲区中的三个字节数据然后让s-buf_ptr的值3。如果已经读取到输入缓冲区的末尾返回0。 avio_rl32函数如果还没有读取到输入缓冲区的结尾返回按照小端模式读取到的该输入缓冲区中的四个字节数据然后让s-buf_ptr的值4。如果已经读取到输入缓冲区的末尾返回0。 avio_rl64函数如果还没有读取到输入缓冲区的结尾返回按照小端模式读取到的该输入缓冲区中的八个字节数据然后让s-buf_ptr的值8。如果已经读取到输入缓冲区的末尾返回0。 avio_rb16函数如果还没有读取到输入缓冲区的结尾返回按照大端模式读取到的该输入缓冲区中的二个字节数据然后让s-buf_ptr的值2。如果已经读取到输入缓冲区的末尾返回0。 avio_rb24函数如果还没有读取到输入缓冲区的结尾返回按照大端模式读取到的该输入缓冲区中的三个字节数据然后让s-buf_ptr的值3。如果已经读取到输入缓冲区的末尾返回0。 avio_rb32函数如果还没有读取到输入缓冲区的结尾返回按照大端模式读取到的该输入缓冲区中的四个字节数据然后让s-buf_ptr的值4。如果已经读取到输入缓冲区的末尾返回0。 avio_rb64函数如果还没有读取到输入缓冲区的结尾返回按照大端模式读取到的该输入缓冲区中的八个字节数据然后让s-buf_ptr的值8。如果已经读取到输入缓冲区的末尾返回0。 所有函数跟avio_r8函数一样一般用它们来读取二进制数据包含ASCII值为0的数据但不判断是否到了结尾。
http://www.hkea.cn/news/14395862/

相关文章:

  • 做效果图网站有哪些装饰公司简介内容
  • 无为县住房建设局网站首页logo免费一键生成
  • 房地产做网站公司文化建设
  • 网站建设产品经理职责四川建筑人员证书查询官网
  • 集团公司网站 案例学it需要什么学历
  • 网站怎么做qq微信登陆界面郴州网站设计公司
  • 一个模拟做实验的网站西安优化网站
  • 做网站知道访客ip做搜狗手机网站快速
  • 会计培训网站医疗机构网站
  • 网站建设卖点什么是软件定制开发
  • 企业网站标签页是什么网页编辑布局在线
  • 网站建设合同用贴印花税吗南宁企业门户网站建设价格
  • 网站 工信部备案 收回别人抄袭网站设计怎么办
  • 织梦做仿站时 为何会发生本地地址跳转网站地址大连网站制作机构
  • 企业做网站哪家公司好跨境电商知名网站建设
  • 兰州企业建设网站软文的概念
  • 可视化响应式网站建设物流网站大全
  • 成立公司有什么好处和坏处seo狂人
  • 最好的flash网站seo分析网站
  • 设计教学网站推荐设计师网络用语
  • 企业网站内使用了哪些网络营销方式58同城商业后台如何做网站
  • ftp给网站上传图片后图片的链接地址被改了制作网站站用的软件
  • 取名网站开发php wordpress开发教程
  • 手机网站后台Sensei wordpress插件
  • 手机购物网站建设辽宁鞍山网站建设公司
  • 做球服的网站有哪些任经理 徐州网站建设
  • 做游戏网站董明珠营收1500亿
  • 长沙在线建站模板亲情网络广告推广怎么做
  • 返利网 网站开发做互联网产品和运营必备的网站
  • 注册网络科技公司需要多少钱哈尔滨seo优化培训