p_tmp_pic =
p_image->p_filter->pf_video_filter( p_image->p_filter, p_pic );
- p_block = p_image->p_enc->pf_encode_video( p_image->p_enc, p_tmp_pic );
-
- p_image->p_filter->pf_video_buffer_del( p_image->p_filter, p_tmp_pic );
+ if( likely(p_tmp_pic != NULL) )
+ {
+ p_block = p_image->p_enc->pf_encode_video( p_image->p_enc,
+ p_tmp_pic );
+ p_image->p_filter->pf_video_buffer_del( p_image->p_filter,
+ p_tmp_pic );
+ }
+ else
+ p_block = NULL;
}
else
{
{
decoder_t *p_dec;
- p_dec = vlc_object_create( p_this, VLC_OBJECT_DECODER );
+ p_dec = vlc_custom_create( p_this, sizeof( *p_dec ), VLC_OBJECT_GENERIC,
+ "image decoder" );
if( p_dec == NULL )
return NULL;
static void DeleteDecoder( decoder_t * p_dec )
{
- vlc_object_detach( p_dec );
-
if( p_dec->p_module ) module_unneed( p_dec, p_dec->p_module );
es_format_Clean( &p_dec->fmt_in );
static void DeleteEncoder( encoder_t * p_enc )
{
- vlc_object_detach( p_enc );
-
if( p_enc->p_module ) module_unneed( p_enc, p_enc->p_module );
es_format_Clean( &p_enc->fmt_in );
static void DeleteFilter( filter_t * p_filter )
{
- vlc_object_detach( p_filter );
-
if( p_filter->p_module ) module_unneed( p_filter, p_filter->p_module );
es_format_Clean( &p_filter->fmt_in );