namespace SHH.CameraSdk;
///
/// [核心契约] 工业级视频源接口 (V3.3.1 终极定稿)
/// 核心职责:定义所有视频源设备的标准化生命周期、状态观测与数据分发能力
/// 关键修复:
/// 1. [Fix Bug δ] 新增 UpdateConfig 接口,支持运行时配置热更新
/// 2. 强化资源管理契约:继承 IDisposable/IAsyncDisposable,规范非托管资源释放
/// 适用场景:海康/大华/宇视等不同品牌相机的驱动适配、统一管理
///
public interface IVideoSource : IDisposable, IAsyncDisposable
{
#region --- 1. 只读属性 (设备标识与状态观测) ---
/// 设备唯一业务标识(全局唯一,如数据库自增ID)
long Id { get; }
/// 设备详细逻辑状态(如 Idle/Connecting/Playing/Faulted)
VideoSourceStatus Status { get; }
/// 用户意图标识:是否需要保持设备运行状态
bool IsRunning { get; set; }
/// 设备物理在线状态(基于心跳/探测的实时感知结果)
bool IsOnline { get; }
/// 设备能力元数据(只读,如分辨率、码流类型、支持的功能集)
DeviceMetadata Metadata { get; }
#endregion
#region --- 2. 事件契约 (数据分发与状态通知) ---
///
/// 视频帧接收事件(热路径,高频触发)
///
///
/// 1. 载荷类型:通常为 或 对象
/// 2. 内存管理:订阅者必须负责载荷对象的 Dispose 操作,否则会导致内存泄漏
/// 3. 性能约束:事件处理逻辑需控制在 10ms 内,避免阻塞取流线程
///
event Action