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

webrtc支持的最小宽度和高度

代码在:h264/sps_parser.cc

//
// IMPORTANT ONES! Now we're getting to resolution. First we read the pic
// width/height in macroblocks (16x16), which gives us the base resolution,
// and then we continue on until we hit the frame crop offsets, which are used
// to signify resolutions that aren't multiples of 16.
//
// pic_width_in_mbs_minus1: ue(v)
sps.width = 16 * (reader.ReadExponentialGolomb() + 1);
// Figure out the crop units in pixels. That's based on the chroma format's
// sampling, which is indicated by chroma_format_idc.
if (sps.separate_colour_plane_flag || chroma_format_idc == 0) {frame_crop_bottom_offset *= (2 - sps.frame_mbs_only_flag);frame_crop_top_offset *= (2 - sps.frame_mbs_only_flag);
} else if (!sps.separate_colour_plane_flag && chroma_format_idc > 0) {// Width multipliers for formats 1 (4:2:0) and 2 (4:2:2).if (chroma_format_idc == 1 || chroma_format_idc == 2) {frame_crop_left_offset *= 2;frame_crop_right_offset *= 2;}// Height multipliers for format 1 (4:2:0).if (chroma_format_idc == 1) {frame_crop_top_offset *= 2;frame_crop_bottom_offset *= 2;}
}
// Subtract the crop for each dimension.
sps.width -= (frame_crop_left_offset + frame_crop_right_offset);
sps.height -= (frame_crop_top_offset + frame_crop_bottom_offset);

读取图像的宽度和高度,以宏块(16x16)为单位,这给出了基本分辨率。然后,继续读取直到遇到帧裁剪偏移量,这些偏移量用于表示不是16的倍数的分辨率。

在这段代码中,“pic_width_in_mbs_minus1” 是一个无符号指数哥伦布编码(ue(v)),用于计算图像的宽度。最后一行代码则将图像的宽度设置为16乘以读取的值加1。

根据色度格式和色度平面标志来调整帧的裁剪偏移量,然后根据计算得到的偏移量来调整图像的宽度和高度,以实现正确的裁剪。

即支持16x16的块,然后按2的倍数做裁减。

相关文章:

webrtc支持的最小宽度和高度

代码在:h264/sps_parser.cc // // IMPORTANT ONES! Now were getting to resolution. First we read the pic // width/height in macroblocks (16x16), which gives us the base resolution, // and then we continue on until we hit the frame crop offsets, wh…...

虚拟机对象的创建

虚拟机对象 虚拟机在Java堆中对象分配、布局和访问的访问过程 对象的创建 Java对象的创建步骤: 1)类加载检查 虚拟机遇到一条 new 指令时,首先将去检查这个指令的参数是否能在常量池中定位到这个类的符号引用,并且检查这个符号…...

阿里云吴结生:云计算是企业实现数智化的阶梯

云布道师 近年来,越来越多人意识到,我们正处在一个数据爆炸式增长的时代。IDC 预测 2027 年全球产生的数据量将达到 291 ZB,与 2022 年相比,增长了近 2 倍。其中 75% 的数据来自企业,每一个现代化的企业都是一家数据公…...

MySQL——复合查询

目录 一.基本查询回顾 二. 多表查询 三.自连接 四.子查询 1.单行子查询 2.多行子查询 3.多列子查询 4.在from子句中使用子查询 5.合并查询 一.基本查询回顾 准备数据库: 查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为…...

mysql 23-3day 数据库授权(DCL)

目录 创建一个用户 并授权(grant)设置最大连接数客户端链接服务器创建用户删除用户修改用户修改密码root修改自己密码授予 mysql 权限收回权限收回权限刷新一下授权表mydql 知识点确保 mysql 用户为普通用户删除空口令账号安全建议 创建一个用户 并授权&…...

OpenHarmony之内核层解析~

OpenHarmony简介 技术架构 OpenHarmony整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 组件”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的组件…...

Chatgpt如何共享可以防止封号!

ChatGPT 是一个基于 GPT-3.5/GPT-4 模型的对话系统,它主要用于处理自然语言对话。通过训练模型来模拟人类的语言行为,ChatGPT 可以通过文本交流与用户互动。每个新版本的 GPT 通常都会在模型规模、性能和其他方面有一些改进。在目前免费版GPT-3.5 中&…...

