From 9df6c1fd6c54f6df5e48a384873fe3bbecf169f1 Mon Sep 17 00:00:00 2001 From: Lorenzo Miniero Date: Fri, 25 Feb 2022 13:43:13 +0100 Subject: [PATCH] Fixed segfault when stopping Streaming recording, and fixed legacy start recording (see #2902) --- src/plugins/janus_streaming.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/plugins/janus_streaming.c b/src/plugins/janus_streaming.c index baf72ff2c4..67d69f8464 100644 --- a/src/plugins/janus_streaming.c +++ b/src/plugins/janus_streaming.c @@ -4740,8 +4740,10 @@ static json_t *janus_streaming_process_synchronous_request(janus_streaming_sessi codec = "av1"; else if(strstr(stream->codecs.rtpmap, "h265") || strstr(stream->codecs.rtpmap, "H265")) codec = "h265"; + file = json_string_value(video); } else if(stream->type == JANUS_STREAMING_MEDIA_DATA) { codec = "text"; + file = json_string_value(data); } janus_recorder *rc = janus_recorder_create(NULL, codec, (char *)file); if(rc == NULL) { @@ -4796,7 +4798,7 @@ static json_t *janus_streaming_process_synchronous_request(janus_streaming_sessi GList *temp = source->media; while(temp) { janus_streaming_rtp_source_stream *stream = (janus_streaming_rtp_source_stream *)temp->data; - if(strcasecmp(stream->mid, mid)) { + if(strcasecmp(stream->mid, mid) || stream->rc == NULL) { temp = temp->next; continue; } @@ -4833,7 +4835,7 @@ static json_t *janus_streaming_process_synchronous_request(janus_streaming_sessi janus_streaming_rtp_source_stream *stream = (janus_streaming_rtp_source_stream *)temp->data; if((stream->type == JANUS_STREAMING_MEDIA_AUDIO && !json_is_true(audio)) || (stream->type == JANUS_STREAMING_MEDIA_VIDEO && !json_is_true(video)) || - (stream->type == JANUS_STREAMING_MEDIA_DATA && !json_is_true(data))) { + (stream->type == JANUS_STREAMING_MEDIA_DATA && !json_is_true(data)) || stream->rc == NULL) { temp = temp->next; continue; }