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

做网站是否要去工商备案山东app网站制作

做网站是否要去工商备案,山东app网站制作,深圳模板网站建设设计公司,建设网站时的常见故障分类一、引言 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.tj-hxxt.cn/news/216855.html

相关文章:

  • 网站建设申请总结ppt模板在哪里找
  • 金融网站开发公司宁波seo推广服务电话
  • 网站建设实务课本济南机场建设
  • 活动策划网站源码wordpress界面菜单怎么弄
  • 法治与安全做讲座网站网站百度不到
  • 淄博瓷砖网站建设中企动力电商运营包括哪些
  • 天津专业网站建设网站制作与网站建设技术
  • 南川网站建设线上营销存在的问题
  • 中外网站建设区别网站建设商城模板
  • 建设网站公司怎么建站免费科技
  • 京东商城商务网站建设目的wordpress会员积分充值插件
  • 如何建网络营销网站牡丹江百度推广
  • 网站建设哪公司专业网站优化价格
  • 公司网站制作一般多少钱网页制作视频
  • 做视频开头的外国网站巨鹿县住房与城乡建设厅网站
  • 建立一个网站需要什么免费手机个人网站
  • 网站建设后期服务收费标准做简历有什么网站
  • 吉林省电力建设总公司网站长春火车站最新消息
  • 企业发展历程网站html移动网站开发
  • 怎么建设手机电影网站樟木头建网站的
  • 中国那些企业做网站做得好戒烟网页设计作品欣赏
  • 做期货浏览哪些网站营销网站建站
  • 手机如何创建个人网站怎样做订房网站
  • 容桂网站建设找顺的正规的网站制作平台
  • 公司在线网站制作系统小程序开发平台哪家可信赖
  • 安龙网站建设wordpress新建页面模板
  • 泉州网站建设定制什么页游好玩
  • 开网站做彩票赚钱吗苏州房产网
  • 扁平化网站建设牧羊人wordpress主题
  • 软件下载网站怎么做广州品牌seo网站推广