Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-1.1
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-1.1
Commits
44b0effd
Commit
44b0effd
authored
May 13, 2009
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
libvlc: add support for setting/getting the video scale
parent
65a17d98
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
54 additions
and
0 deletions
+54
-0
include/vlc/libvlc.h
include/vlc/libvlc.h
+25
-0
src/control/video.c
src/control/video.c
+27
-0
src/libvlc.sym
src/libvlc.sym
+2
-0
No files found.
include/vlc/libvlc.h
View file @
44b0effd
...
...
@@ -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
*
);
/**
* 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.
*
...
...
src/control/video.c
View file @
44b0effd
...
...
@@ -338,6 +338,33 @@ void libvlc_video_set_viewport( libvlc_instance_t *p_instance, libvlc_media_play
#endif
}
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
,
libvlc_exception_t
*
p_e
)
{
...
...
src/libvlc.sym
View file @
44b0effd
...
...
@@ -199,6 +199,7 @@ libvlc_video_get_chapter_description
libvlc_video_get_crop_geometry
libvlc_video_get_height
libvlc_video_get_parent
libvlc_video_get_scale
libvlc_video_get_spu
libvlc_video_get_spu_count
libvlc_video_get_spu_description
...
...
@@ -214,6 +215,7 @@ libvlc_video_resize
libvlc_video_set_aspect_ratio
libvlc_video_set_crop_geometry
libvlc_video_set_parent
libvlc_video_set_scale
libvlc_video_set_size
libvlc_video_set_spu
libvlc_video_set_subtitle_file
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment