Commit 5d6d1a6b authored by Christophe Courtaut's avatar Christophe Courtaut Committed by Antoine Cellerier

Fixed bug in snapshot format

--snapshot-format was proposing png or jpg, but if format passed to this
option was unrecognized, then fallback to png.
This commit fix the fact that vlc was always falling back to png.
Signed-off-by: default avatarAntoine Cellerier <dionoea@videolan.org>
parent 78e0aba1
...@@ -70,6 +70,7 @@ VLC_EXPORT( void, image_HandlerDelete, ( image_handler_t * ) ); ...@@ -70,6 +70,7 @@ VLC_EXPORT( void, image_HandlerDelete, ( image_handler_t * ) );
#define image_Convert( a, b, c, d ) a->pf_convert( a, b, c, d ) #define image_Convert( a, b, c, d ) a->pf_convert( a, b, c, d )
#define image_Filter( a, b, c, d ) a->pf_filter( a, b, c, d ) #define image_Filter( a, b, c, d ) a->pf_filter( a, b, c, d )
VLC_EXPORT( vlc_fourcc_t, image_Type2Fourcc, ( const char *psz_name ) );
VLC_EXPORT( vlc_fourcc_t, image_Ext2Fourcc, ( const char *psz_name ) ); VLC_EXPORT( vlc_fourcc_t, image_Ext2Fourcc, ( const char *psz_name ) );
# ifdef __cplusplus # ifdef __cplusplus
......
...@@ -71,6 +71,7 @@ static filter_t *CreateFilter( vlc_object_t *, es_format_t *, ...@@ -71,6 +71,7 @@ static filter_t *CreateFilter( vlc_object_t *, es_format_t *,
video_format_t *, const char * ); video_format_t *, const char * );
static void DeleteFilter( filter_t * ); static void DeleteFilter( filter_t * );
vlc_fourcc_t image_Type2Fourcc( const char * );
vlc_fourcc_t image_Ext2Fourcc( const char * ); vlc_fourcc_t image_Ext2Fourcc( const char * );
/*static const char *Fourcc2Ext( vlc_fourcc_t );*/ /*static const char *Fourcc2Ext( vlc_fourcc_t );*/
...@@ -534,21 +535,17 @@ static const struct ...@@ -534,21 +535,17 @@ static const struct
{ 0, NULL } { 0, NULL }
}; };
vlc_fourcc_t image_Ext2Fourcc( const char *psz_name ) vlc_fourcc_t image_Type2Fourcc( const char *psz_type )
{ {
int i; int i;
psz_name = strrchr( psz_name, '.' );
if( !psz_name ) return 0;
psz_name++;
for( i = 0; ext_table[i].i_codec; i++ ) for( i = 0; ext_table[i].i_codec; i++ )
{ {
int j; int j;
for( j = 0; toupper(ext_table[i].psz_ext[j]) == toupper(psz_name[j]); for( j = 0; toupper(ext_table[i].psz_ext[j]) == toupper(psz_type[j]);
j++ ) j++ )
{ {
if( !ext_table[i].psz_ext[j] && !psz_name[j] ) if( !ext_table[i].psz_ext[j] && !psz_type[j] )
return ext_table[i].i_codec; return ext_table[i].i_codec;
} }
} }
...@@ -556,6 +553,15 @@ vlc_fourcc_t image_Ext2Fourcc( const char *psz_name ) ...@@ -556,6 +553,15 @@ vlc_fourcc_t image_Ext2Fourcc( const char *psz_name )
return 0; return 0;
} }
vlc_fourcc_t image_Ext2Fourcc( const char *psz_name )
{
psz_name = strrchr( psz_name, '.' );
if( !psz_name ) return 0;
psz_name++;
return image_Type2Fourcc( psz_name );
}
/* /*
static const char *Fourcc2Ext( vlc_fourcc_t i_codec ) static const char *Fourcc2Ext( vlc_fourcc_t i_codec )
{ {
......
...@@ -753,8 +753,8 @@ int vout_GetSnapshot( vout_thread_t *p_vout, ...@@ -753,8 +753,8 @@ int vout_GetSnapshot( vout_thread_t *p_vout,
if( pp_image ) if( pp_image )
{ {
vlc_fourcc_t i_format = VLC_FOURCC('p','n','g',' '); vlc_fourcc_t i_format = VLC_FOURCC('p','n','g',' ');
if( psz_format && image_Ext2Fourcc( psz_format ) ) if( psz_format && image_Type2Fourcc( psz_format ) )
i_format = image_Ext2Fourcc( psz_format ); i_format = image_Type2Fourcc( psz_format );
const int i_override_width = var_GetInteger( p_vout, "snapshot-width" ); const int i_override_width = var_GetInteger( p_vout, "snapshot-width" );
const int i_override_height = var_GetInteger( p_vout, "snapshot-height" ); const int i_override_height = var_GetInteger( p_vout, "snapshot-height" );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment