mirror of
https://github.com/videolan/vlc.git
synced 2024-12-15 12:43:34 +08:00
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:
parent
3de142a4a1
commit
3f2f2e7882
@ -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
|
||||
|
@ -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 );
|
||||
}
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user