package com.aegis.camera.service;

import com.aegis.camera.config.ZLMediaKitProperties;
import com.aegis.camera.domain.Camera;

/**
 * 摄像头流协议处理器
 *
 * 针对不同协议（RTSP/GB28181/RTMP/ONVIF 等）抽象统一接口，便于扩展。
 */
public interface StreamProtocolHandler {

    /**
     * 协议类型标识（例如：rtsp、gb28181、rtmp、onvif）
     */
    String getProtocol();

    /**
     * 启动指定协议的流。
     *
     * @param camera     摄像头实体
     * @param properties ZLMediaKit 配置
     * @return true 表示指令下发成功
     */
    boolean startStream(Camera camera, ZLMediaKitProperties properties);

    /**
     * 停止指定协议的流。
     *
     * @param camera     摄像头实体
     * @param properties ZLMediaKit 配置
     * @return true 表示指令下发成功
     */
    boolean stopStream(Camera camera, ZLMediaKitProperties properties);
}