]> git.sesse.net Git - vlc/commitdiff
Fixed bug in snapshot format
authorChristophe Courtaut <christophe.courtaut@gmail.com>
Sun, 29 Mar 2009 14:34:37 +0000 (16:34 +0200)
committerAntoine Cellerier <dionoea@videolan.org>
Tue, 31 Mar 2009 17:15:06 +0000 (19:15 +0200)
--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: Antoine Cellerier <dionoea@videolan.org>
include/vlc_image.h
src/misc/image.c
src/video_output/vout_intf.c

index b8785aeabc0e6bf6812404f584f481facec2ba43..7dfe604be11e25c46eae141303bc81a51b32aa59 100644 (file)
@@ -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_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 ) );
 
 # ifdef __cplusplus
index 2b45d25c32af5f4885f1eebe923092e83ad8eed5..9120f7cd112338a09efb8781daa2db12b1dad0ee 100644 (file)
@@ -71,6 +71,7 @@ static filter_t *CreateFilter( vlc_object_t *, es_format_t *,
                                video_format_t *, const char * );
 static void DeleteFilter( filter_t * );
 
+vlc_fourcc_t image_Type2Fourcc( const char * );
 vlc_fourcc_t image_Ext2Fourcc( const char * );
 /*static const char *Fourcc2Ext( vlc_fourcc_t );*/
 
@@ -534,21 +535,17 @@ static const struct
     { 0, NULL }
 };
 
-vlc_fourcc_t image_Ext2Fourcc( const char *psz_name )
+vlc_fourcc_t image_Type2Fourcc( const char *psz_type )
 {
     int i;
 
-    psz_name = strrchr( psz_name, '.' );
-    if( !psz_name ) return 0;
-    psz_name++;
-
     for( i = 0; ext_table[i].i_codec; i++ )
     {
         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++ )
         {
-            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;
         }
     }
@@ -556,6 +553,15 @@ vlc_fourcc_t image_Ext2Fourcc( const char *psz_name )
     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 )
 {
index 04570c983b66744245bd7da6fbab532aab02b011..313ced1137580ef9736b435a28f31f8e2b434742 100644 (file)
@@ -753,8 +753,8 @@ int vout_GetSnapshot( vout_thread_t *p_vout,
     if( pp_image )
     {
         vlc_fourcc_t i_format = VLC_FOURCC('p','n','g',' ');
-        if( psz_format && image_Ext2Fourcc( psz_format ) )
-            i_format = image_Ext2Fourcc( psz_format );
+        if( psz_format && image_Type2Fourcc( psz_format ) )
+            i_format = image_Type2Fourcc( psz_format );
 
         const int i_override_width  = var_GetInteger( p_vout, "snapshot-width" );
         const int i_override_height = var_GetInteger( p_vout, "snapshot-height" );