diff --git a/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm b/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm index 3d4ae71110..3eca55b36a 100644 --- a/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm +++ b/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm @@ -151,10 +151,12 @@ void compressionOutputCallback(void *encoder, OSStatus status, VTEncodeInfoFlags infoFlags, CMSampleBufferRef sampleBuffer) { - RTC_CHECK(params); + if (!params) { + // If there are pending callbacks when the encoder is destroyed, this can happen. + return; + } std::unique_ptr encodeParams( reinterpret_cast(params)); - RTC_CHECK(encodeParams->encoder); [encodeParams->encoder frameWasEncoded:status flags:infoFlags sampleBuffer:sampleBuffer