mofeng-git
d564d8baee
feat(extensions): 恢复 GOSTC 支持并保留 EasyFrp
2026-10-31 10:00:13 +08:00
mofeng-git
cd48df752c
refactor: 清理未使用代码并整合运行时配置逻辑
2026-10-28 21:39:27 +08:00
mofeng-git
2e4d4bcd7f
fix(rustdesk): preserve throttled relative mouse movement
...
Accumulate relative deltas in the existing pending move buffer and flush them on the existing timer or before button and wheel events. Preserve absolute coordinate replacement and trackpad throttling.
Split relative motion after HID queue coalescing so OTG and CH9329 reports preserve bounded displacement under congestion. Add socket timer, input ordering, trackpad, and queue saturation regression tests.
Adapted from the relative mouse improvements proposed in #308 (03866aa4 ), retaining the current connection writer architecture.
2026-10-28 12:41:51 +08:00
mofeng-git
5ddfc21bc1
Merge pull request #320 : fix RustDesk trackpad scrolling
2026-10-28 12:29:25 +08:00
mofeng-git
8d58119b77
feat(system): 添加设备信息及重启关机控制
...
关于页展示宿主系统、处理器、架构、内核和资源占用,合并同一文件系统上的系统与 MSD 容量。
新增 Linux 宿主机重启和关机接口,在其他设置中提供二次确认、请求互斥及失败提示。
修正 Linux 磁盘已用空间计算,并补充设备信息和电源控制的后端单元测试。
验证:独立暂存快照前端构建通过;6 项后端测试通过;设置页保存、系统信息及模拟电源控制浏览器测试通过。
2026-10-28 07:20:44 +08:00
mofeng-git
fc99c6f274
feat(hid): 支持控制台鼠标抖动
...
在控制台鼠键配置菜单增加鼠标抖动开关和间隔设置,默认关闭,间隔支持 10–3600 秒。
设备端按键鼠空闲时间调度,支持配置持久化、热更新、真实输入打断和断连后重新计时。
兼容绝对及相对鼠标模式,按键或按钮按住期间暂停抖动。
验证:608 项 Rust 单测通过;暂存快照前端构建和浏览器交互测试通过;已完成 ARMv7 OpenWrt 部署验证。
Refs #316
2026-10-28 07:11:44 +08:00
toruticas
85123e1118
fix(rustdesk): handle trackpad scrolling
2026-10-27 01:52:42 +00:00
mofeng-git
f303a8cb2f
feat(hid): 支持 CH9329 + OTG 组合模式
...
CH9329 负责键鼠,OTG 提供虚拟媒体、USB 网络和音频;分别配置设备、报告运行状态,并在 OTG 配置变更和回滚时保留未变化的 CH9329 实例。
补齐双设备校验、串口冲突检查、初始化引导和功能入口,修复组合模式下鼠标兼容选项缺失。
验证:独立功能版本的 591 项 Rust 库测试、前端生产构建、3 项引导逻辑测试及 2 组浏览器回归通过。未进行目标 KVM 硬件验证。
2026-10-26 14:33:38 +08:00
mofeng-git
7ea2936436
feat(mcp): 用 MCP 服务替换内置 AI Agent ( #319 )
...
在现有 HTTP 服务挂载 /mcp,让外部 AI 经共享 API Key 调用原分辨率截图、批量键鼠、ATX/WOL 和虚拟介质八个工具。所有调用共用有界 FIFO 和全局限流,复用现有采集管线与硬件控制器。
移除内置模型调用、网页 Agent 面板及旧配置,设置页提供可持续查看的 Key、统一的地址/密钥复制样式。补齐 DEB 的 libudev1 运行依赖。
验证:583 项 Rust 库测试、前端生产构建、ARMv7 设备视觉操作与介质/WOL 实测,以及默认 Release 构建和 DEB 包校验通过。
Refs #319
2026-10-19 12:12:03 +08:00
mofeng-git
3f970ee834
feat(extensions): 使用 EasyFrp 替换 gostc
...
将扩展配置、接口和设置页切换为 EasyFrp,支持按行填写多个客户端连接 URL,通过 easyfrpc control 启动并校验协议与密钥路径。
旧 gostc 配置不自动启用 EasyFrp,升级后需重新配置;启动日志不再输出命令参数,避免暴露连接信息。
完整 Docker 镜像包含 easyfrpc、easytier-core、easytier-cli 和 frpc,通过独立下载脚本及版本锁定文件校验下载摘要和二进制架构。
2026-10-18 18:09:59 +08:00
mofeng-git
92a08fb2bc
perf(video): 优化 MJPEG 传输和 JPEG 编码
...
按 HTTP 消费进度读取最新帧并合并积压通知,复用帧缓冲区所有权,减少 MJPEG 传输和截图的数据复制。
在 JPEG 数据后立即发送下一帧的完整 multipart 头,减少静态画面的浏览器显示等待,并保留保活和客户端释放逻辑。
缓存相同原始帧的 JPEG 编码结果,在输入或画质变化时重新编码;按像素格式分配转换缓冲区,减少闲置内存。
补充缓冲区寿命、慢客户端、序列号重置、编码缓存和保活回归测试。
2026-10-18 17:42:22 +08:00
mofeng-git
b657ef76bc
feat(platform): 按平台能力控制功能入口与请求
2026-10-17 22:12:22 +08:00
mofeng-git
d7239ba15c
fix(otg): 适配 OpenWrt netifd 网络桥接与事务恢复
2026-10-13 22:15:14 +08:00
mofeng-git
2b53c2982b
fix(watchdog): 修复 musl 下 ioctl 请求参数类型不匹配
2026-10-13 22:11:55 +08:00
mofeng-git
2ebad622f0
feat: 增加 OpenWrt 系统管理入口
...
- 通过 ONE_KVM_OPENWRT=1 控制入口显示和跳转;
- 读取 uhttpd 当前监听配置,并跳转到 LuCI 地址。
2026-10-12 23:02:12 +08:00
mofeng-git
92f4203bc2
build: 启用显式 RKMPP 构建
2026-10-12 22:53:12 +08:00
mofeng-git
8b4ca6d080
refactor(video): 移除性能实验开关和逐帧统计代码
2026-10-01 23:05:24 +08:00
mofeng-git
9a1f4ff4b5
perf(audio,hid): 减少 PCM 复制和鼠标热路径分配与轮询
2026-10-01 22:55:57 +08:00
mofeng-git
3b8a4a6f34
perf(video): 减少闲置缓冲并容忍短时输出背压
2026-10-01 22:50:37 +08:00
mofeng-git
2f60e61dd5
perf(video): 消除中间帧复制并优化 MJPEG 有界预取
...
通过 Bytes 所有权和只读 AVBufferRef 引用池化 NV12 输入,消除中间 AVFrame 的整帧复制,并保留 V4L2 编码包脱离硬件缓冲的处理。
允许输出健康时有界预取 MJPEG,在输出背压时优先解码前丢帧;增加等帧、输出等待、丢帧原因及编码分段耗时统计,提供预取和所有权输入的对照开关。
补充缓冲寿命、只读保护、软件编码回退和队列策略测试及接口说明,保留现有 PTS、解码 worker、音频和加密行为。
2026-10-01 22:39:04 +08:00
mofeng-git
318b58b26a
perf(video): 优化视频流水线并统一使用 vendored OpenSSL
...
使用固定采集、解码和编码线程及同步最新帧槽,减少同步异步跨界和无效 MJPEG 解码。
编码前预留消费者容量,以完整批次投递编码结果并隔离慢客户端,避免丢失 H.264 参考帧;保留 PTS 修正,不增加 IDR 节流。
复用 Annex-B 缓冲并增加低频发送分项统计,默认启用 vendored OpenSSL SRTP AES-CM 后端。
HTTP 客户端、HTTPS 服务端和本地 DTLS 证书验证迁移至 OpenSSL,移除 rustls TLS 引擎依赖,保留证书验证、媒体加密和原有协议协商。
2026-10-01 18:34:40 +08:00
mofeng-git
99da8a3c61
修复:按 PTS 生成 H264 RTP 时间戳
2026-09-29 20:32:29 +08:00
mofeng-git
1e0b0407d3
修复:适配 CH9329F 71 字节参数响应
2026-09-29 20:32:29 +08:00
mofeng-git
f8fb64ad8c
fix(web): 修复初始化向导未应用所选 HID 配置
2026-09-26 11:47:05 +08:00
mofeng-git
4cf3f4e252
fix(web): 完善后端 404 响应并修复 /api 未匹配路由被静态兜底遮蔽
...
- 静态资源缺失时返回 404 HTML,移除"前端未构建"占位页
- /api 未匹配路由返回统一的 404 JSON
- 静态兜底由 /{*path} 改为 fallback_service,避免在 axum 0.8 下遮蔽嵌套 /api 的 fallback 并导致鉴权被绕过
2026-09-22 21:42:19 +08:00
mofeng-git
3d3110c3d7
chore: 许可证由 GPL-2.0 修正为 AGPL-3.0-only 并补全第三方归属声明
2026-09-22 10:14:43 +08:00
mofeng-git
491bfbecb5
fix: improve UAC playback and OTG rebinding
2026-09-21 21:47:49 +08:00
mofeng-git
c62ff2da87
fix(extensions): explicitly disable gostc TLS for HTTP connections
2026-09-12 23:10:50 +08:00
mofeng-git
78af9f67de
fix(hid): share macOS drag compatibility across OTG and CH9329
2026-09-10 23:00:34 +08:00
raymond
d002226acb
merge: resolve dev conflicts for CH9329 macOS drag compatibility
2026-09-07 23:26:57 +08:00
mofeng-git
2c19208094
feat(bluetooth-hid): 支持经典蓝牙 HID 后端
2026-09-06 11:17:58 +08:00
mofeng-git
3014edffbb
fix(db): 使用 FULL 同步确保事务提交时落盘
2026-09-05 22:40:01 +08:00
mofeng-git
db9d79554a
perf(video): 新增 RKMPP DMA 采集编码通路并完善恢复逻辑
...
支持原生 HDMI 和 UVC 缓冲区导出,增加同步 RKMPP 编码及可选 MJPEG 硬件转码。
校验帧布局和缓冲区租约,在 DMA 不可用或编码失败时回退到复制通路。
保留自定义码率和 GOP 策略,重开采集时同步 HDMI 源帧率,并区分 UVC 超时状态。
验证:88 个视频测试通过(含 4 个新增回归测试);ARM64 cargo check --tests 通过。
2026-09-05 20:55:30 +08:00
mofeng-git
620fe0be54
perf(video): 并行解码 MJPEG 并丢弃积压帧
...
按可用 CPU 数量启动独立 MJPEG 解码线程,通过无缓冲通道分发任务;线程全忙时丢弃新帧,按序列号拒绝过时解码结果。
复用帧缓冲池,在线程启动失败时回退到采集线程解码,并更新并行解码说明及工作线程数量测试。
2026-09-05 14:10:53 +08:00
mofeng-git
79a4dcf2b0
fix(video): 统一关键帧参数集处理并缓存启动帧
...
在共享管线中将长度前缀 H264 转为 Annex-B,要求编码器标记与 IDR/IRAP 内容一致,并补齐参数集后才标记可独立解码的关键帧。
向新订阅者提供缓存启动帧,启动管线时清理缓存,并移除 RustDesk 会话内重复的 SPS/PPS 处理。补充格式归一化、关键帧判定和订阅测试。
2026-09-05 14:10:53 +08:00
mofeng-git
a8ee9552a0
perf(video): 使用有界 VBR 优化 H264 码率
...
H264 编码器探测与初始化使用 VBR,将峰值码率和缓冲区限制为目标码率的两倍。动态调整码率时同步更新限制,并保留 QSV 的专用处理。
2026-09-05 14:10:53 +08:00
mofeng-git
3749bafae0
fix(rustdesk): 按键盘模式和码空间转换 HID 输入
...
将对外兼容平台与 Windows Set-1 扫描码映射绑定,分离物理键、字符和控制键语义,拒绝未知码值跨码空间回退。
保留按下、释放、重复输入与临时 Shift 的状态语义,补充键位矩阵和事件转换回归测试,并记录输入模式及原始码值。
2026-09-05 14:10:53 +08:00
mofeng-git
b573f478fc
fix(msd): 区分虚拟磁盘挂载能力与文件访问状态
...
使用原始文件元数据挂载虚拟磁盘,允许主机使用网页文件管理不支持的文件系统。连接期间只读取元数据;初始化和删除持有外层写锁,并同步控制器缓存。
API 的 used/free 改为可空值,新增 file_access 表示 available、unsupported、blocked_while_connected 或 unknown,需要前端配套处理。补充状态序列化、元数据校验和文件系统兼容测试。
2026-09-05 14:10:53 +08:00
mofeng-git
dbe5672df4
refactor: 优化数据库初始化与 WOL 存储
2026-08-30 21:27:00 +08:00
mofeng-git
ccf821ab22
refactor(rustdesk): 移除密钥对状态展示
2026-08-30 20:48:55 +08:00
mofeng-git
b074aa5779
fix(rustdesk): 降低视频直连延迟
2026-08-30 08:50:38 +08:00
mofeng-git
95a1fdf42d
feat(rustdesk): 强化会话管理并优化流媒体传输
2026-08-30 08:21:37 +08:00
mofeng-git
e678ec394d
feat(rustdesk): 新增独占式 IP 直连模式
2026-08-30 08:21:27 +08:00
raymond
628909a192
fix(hid): add CH9329 macOS drag compatibility
2026-08-29 01:30:18 +08:00
mofeng-git
5cab585115
Merge remote-tracking branch 'origin/main' into dev
2026-08-26 16:39:31 +08:00
Carbon
dcfa3eadaf
fix: 为 RKCIF/RK628 选择受支持的视频格式 ( #292 )
...
RK628 通过 RKCIF 接入时,如果 One-KVM 启动时 HDMI 信号尚未锁定,
SourceFollowing 路径可能回退到默认 MJPEG。由于 RKCIF 不支持 MJPEG,
后续 S_FMT 无法建立有效的采集链路。
解决方案:
在解析 SourceFollowing 配置后,根据设备的 VIDIOC_ENUM_FMT 枚举结果
校验最终格式。如果该格式不受支持且格式列表非空,则选择按优先级排序
的首个可用格式,对于 RKCIF/RK628 通常为 NV12。
该方法只替换 FourCC,保留 HDMI DV timings 提供的分辨率和帧率。
同时覆盖无信号启动和当前格式已失效两种场景。
2026-08-26 16:37:57 +08:00
Carbon
1647e70243
fix: RK3588 原生 HDMIRX 被错误地关联到了 RK628 subdev ( #293 )
...
* fix: RK3588 原生 HDMIRX 被错误地关联到了 RK628 subdev
当 RK628 和 RK3588 原生 HDMI IN 同时存在时,页面配置为 rk_hdmirx,
会无法使用,提示无信号。
是因为原来的 subdev 发现逻辑会全局扫描 v4l-subdev,并返回首个匹配节点。
原生 HDMI IN 可能错误使用 RK628 subdev 的信号状态,最终被判断为无信号。
解决方案:
根据 video 节点的设备号找到对应 media device,读取 Media Controller
中的 entity 和已启用链路,只返回与当前 video 节点实际连通的 HDMI
bridge subdev。
* fix: 精确匹配视频设备的 Media 拓扑
---------
Co-authored-by: mofeng-git <mofeng654321@hotmail.com >
2026-08-26 16:32:03 +08:00
BigfootACA
9c6d8a614c
fix(webrtc): preserve H.26x headers for new sessions
...
Detect random-access frames from Annex-B data and cache codec headers.
Prepend missing headers to later H.264 IDR and H.265 IRAP frames.
Forward standalone headers while WebRTC waits for a decodable frame.
Signed-off-by: BigfootACA <bigfoot@radxa.com >
2026-08-26 15:51:55 +08:00
TXIuTnVsbA
d613739b06
fix(hid): 兼容 CH9329/CH9329F 串口响应 ( #300 )
...
支持 CH9329/CH9329F 扩展参数响应、粘包与乱序处理,保留严格校验和及有界接收缓冲。
2026-08-26 15:19:41 +08:00
mofeng-git
6e1194fe4c
refactor: 移除 AMLENC 私有编码后端
2026-08-26 12:06:10 +08:00