# include "config.h"
#endif
-#include <vlc/vlc.h>
+#include <vlc_common.h>
+#include <vlc_plugin.h>
#include <vlc_codec.h>
#include <vlc_vout.h>
#include <png.h>
vlc_module_begin();
set_category( CAT_INPUT );
set_subcategory( SUBCAT_INPUT_VCODEC );
- set_description( _("PNG video decoder") );
+ set_description( N_("PNG video decoder") );
set_capability( "decoder", 1000 );
set_callbacks( OpenDecoder, CloseDecoder );
add_shortcut( "png" );
/* Allocate the memory needed to store the decoder's structure */
if( ( p_dec->p_sys = p_sys =
(decoder_sys_t *)malloc(sizeof(decoder_sys_t)) ) == NULL )
- {
- msg_Err( p_dec, "out of memory" );
- return VLC_EGENERIC;
- }
+ return VLC_ENOMEM;
/* Set output properties */
p_dec->fmt_out.i_cat = VIDEO_ES;
- p_dec->fmt_out.i_codec = VLC_FOURCC('R','V','3','2');
+ p_dec->fmt_out.i_codec = VLC_FOURCC('R','G','B','A');
/* Set callbacks */
p_dec->pf_decode_video = DecodeBlock;
{
decoder_t *p_dec = (decoder_t *)png_get_error_ptr( p_png );
p_dec->p_sys->b_error = true;
- msg_Err( p_dec, error_msg );
+ msg_Err( p_dec, "%s", error_msg );
}
static void user_warning( png_structp p_png, png_const_charp warning_msg )
{
decoder_t *p_dec = (decoder_t *)png_get_error_ptr( p_png );
- msg_Warn( p_dec, warning_msg );
+ msg_Warn( p_dec, "%s", warning_msg );
}
/****************************************************************************
if( p_sys->b_error ) goto error;
/* Set output properties */
- p_dec->fmt_out.i_codec = VLC_FOURCC('R','V','3','2');
+ p_dec->fmt_out.i_codec = VLC_FOURCC('R','G','B','A');
p_dec->fmt_out.video.i_width = i_width;
p_dec->fmt_out.video.i_height = i_height;
p_dec->fmt_out.video.i_aspect = VOUT_ASPECT_FACTOR * i_width / i_height;
/* Decode picture */
p_row_pointers = malloc( sizeof(png_bytep) * i_height );
+ if( !p_row_pointers )
+ goto error;
for( i = 0; i < (int)i_height; i++ )
p_row_pointers[i] = p_pic->p->p_pixels + p_pic->p->i_pitch * i;