智能优化算法应用:基于社交网络算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于社交网络算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于社交网络算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.社交网络算法4.实验参数设定5.算法结果6.…...

thinkphp+vue+mysql酒店客房管理系统 b1g8z

本系统包括前台界面、用户界面和管理员界面、员工界面。在前台界面里游客和用户可以浏览客房信息、公告信息等,用户可以预定客房,在用户中心界面里,用户可以管理预定信息,管理员负责用户预定的审核以及客房的发布、用户的入住等。…...

nodejs+vue+ElementUi摄影作品图片分享工作室管理系统

第1周 2.21~2.27 查阅资料,学习vscode开发平台和vue框架技术 第2周 2.28~3.6 对软件功能需求进行分析, 软件功能模块划分及软件界面设计 第3周 3.7~3.13 撰写并提交毕业设计开题报告、英文资料翻译 第4周 3.14&#xff5…...

详解FreeRTOS:专栏总述

目录 1、理论篇 2、基础篇 3、进阶篇 4、高级篇 5、拓展篇 本专栏基于FreeRTOS底层源码介绍了嵌入式实时操作系统的概念,FreeRTOS任务创建、任务调度、任务同步与消息传递,软件定时器、事件通知等知识。 主要分为5方面内容:理论篇、基础…...

在 linux 服务器上安装Redis数据库

先打开我们的Linux服务器 终端执行 安装redis sudo yum install redis然后 他会提示你要占多少磁盘空间 例如 我这里是 1.7 M 没问题就 y 然后回车就可以了 然后 我们这里执行 redis-cli --version这样 就能看到版本了 然后 我们可以根据版本选择启动命令 使用systemctl命…...

阿里云经济型、通用算力型、计算型、通用型、内存型云服务器最新活动报价

阿里云作为国内领先的云计算服务提供商,提供了多种规格的云服务器供用户选择。为了满足不同用户的需求,阿里云推出了经济型、通用算力型、计算型、通用型和内存型等不同类型的云服务器。下面将详细介绍这些云服务器的最新活动报价。 一、阿里云特惠云服…...

回溯算法 典型习题

