Commit dfae0979 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

filter: remove filter_DeletePicture()

All variants of the filter_t.video.buffer_del callback invoke
picture_Release() - possibly through recursion.

Most filters used picture_Release() directly already.
parent 73c7b4a1
...@@ -46,7 +46,6 @@ typedef struct filter_owner_t ...@@ -46,7 +46,6 @@ typedef struct filter_owner_t
struct struct
{ {
picture_t * (*buffer_new)( filter_t * ); picture_t * (*buffer_new)( filter_t * );
void (*buffer_del)( filter_t *, picture_t * );
} video; } video;
struct struct
{ {
...@@ -156,7 +155,7 @@ struct filter_t ...@@ -156,7 +155,7 @@ struct filter_t
/** /**
* This function will return a new picture usable by p_filter as an output * This function will return a new picture usable by p_filter as an output
* buffer. You have to release it using filter_DeletePicture or by returning * buffer. You have to release it using picture_Release or by returning
* it to the caller as a pf_video_filter return value. * it to the caller as a pf_video_filter return value.
* Provided for convenience. * Provided for convenience.
* *
...@@ -171,18 +170,6 @@ static inline picture_t *filter_NewPicture( filter_t *p_filter ) ...@@ -171,18 +170,6 @@ static inline picture_t *filter_NewPicture( filter_t *p_filter )
return pic; return pic;
} }
/**
* This function will release a picture create by filter_NewPicture.
* Provided for convenience.
*
* \param p_filter filter_t object
* \param p_picture picture to be deleted
*/
static inline void filter_DeletePicture( filter_t *p_filter, picture_t *pic )
{
p_filter->owner.video.buffer_del( p_filter, pic );
}
/** /**
* This function will flush the state of a video filter. * This function will flush the state of a video filter.
*/ */
......
...@@ -78,7 +78,6 @@ static int Del ( sout_stream_t *, sout_stream_id_sys_t * ); ...@@ -78,7 +78,6 @@ static int Del ( sout_stream_t *, sout_stream_id_sys_t * );
static int Send( sout_stream_t *, sout_stream_id_sys_t *, block_t * ); static int Send( sout_stream_t *, sout_stream_id_sys_t *, block_t * );
inline static void video_del_buffer_decoder( decoder_t *, picture_t * ); inline static void video_del_buffer_decoder( decoder_t *, picture_t * );
inline static void video_del_buffer_filter( filter_t *, picture_t * );
inline static int video_update_format_decoder( decoder_t *p_dec ); inline static int video_update_format_decoder( decoder_t *p_dec );
inline static picture_t *video_new_buffer_decoder( decoder_t * ); inline static picture_t *video_new_buffer_decoder( decoder_t * );
...@@ -398,7 +397,6 @@ static sout_stream_id_sys_t * Add( sout_stream_t *p_stream, es_format_t *p_fmt ) ...@@ -398,7 +397,6 @@ static sout_stream_id_sys_t * Add( sout_stream_t *p_stream, es_format_t *p_fmt )
.sys = p_sys->p_decoder->p_owner, .sys = p_sys->p_decoder->p_owner,
.video = { .video = {
.buffer_new = video_new_buffer_filter, .buffer_new = video_new_buffer_filter,
.buffer_del = video_del_buffer_filter,
}, },
}; };
...@@ -666,13 +664,6 @@ inline static void video_del_buffer_decoder( decoder_t *p_this, ...@@ -666,13 +664,6 @@ inline static void video_del_buffer_decoder( decoder_t *p_this,
picture_Release( p_pic ); picture_Release( p_pic );
} }
inline static void video_del_buffer_filter( filter_t *p_this,
picture_t *p_pic )
{
VLC_UNUSED(p_this);
picture_Release( p_pic );
}
static void video_link_picture_decoder( decoder_t *p_dec, picture_t *p_pic ) static void video_link_picture_decoder( decoder_t *p_dec, picture_t *p_pic )
{ {
VLC_UNUSED(p_dec); VLC_UNUSED(p_dec);
......
...@@ -84,12 +84,6 @@ static picture_t *transcode_video_filter_buffer_new( filter_t *p_filter ) ...@@ -84,12 +84,6 @@ static picture_t *transcode_video_filter_buffer_new( filter_t *p_filter )
return picture_NewFromFormat( &p_filter->fmt_out.video ); return picture_NewFromFormat( &p_filter->fmt_out.video );
} }
static void transcode_video_filter_buffer_del( filter_t *p_filter, picture_t *p_pic )
{
VLC_UNUSED(p_filter);
picture_Release( p_pic );
}
static void* EncoderThread( void *obj ) static void* EncoderThread( void *obj )
{ {
sout_stream_sys_t *p_sys = (sout_stream_sys_t*)obj; sout_stream_sys_t *p_sys = (sout_stream_sys_t*)obj;
...@@ -296,7 +290,6 @@ static void transcode_video_filter_init( sout_stream_t *p_stream, ...@@ -296,7 +290,6 @@ static void transcode_video_filter_init( sout_stream_t *p_stream,
.sys = p_stream->p_sys, .sys = p_stream->p_sys,
.video = { .video = {
.buffer_new = transcode_video_filter_buffer_new, .buffer_new = transcode_video_filter_buffer_new,
.buffer_del = transcode_video_filter_buffer_del,
}, },
}; };
es_format_t *p_fmt_out = &id->p_decoder->fmt_out; es_format_t *p_fmt_out = &id->p_decoder->fmt_out;
......
...@@ -83,13 +83,6 @@ static picture_t *BufferNew( filter_t *p_filter ) ...@@ -83,13 +83,6 @@ static picture_t *BufferNew( filter_t *p_filter )
return filter_NewPicture( p_parent ); return filter_NewPicture( p_parent );
} }
static void BufferDel( filter_t *p_filter, picture_t *p_pic )
{
filter_t *p_parent = p_filter->owner.sys;
filter_DeletePicture( p_parent, p_pic );
}
#define CHAIN_LEVEL_MAX 1 #define CHAIN_LEVEL_MAX 1
/***************************************************************************** /*****************************************************************************
...@@ -119,7 +112,6 @@ static int Activate( vlc_object_t *p_this ) ...@@ -119,7 +112,6 @@ static int Activate( vlc_object_t *p_this )
.sys = p_filter, .sys = p_filter,
.video = { .video = {
.buffer_new = BufferNew, .buffer_new = BufferNew,
.buffer_del = BufferDel,
}, },
}; };
......
...@@ -136,11 +136,6 @@ static picture_t *video_new( filter_t *p_filter ) ...@@ -136,11 +136,6 @@ static picture_t *video_new( filter_t *p_filter )
return filter_NewPicture( p_filter->owner.sys ); return filter_NewPicture( p_filter->owner.sys );
} }
static void video_del( filter_t *p_filter, picture_t *p_pic )
{
return filter_DeletePicture( p_filter->owner.sys, p_pic );
}
/***************************************************************************** /*****************************************************************************
* *
*****************************************************************************/ *****************************************************************************/
...@@ -239,7 +234,6 @@ static int Activate( vlc_object_t *p_this ) ...@@ -239,7 +234,6 @@ static int Activate( vlc_object_t *p_this )
.sys = p_filter, .sys = p_filter,
.video = { .video = {
.buffer_new = video_new, .buffer_new = video_new,
.buffer_del = video_del,
}, },
}; };
......
...@@ -65,7 +65,7 @@ struct filter_chain_t ...@@ -65,7 +65,7 @@ struct filter_chain_t
/** /**
* Local prototypes * Local prototypes
*/ */
static void FilterDeletePictures( filter_t *, picture_t * ); static void FilterDeletePictures( picture_t * );
static filter_chain_t *filter_chain_NewInner( const filter_owner_t *callbacks, static filter_chain_t *filter_chain_NewInner( const filter_owner_t *callbacks,
const char *cap, bool fmt_out_change, const filter_owner_t *owner ) const char *cap, bool fmt_out_change, const filter_owner_t *owner )
...@@ -127,18 +127,6 @@ static picture_t *filter_chain_VideoBufferNew( filter_t *filter ) ...@@ -127,18 +127,6 @@ static picture_t *filter_chain_VideoBufferNew( filter_t *filter )
} }
} }
static void filter_chain_VideoBufferDelete( filter_t *filter, picture_t *pic )
{
if( chained(filter)->next != NULL )
picture_Release( pic );
else
{
filter_chain_t *chain = filter->owner.sys;
chain->owner.video.buffer_del( filter, pic );
}
}
#undef filter_chain_NewVideo #undef filter_chain_NewVideo
filter_chain_t *filter_chain_NewVideo( vlc_object_t *obj, bool allow_change, filter_chain_t *filter_chain_NewVideo( vlc_object_t *obj, bool allow_change,
const filter_owner_t *restrict owner ) const filter_owner_t *restrict owner )
...@@ -147,7 +135,6 @@ filter_chain_t *filter_chain_NewVideo( vlc_object_t *obj, bool allow_change, ...@@ -147,7 +135,6 @@ filter_chain_t *filter_chain_NewVideo( vlc_object_t *obj, bool allow_change,
.sys = obj, .sys = obj,
.video = { .video = {
.buffer_new = filter_chain_VideoBufferNew, .buffer_new = filter_chain_VideoBufferNew,
.buffer_del = filter_chain_VideoBufferDelete,
}, },
}; };
...@@ -295,7 +282,7 @@ void filter_chain_DeleteFilter( filter_chain_t *chain, filter_t *filter ) ...@@ -295,7 +282,7 @@ void filter_chain_DeleteFilter( filter_chain_t *chain, filter_t *filter )
module_unneed( filter, filter->p_module ); module_unneed( filter, filter->p_module );
msg_Dbg( obj, "Filter %p removed from chain", filter ); msg_Dbg( obj, "Filter %p removed from chain", filter );
FilterDeletePictures( &chained->filter, chained->pending ); FilterDeletePictures( chained->pending );
free( chained->mouse ); free( chained->mouse );
es_format_Clean( &filter->fmt_out ); es_format_Clean( &filter->fmt_out );
...@@ -390,7 +377,7 @@ static picture_t *FilterChainVideoFilter( chained_filter_t *f, picture_t *p_pic ...@@ -390,7 +377,7 @@ static picture_t *FilterChainVideoFilter( chained_filter_t *f, picture_t *p_pic
if( f->pending ) if( f->pending )
{ {
msg_Warn( p_filter, "dropping pictures" ); msg_Warn( p_filter, "dropping pictures" );
FilterDeletePictures( p_filter, f->pending ); FilterDeletePictures( f->pending );
} }
f->pending = p_pic->p_next; f->pending = p_pic->p_next;
p_pic->p_next = NULL; p_pic->p_next = NULL;
...@@ -427,7 +414,7 @@ void filter_chain_VideoFlush( filter_chain_t *p_chain ) ...@@ -427,7 +414,7 @@ void filter_chain_VideoFlush( filter_chain_t *p_chain )
{ {
filter_t *p_filter = &f->filter; filter_t *p_filter = &f->filter;
FilterDeletePictures( p_filter, f->pending ); FilterDeletePictures( f->pending );
f->pending = NULL; f->pending = NULL;
filter_FlushPictures( p_filter ); filter_FlushPictures( p_filter );
...@@ -520,12 +507,12 @@ int filter_chain_MouseEvent( filter_chain_t *p_chain, ...@@ -520,12 +507,12 @@ int filter_chain_MouseEvent( filter_chain_t *p_chain,
} }
/* Helpers */ /* Helpers */
static void FilterDeletePictures( filter_t *filter, picture_t *picture ) static void FilterDeletePictures( picture_t *picture )
{ {
while( picture ) while( picture )
{ {
picture_t *next = picture->p_next; picture_t *next = picture->p_next;
filter_DeletePicture( filter, picture ); picture_Release( picture );
picture = next; picture = next;
} }
} }
...@@ -346,7 +346,7 @@ static block_t *ImageWrite( image_handler_t *p_image, picture_t *p_pic, ...@@ -346,7 +346,7 @@ static block_t *ImageWrite( image_handler_t *p_image, picture_t *p_pic,
{ {
p_block = p_image->p_enc->pf_encode_video( p_image->p_enc, p_block = p_image->p_enc->pf_encode_video( p_image->p_enc,
p_tmp_pic ); p_tmp_pic );
filter_DeletePicture(p_image->p_filter, p_tmp_pic ); picture_Release( p_tmp_pic );
} }
else else
p_block = NULL; p_block = NULL;
...@@ -752,8 +752,6 @@ static filter_t *CreateFilter( vlc_object_t *p_this, es_format_t *p_fmt_in, ...@@ -752,8 +752,6 @@ static filter_t *CreateFilter( vlc_object_t *p_this, es_format_t *p_fmt_in,
p_filter = vlc_custom_create( p_this, sizeof(filter_t), "filter" ); p_filter = vlc_custom_create( p_this, sizeof(filter_t), "filter" );
p_filter->owner.video.buffer_new = p_filter->owner.video.buffer_new =
(picture_t *(*)(filter_t *))video_new_buffer; (picture_t *(*)(filter_t *))video_new_buffer;
p_filter->owner.video.buffer_del =
(void (*)(filter_t *, picture_t *))video_del_buffer;
p_filter->fmt_in = *p_fmt_in; p_filter->fmt_in = *p_fmt_in;
p_filter->fmt_out = *p_fmt_in; p_filter->fmt_out = *p_fmt_in;
......
...@@ -63,12 +63,6 @@ static picture_t *VideoBufferNew(filter_t *filter) ...@@ -63,12 +63,6 @@ static picture_t *VideoBufferNew(filter_t *filter)
return picture_pool_Get(pool); return picture_pool_Get(pool);
} }
static void VideoBufferDelete(filter_t *filter, picture_t *picture)
{
VLC_UNUSED(filter);
picture_Release(picture);
}
/***************************************************************************** /*****************************************************************************
* *
*****************************************************************************/ *****************************************************************************/
...@@ -447,7 +441,6 @@ static void VoutDisplayCreateRender(vout_display_t *vd) ...@@ -447,7 +441,6 @@ static void VoutDisplayCreateRender(vout_display_t *vd)
.sys = vd, .sys = vd,
.video = { .video = {
.buffer_new = VideoBufferNew, .buffer_new = VideoBufferNew,
.buffer_del = VideoBufferDelete,
}, },
}; };
......
...@@ -696,12 +696,6 @@ static picture_t *VoutVideoFilterStaticNewPicture(filter_t *filter) ...@@ -696,12 +696,6 @@ static picture_t *VoutVideoFilterStaticNewPicture(filter_t *filter)
return picture_NewFromFormat(&filter->fmt_out.video); return picture_NewFromFormat(&filter->fmt_out.video);
} }
static void VoutVideoFilterDelPicture(filter_t *filter, picture_t *picture)
{
VLC_UNUSED(filter);
picture_Release(picture);
}
static void ThreadFilterFlush(vout_thread_t *vout, bool is_locked) static void ThreadFilterFlush(vout_thread_t *vout, bool is_locked)
{ {
if (vout->p->displayed.current) if (vout->p->displayed.current)
...@@ -1345,7 +1339,6 @@ static int ThreadStart(vout_thread_t *vout, const vout_display_state_t *state) ...@@ -1345,7 +1339,6 @@ static int ThreadStart(vout_thread_t *vout, const vout_display_state_t *state)
.sys = vout, .sys = vout,
.video = { .video = {
.buffer_new = VoutVideoFilterStaticNewPicture, .buffer_new = VoutVideoFilterStaticNewPicture,
.buffer_del = VoutVideoFilterDelPicture,
}, },
}; };
vout->p->filter.chain_static = vout->p->filter.chain_static =
......
...@@ -170,12 +170,6 @@ static picture_t *spu_new_video_buffer(filter_t *filter) ...@@ -170,12 +170,6 @@ static picture_t *spu_new_video_buffer(filter_t *filter)
return picture_NewFromFormat(fmt); return picture_NewFromFormat(fmt);
} }
static void spu_del_video_buffer(filter_t *filter, picture_t *picture)
{
VLC_UNUSED(filter);
picture_Release(picture);
}
static int spu_get_attachments(filter_t *filter, static int spu_get_attachments(filter_t *filter,
input_attachment_t ***attachment_ptr, input_attachment_t ***attachment_ptr,
int *attachment_count) int *attachment_count)
...@@ -241,7 +235,6 @@ static filter_t *SpuRenderCreateAndLoadScale(vlc_object_t *object, ...@@ -241,7 +235,6 @@ static filter_t *SpuRenderCreateAndLoadScale(vlc_object_t *object,
scale->fmt_out.video.i_visible_height = require_resize ? 16 : 32; scale->fmt_out.video.i_visible_height = require_resize ? 16 : 32;
scale->owner.video.buffer_new = spu_new_video_buffer; scale->owner.video.buffer_new = spu_new_video_buffer;
scale->owner.video.buffer_del = spu_del_video_buffer;
scale->p_module = module_need(scale, "video filter2", NULL, false); scale->p_module = module_need(scale, "video filter2", NULL, false);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment