8000 Fix onFirstFrameRendered never called on iOS #72 · linuxerwang/flutter-webrtc@5a7c09a · GitHub
[go: up one dir, main page]

Skip to content

Commit 5a7c09a

Browse files
authored
Fix onFirstFrameRendered never called on iOS flutter-webrtc#72
1 parent c482b32 commit 5a7c09a

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

ios/Classes/FlutterRTCVideoRenderer.m

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ @implementation FlutterRTCVideoRenderer {
1616
CVPixelBufferRef _pixelBufferRef;
1717
RTCVideoRotation _rotation;
1818
FlutterEventChannel* _eventChannel;
19+
bool _isFirstFrameRendered;
1920
}
2021

2122
@synthesize textureId = _textureId;
@@ -26,6 +27,7 @@ - (instancetype)initWithTextureRegistry:(id<FlutterTextureRegistry>)registry
2627
messenger:(NSObject<FlutterBinaryMessenger>*)messenger{
2728
self = [super init];
2829
if (self){
30+
_isFirstFrameRendered = false;
2931
_frameSize = CGSizeZero;
3032
_renderSize = CGSizeZero;
3133
_rotation = -1;
@@ -207,6 +209,12 @@ - (void)renderFrame:(RTCVideoFrame *)frame {
207209
dispatch_async(dispatch_get_main_queue(), ^{
208210
FlutterRTCVideoRenderer *strongSelf = weakSelf;
209211
[strongSelf.registry textureFrameAvailable:strongSelf.textureId];
212+
if (!strongSelf->_isFirstFrameRendered) {
213+
if (strongSelf.eventSink) {
214+
strongSelf.eventSink(@{@"event":@"didFirstFrameRendered"});
215+
strongSelf->_isFirstFrameRendered = true;
216+
}
217+
}
210218
});
211219
}
212220

0 commit comments

Comments
 (0)
0