@@ -181,21 +181,16 @@ class FlutterRtcVideoRenderer: NSObject, FlutterTexture, RTCVideoRenderer {
181181 rotation = 270
182182 }
183183
184- let isFrameWidthChanged = self . frameWidth != renderFrame. buffer. width
185- let isFrameHeightChanged = self . frameHeight != renderFrame. buffer. height
186- let isFrameRotationChanged = self . frameRotation != rotation
187-
188- if isFrameWidthChanged
189- || isFrameHeightChanged
190- || isFrameRotationChanged
184+ if self . frameWidth != renderFrame. buffer. width
185+ || self . frameHeight != renderFrame. buffer. height
186+ || self . frameRotation != rotation
191187 {
192188 self . frameWidth = renderFrame. buffer. width
193189 self . frameHeight = renderFrame. buffer. height
194190 self . frameRotation = rotation
195191
196192 let frameWidth = self . frameWidth
197193 let frameHeight = self . frameHeight
198-
199194 DispatchQueue . main. async {
200195 self . broadcastEventObserver ( ) . onTextureChange (
201196 id: self . textureId,
@@ -212,8 +207,8 @@ class FlutterRtcVideoRenderer: NSObject, FlutterTexture, RTCVideoRenderer {
212207 let buffer = renderFrame. buffer. toI420 ( )
213208
214209 if self . pixelBuffer == nil
215- || self . frameWidth != buffer. width
216- || self . frameHeight != buffer. height
210+ || CVPixelBufferGetWidth ( self . pixelBuffer! ) != buffer. width
211+ || CVPixelBufferGetHeight ( self . pixelBuffer! ) != buffer. height
217212 {
218213 let attrs =
219214 [
@@ -223,15 +218,21 @@ class FlutterRtcVideoRenderer: NSObject, FlutterTexture, RTCVideoRenderer {
223218 ] as CFDictionary
224219
225220 var newPB : CVPixelBuffer ?
226- CVPixelBufferCreate (
221+ let status = CVPixelBufferCreate (
227222 kCFAllocatorDefault,
228223 Int ( buffer. width) ,
229224 Int ( buffer. height) ,
230225 kCVPixelFormatType_32BGRA,
231226 attrs,
232- & self . pixelBuffer
227+ & newPB
233228 )
234- self . pixelBuffer = newPB
229+ if status == kCVReturnSuccess {
230+ self . pixelBuffer = newPB
231+ } else {
232+ print ( " CVPixelBufferCreate failed with status \( status) " )
233+ self . pixelBuffer = nil
234+ return
235+ }
235236 }
236237
237238 CVPixelBufferLockBaseAddress (
0 commit comments