/* Allocate structure */
p_vout->p_sys = malloc( sizeof( vout_sys_t ) );
if( p_vout->p_sys == NULL )
- {
- msg_Err( p_vout, "out of memory" );
return VLC_ENOMEM;
- }
/* Init structure */
p_vout->p_sys->p_image = image_HandlerCreate( p_vout );
if (p_vout->p_sys->psz_inner_name)
p_sys->p_opencv->p_module =
- module_Need( p_sys->p_opencv, p_sys->psz_inner_name, 0, 0 );
+ module_need( p_sys->p_opencv, p_sys->psz_inner_name, 0, 0 );
if( !p_sys->p_opencv->p_module )
{
{
int i_index;
+ DEL_PARENT_CALLBACKS( SendEventsToChild );
+
+ DEL_CALLBACKS( p_vout->p_sys->p_vout, SendEvents );
+
/* Free the fake output buffers we allocated */
for( i_index = I_OUTPUTPICTURES ; i_index ; )
{
{
//release the internal opencv filter
if( p_vout->p_sys->p_opencv->p_module )
- module_Unneed( p_vout->p_sys->p_opencv, p_vout->p_sys->p_opencv->p_module );
+ module_unneed( p_vout->p_sys->p_opencv, p_vout->p_sys->p_opencv->p_module );
vlc_object_detach( p_vout->p_sys->p_opencv );
vlc_object_release( p_vout->p_sys->p_opencv );
p_vout->p_sys->p_opencv = NULL;
}
+ vout_CloseAndRelease( p_vout->p_sys->p_vout );
}
/*****************************************************************************
{
vout_thread_t *p_vout = (vout_thread_t *)p_this;
- if( p_vout->p_sys->p_vout )
- {
- DEL_CALLBACKS( p_vout->p_sys->p_vout, SendEvents );
- vlc_object_detach( p_vout->p_sys->p_vout );
- vout_Destroy( p_vout->p_sys->p_vout );
- }
-
- DEL_PARENT_CALLBACKS( SendEventsToChild );
-
ReleaseImages(p_vout);
if( p_vout->p_sys->p_image )
/* 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)
while( ( p_outpic = vout_CreatePicture( p_vout->p_sys->p_vout, 0, 0, 0 ) )
== NULL )
{
- if( p_vout->b_die || p_vout->b_error )
+ if( !vlc_object_alive (p_vout) || p_vout->b_error )
{ return; }
msleep( VOUT_OUTMEM_SLEEP );
}
//This copy is a bit unfortunate but image_Convert can't write into an existing image so it is better to copy the
//(say) 16bit YUV image here than a 32bit RGB image somehwere else.
//It is also not that expensive in time.
- vout_CopyPicture( p_vout, p_outpic, p_pic );
+ picture_Copy( p_outpic, p_pic );
VlcPictureToIplImage( p_vout, p_pic);
//pass the image to the internal opencv filter for processing
if ((p_vout->p_sys->p_opencv) && (p_vout->p_sys->p_opencv->p_module))
p_vout->p_sys->p_opencv->pf_video_filter( p_vout->p_sys->p_opencv, &(p_vout->p_sys->hacked_pic));
//copy the processed image into the output image
if ((p_vout->p_sys->p_proc_image) && (p_vout->p_sys->p_proc_image->p_data))
- vout_CopyPicture( p_vout, p_outpic, p_vout->p_sys->p_proc_image );
+ picture_Copy( p_outpic, p_vout->p_sys->p_proc_image );
}
//calculate duration