Commit c6d2ba8a authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Merge branch 1.0-bugfix

Conflicts:
	include/vlc/deprecated.h
	src/control/video.c
	src/libvlc.sym
parents 9c1f8ba1 2d4241a1
...@@ -58,7 +58,7 @@ extern "C" { ...@@ -58,7 +58,7 @@ extern "C" {
* should render its video * should render its video
* \param p_e an initialized exception pointer * \param p_e an initialized exception pointer
*/ */
VLC_PUBLIC_API void libvlc_media_player_set_drawable ( libvlc_media_player_t *, libvlc_drawable_t, libvlc_exception_t * ); VLC_DEPRECATED_API void libvlc_media_player_set_drawable ( libvlc_media_player_t *, libvlc_drawable_t, libvlc_exception_t * );
/** /**
* Get the drawable where the media player should render its video output * Get the drawable where the media player should render its video output
...@@ -68,7 +68,7 @@ VLC_PUBLIC_API void libvlc_media_player_set_drawable ( libvlc_media_player_t *, ...@@ -68,7 +68,7 @@ VLC_PUBLIC_API void libvlc_media_player_set_drawable ( libvlc_media_player_t *,
* \return the libvlc_drawable_t where the media player * \return the libvlc_drawable_t where the media player
* should render its video * should render its video
*/ */
VLC_PUBLIC_API libvlc_drawable_t VLC_DEPRECATED_API libvlc_drawable_t
libvlc_media_player_get_drawable ( libvlc_media_player_t *, libvlc_exception_t * ); libvlc_media_player_get_drawable ( libvlc_media_player_t *, libvlc_exception_t * );
/***************************************************************************** /*****************************************************************************
......
...@@ -886,6 +886,31 @@ VLC_PUBLIC_API int libvlc_video_get_height( libvlc_media_player_t *, libvlc_exce ...@@ -886,6 +886,31 @@ VLC_PUBLIC_API int libvlc_video_get_height( libvlc_media_player_t *, libvlc_exce
*/ */
VLC_PUBLIC_API int libvlc_video_get_width( libvlc_media_player_t *, libvlc_exception_t * ); VLC_PUBLIC_API int libvlc_video_get_width( libvlc_media_player_t *, libvlc_exception_t * );
/**
* Get the current video scaling factor.
* See also libvlc_video_set_scale().
*
* \param p_mediaplayer the media player
* \return the currently configured zoom factor, or 0. if the video is set
* to fit to the output window/drawable automatically.
*/
VLC_PUBLIC_API float libvlc_video_get_scale( libvlc_media_player_t *,
libvlc_exception_t *p_e );
/**
* Set the video scaling factor. That is the ratio of the number of pixels on
* screen to the number of pixels in the original decoded video in each
* dimension. Zero is a special value; it will adjust the video to the output
* window/drawable (in windowed mode) or the entire screen.
*
* Note that not all video outputs support scaling.
*
* \param p_mediaplayer the media player
* \param i_factor the scaling factor, or zero
*/
VLC_PUBLIC_API void libvlc_video_set_scale( libvlc_media_player_t *, float,
libvlc_exception_t *p_e );
/** /**
* Get current video aspect ratio. * Get current video aspect ratio.
* *
......
...@@ -37,17 +37,17 @@ ...@@ -37,17 +37,17 @@
static vout_thread_t *GetVout( libvlc_media_player_t *p_mi, static vout_thread_t *GetVout( libvlc_media_player_t *p_mi,
libvlc_exception_t *p_exception ) libvlc_exception_t *p_exception )
{ {
input_thread_t *p_input_thread = libvlc_get_input_thread( p_mi, p_exception ); input_thread_t *p_input = libvlc_get_input_thread( p_mi, p_exception );
vout_thread_t *p_vout = NULL; vout_thread_t *p_vout = NULL;
if( p_input_thread ) if( p_input )
{ {
p_vout = input_GetVout( p_input_thread ); p_vout = input_GetVout( p_input );
if( !p_vout ) if( !p_vout )
{ {
libvlc_exception_raise( p_exception, "No active video output" ); libvlc_exception_raise( p_exception, "No active video output" );
} }
vlc_object_release( p_input_thread ); vlc_object_release( p_input );
} }
return p_vout; return p_vout;
} }
...@@ -187,6 +187,33 @@ int libvlc_media_player_has_vout( libvlc_media_player_t *p_mi, ...@@ -187,6 +187,33 @@ int libvlc_media_player_has_vout( libvlc_media_player_t *p_mi,
return has_vout; return has_vout;
} }
float libvlc_video_get_scale( libvlc_media_player_t *p_mp,
libvlc_exception_t *p_e )
{
vout_thread_t *p_vout = GetVout( p_mp, p_e );
if( !p_vout )
return 0.;
float f_scale = var_GetFloat( p_vout, "scale" );
if( var_GetBool( p_vout, "autoscale" ) )
f_scale = 0.;
vlc_object_release( p_vout );
return f_scale;
}
void libvlc_video_set_scale( libvlc_media_player_t *p_mp, float f_scale,
libvlc_exception_t *p_e )
{
vout_thread_t *p_vout = GetVout( p_mp, p_e );
if( !p_vout )
return;
if( f_scale != 0. )
var_SetFloat( p_vout, "scale", f_scale );
var_SetBool( p_vout, "autoscale", f_scale != 0. );
vlc_object_release( p_vout );
}
char *libvlc_video_get_aspect_ratio( libvlc_media_player_t *p_mi, char *libvlc_video_get_aspect_ratio( libvlc_media_player_t *p_mi,
libvlc_exception_t *p_e ) libvlc_exception_t *p_e )
{ {
......
...@@ -179,6 +179,7 @@ libvlc_video_get_aspect_ratio ...@@ -179,6 +179,7 @@ libvlc_video_get_aspect_ratio
libvlc_video_get_chapter_description libvlc_video_get_chapter_description
libvlc_video_get_crop_geometry libvlc_video_get_crop_geometry
libvlc_video_get_height libvlc_video_get_height
libvlc_video_get_scale
libvlc_video_get_spu libvlc_video_get_spu
libvlc_video_get_spu_count libvlc_video_get_spu_count
libvlc_video_get_spu_description libvlc_video_get_spu_description
...@@ -190,6 +191,7 @@ libvlc_video_get_track_description ...@@ -190,6 +191,7 @@ libvlc_video_get_track_description
libvlc_video_get_width libvlc_video_get_width
libvlc_video_set_aspect_ratio libvlc_video_set_aspect_ratio
libvlc_video_set_crop_geometry libvlc_video_set_crop_geometry
libvlc_video_set_scale
libvlc_video_set_spu libvlc_video_set_spu
libvlc_video_set_subtitle_file libvlc_video_set_subtitle_file
libvlc_video_set_teletext libvlc_video_set_teletext
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment