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
d67a3ab7f8
fix(build): 在运行时解析编解码依赖源码路径
...
hwcodec 与 libyuv 构建脚本在运行时读取 CARGO_MANIFEST_DIR,避免复用或迁移构建产物后继续引用旧源码目录。
2026-09-05 14:10:53 +08:00
mofeng-git
dbe5672df4
refactor: 优化数据库初始化与 WOL 存储
2026-08-30 21:27:00 +08:00
mofeng-git
48fd64319e
merge: 合并 RustDesk 直连与会话优化
2026-08-30 20:50:03 +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
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
BigfootACA
db7a845d3b
fix(hwcodec): release V4L2M2M packets before delivery
...
Copy compressed V4L2M2M output before asynchronous delivery.
This releases driver capture buffers and prevents encoder stalls.
Signed-off-by: BigfootACA <bigfoot@radxa.com >
2026-08-26 15:51:55 +08:00
a15355447898
1d48d45592
feat: 支持高通 iris v4l2m2m 硬件编码器
...
- 新增高通平台检测,避免 Amlogic v4l2m2m 检测误判
- 对高通 Iris 编码器调整 GOP 和 capture buffers
- 强制关键帧仅在高通 Iris 之外启用
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
mofeng-git
f101ddb918
refactor: 降低 hwcodec 探测日志噪音
2026-08-26 12:04:52 +08:00
mofeng-git
0054100414
refactor: 精简运行时重复初始化
...
统一服务与 CLI 的数据库初始化入口,由视频流管理器负责 WebRTC 采集源同步,并将 MSD 目录创建收敛到控制器内部。
2026-08-26 11:37:39 +08:00
mofeng-git
486f3887c2
refactor: 简化日志级别配置并移除 verbose 参数
2026-08-26 11:04:40 +08:00
mofeng-git
37af369b43
refactor: 简化运行时与服务协调
...
提取运行时生命周期管理,集中远程访问与 USB 协调,并缩小 Web 路由状态依赖。
2026-08-26 10:53:08 +08:00
mofeng-git
827d24fde4
feat: 增加 Amlogic 硬件编码的并行解码支持
2026-08-25 14:58:09 +08:00
mofeng-git
b8ea38b5f3
feat: 增加 s905 晶晨 H.264 硬件编码支持
2026-08-15 21:26:34 +08:00
mofeng-git
4530d8663d
fix: 将电源管理选项自动隐藏修改为手动控制,避免 WOL 功能无法显示 #289
2026-08-07 15:49:58 +08:00
SilentWind
a4073d64cb
Merge pull request #287 from mofeng-git/dev
...
Dev
v260802
2026-08-02 16:38:35 +08:00
mofeng-git
16400df182
chore: bump version to v0.2.6
2026-08-02 16:37:47 +08:00
mofeng-git
47af17bebc
feat: 新增 Amlogic AMLENC 硬件编码支持
...
- 新增动态加载及 ABI 校验的 AMLENC H.264/H.265 编码器
- 注册 Amlogic 后端并扩展编码器自检
- 并行执行 MJPEG 解码与 AMLENC 编码
- 复用 NV12 缓冲区并移除冗余帧初始化
- 优化低延迟帧分发及 RTCP 关键帧恢复
- 动态调整 AMLENC 码率尚未完成,效果不佳
2026-08-02 16:24:10 +08:00
mofeng-git
814f23a27c
ci: 优化 Cargo 构建缓存
...
- 共享 deb 与 Docker 的 Linux cross 编译缓存
- 为 Windows MSVC 构建添加独立缓存
- 固定 cross 版本以保证缓存一致性
2026-07-31 09:55:14 +08:00
mofeng-git
6bbe137f09
fix: 修复 Windows 音频设备函数可见性
2026-07-31 09:46:32 +08:00
mofeng-git
6fdcf5c7c9
fix: 修复无信号状态同步与采集管线阻塞
...
- 使用非阻塞 V4L2 句柄并类型化采集错误
- 完善视频管线生命周期,避免复用停止中的管线
- 区分音视频事件并支持 REST/WebSocket 状态快照
- 修复信号丢失后保留最后一帧及刷新后黑屏问题
- 优化无信号提示、状态展示优先级及相关界面细节
- 降低重复 OTG 错误日志级别
2026-07-30 22:43:59 +08:00
mofeng-git
ce1712ff2e
feat: 为 EasyTier 添加完整 TOML 配置支持
...
- 新增快速配置与完整配置模式,兼容旧版配置
- 统一扩展配置校验及受保护临时文件生命周期
- 支持通过 easytier-core -c 加载 TOML 配置
- 复用前端配置模式编辑组件并更新中英文文案与类型
- 补充配置校验、启动参数、文件权限及清理测试
2026-07-30 21:26:00 +08:00
mofeng-git
8b09824e04
fix: 修正 RustDesk UDP 注册状态判定
...
- 移除无法证明服务器可达的 connected 状态
- 引入注册跟踪器统一管理响应、超时与退避
- 连续注册超时后正确降级为未连接
- 分离本地服务状态与 HBBS 注册状态
- 补充注册状态机单元测试
2026-07-30 19:43:28 +08:00
mofeng-git
9fb23476ac
fix: 完善 RK3588 HDMI RX 信号检测与自动恢复
...
- 统一使用 QUERY_DV_TIMINGS 判断 HDMI RX 输入状态
- 增加 source-following 设备状态 API 与前端只读展示
- 支持长时间无信号后的 MJPEG/WebRTC 自动恢复
- 修复模式切换时采集设备尚未释放导致的 EBUSY
- 取消陈旧 WebRTC 重连并统一采集恢复策略
- 移除视频输入状态区域的冗余标题
2026-07-30 19:41:44 +08:00
mofeng-git
971c263bf8
feat: 虚拟媒体显示镜像上传进度百分比
2026-07-29 23:25:12 +08:00
mofeng-git
cb3fd3e646
feat: 添加视频窗口等比例缩放按钮
2026-07-29 19:32:46 +08:00
mofeng-git
d414557d74
fix: 修复设置页页眉回弹和状态色辨识度 #281
...
- 在侧栏布局滚动容器统一阻止纵向 overscroll
- 拆分状态指示色与成功文本色,提升在线状态辨识度
- 统一连接、运行及键盘 LED 等状态点样式
2026-07-29 18:50:20 +08:00
mofeng-git
fbcd95b617
fix: 升级目录改为使用 /tmp 目录,避免遗留升级文件 #280
2026-07-29 17:59:28 +08:00
mofeng-git
887f29096f
feat: 增加 OTG HID 远程唤醒和 OTG MSD 设备名称配置
...
- 在补丁内核上启用 HID 写入唤醒及 USB 远程唤醒描述符
- 支持全局配置 Flash 和 CD-ROM INQUIRY 字符串
- 兼容普通内核的通用 INQUIRY 属性
- 调整 OTG 功能布局并更新大容量 DVD 镜像提示
2026-07-29 13:56:52 +08:00
mofeng-git
e0bddc2faa
fix: 修复设备识别问题 #286
2026-07-27 15:12:54 +08:00
mofeng-git
4f770a1eea
fix: 完善 MSD 错误提示;解决 MSD 文件名称过长问题;优化粘贴文本样式;优化所有下拉框样式;删除“画面静止时会自动降帧”提示
2026-07-26 23:13:47 +08:00
mofeng-git
376dc97134
fix: 修复 MSD ISO/FLASH 挂载识别错误;完善错误提示
2026-07-26 22:59:27 +08:00
mofeng-git
27c8da9a75
fix: 完善 RK3588 HDMI RX 兼容性
2026-07-26 22:27:47 +08:00
mofeng-git
5963dfa01a
feat: 完善 OTG UAC 音频支持
2026-07-26 11:59:58 +08:00
mofeng-git
f86cba6ce5
Merge branch 'main' into dev
...
# Conflicts:
# src/web/handlers/setup.rs
# web/src/i18n/en-US.ts
# web/src/i18n/zh-CN.ts
2026-07-24 11:09:36 +08:00
mofeng-git
e1b82519b9
test: 更新报告格式
2026-07-24 11:03:22 +08:00
mofeng-git
32d8a62fec
fix: 初始化时完整应用 USB 运行时配置,避免遗漏 MSD 功能
2026-07-24 11:02:14 +08:00