diff --git a/modules/video_coding/BUILD.gn b/modules/video_coding/BUILD.gn index f875a1b20a..d8d20d6566 100644 --- a/modules/video_coding/BUILD.gn +++ b/modules/video_coding/BUILD.gn @@ -245,6 +245,7 @@ rtc_library("video_coding") { "../../rtc_base:rtc_event", "../../rtc_base:rtc_numerics", "../../rtc_base:safe_conversions", + "../../rtc_base:stringutils", "../../rtc_base:threading", "../../rtc_base:timeutils", "../../rtc_base/experiments:alr_experiment", diff --git a/modules/video_coding/generic_decoder.cc b/modules/video_coding/generic_decoder.cc index b660e02b72..46b8c95f61 100644 --- a/modules/video_coding/generic_decoder.cc +++ b/modules/video_coding/generic_decoder.cc @@ -25,6 +25,7 @@ #include "modules/video_coding/include/video_error_codes.h" #include "rtc_base/checks.h" #include "rtc_base/logging.h" +#include "rtc_base/string_encode.h" #include "rtc_base/trace_event.h" #include "system_wrappers/include/clock.h" @@ -299,8 +300,14 @@ int32_t VCMGenericDecoder::Decode(const VCMEncodedFrame& frame, Timestamp now) { _callback->OnDecoderInfoChanged(std::move(decoder_info)); } if (ret < WEBRTC_VIDEO_CODEC_OK) { + const absl::optional ssrc = + !frame_info.packet_infos.empty() + ? absl::make_optional(frame_info.packet_infos[0].ssrc()) + : absl::nullopt; RTC_LOG(LS_WARNING) << "Failed to decode frame with timestamp " - << frame.Timestamp() << ", error code: " << ret; + << frame.Timestamp() << ", ssrc " + << (ssrc ? rtc::ToString(*ssrc) : "") + << ", error code: " << ret; _callback->ClearTimestampMap(); } else if (ret == WEBRTC_VIDEO_CODEC_NO_OUTPUT) { // No output.