if( !p_outpic )
{
msg_Warn( p_filter, "can't get output picture" );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
return NULL;
}
{
msg_Warn( p_filter, "Unsupported input chroma (%4s)",
(char*)&(p_pic->format.i_chroma) );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+
+ picture_Release( p_pic );
return NULL;
}
if( !p_outpic )
{
msg_Warn( p_filter, "can't get output picture" );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+
+ picture_Release( p_pic );
return NULL;
}
vlc_mutex_destroy( &p_sys->mask_lock );
if( p_filter->p_sys->p_mask )
- p_filter->p_sys->p_mask->pf_release( p_filter->p_sys->p_mask );
+ picture_Release( p_filter->p_sys->p_mask );
free( p_filter->p_sys );
}
memset( &fmt_out, 0, sizeof( video_format_t ) );
fmt_out.i_chroma = VLC_FOURCC('Y','U','V','A');
if( p_filter->p_sys->p_mask )
- p_filter->p_sys->p_mask->pf_release( p_filter->p_sys->p_mask );
+ picture_Release( p_filter->p_sys->p_mask );
p_image = image_HandlerCreate( p_filter );
p_filter->p_sys->p_mask =
image_ReadUrl( p_image, psz_filename, &fmt_in, &fmt_out );
}
else if( p_sys->p_mask )
{
- p_sys->p_mask->pf_release( p_sys->p_mask );
+ picture_Release( p_sys->p_mask );
p_sys->p_mask = NULL;
}
vlc_mutex_unlock( &p_sys->mask_lock );
filter_t *p_filter = (filter_t *)p_this;
filter_sys_t *p_sys = p_filter->p_sys;
- p_sys->p_base_image->pf_release( p_sys->p_base_image );
- p_sys->p_blend_image->pf_release( p_sys->p_blend_image );
+ picture_Release( p_sys->p_base_image );
+ picture_Release( p_sys->p_blend_image );
}
/*****************************************************************************
p_blend = vlc_object_create( p_filter, sizeof(filter_t) );
if( !p_blend )
{
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
return NULL;
}
vlc_object_attach( p_blend, p_filter );
p_blend->p_module = module_Need( p_blend, "video blending", 0, 0 );
if( !p_blend->p_module )
{
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
vlc_object_detach( p_blend );
vlc_object_release( p_blend );
return NULL;
if( !p_outpic )
{
msg_Warn( p_filter, "can't get output picture" );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
return NULL;
}
if( !p_outpic )
{
msg_Warn( p_filter, "can't get output picture" );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
return NULL;
}
RenderDiscard( p_vout, p_pic_dst, p_pic, 0 );
#endif
msg_Err( p_vout, "discarding lines is not supported yet" );
- p_pic_dst->pf_release( p_pic_dst );
+ picture_Release( p_pic_dst );
return p_pic;
break;
RenderLinear( p_vout, pp_outpic[1], p_pic, 1 );
#endif
msg_Err( p_vout, "doubling the frame rate is not supported yet" );
- p_pic_dst->pf_release( p_pic_dst );
+ picture_Release( p_pic_dst );
return p_pic;
break;
break;
}
- p_pic_dst->date = p_pic->date;
- p_pic_dst->b_force = p_pic->b_force;
- p_pic_dst->i_nb_fields = p_pic->i_nb_fields;
+ picture_CopyProperties( p_pic_dst, p_pic );
p_pic_dst->b_progressive = true;
- p_pic_dst->b_top_field_first = p_pic->b_top_field_first;
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
return p_pic_dst;
}
msg_Err( p_filter,
"Insufficient data in shared memory. need %zu, got %zu",
i_neededsize, i_size );
- p_ovl->data.p_pic->pf_release( p_ovl->data.p_pic );
+ picture_Release( p_ovl->data.p_pic );
free( p_ovl->data.p_pic );
p_ovl->data.p_pic = NULL;
return VLC_EGENERIC;
if( p_data == NULL )
{
msg_Err( p_filter, "Unable to attach to shared memory" );
- p_ovl->data.p_pic->pf_release( p_ovl->data.p_pic );
+ picture_Release( p_ovl->data.p_pic );
free( p_ovl->data.p_pic );
p_ovl->data.p_pic = NULL;
return VLC_ENOMEM;
if( p_filter->p_sys->p_mask )
{
if( p_old_mask )
- p_old_mask->pf_release( p_old_mask );
+ picture_Release( p_old_mask );
}
else if( p_old_mask )
{
filter_t *p_filter = (filter_t *)p_this;
filter_sys_t *p_sys = p_filter->p_sys;
if( p_sys->p_mask )
- p_sys->p_mask->pf_release( p_sys->p_mask );
+ picture_Release( p_sys->p_mask );
vlc_mutex_destroy( &p_sys->lock );
if( !p_outpic )
{
msg_Warn( p_filter, "can't get output picture" );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
return NULL;
}
if( !p_outpic )
{
msg_Warn( p_filter, "can't get output picture" );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
return NULL;
}
default:
msg_Warn( p_filter, "Unsupported input chroma (%4s)",
(char*)&(p_pic->format.i_chroma) );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
return NULL;
}
*****************************************************************************/
static inline picture_t *CopyInfoAndRelease( picture_t *p_outpic, picture_t *p_inpic )
{
- p_outpic->date = p_inpic->date;
- p_outpic->b_force = p_inpic->b_force;
- p_outpic->i_nb_fields = p_inpic->i_nb_fields;
- p_outpic->b_progressive = p_inpic->b_progressive;
- p_outpic->b_top_field_first = p_inpic->b_top_field_first;
+ picture_CopyProperties( p_outpic, p_inpic );
- if( p_inpic->pf_release )
- p_inpic->pf_release( p_inpic );
+ picture_Release( p_inpic );
return p_outpic;
}
if( !p_outpic )
{
msg_Warn( p_filter, "can't get output picture" );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
return NULL;
}
#ifdef DONT_USE_FLOATS
if( !p_outpic )
{
msg_Warn( p_filter, "can't get output picture" );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
return NULL;
}
if( !p_outpic )
{
msg_Warn( p_filter, "can't get output picture" );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
return NULL;
}
if( !p_outpic )
{
msg_Warn( p_filter, "can't get output picture" );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
return NULL;
}
FREENULL( p_logo->psz_file );
if( p_logo->p_pic )
{
- p_logo->p_pic->pf_release( p_logo->p_pic );
+ picture_Release( p_logo->p_pic );
p_logo->p_pic = NULL;
}
}
p_converted->p[i_plane].i_visible_pitch );
}
}
- p_converted->pf_release( p_converted );
+ picture_Release( p_converted );
/* white rectangle on visualization */
v_w = p_oyp->i_pitch*ZOOM_FACTOR/(VIS_ZOOM*o_zoom);
}
}
}
-
vout_DisplayPicture( p_vout->p_sys->p_vout, p_outpic );
}
{
picture_t *p_original_pic = (picture_t *)p_picture->p_sys;
- p_original_pic->pf_release( p_original_pic );
+ picture_Release( p_original_pic );
}
/*****************************************************************************
if ( p_es->p_picture->p_next != NULL )
{
picture_t *p_next = p_es->p_picture->p_next;
- p_es->p_picture->pf_release( p_es->p_picture );
+ p_original_pic( p_es->p_picture );
p_es->p_picture = p_next;
}
else if ( p_es->p_picture->date + p_sys->i_delay + BLANK_DELAY <
date )
{
/* Display blank */
- p_es->p_picture->pf_release( p_es->p_picture );
+ picture_Release( p_es->p_picture );
p_es->p_picture = NULL;
p_es->pp_last = &p_es->p_picture;
break;
else
{
p_converted = p_es->p_picture;
- p_converted->i_refcount++;
+ picture_Yield( p_converted );
fmt_in.i_width = fmt_out.i_width = p_converted->format.i_width;
fmt_in.i_height = fmt_out.i_height = p_converted->format.i_height;
fmt_in.i_chroma = fmt_out.i_chroma = p_converted->format.i_chroma;
if( !p_outpic )
{
msg_Warn( p_filter, "can't get output picture" );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
return NULL;
}
if( !p_outpic )
{
msg_Warn( p_filter, "can't get output picture" );
- if( p_inpic->pf_release )
- p_inpic->pf_release( p_inpic );
+ picture_Release( p_inpic );
return NULL;
}
{
msg_Warn( p_filter, "Unsupported input chroma (%4s)",
(char*)&(p_inpic->format.i_chroma) );
- if( p_inpic->pf_release )
- p_inpic->pf_release( p_inpic );
+ picture_Release( p_inpic );
return NULL;
}
if( !p_outpic )
{
msg_Warn( p_filter, "can't get output picture" );
- if( p_inpic->pf_release )
- p_inpic->pf_release( p_inpic );
+ picture_Release( p_inpic );
return NULL;
}
if( !p_outpic )
{
msg_Warn( p_filter, "can't get output picture" );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
return NULL;
}
/* Release temp picture_t if it exists */
if (p_vout->p_sys->p_to_be_freed)
{
- p_vout->p_sys->p_to_be_freed->pf_release( p_vout->p_sys->p_to_be_freed );
+ picture_Release( p_vout->p_sys->p_to_be_freed );
p_vout->p_sys->p_to_be_freed = NULL;
}
if (p_vout->p_sys->i_verbosity > VERB_WARN)
if( !p_outpic )
{
msg_Warn( p_filter, "can't get output picture" );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
vlc_mutex_unlock( &p_sys->lock );
return NULL;
}
if( !p_outpic )
{
msg_Warn( p_filter, "can't get output picture" );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
return NULL;
}
if( p_converted )
{
#define copyimage( plane, b ) \
- for( y=0; y<p_converted->p[plane].i_visible_lines; y++) { \
- for( x=0; x<p_converted->p[plane].i_visible_pitch; x++) { \
- int nx, ny; \
- if( p_filter->p_sys->yinc == 1 ) \
- ny= y; \
- else \
- ny = p_converted->p[plane].i_visible_lines-y; \
- if( p_filter->p_sys->xinc == 1 ) \
- nx = x; \
- else \
- nx = p_converted->p[plane].i_visible_pitch-x; \
- p_outpic->p[plane].p_pixels[(p_filter->p_sys->x*b+nx)+(ny+p_filter->p_sys->y*b)*p_outpic->p[plane].i_pitch ] = p_converted->p[plane].p_pixels[y*p_converted->p[plane].i_pitch+x]; \
- } }
- copyimage( Y_PLANE, 2 );
- copyimage( U_PLANE, 1 );
- copyimage( V_PLANE, 1 );
+ for( y=0; y<p_converted->p[plane].i_visible_lines; y++) { \
+ for( x=0; x<p_converted->p[plane].i_visible_pitch; x++) { \
+ int nx, ny; \
+ if( p_filter->p_sys->yinc == 1 ) \
+ ny= y; \
+ else \
+ ny = p_converted->p[plane].i_visible_lines-y; \
+ if( p_filter->p_sys->xinc == 1 ) \
+ nx = x; \
+ else \
+ nx = p_converted->p[plane].i_visible_pitch-x; \
+ p_outpic->p[plane].p_pixels[(p_filter->p_sys->x*b+nx)+(ny+p_filter->p_sys->y*b)*p_outpic->p[plane].i_pitch ] = p_converted->p[plane].p_pixels[y*p_converted->p[plane].i_pitch+x]; \
+ } }
+ copyimage( Y_PLANE, 2 );
+ copyimage( U_PLANE, 1 );
+ copyimage( V_PLANE, 1 );
#undef copyimage
- p_converted->pf_release( p_converted );
+ picture_Release( p_converted );
}
else
{
if( !p_outpic )
{
msg_Warn( p_filter, "can't get output picture" );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
return NULL;
}
if( !p_outpic )
{
msg_Warn( p_filter, "can't get output picture" );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
return NULL;
}
{
msg_Warn( p_filter, "Unsupported input chroma (%4s)",
(char*)&(p_pic->format.i_chroma) );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
return NULL;
}
if( !p_outpic )
{
msg_Warn( p_filter, "can't get output picture" );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
return NULL;
}
fmt_out.i_height = p_sys->p_style->i_font_size;
p_pic = image_Convert( p_handler, p_orig, &fmt_in, &fmt_out );
- p_orig->pf_release( p_orig );
+ picture_Release( p_orig );
if( !p_pic )
{
msg_Warn( p_filter, "Error while converting %s", psz_url );
free( p_feed->psz_description );
free( p_feed->psz_image );
if( p_feed->p_pic != NULL )
- p_feed->p_pic->pf_release( p_feed->p_pic );
+ picture_Release( p_feed->p_pic );
}
free( p_sys->p_feeds );
p_sys->i_feeds = 0;
if( !p_pic_dst )
{
msg_Warn( p_filter, "can't get output picture" );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
return NULL;
}
}
}
- p_pic_dst->date = p_pic->date;
- p_pic_dst->b_force = p_pic->b_force;
- p_pic_dst->i_nb_fields = p_pic->i_nb_fields;
- p_pic_dst->b_progressive = p_pic->b_progressive;
- p_pic_dst->b_top_field_first = p_pic->b_top_field_first;
+ picture_CopyProperties( p_pic_dst, p_pic );
+ picture_Release( p_pic );
- p_pic->pf_release( p_pic );
return p_pic_dst;
}
if( !p_pic_dst )
{
msg_Warn( p_filter, "can't get output picture" );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
return NULL;
}
}
}
- p_pic_dst->date = p_pic->date;
- p_pic_dst->b_force = p_pic->b_force;
- p_pic_dst->i_nb_fields = p_pic->i_nb_fields;
- p_pic_dst->b_progressive = p_pic->b_progressive;
- p_pic_dst->b_top_field_first = p_pic->b_top_field_first;
-
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_CopyProperties( p_pic_dst, p_pic );
+ picture_Release( p_pic );
return p_pic_dst;
}
if( !p_outpic )
{
msg_Warn( p_filter, "can't get output picture" );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
return NULL;
}
if( !p_outpic )
{
msg_Warn( p_filter, "can't get output picture" );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
return NULL;
}
if( !p_src || !p_out )
{
msg_Warn( p_filter, "can't get Y plane" );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
return NULL;
}
dst, dst_stride );
#endif
- p_pic_dst->date = p_pic->date;
- p_pic_dst->b_force = p_pic->b_force;
- p_pic_dst->i_nb_fields = p_pic->i_nb_fields;
- p_pic_dst->b_progressive = p_pic->b_progressive;
- p_pic_dst->b_top_field_first = p_pic->b_top_field_first;
-
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_CopyProperties( p_pic_dst, p_pic );
+ picture_Release( p_pic );
return p_pic_dst;
}
if( !p_outpic )
{
msg_Warn( p_filter, "can't get output picture" );
- if( p_pic->pf_release )
- p_pic->pf_release( p_pic );
+ picture_Release( p_pic );
return NULL;
}