plt.setColor( QPalette::Inactive, QPalette::Window , Qt::black );
setPalette( plt );
- /* The core can ask through a callback to show the video */
- CONNECT( this, askVideoWidgetToShow(), this, show() );
+ /* The core can ask through a callback to show the video.
+ * NOTE: We need to block the video output core until the window handle
+ * is ready for use (otherwise an X11 invalid handle failure may occur).
+ * As a side effect, it is illegal to emit askVideoWidgetToShow from
+ * the same thread as the Qt4 thread that owns this. */
+ QObject::connect( this, SIGNAL(askVideoWidgetToShow()), this, SLOT(show()),
+ Qt::BlockingQueuedConnection );
+
/* The core can ask through a callback to resize the video */
// CONNECT( this, askResize( int, int ), this, SetSizing( int, int ) );
}
return NULL;
}
p_vout = p_nvout;
+ msg_Dbg( p_intf, "embedded video handle %p", winId() );
return ( void* )winId();
}