海康摄像头取流示例初始签入

This commit is contained in:
2025-12-26 03:18:21 +08:00
parent 86db2cf6b4
commit 6281f4248e
44 changed files with 5588 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
namespace SHH.CameraSdk;
/// <summary>
/// 元数据变更差异描述符(只读结构体)
/// 核心职责:对比设备当前运行元数据与最新拉取元数据的差异,明确变更类型及业务影响
/// 协作场景指导上层模块执行差异化处理如仅刷新UI、重启流、调整功能按钮
/// </summary>
public readonly struct MetadataDiff
{
#region --- (Change Type Properties) ---
/// <summary>
/// 设备基础描述信息变更(如名称、位置)
/// 业务影响:仅需刷新 UI 显示文字,无需中断当前流
/// </summary>
public bool NameChanged { get; init; }
/// <summary>
/// 设备能力集变更(如新增/移除对讲、截图功能)
/// 业务影响:需调整 UI 功能按钮的可用性,无需中断流
/// </summary>
public bool CapabilityChanged { get; init; }
/// <summary>
/// 致命/破坏性变更(如设备型号、编码格式变更)
/// 业务影响:必须销毁当前流实例并重启,否则会导致流异常或崩溃
/// </summary>
public bool IsMajorChange { get; init; }
/// <summary>
/// 分辨率/帧率档位列表变更
/// 业务影响:需重新校验当前流参数是否合法,非法则自动降级到可用档位
/// </summary>
public bool ResolutionProfilesChanged { get; init; }
/// <summary>
/// 全局变更标识:是否存在任何类型的元数据变更
/// 业务用途:快速判断是否需要执行后续差异化处理逻辑
/// </summary>
public bool HasChanges => NameChanged || CapabilityChanged || IsMajorChange || ResolutionProfilesChanged;
#endregion
#region --- (Quick Instances) ---
/// <summary>
/// 无变更状态的快捷实例
/// 业务用途:元数据刷新后无变化时直接返回,避免重复创建空对象
/// </summary>
public static MetadataDiff None => new();
#endregion
}