X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fvideo_output%2Fsnapshot.c;h=fb0b9cf7ce124ac4c7a73e687e5502b619bc54c2;hb=9d65e77152039fcb91ff55e8a590bafc17f642c0;hp=fac9f8e3aa7d291b8da71d31c98da2b315a75476;hpb=5f18b9dd6aa22cd5d3cb77aa168e13eb10ac7c26;p=vlc diff --git a/modules/video_output/snapshot.c b/modules/video_output/snapshot.c index fac9f8e3aa..fb0b9cf7ce 100644 --- a/modules/video_output/snapshot.c +++ b/modules/video_output/snapshot.c @@ -22,12 +22,12 @@ *****************************************************************************/ /***************************************************************************** - * This module is a pseudo video output the offers the possibility to + * This module is a pseudo video output that offers the possibility to * keep a cache of low-res snapshots. * The snapshot structure is defined in include/snapshot.h * In order to access the current snapshot cache, object variables are used: * snapshot-list-pointer : the pointer on the first element in the list - * snapshot-datasize : size of a snapshot + * snapshot-datasize : size of a snapshot * (also available in snapshot_t->i_datasize) * snapshot-cache-size : size of the cache list * @@ -38,12 +38,16 @@ /***************************************************************************** * Preamble *****************************************************************************/ -#include -#include -#include -#include -#include +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include +#include +#include +#include /***************************************************************************** * Local prototypes @@ -52,6 +56,7 @@ static int Create ( vlc_object_t * ); static void Destroy ( vlc_object_t * ); static int Init ( vout_thread_t * ); +static void End ( vout_thread_t * ); static void Display ( vout_thread_t *, picture_t * ); /***************************************************************************** @@ -72,17 +77,17 @@ static void Display ( vout_thread_t *, picture_t * ); vlc_module_begin( ); - set_description( _( "snapshot module" ) ); + set_description( N_( "Snapshot module" ) ); set_shortname( N_("Snapshot") ); set_category( CAT_VIDEO ); set_subcategory( SUBCAT_VIDEO_VOUT ); set_capability( "video output", 1 ); - add_integer( "snapshot-width", 320, NULL, WIDTH_TEXT, WIDTH_LONGTEXT, VLC_FALSE ); - add_integer( "snapshot-height", 200, NULL, HEIGHT_TEXT, HEIGHT_LONGTEXT, VLC_FALSE ); - add_string( "snapshot-chroma", "RV32", NULL, CHROMA_TEXT, CHROMA_LONGTEXT, VLC_TRUE ); - add_integer( "snapshot-cache-size", 50, NULL, CACHE_TEXT, CACHE_LONGTEXT, VLC_TRUE ); + add_integer( "snapshot-width", 320, NULL, WIDTH_TEXT, WIDTH_LONGTEXT, false ); + add_integer( "snapshot-height", 200, NULL, HEIGHT_TEXT, HEIGHT_LONGTEXT, false ); + add_string( "snapshot-chroma", "RV32", NULL, CHROMA_TEXT, CHROMA_LONGTEXT, true ); + add_integer( "snapshot-cache-size", 50, NULL, CACHE_TEXT, CACHE_LONGTEXT, true ); set_callbacks( Create, Destroy ); vlc_module_end(); @@ -120,7 +125,7 @@ static int Create( vlc_object_t *p_this ) var_Create( p_vout, "snapshot-list-pointer", VLC_VAR_ADDRESS ); p_vout->pf_init = Init; - p_vout->pf_end = NULL; + p_vout->pf_end = End; p_vout->pf_manage = NULL; p_vout->pf_render = NULL; p_vout->pf_display = Display; @@ -150,7 +155,7 @@ static int Init( vout_thread_t *p_vout ) { if( strlen( psz_chroma ) < 4 ) { - msg_Err( p_vout, "snapshot-chroma should be 4 characters long." ); + msg_Err( p_vout, "snapshot-chroma should be 4 characters long" ); return VLC_EGENERIC; } i_chroma = VLC_FOURCC( psz_chroma[0], psz_chroma[1], @@ -314,6 +319,14 @@ static int Init( vout_thread_t *p_vout ) return VLC_SUCCESS; } +/***************************************************************************** + * End: terminate video thread output method + *****************************************************************************/ +static void End( vout_thread_t *p_vout ) +{ + (void)p_vout; +} + /***************************************************************************** * Destroy: destroy video thread ***************************************************************************** @@ -322,23 +335,15 @@ static int Init( vout_thread_t *p_vout ) static void Destroy( vlc_object_t *p_this ) { vout_thread_t *p_vout = ( vout_thread_t * )p_this; - vlc_object_t *p_vlc; int i_index; + var_Destroy( p_vout->p_sys->p_input, "snapshot-id" ); + vlc_object_release( p_vout->p_sys->p_input ); var_Destroy( p_this, "snapshot-width" ); var_Destroy( p_this, "snapshot-height" ); var_Destroy( p_this, "snapshot-datasize" ); - p_vlc = vlc_object_find( p_this, VLC_OBJECT_ROOT, FIND_PARENT ); - if( p_vlc ) - { - /* UnRegister the snapshot vout module at the root level */ - /* var_Destroy (p_vlc, "snapshot-id"); */ - var_Destroy( p_this->p_libvlc, "snapshot-id" ); - vlc_object_release( p_vlc ); - } - for( i_index = 0 ; i_index < p_vout->p_sys->i_size ; i_index++ ) { free( p_vout->p_sys->p_list[ i_index ]->p_data ); @@ -378,9 +383,8 @@ static void Display( vout_thread_t *p_vout, picture_t *p_pic ) i_index = p_vout->p_sys->i_index; - p_vout->p_vlc->pf_memcpy( p_vout->p_sys->p_list[i_index]->p_data, - p_pic->p->p_pixels, - p_vout->p_sys->i_datasize ); + vlc_memcpy( p_vout->p_sys->p_list[i_index]->p_data, p_pic->p->p_pixels, + p_vout->p_sys->i_datasize ); i_date = snapshot_GetMovietime( p_vout );