vector<vector<int>> res; vector<int> path;void dfs() {if (递归终止条件){res.push_back(path);return;}// 递归方向for (xxx) {path.push_back(val);dfs();path.pop_back();} } 1.涉及枚举 2.不确定 for 循环的次数 总结 枚举各种可能的情况。 0.直接…...

14. 从零用Rust编写正反向代理, HTTP文件服务器的实现过程及参数

wmproxy wmproxy是由Rust编写&#xff0c;已实现http/https代理&#xff0c;socks5代理&#xff0c; 反向代理&#xff0c;静态文件服务器&#xff0c;内网穿透&#xff0c;配置热更新等&#xff0c; 后续将实现websocket代理等&#xff0c;同时会将实现过程分享出来&#xff…...

【随笔】MD5加密字符串、文件apache、springframework实现

文章目录 一、引入依赖二、工具代码三、测试代码四、输出结果 一、引入依赖 commons-codec <dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.13</version> </dependency>二…...

java八股 设计模式

企业场景篇-03-设计模式-工厂设计模式-工厂方法模式_哔哩哔哩_bilibili 1.简单工厂模式 新加咖啡类的时候需要在唯一的那个工厂类里加代码&#xff0c;这样就耦合了 2.工厂模式 相对于简单模式的一个工厂生产所有咖啡&#xff0c;这里只定义了一个抽象咖啡工厂&#xff0c;然…...

Docker安装(CentOS)+简单使用

Docker安装(CentOS) 一键卸载旧的 sudo yum remove docker* 一行代码(自动安装) 使用官方安装脚本 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 启动 docker并查看状态 运行镜像 hello-world docker run hello-world 简单使用 使用 docker run …...

Mybatis配置-环境配置(environments)

MyBatis支持配置多个环境&#xff0c;这有助于将您的SQL映射应用于多个数据库&#xff0c;无论出于何种原因。例如&#xff0c;您可能希望为开发、测试和生产环境使用不同的配置。或者&#xff0c;您可能有多个共享相同模式的生产数据库&#xff0c;并且想要在两者上使用相同的…...

Android模拟器的安装和adb连接

一、前置说明 APP 自动化可以使用真机进行测试&#xff0c;也可以使用模拟器来模拟安卓设备。我们可以根据个人喜好安装模拟器&#xff0c;个人推荐安装两款模拟器&#xff1a;网易 MuMu 模拟器、夜神模拟器。 MuMu模拟器可以支持 Android 12 版本&#xff0c;优点是&#xf…...

基于python的演唱会门票演出购票系统的设计与实现

目录同行可拿货,招校园代理 ,本人源头供货商用户管理模块演出信息管理购票与选座功能支付系统集成订单与票务管理数据分析与报表高并发优化项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作同行可拿货,招校园代理 ,本人源头供货商…...

Awoo Installer深度解析:破解Switch游戏安装困境的全能工具

Awoo Installer深度解析&#xff1a;破解Switch游戏安装困境的全能工具 【免费下载链接】Awoo-Installer A No-Bullshit NSP, NSZ, XCI, and XCZ Installer for Nintendo Switch 项目地址: https://gitcode.com/gh_mirrors/aw/Awoo-Installer 在Nintendo Switch破解社区…...

3个秘诀让城通网盘下载提速10倍:ctfileGet工具全解析

3个秘诀让城通网盘下载提速10倍&#xff1a;ctfileGet工具全解析 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet ctfileGet是一款专注于获取城通网盘直连地址的开源工具&#xff0c;通过本地解析技术帮…...

如何让Apple Touch Bar在Windows完美运行?DFRDisplayKm驱动全攻略

如何让Apple Touch Bar在Windows完美运行&#xff1f;DFRDisplayKm驱动全攻略 【免费下载链接】DFRDisplayKm Windows infrastructure support for Apple DFR (Touch Bar) 项目地址: https://gitcode.com/gh_mirrors/df/DFRDisplayKm Apple Touch Bar作为MacBook Pro的特…...

GME-Qwen2-VL-2B-Instruct代码实例:自定义指令前缀‘Find an image that matches...’注入方法

GME-Qwen2-VL-2B-Instruct代码实例&#xff1a;自定义指令前缀‘Find an image that matches...’注入方法 1. 项目背景与价值 在实际的图文匹配场景中&#xff0c;我们经常需要判断一张图片与多个文本描述之间的匹配程度。GME-Qwen2-VL-2B-Instruct作为一个强大的多模态模型…...

python复习--进程相关--is_alive()

一、Process.is_alive() is_alive() 是 multiprocessing.Process 提供的方法&#xff0c;用于 判断进程当前是否仍在运行。 process.is_alive()返回值&#xff1a; True → 进程正在运行False → 进程未启动 或 已经结束 二、进程生命周期与 is_alive() 一个 Process 对象…...

Qwen3-14B企业知识沉淀:会议录音转写+关键结论自动提炼

Qwen3-14B企业知识沉淀&#xff1a;会议录音转写关键结论自动提炼 1. 企业知识管理的痛点与解决方案 在日常工作中&#xff0c;会议是信息交流的重要场景&#xff0c;但会议录音的整理工作往往耗时费力。传统的人工转写方式存在几个明显问题&#xff1a; 效率低下&#xff1…...

Python安全开发之简易Xss检测工具(详细注释)

核心代码&#xff1a;import requests # requests 库 - HTTP 请求处理库 # 【常用功能】: # requests.get(url) - 发送 HTTP GET 请求 # requests.post(url, data) - 发送 HTTP POST 请求 # response.text - 获取响应体内容&#xff08;字符串&#xff09; #…...

Agent调试技巧:LangSmith与日志分析

Agent开发最痛苦的部分是调试。传统代码调试&#xff0c;你能看到每一行执行的结果。Agent调试&#xff0c;你只能看到"输入 → 输出"&#xff0c;中间的推理过程是个黑盒。 这篇文章&#xff0c;我们讨论Agent调试的方法和工具&#xff1a;怎么追踪Agent的推理过程…...

基于动态线性化的无模型自适应控制方法研究与仿真分析研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...