release the video).
return ret;
}
-void MainInterface::releaseVideo( vout_thread_t *p_vout, void *p_win )
+void MainInterface::releaseVideo( void *p_win )
{
if( fullscreenControls ) fullscreenControls->detachVout();
- emit askReleaseVideo( p_win );
+ if( p_win )
+ emit askReleaseVideo( p_win );
}
void MainInterface::releaseVideoSlot( void *p_win )
void *requestVideo( vout_thread_t *p_nvout, int *pi_x,
int *pi_y, unsigned int *pi_width,
unsigned int *pi_height );
- void releaseVideo( vout_thread_t *, void * );
+ void releaseVideo( void * );
int controlVideo( void *p_window, int i_query, va_list args );
void requestLayoutUpdate();
if (miP)
{
QMutexLocker locker (&windowLock);
+
+ /* We need to warn to detach from any vout before
+ * deleting miP (WindowClose will not be called after it) */
+ p_intf->p_sys->p_mi->releaseVideo( NULL );
+
val.p_address = NULL;
var_Set (p_intf, "window_widget", val);
delete miP;
QMutexLocker locker (&windowLock);
if (!miP->isNull ())
- (*miP)->releaseVideo( wnd->vout, wnd->handle );
+ (*miP)->releaseVideo( wnd->handle );
delete miP;
}