Commit 217a2f8c authored by Felix Paul Kühne's avatar Felix Paul Kühne

vout iOS: improved locking

parent dabd1cfb
......@@ -236,6 +236,7 @@ static int Open(vlc_object_t *this)
if (unlikely(viewContainer == nil))
goto bailout;
@synchronized(viewContainer) {
if (unlikely(![viewContainer respondsToSelector:@selector(isKindOfClass:)]))
goto bailout;
......@@ -272,6 +273,7 @@ static int Open(vlc_object_t *this)
}
}
sys->tapRecognizer.cancelsTouchesInView = NO;
}
const vlc_fourcc_t *subpicture_chromas;
video_format_t fmt = vd->fmt;
......@@ -317,8 +319,12 @@ static int Open(vlc_object_t *this)
vd->manage = NULL;
/* forward our dimensions to the vout core */
CGFloat scaleFactor = sys->viewContainer.contentScaleFactor;
CGSize viewSize = sys->viewContainer.bounds.size;
CGFloat scaleFactor;
CGSize viewSize;
@synchronized(sys->viewContainer) {
scaleFactor = sys->viewContainer.contentScaleFactor;
viewSize = sys->viewContainer.bounds.size;
}
vout_display_SendEventFullscreen(vd, false);
vout_display_SendEventDisplaySize(vd, viewSize.width * scaleFactor, viewSize.height * scaleFactor);
......@@ -354,8 +360,11 @@ void Close (vlc_object_t *this)
[sys->glESView setVoutDisplay:nil];
var_Destroy (vd, "drawable-nsobject");
[sys->viewContainer performSelectorOnMainThread:@selector(release) withObject:nil waitUntilDone:NO];
@synchronized(sys->viewContainer) {
[sys->glESView performSelectorOnMainThread:@selector(removeFromSuperview) withObject:nil waitUntilDone:NO];
[sys->viewContainer performSelectorOnMainThread:@selector(release) withObject:nil waitUntilDone:NO];
}
sys->viewContainer = nil;
if (sys->gl.sys != NULL) {
@synchronized (sys->glESView) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment