[vlc-devel] commit: Do not refuse to start when no logo is specified. (Laurent Aimar )
git version control
git at videolan.org
Sat Jun 6 19:59:09 CEST 2009
vlc | branch: master | Laurent Aimar <fenrir at videolan.org> | Sat Jun 6 19:33:24 2009 +0200| [00af33b43090361b0de66ffea05bc9fab505afb6] | committer: Laurent Aimar
Do not refuse to start when no logo is specified.
A warning is issued. It allows a better interaction with GUI.
I also added abort() to non handled memory allocation error.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=00af33b43090361b0de66ffea05bc9fab505afb6
---
modules/video_filter/logo.c | 76 ++++++++-----------------------------------
1 files changed, 14 insertions(+), 62 deletions(-)
diff --git a/modules/video_filter/logo.c b/modules/video_filter/logo.c
index d6028e2..765a24f 100644
--- a/modules/video_filter/logo.c
+++ b/modules/video_filter/logo.c
@@ -260,16 +260,16 @@ static int OpenCommon( vlc_object_t *p_this, bool b_sub )
p_list->psz_filename =
var_CreateGetStringCommand( p_filter, "logo-file" );
- if( !p_list->psz_filename || *p_list->psz_filename == '\0' )
+ if( !p_list->psz_filename )
{
- msg_Err( p_this, "logo file not specified" );
-
if( p_sys->p_blend )
filter_DeleteBlend( p_sys->p_blend );
- free( p_list->psz_filename );
free( p_sys );
- return VLC_EGENERIC;
+ return VLC_ENOMEM;
}
+ if( *p_list->psz_filename == '\0' )
+ msg_Warn( p_this, "no logo file specified" );
+
p_list->i_alpha = var_CreateGetIntegerCommand( p_filter,
"logo-transparency");
p_list->i_alpha = __MAX( __MIN( p_list->i_alpha, 255 ), 0 );
@@ -552,63 +552,6 @@ static int Mouse( filter_t *p_filter, vlc_mouse_t *p_mouse,
return VLC_SUCCESS;
}
-
-#if 0
-/*****************************************************************************
- * MouseEvent: callback for mouse events
- *****************************************************************************/
-static int MouseEvent( vlc_object_t *p_this, char const *psz_var,
- vlc_value_t oldval, vlc_value_t newval, void *p_data )
-{
- vout_thread_t *p_vout = p_data;
- assert( p_this == VLC_OBJECT(p_vout->p_sys->p_vout) );
- VLC_UNUSED(oldval);
-
- vout_sys_t *p_sys = p_vout->p_sys;
- const int i_delta = newval.i_int - oldval.i_int;
- const int i_bdown = var_GetInteger( p_sys->p_vout, "mouse-button-down" );
-
- if( (i_bdown & 0x1) == 0 )
- goto forward;
-
- int i_x, i_y;
- int i_dx = 0;
- int i_dy = 0;
- if( psz_var[6] == 'x' )
- {
- i_y = var_GetInteger( p_sys->p_vout, "mouse-y" );
- i_x = newval.i_int;
- i_dx = i_delta;
- }
- else if( psz_var[6] == 'y' )
- {
- i_y = newval.i_int;
- i_x = var_GetInteger( p_sys->p_vout, "mouse-x" );
- i_dy = i_delta;
- }
- else
- {
- goto forward;
- }
-
- /* FIXME missing lock */
- if( i_x < (int)p_sys->i_pos_x ||
- i_y < (int)p_sys->i_pos_y ||
- i_x > (int)(p_sys->i_pos_x + p_sys->i_width) ||
- i_y > (int)(p_sys->i_pos_y + p_sys->i_height) )
- goto forward;
-
- p_sys->i_pos_x = __MIN( __MAX( p_sys->i_pos_x + i_dx, 0 ),
- p_vout->output.i_width - p_sys->i_width );
- p_sys->i_pos_y = __MIN( __MAX( p_sys->i_pos_y + i_dy, 0 ),
- p_vout->output.i_height - p_sys->i_height );
- return VLC_SUCCESS;
-
-forward:
- return var_Set( p_vout, psz_var, newval );
-}
-#endif
-
/*****************************************************************************
* Callback to update params on the fly
*****************************************************************************/
@@ -624,6 +567,8 @@ static int LogoCallback( vlc_object_t *p_this, char const *psz_var,
{
LogoListUnload( p_list );
p_list->psz_filename = strdup( newval.psz_string );
+ if( !p_list->psz_filename )
+ abort();
LogoListLoad( p_this, p_list );
}
else if ( !strcmp( psz_var, "logo-x" ) )
@@ -657,6 +602,9 @@ static int LogoCallback( vlc_object_t *p_this, char const *psz_var,
*/
static picture_t *LoadImage( vlc_object_t *p_this, char *psz_filename )
{
+ if( !psz_filename )
+ return NULL;
+
video_format_t fmt_in;
video_format_Init( &fmt_in, 0 );
@@ -691,6 +639,8 @@ static void LogoListLoad( vlc_object_t *p_this, logo_list_t *p_logo_list )
p_logo_list->i_next_pic = 0;
psz_list = strdup( p_logo_list->psz_filename );
+ if( !psz_list )
+ abort();
/* Count the number logos == number of ';' + 1 */
p_logo_list->i_count = 1;
@@ -702,6 +652,8 @@ static void LogoListLoad( vlc_object_t *p_this, logo_list_t *p_logo_list )
p_logo_list->p_logo =
p_logo = calloc( p_logo_list->i_count, sizeof(*p_logo) );
+ if( !p_logo )
+ abort();
/* Fill the data */
for( i = 0; i < p_logo_list->i_count; i++ )
More information about the vlc-devel
mailing list