+ if( !p_vout ) return;
+
+ var_SetBool( p_vout, "fullscreen", b_fullscreen );
+
+ vlc_object_release( p_vout );
+}
+
+int libvlc_get_fullscreen( libvlc_media_player_t *p_mi,
+ libvlc_exception_t *p_e )
+{
+ /* We only work on the first vout */
+ vout_thread_t *p_vout = GetVout( p_mi, p_e );
+ int i_ret;
+
+ /* GetVout will raise the exception for us */
+ if( !p_vout ) return 0;
+
+ i_ret = var_GetBool( p_vout, "fullscreen" );
+
+ vlc_object_release( p_vout );
+
+ return i_ret;
+}
+
+void libvlc_toggle_fullscreen( libvlc_media_player_t *p_mi,
+ libvlc_exception_t *p_e )
+{
+ /* We only work on the first vout */
+ vout_thread_t *p_vout = GetVout( p_mi, p_e );
+ bool ret;
+
+ /* GetVout will raise the exception for us */
+ if( !p_vout ) return;
+
+ ret = var_GetBool( p_vout, "fullscreen" );
+ var_SetBool( p_vout, "fullscreen", !ret );
+
+ vlc_object_release( p_vout );
+}
+
+void
+libvlc_video_take_snapshot( libvlc_media_player_t *p_mi, char *psz_filepath,
+ unsigned int i_width, unsigned int i_height, libvlc_exception_t *p_e )
+{
+ vout_thread_t *p_vout = GetVout( p_mi, p_e );
+ input_thread_t *p_input_thread;
+
+ /* GetVout will raise the exception for us */
+ if( !p_vout ) return;
+
+ if( !psz_filepath )
+ {
+ libvlc_exception_raise( p_e, "filepath is null" );
+ return;
+ }
+
+ var_SetInteger( p_vout, "snapshot-width", i_width );
+ var_SetInteger( p_vout, "snapshot-height", i_height );
+
+ p_input_thread = p_mi->p_input_thread;
+ if( !p_mi->p_input_thread )
+ {
+ libvlc_exception_raise( p_e, "Input does not exist" );
+ return;
+ }
+
+ var_SetString( p_vout, "snapshot-path", psz_filepath );
+ var_SetString( p_vout, "snapshot-format", "png" );
+
+ vout_Control( p_vout, VOUT_SNAPSHOT );
+ vlc_object_release( p_vout );
+}
+
+int libvlc_video_get_height( libvlc_media_player_t *p_mi,
+ libvlc_exception_t *p_e )
+{
+ int height;
+
+ vout_thread_t *p_vout = GetVout( p_mi, p_e );
+ if( !p_vout ) return 0;
+
+ height = p_vout->i_window_height;
+
+ vlc_object_release( p_vout );
+
+ return height;
+}
+
+int libvlc_video_get_width( libvlc_media_player_t *p_mi,
+ libvlc_exception_t *p_e )
+{
+ int width;
+
+ vout_thread_t *p_vout = GetVout( p_mi, p_e );
+ if( !p_vout ) return 0;
+
+ width = p_vout->i_window_width;
+
+ vlc_object_release( p_vout );
+
+ return width;
+}
+
+int libvlc_media_player_has_vout( libvlc_media_player_t *p_mi,
+ libvlc_exception_t *p_e )
+{
+ input_thread_t *p_input_thread = libvlc_get_input_thread(p_mi, p_e);
+ bool has_vout = false;
+
+ if( p_input_thread )
+ {
+ vout_thread_t *p_vout;
+
+ p_vout = vlc_object_find( p_input_thread, VLC_OBJECT_VOUT, FIND_CHILD );
+ if( p_vout )
+ {
+ has_vout = true;
+ vlc_object_release( p_vout );
+ }
+ vlc_object_release( p_input_thread );
+ }
+ return has_vout;
+}
+
+int libvlc_video_reparent( libvlc_media_player_t *p_mi, libvlc_drawable_t d,
+ libvlc_exception_t *p_e )
+{
+ vout_thread_t *p_vout = GetVout( p_mi, p_e );
+
+ if( p_vout )
+ {
+ vout_Control( p_vout , VOUT_REPARENT, d);
+ vlc_object_release( p_vout );
+ }
+ return 0;
+}
+
+void libvlc_video_resize( libvlc_media_player_t *p_mi, int width, int height, libvlc_exception_t *p_e )
+{
+ vout_thread_t *p_vout = GetVout( p_mi, p_e );
+ if( p_vout )
+ {
+ vout_Control( p_vout, VOUT_SET_SIZE, width, height );
+ vlc_object_release( p_vout );
+ }
+}
+
+void libvlc_video_redraw_rectangle( libvlc_media_player_t *p_mi,
+ const libvlc_rectangle_t *area,
+ libvlc_exception_t *p_e )
+{
+ if( (NULL != area)
+ && ((area->bottom - area->top) > 0)
+ && ((area->right - area->left) > 0) )
+ {
+ vout_thread_t *p_vout = GetVout( p_mi, p_e );
+ if( p_vout )
+ {
+ /* tell running vout to redraw area */
+ vout_Control( p_vout , VOUT_REDRAW_RECT,
+ area->top, area->left, area->bottom, area->right );
+ vlc_object_release( p_vout );
+ }
+ }
+}
+
+/* global video settings */
+
+/* Deprecated use libvlc_media_player_set_drawable() */
+void libvlc_video_set_parent( libvlc_instance_t *p_instance, libvlc_drawable_t d,
+ libvlc_exception_t *p_e )
+{
+ /* set as default for future vout instances */
+ var_SetInteger(p_instance->p_libvlc_int, "drawable", (int)d);
+
+ libvlc_media_player_t *p_mi = libvlc_playlist_get_media_player(p_instance, p_e);
+ if( p_mi )