/*****************************************************************************
* Preamble
*****************************************************************************/
-#include <stdlib.h> /* malloc(), free() */
-#include <string.h> /* strdup() */
#include <errno.h>
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
#include <vlc/vlc.h>
-#include <vlc/input.h>
-#include <vlc/aout.h>
-#include <vlc/vout.h>
-#include "aout_internal.h"
+#include <vlc_aout.h>
+#include <vlc_vout.h>
+#include <vlc_block.h>
+#include <vlc_input.h>
#ifdef USE_GOOM_TREE
# ifdef OLD_GOOM
#define WIDTH_TEXT N_("Goom display width")
#define HEIGHT_TEXT N_("Goom display height")
-#define RES_LONGTEXT N_("Allows you to change the resolution of the " \
+#define RES_LONGTEXT N_("This allows you to set the resolution of the " \
"Goom display (bigger resolution will be prettier but more CPU intensive).")
#define SPEED_TEXT N_("Goom animation speed")
-#define SPEED_LONGTEXT N_("Allows you to reduce the speed of the animation " \
- "(default 6, max 10).")
+#define SPEED_LONGTEXT N_("This allows you to set the animation speed " \
+ "(between 1 and 10, defaults to 6).")
#define MAX_SPEED 10
set_subcategory( SUBCAT_AUDIO_VISUAL );
set_capability( "visualization", 0 );
add_integer( "goom-width", 320, NULL,
- WIDTH_TEXT, RES_LONGTEXT, VLC_FALSE );
+ WIDTH_TEXT, RES_LONGTEXT, false );
add_integer( "goom-height", 240, NULL,
- HEIGHT_TEXT, RES_LONGTEXT, VLC_FALSE );
+ HEIGHT_TEXT, RES_LONGTEXT, false );
add_integer( "goom-speed", 6, NULL,
- SPEED_TEXT, SPEED_LONGTEXT, VLC_FALSE );
+ SPEED_TEXT, SPEED_LONGTEXT, false );
set_callbacks( Open, Close );
add_shortcut( "goom" );
vlc_module_end();
aout_filter_sys_t *p_sys;
goom_thread_t *p_thread;
vlc_value_t width, height;
- video_format_t fmt = {0};
+ video_format_t fmt;
+
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 ) )
var_Create( p_thread, "goom-height", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT );
var_Get( p_thread, "goom-height", &height );
+ memset( &fmt, 0, sizeof(video_format_t) );
+
fmt.i_width = fmt.i_visible_width = width.i_int;
fmt.i_height = fmt.i_visible_height = height.i_int;
fmt.i_chroma = VLC_FOURCC('R','V','3','2');
{
msg_Err( p_filter, "no suitable vout module" );
vlc_object_detach( p_thread );
- vlc_object_destroy( p_thread );
+ vlc_object_release( p_thread );
free( p_sys );
return VLC_EGENERIC;
}
p_thread->psz_title = TitleGet( VLC_OBJECT( p_filter ) );
if( vlc_thread_create( p_thread, "Goom Update Thread", Thread,
- VLC_THREAD_PRIORITY_LOW, VLC_FALSE ) )
+ VLC_THREAD_PRIORITY_LOW, false ) )
{
msg_Err( p_filter, "cannot lauch goom thread" );
vout_Destroy( p_thread->p_vout );
vlc_mutex_destroy( &p_thread->lock );
vlc_cond_destroy( &p_thread->wait );
- 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;
}
static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
aout_buffer_t * p_in_buf, aout_buffer_t * p_out_buf )
{
+ VLC_UNUSED( p_aout );
+
aout_filter_sys_t *p_sys = p_filter->p_sys;
block_t *p_block;
plane = goom_update( p_plugin_info, p_data, 0, 0.0,
p_thread->psz_title, NULL );
- if( p_thread->psz_title )
- {
- free( p_thread->psz_title );
- p_thread->psz_title = NULL;
- }
+ free( p_thread->psz_title );
+ p_thread->psz_title = NULL;
while( !( p_pic = vout_CreatePicture( p_thread->p_vout, 0, 0, 0 ) ) &&
!p_thread->b_die )
aout_filter_sys_t *p_sys = p_filter->p_sys;
/* Stop Goom Thread */
- p_sys->p_thread->b_die = VLC_TRUE;
+ vlc_object_kill( p_sys->p_thread );
vlc_mutex_lock( &p_sys->p_thread->lock );
vlc_cond_signal( &p_sys->p_thread->wait );
block_Release( p_sys->p_thread->pp_blocks[p_sys->p_thread->i_blocks] );
}
- 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, '/' );
-
- if( psz )
- {
- psz++;
- }
- else
- {
- psz = p_input->input.p_item->psz_uri;
- }
- if( psz && *psz )
+ psz_title = input_item_GetTitle( input_GetItem( p_input ) );
+ if( EMPTY_STR( psz_title ) )
{
- psz_title = strdup( psz );
+ free( psz_title );
+ char *psz_orig = input_item_GetURI( input_GetItem( p_input ) );
+ char *psz = strrchr( psz_orig, '/' );
+
+ if( psz )
+ {
+ psz++;
+ }
+ else
+ {
+ psz = psz_orig;
+ }
+ if( psz && *psz )
+ {
+ psz_title = strdup( psz );
+ }
+ free( psz_orig );
}
vlc_object_release( p_input );
}