diff --git a/libavformat/whip.c b/libavformat/whip.c index 7936eb1300..5fdbd6949d 100644 --- a/libavformat/whip.c +++ b/libavformat/whip.c @@ -732,10 +732,18 @@ static int exchange_sdp(AVFormatContext *s) URLContext *whip_uc = NULL; AVDictionary *opts = NULL; char *hex_data = NULL; + const char *proto_name = avio_find_protocol_name(s->url); /* To prevent a crash during cleanup, always initialize it. */ av_bprint_init(&bp, 1, MAX_SDP_SIZE); + if (!av_strstart(proto_name, "http", NULL)) { + av_log(whip, AV_LOG_ERROR, "WHIP: Protocol %s is not supported by RTC, choose http, url is %s\n", + proto_name, s->url); + ret = AVERROR(EINVAL); + goto end; + } + if (!whip->sdp_offer || !strlen(whip->sdp_offer)) { av_log(whip, AV_LOG_ERROR, "WHIP: No offer to exchange\n"); ret = AVERROR(EINVAL);