mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2026-09-12 18:44:25 +08:00
fix: 完善 RK3588 HDMI RX 信号检测与自动恢复
- 统一使用 QUERY_DV_TIMINGS 判断 HDMI RX 输入状态 - 增加 source-following 设备状态 API 与前端只读展示 - 支持长时间无信号后的 MJPEG/WebRTC 自动恢复 - 修复模式切换时采集设备尚未释放导致的 EBUSY - 取消陈旧 WebRTC 重连并统一采集恢复策略 - 移除视频输入状态区域的冗余标题
This commit is contained in:
@@ -14,8 +14,30 @@ pub async fn get_video_config(State(state): State<Arc<AppState>>) -> Json<VideoC
|
||||
|
||||
pub async fn update_video_config(
|
||||
State(state): State<Arc<AppState>>,
|
||||
Json(req): Json<VideoConfigUpdate>,
|
||||
Json(mut req): Json<VideoConfigUpdate>,
|
||||
) -> Result<Json<VideoConfig>> {
|
||||
let selected_path = req
|
||||
.device
|
||||
.clone()
|
||||
.or_else(|| state.config.get().video.device.clone());
|
||||
if let Some(path) = selected_path {
|
||||
let source_following = state
|
||||
.stream_manager
|
||||
.list_devices()
|
||||
.await
|
||||
.ok()
|
||||
.and_then(|devices| {
|
||||
devices
|
||||
.into_iter()
|
||||
.find(|device| device.path.to_string_lossy() == path)
|
||||
})
|
||||
.is_some_and(|device| {
|
||||
device.control_mode == crate::video::device::VideoControlMode::SourceFollowing
|
||||
});
|
||||
if source_following {
|
||||
req.ignore_source_following_parameters();
|
||||
}
|
||||
}
|
||||
req.validate()?;
|
||||
|
||||
let _apply_guard = try_apply_lock(&state.config_apply_locks.video, "video")?;
|
||||
|
||||
Reference in New Issue
Block a user