static const char *const verbosity_list_text[] = { N_("Show only errors"),
N_("Show errors and warnings"), N_("Show everything including debug messages")};
-vlc_module_begin();
- set_description( N_("OpenCV video filter wrapper") );
- set_shortname( N_("OpenCV" ));
- set_category( CAT_VIDEO );
- set_subcategory( SUBCAT_VIDEO_VFILTER );
- set_capability( "video filter", 0 );
- add_shortcut( "opencv_wrapper" );
- set_callbacks( Create, Destroy );
+vlc_module_begin ()
+ set_description( N_("OpenCV video filter wrapper") )
+ set_shortname( N_("OpenCV" ))
+ set_category( CAT_VIDEO )
+ set_subcategory( SUBCAT_VIDEO_VFILTER )
+ set_capability( "video filter", 0 )
+ add_shortcut( "opencv_wrapper" )
+ set_callbacks( Create, Destroy )
add_float_with_range( "opencv-scale", 1.0, 0.1, 2.0, NULL,
N_("Scale factor (0.1-2.0)"),
N_("Ammount by which to scale the picture before sending it to the internal OpenCV filter"),
add_string( "opencv-filter-name", "none", NULL,
N_("OpenCV internal filter name"),
N_("Name of internal OpenCV plugin filter to use"), false);
-vlc_module_end();
+vlc_module_end ()
/*****************************************************************************
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 );
- vlc_object_release( 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)
//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
msg_Dbg( p_vout, "Render took %2.4f seconds\n", duration );
ReleaseImages(p_vout);
- vout_DatePicture( p_vout->p_sys->p_vout, p_outpic, p_pic->date );
+ p_outpic->date = p_pic->date;
vout_UnlinkPicture( p_vout->p_sys->p_vout, p_outpic );
vout_DisplayPicture( p_vout->p_sys->p_vout, p_outpic );