]> git.sesse.net Git - vlc/blobdiff - src/misc/image.c
Fix a little bug in the playlist sorting.
[vlc] / src / misc / image.c
index b65e3b45649693996b4b5afc02e1c726e2ad2018..8670dd12b382ffc646631b9b5cb337cc2570b7e4 100644 (file)
  *****************************************************************************/
 #include <ctype.h>
 #include <errno.h>
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
 #include <vlc/vlc.h>
 #include <vlc_codec.h>
 #include <vlc_filter.h>
@@ -352,7 +356,7 @@ static int ImageWriteUrl( image_handler_t *p_image, picture_t *p_pic,
     file = utf8_fopen( psz_url, "wb" );
     if( !file )
     {
-        msg_Err( p_image->p_parent, "%s: %s", psz_url, strerror( errno ) );
+        msg_Err( p_image->p_parent, "%s: %m", psz_url );
         return VLC_EGENERIC;
     }
 
@@ -370,7 +374,10 @@ static int ImageWriteUrl( image_handler_t *p_image, picture_t *p_pic,
         err = errno;
 
     if( err )
-       msg_Err( p_image->p_parent, "%s: %s", psz_url, strerror( err ) );
+    {
+       errno = err;
+       msg_Err( p_image->p_parent, "%s: %m", psz_url );
+    }
 
     return err ? VLC_EGENERIC : VLC_SUCCESS;
 }
@@ -451,6 +458,7 @@ static picture_t *ImageConvert( image_handler_t *p_image, picture_t *p_pic,
         p_fmt_in->i_height == p_fmt_out->i_height )
     {
         /* Duplicate image */
+        p_pif->pf_release( p_pif ); /* XXX: Better fix must be possible */
         p_pif = p_image->p_filter->pf_vout_buffer_new( p_image->p_filter );
         if( p_pif ) vout_CopyPicture( p_image->p_parent, p_pif, p_pic );
     }
@@ -664,7 +672,7 @@ static void DeleteDecoder( decoder_t * p_dec )
     es_format_Clean( &p_dec->fmt_in );
     es_format_Clean( &p_dec->fmt_out );
 
-    vlc_object_destroy( p_dec );
+    vlc_object_release( p_dec );
     p_dec = NULL;
 }
 
@@ -747,7 +755,7 @@ static void DeleteEncoder( encoder_t * p_enc )
     es_format_Clean( &p_enc->fmt_in );
     es_format_Clean( &p_enc->fmt_out );
 
-    vlc_object_destroy( p_enc );
+    vlc_object_release( p_enc );
     p_enc = NULL;
 }
 
@@ -791,6 +799,6 @@ static void DeleteFilter( filter_t * p_filter )
     es_format_Clean( &p_filter->fmt_in );
     es_format_Clean( &p_filter->fmt_out );
 
-    vlc_object_destroy( p_filter );
+    vlc_object_release( p_filter );
     p_filter = NULL;
 }