You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

226 lines
9.1 KiB
C

12 months ago
/*
* Copyright (c) 2016-present The ZLMediaKit project authors. All Rights Reserved.
*
* This file is part of ZLMediaKit(https://github.com/ZLMediaKit/ZLMediaKit).
*
* Use of this source code is governed by MIT-like license that can be found in the
* LICENSE file in the root of the source tree. All contributing project authors
* may be found in the AUTHORS file in the root of the source tree.
*/
#ifndef MK_EVENTS_H
#define MK_EVENTS_H
#include "mk_common.h"
#include "mk_events_objects.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct {
/**
* MediaSource广
* @param regist 10
* @param sender MediaSource
*/
void (API_CALL *on_mk_media_changed)(int regist,
const mk_media_source sender);
/**
* rtsp/rtmp广
* @see mk_publish_auth_invoker_do
* @param url_info url
* @param invoker invoker
* @param sender tcp
*/
void (API_CALL *on_mk_media_publish)(const mk_media_info url_info,
const mk_publish_auth_invoker invoker,
const mk_sock_info sender);
/**
* rtsp/rtmp/http-flv/hls广
* @see mk_auth_invoker_do
* @param url_info url
* @param invoker invoker
* @param sender
*/
void (API_CALL *on_mk_media_play)(const mk_media_info url_info,
const mk_auth_invoker invoker,
const mk_sock_info sender);
/**
* 广
* @param url_info url
* @param sender
* @return 1
* 0
*/
int (API_CALL *on_mk_media_not_found)(const mk_media_info url_info,
const mk_sock_info sender);
/**
*
* @param sender MediaSource
*/
void (API_CALL *on_mk_media_no_reader)(const mk_media_source sender);
/**
* http api广(GET/POST)
* @param parser http
* @param invoker invokerhttp
* @param consumed 1
* @param sender http
*/
void (API_CALL *on_mk_http_request)(const mk_parser parser,
const mk_http_response_invoker invoker,
int *consumed,
const mk_sock_info sender);
/**
* http,http访广,访http
* @param parser http
* @param path
* @param is_dir path
* @param invoker invoker访
* @param sender http
*/
void (API_CALL *on_mk_http_access)(const mk_parser parser,
const char *path,
int is_dir,
const mk_http_access_path_invoker invoker,
const mk_sock_info sender);
/**
* http,http访广,http url
* pathapphttp
* @param parser http
* @param path ,
* @param sender http
*/
void (API_CALL *on_mk_http_before_access)(const mk_parser parser,
char *path,
const mk_sock_info sender);
/**
* rtspinvokerrealm,realm
* @param url_info rtsp url
* @param invoker invokerrtsp
* @param sender rtsp
*/
void (API_CALL *on_mk_rtsp_get_realm)(const mk_media_info url_info,
const mk_rtsp_get_realm_invoker invoker,
const mk_sock_info sender);
/**
* user_namemust_no_encrypttrue(base64),
* invokerinvoker
* @param url_info rtsp url
* @param realm rtsprealm
* @param user_name rtsp
* @param must_no_encrypt true(base64),
* @param invoker invokerrtsp
* @param sender rtsp
*/
void (API_CALL *on_mk_rtsp_auth)(const mk_media_info url_info,
const char *realm,
const char *user_name,
int must_no_encrypt,
const mk_rtsp_auth_invoker invoker,
const mk_sock_info sender);
/**
* mp4广
*/
void (API_CALL *on_mk_record_mp4)(const mk_record_info mp4);
/**
* ts广
*/
void (API_CALL *on_mk_record_ts)(const mk_record_info ts);
/**
* shell
*/
void (API_CALL *on_mk_shell_login)(const char *user_name,
const char *passwd,
const mk_auth_invoker invoker,
const mk_sock_info sender);
/**
* rtsp/rtmp/http-flv广
* @param url_info url
* @param total_bytes
* @param total_seconds tcp
* @param is_player
*/
void (API_CALL *on_mk_flow_report)(const mk_media_info url_info,
size_t total_bytes,
size_t total_seconds,
int is_player,
const mk_sock_info sender);
/**
* 广
* @param level
* @param file
* @param line
* @param function
* @param message
*/
void (API_CALL *on_mk_log)(int level, const char *file, int line, const char *function, const char *message);
/**
* rtpmk_media_source_start_send_rtp/mk_media_start_send_rtprtp
* @param vhost
* @param app
* @param stream id
* @param ssrc ssrc10atoi
* @param err
* @param msg
*/
void (API_CALL *on_mk_media_send_rtp_stop)(const char *vhost, const char *app, const char *stream, const char *ssrc, int err, const char *msg);
/**
* rtc sctp///
* @param rtc_transport
*/
void (API_CALL *on_mk_rtc_sctp_connecting)(mk_rtc_transport rtc_transport);
void (API_CALL *on_mk_rtc_sctp_connected)(mk_rtc_transport rtc_transport);
void (API_CALL *on_mk_rtc_sctp_failed)(mk_rtc_transport rtc_transport);
void (API_CALL *on_mk_rtc_sctp_closed)(mk_rtc_transport rtc_transport);
/**
* rtc
* @param rtc_transport
* @param msg
* @param len
*/
void (API_CALL *on_mk_rtc_sctp_send)(mk_rtc_transport rtc_transport, const uint8_t *msg, size_t len);
/**
* rtc
* @param rtc_transport
* @param streamId id
* @param ppid id
* @param msg
* @param len
*/
void (API_CALL *on_mk_rtc_sctp_received)(mk_rtc_transport rtc_transport, uint16_t streamId, uint32_t ppid, const uint8_t *msg, size_t len);
} mk_events;
/**
* ZLMediaKit
* @param events ,null便
*/
API_EXPORT void API_CALL mk_events_listen(const mk_events *events);
#ifdef __cplusplus
}
#endif
#endif //MK_EVENTS_H