mirror of
https://github.com/morgan9e/UxPlay
synced 2026-04-14 00:04:13 +09:00
further fixes for #496 (transition from mirror_mode to HLS)
This commit is contained in:
@@ -87,7 +87,8 @@ struct raop_s {
|
||||
|
||||
/* activate support for HLS live streaming */
|
||||
bool hls_support;
|
||||
|
||||
bool hls_pending;
|
||||
|
||||
/* used in digest authentication */
|
||||
char *nonce;
|
||||
char *random_pw;
|
||||
@@ -424,6 +425,7 @@ conn_request(void *ptr, http_request_t *request, http_response_t **response) {
|
||||
} else if (!strcmp(method, "OPTIONS")) {
|
||||
handler = &raop_handler_options;
|
||||
} else if (!strcmp(method, "SETUP")) {
|
||||
raop->hls_pending = false;
|
||||
handler = &raop_handler_setup;
|
||||
} else if (!strcmp(method, "GET_PARAMETER")) {
|
||||
handler = &raop_handler_get_parameter;
|
||||
@@ -459,6 +461,7 @@ conn_request(void *ptr, http_request_t *request, http_response_t **response) {
|
||||
}
|
||||
} else if (!strcmp(method, "GET")) {
|
||||
if (!strcmp(url, "/server-info")) {
|
||||
raop->hls_pending = true;
|
||||
handler = &http_handler_server_info;
|
||||
} else if (!strcmp(url, "/playback-info")) {
|
||||
handler = &http_handler_playback_info;
|
||||
@@ -487,7 +490,6 @@ conn_request(void *ptr, http_request_t *request, http_response_t **response) {
|
||||
}
|
||||
}
|
||||
http_response_finish(*response, response_data, response_datalen);
|
||||
|
||||
int len = 0;
|
||||
const char *data = http_response_get_data(*response, &len);
|
||||
if (response_data && response_datalen > 0) {
|
||||
@@ -635,7 +637,8 @@ raop_init(raop_callbacks_t *callbacks) {
|
||||
raop->audio_delay_micros = 250000;
|
||||
|
||||
raop->hls_support = false;
|
||||
|
||||
raop->hls_pending = false;
|
||||
|
||||
raop->nonce = NULL;
|
||||
|
||||
raop->lang = NULL;
|
||||
|
||||
@@ -35,7 +35,6 @@ typedef struct raop_s raop_t;
|
||||
|
||||
typedef void (*raop_log_callback_t)(void *cls, int level, const char *msg);
|
||||
|
||||
|
||||
typedef struct playback_info_s {
|
||||
//char * uuid;
|
||||
uint32_t stallcount;
|
||||
@@ -66,7 +65,7 @@ typedef enum reset_type_e {
|
||||
RESET_TYPE_HLS_SHUTDOWN,
|
||||
RESET_TYPE_HLS_EOS,
|
||||
RESET_TYPE_ON_VIDEO_PLAY,
|
||||
RESET_TYPE_TEARDOWN_110
|
||||
RESET_TYPE_RTP_TO_HLS_TEARDOWN
|
||||
} reset_type_t;
|
||||
|
||||
struct raop_callbacks_s {
|
||||
|
||||
@@ -1278,7 +1278,11 @@ raop_handler_teardown(raop_conn_t *conn,
|
||||
}
|
||||
}
|
||||
} else if (teardown_110) {
|
||||
raop->callbacks.video_reset(raop->callbacks.cls, RESET_TYPE_RTP_SHUTDOWN);
|
||||
if (raop->hls_pending) {
|
||||
raop->callbacks.video_reset(raop->callbacks.cls, RESET_TYPE_RTP_TO_HLS_TEARDOWN);
|
||||
} else {
|
||||
raop->callbacks.video_reset(raop->callbacks.cls, RESET_TYPE_RTP_SHUTDOWN);
|
||||
}
|
||||
if (conn->raop_rtp_mirror) {
|
||||
/* Stop our video RTP session */
|
||||
raop_rtp_mirror_stop(conn->raop_rtp_mirror);
|
||||
@@ -1299,7 +1303,4 @@ raop_handler_teardown(raop_conn_t *conn,
|
||||
raop->callbacks.video_reset(raop->callbacks.cls, RESET_TYPE_HLS_SHUTDOWN);
|
||||
}
|
||||
}
|
||||
if (raop->callbacks.conn_teardown) {
|
||||
raop->callbacks.conn_teardown(raop->callbacks.cls, &teardown_96, &teardown_110);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user