libvlc API: Add Deinterlace Filter to libvlc in video.c

- libvlc_video_enable_deinterlace(libvlc_media_player_t *p_mi, int b_enable, const char *psz_mode, libvlc_exception_t *p_e)
      - b_enable: boolean to enable or disable deinterlace filter
      - psz_mode: char to define the deinterlace mode (blend, linear...)

Signed-off-by: Laurent Aimar <fenrir@videolan.org>
This commit is contained in:
Cyril Mathé 2009-05-29 14:25:45 +02:00 committed by Laurent Aimar
parent 3de142a4a1
commit 3f2f2e7882
3 changed files with 52 additions and 0 deletions

View File

@ -714,6 +714,18 @@ VLC_PUBLIC_API void libvlc_video_set_track( libvlc_media_player_t *, int, libvlc
*/
VLC_PUBLIC_API void libvlc_video_take_snapshot( libvlc_media_player_t *, const char *,unsigned int, unsigned int, libvlc_exception_t * );
/**
* Enable or disable deinterlace filter
*
* \param p_mi libvlc media player
* \param b_enable boolean to enable or disable deinterlace filter
* \param psz_mode type of deinterlace filter to use
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API void libvlc_video_set_deinterlace( libvlc_media_player_t *,
int , const char *,
libvlc_exception_t *);
/** @} video */
/** \defgroup libvlc_audio libvlc_audio

View File

@ -589,3 +589,42 @@ end:
var_FreeList( &val_list, NULL );
vlc_object_release( p_input_thread );
}
/******************************************************************************
* libvlc_video_set_deinterlace : enable deinterlace
*****************************************************************************/
void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi, int b_enable,
const char *psz_mode,
libvlc_exception_t *p_e )
{
vout_thread_t *p_vout = GetVout( p_mi, p_e );
if( p_vout )
{
libvlc_exception_raise( p_e, "Unable to get video output" );
return;
}
if( b_enable )
{
/* be sure that the filter name given is supported */
if( !strcmp(psz_mode, "blend") || !strcmp(psz_mode, "bob")
|| !strcmp(psz_mode, "discard") || !strcmp(psz_mode, "linear")
|| !strcmp(psz_mode, "mean") || !strcmp(psz_mode, "x") )
{
/* set deinterlace filter chosen */
var_SetString( p_vout, "deinterlace", psz_mode );
}
else
{
libvlc_exception_raise( p_e, "Unsuported or bad deinterlace filter name" );
}
}
else
{
/* disable deinterlace filter */
var_SetString( p_vout, "deinterlace", "" );
}
vlc_object_release( p_vout );
}

View File

@ -191,6 +191,7 @@ libvlc_video_get_track_description
libvlc_video_get_width
libvlc_video_set_aspect_ratio
libvlc_video_set_crop_geometry
libvlc_video_set_deinterlace
libvlc_video_set_scale
libvlc_video_set_spu
libvlc_video_set_subtitle_file