From 6d8df108e6ca8f22d9f012907b7cd7365633c988 Mon Sep 17 00:00:00 2001 From: chundonglinlin Date: Thu, 16 Feb 2023 01:20:08 +0800 Subject: [PATCH] WebRTC: Add error tips when coverting HEVC to RTC.(#3407) --- trunk/src/app/srs_app_rtc_source.cpp | 12 +++++------- trunk/src/kernel/srs_kernel_error.hpp | 3 ++- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/trunk/src/app/srs_app_rtc_source.cpp b/trunk/src/app/srs_app_rtc_source.cpp index 3e023bf9e9..0ad10fd093 100644 --- a/trunk/src/app/srs_app_rtc_source.cpp +++ b/trunk/src/app/srs_app_rtc_source.cpp @@ -974,13 +974,6 @@ srs_error_t SrsRtcFromRtmpBridge::on_video(SrsSharedPtrMessage* msg) return err; } - // WebRTC NOT support HEVC. -#ifdef SRS_H265 - if (format->vcodec->id == SrsVideoCodecIdHEVC) { - return err; - } -#endif - // cache the sequence header if h264 bool is_sequence_header = SrsFlvVideo::sh(msg->payload, msg->size); if (is_sequence_header && (err = meta->update_vsh(msg)) != srs_success) { @@ -997,6 +990,11 @@ srs_error_t SrsRtcFromRtmpBridge::on_video(SrsSharedPtrMessage* msg) return err; } + // WebRTC NOT support HEVC, RTMP NOT support VP8/VP9. + if (format->vcodec->id != SrsVideoCodecIdAVC && format->vcodec->id != SrsVideoCodecIdAV1) { + return srs_error_new(ERROR_RTC_CODEC_ERROR, "WebRTC not support %s", srs_video_codec_id2str(format->vcodec->id).c_str()); + } + bool has_idr = false; vector samples; if ((err = filter(msg, format, has_idr, samples)) != srs_success) { diff --git a/trunk/src/kernel/srs_kernel_error.hpp b/trunk/src/kernel/srs_kernel_error.hpp index f095d9533a..28d38bb32f 100644 --- a/trunk/src/kernel/srs_kernel_error.hpp +++ b/trunk/src/kernel/srs_kernel_error.hpp @@ -372,7 +372,8 @@ XX(ERROR_RTC_TCP_SIZE , 5032, "RtcTcpSize", "RTC TCP packet size is invalid") \ XX(ERROR_RTC_TCP_PACKET , 5033, "RtcTcpStun", "RTC TCP first packet must be STUN") \ XX(ERROR_RTC_TCP_STUN , 5034, "RtcTcpSession", "RTC TCP packet is invalid for session not found") \ - XX(ERROR_RTC_TCP_UNIQUE , 5035, "RtcUnique", "RTC only support one UDP or TCP network") + XX(ERROR_RTC_TCP_UNIQUE , 5035, "RtcUnique", "RTC only support one UDP or TCP network") \ + XX(ERROR_RTC_CODEC_ERROR , 5036, "RtcCodec", "RTC not support codec type") /**************************************************/ /* SRT protocol error. */