/* * Copyright (c) XCAM. All rights reserved. */ #ifndef _XCAM_LIVESTREAM_RTSP_SERVER_H_ #define _XCAM_LIVESTREAM_RTSP_SERVER_H_ #include "xcam_track_source.h" #ifdef __cplusplus #if __cplusplus extern "C" { #endif #endif typedef struct server_state_listener { /** * @brief report of server internal error. * @param[in] listener :listener obj * @param[in] errid : server error id * @param[in] msg : string server error message info */ xcam_void (*func_server_error)(struct server_state_listener* listener, xcam_s32 errid, xcam_char* msg); /** * @brief reporting client connected. * @param[in] listener : listener obj * @param[in] ipaddr : string connected client ipaddress */ xcam_void (*func_client_connect)(struct server_state_listener* listener, xcam_char* ipaddr); /** * @brief reporting client disconnected. * @param[in] listener : listener obj * @param[in] ipaddr : string disconnected client ipaddress */ xcam_void (*func_client_disconnect)(const struct server_state_listener* listener, const xcam_char* ipaddr); /** handle for statelistener, do not change, used internal*/ xcam_void* handle; } xcam_server_state_listener; #define RTSPSVR_FRAME_MAX_BLOCK (8) /** RTSP config object type*/ typedef struct { xcam_s32 packet_len; /**< length of the send packet [500,5000]recommend 1500 unit:byte*/ xcam_s32 max_conn_num; /**< max connect client num[1,32]*/ xcam_s32 listen_port; /**< listen port of rtspserver[1,65535] normal 554*/ xcam_s32 max_payload; /**< max payloadtype num in mbuffer[1,254] normal 2*/ xcam_s32 timeout; /**