#include "video_init.h"
#include <GL/glu.h>
-#include <vlc/input.h>
-#include <vlc/vout.h>
-#include "aout_internal.h"
+#include <vlc_input.h>
+#include <vlc_playlist.h>
+#include <vlc_plugin.h>
/*****************************************************************************
* Module descriptor
if ( p_filter->input.i_format != VLC_FOURCC('f','l','3','2' )
|| p_filter->output.i_format != VLC_FOURCC('f','l','3','2') )
{
- msg_Warn( p_filter, "Bad input or output format" );
+ msg_Warn( p_filter, "bad input or output format" );
return VLC_EGENERIC;
}
if ( !AOUT_FMTS_SIMILAR( &p_filter->input, &p_filter->output ) )
p_thread->psz_title = TitleGet( VLC_OBJECT( p_filter ) );
if( vlc_thread_create( p_thread, "galaktos update thread", Thread,
- VLC_THREAD_PRIORITY_LOW, VLC_FALSE ) )
+ VLC_THREAD_PRIORITY_LOW, false ) )
{
msg_Err( p_filter, "cannot lauch galaktos thread" );
- if( p_thread->psz_title ) free( p_thread->psz_title );
+ free( p_thread->psz_title );
vlc_object_detach( p_thread );
- vlc_object_destroy( p_thread );
+ vlc_object_release( p_thread );
free( p_sys );
return VLC_EGENERIC;
}
}
vlc_object_attach( p_thread->p_opengl, p_this );
+ /* Initialize vout parameters */
+ vout_InitFormat( &p_thread->p_opengl->fmt_in,
+ VLC_FOURCC('R','V','3','2'),
+ p_thread->i_width, p_thread->i_height, 1 );
p_thread->p_opengl->i_window_width = p_thread->i_width;
p_thread->p_opengl->i_window_height = p_thread->i_height;
p_thread->p_opengl->render.i_width = p_thread->i_width;
p_thread->p_opengl->render.i_height = p_thread->i_width;
p_thread->p_opengl->render.i_aspect = VOUT_ASPECT_FACTOR;
- p_thread->p_opengl->b_scale = VLC_TRUE;
+ p_thread->p_opengl->b_scale = true;
+ p_thread->p_opengl->b_fullscreen = false;
+ p_thread->p_opengl->i_alignment = 0;
+ p_thread->p_opengl->fmt_in.i_sar_num = 1;
+ p_thread->p_opengl->fmt_in.i_sar_den = 1;
+ p_thread->p_opengl->fmt_render = p_thread->p_opengl->fmt_in;
p_thread->p_module =
module_Need( p_thread->p_opengl, "opengl provider", NULL, 0 );
if( p_thread->p_module == NULL )
{
- msg_Err( p_thread, "No OpenGL provider found" );
+ msg_Err( p_thread, "unable to initialize OpenGL" );
vlc_object_detach( p_thread->p_opengl );
- vlc_object_destroy( p_thread->p_opengl );
+ vlc_object_release( p_thread->p_opengl );
return;
}
mspf = 1000 / 60;
if( galaktos_update( p_thread ) == 1 )
{
- p_thread->b_die = 1;
- }
- if( p_thread->psz_title )
- {
- free( p_thread->psz_title );
- p_thread->psz_title = NULL;
+ vlc_object_kill( p_thread );
}
+ free( p_thread->psz_title );
+ p_thread->psz_title = NULL;
if (++count%100==0)
{
/* Free the openGL provider */
module_Unneed( p_thread->p_opengl, p_thread->p_module );
vlc_object_detach( p_thread->p_opengl );
- vlc_object_destroy( p_thread->p_opengl );
+ vlc_object_release( p_thread->p_opengl );
}
/*****************************************************************************
aout_filter_sys_t *p_sys = p_filter->p_sys;
/* Stop galaktos Thread */
- p_sys->p_thread->b_die = VLC_TRUE;
+ vlc_object_kill( p_sys->p_thread );
galaktos_done( p_sys->p_thread );
/* Free data */
vlc_object_detach( p_sys->p_thread );
- vlc_object_destroy( p_sys->p_thread );
+ vlc_object_release( p_sys->p_thread );
free( p_sys );
}
if( p_input )
{
- char *psz = strrchr( p_input->input.p_item->psz_uri, '/' );
+ char *psz_orig = input_item_GetURI( input_GetItem( p_input ) );
+ char *psz = strrchr( psz_orig, '/' );
if( psz )
{
}
else
{
- psz = p_input->input.p_item->psz_uri;
+ psz = psz_orig;
}
if( psz && *psz )
{
psz_title = strdup( psz );
}
+ free( psz_orig );
vlc_object_release( p_input );
}