首页 > 代码库 > LibVLC video controls

LibVLC video controls

原文 http://www.videolan.org/developers/vlc/doc/doxygen/html/group__libvlc__video.html

VLC  3.0.0-git
  • Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
Enumerations | Functions
LibVLC video controls
LibVLC media player
Collaboration diagram for LibVLC video controls:

Enumerations

enum  libvlc_video_logo_option_t { 
  libvlc_logo_enable, libvlc_logo_file, libvlc_logo_x, libvlc_logo_y, 
  libvlc_logo_delay, libvlc_logo_repeat, libvlc_logo_opacity, libvlc_logo_position 
}
 option values for libvlc_video_{get,set}_logo_{int,string} More...
enum  libvlc_video_adjust_option_t { 
  libvlc_adjust_Enable = 0, libvlc_adjust_Contrast, libvlc_adjust_Brightness, libvlc_adjust_Hue, 
  libvlc_adjust_Saturation, libvlc_adjust_Gamma 
}
 option values for libvlc_video_{get,set}_adjust_{int,float,bool} More...

Functions

LIBVLC_API void libvlc_toggle_fullscreen (libvlc_media_player_t *p_mi)
 Toggle fullscreen status on non-embedded video outputs. 
LIBVLC_API void libvlc_set_fullscreen (libvlc_media_player_t *p_mi, int b_fullscreen)
 Enable or disable fullscreen. 
LIBVLC_API int libvlc_get_fullscreen (libvlc_media_player_t *p_mi)
 Get current fullscreen status. 
LIBVLC_API void libvlc_video_set_key_input (libvlc_media_player_t *p_mi, unsigned on)
 Enable or disable key press events handling, according to the LibVLC hotkeys configuration. 
LIBVLC_API void libvlc_video_set_mouse_input (libvlc_media_player_t *p_mi, unsigned on)
 Enable or disable mouse click events handling. 
LIBVLC_API int libvlc_video_get_size (libvlc_media_player_t *p_mi, unsigned num, unsigned *px, unsigned *py)
 Get the pixel dimensions of a video. 
LIBVLC_DEPRECATED LIBVLC_API int libvlc_video_get_height (libvlc_media_player_t *p_mi)
 Get current video height. 
LIBVLC_DEPRECATED LIBVLC_API int libvlc_video_get_width (libvlc_media_player_t *p_mi)
 Get current video width. 
LIBVLC_API int libvlc_video_get_cursor (libvlc_media_player_t *p_mi, unsigned num, int *px, int *py)
 Get the mouse pointer coordinates over a video. 
LIBVLC_API float libvlc_video_get_scale (libvlc_media_player_t *p_mi)
 Get the current video scaling factor. 
LIBVLC_API void libvlc_video_set_scale (libvlc_media_player_t *p_mi, float f_factor)
 Set the video scaling factor. 
LIBVLC_API char * libvlc_video_get_aspect_ratio (libvlc_media_player_t *p_mi)
 Get current video aspect ratio. 
LIBVLC_API void libvlc_video_set_aspect_ratio (libvlc_media_player_t *p_mi, const char *psz_aspect)
 Set new video aspect ratio. 
LIBVLC_API int libvlc_video_get_spu (libvlc_media_player_t *p_mi)
 Get current video subtitle. 
LIBVLC_API int libvlc_video_get_spu_count (libvlc_media_player_t *p_mi)
 Get the number of available video subtitles. 
LIBVLC_API 
libvlc_track_description_t * 
libvlc_video_get_spu_description (libvlc_media_player_t *p_mi)
 Get the description of available video subtitles. 
LIBVLC_API int libvlc_video_set_spu (libvlc_media_player_t *p_mi, int i_spu)
 Set new video subtitle. 
LIBVLC_API int libvlc_video_set_subtitle_file (libvlc_media_player_t *p_mi, const char *psz_subtitle)
 Set new video subtitle file. 
LIBVLC_API int64_t libvlc_video_get_spu_delay (libvlc_media_player_t *p_mi)
 Get the current subtitle delay. 
LIBVLC_API int libvlc_video_set_spu_delay (libvlc_media_player_t *p_mi, int64_t i_delay)
 Set the subtitle delay. 
LIBVLC_API 
libvlc_track_description_t * 
libvlc_video_get_title_description (libvlc_media_player_t *p_mi)
 Get the description of available titles. 
LIBVLC_API 
libvlc_track_description_t * 
libvlc_video_get_chapter_description (libvlc_media_player_t *p_mi, int i_title)
 Get the description of available chapters for specific title. 
LIBVLC_API char * libvlc_video_get_crop_geometry (libvlc_media_player_t *p_mi)
 Get current crop filter geometry. 
LIBVLC_API void libvlc_video_set_crop_geometry (libvlc_media_player_t *p_mi, const char *psz_geometry)
 Set new crop filter geometry. 
LIBVLC_API int libvlc_video_get_teletext (libvlc_media_player_t *p_mi)
 Get current teletext page requested. 
LIBVLC_API void libvlc_video_set_teletext (libvlc_media_player_t *p_mi, int i_page)
 Set new teletext page to retrieve. 
LIBVLC_API void libvlc_toggle_teletext (libvlc_media_player_t *p_mi)
 Toggle teletext transparent status on video output. 
LIBVLC_API int libvlc_video_get_track_count (libvlc_media_player_t *p_mi)
 Get number of available video tracks. 
LIBVLC_API 
libvlc_track_description_t * 
libvlc_video_get_track_description (libvlc_media_player_t *p_mi)
 Get the description of available video tracks. 
LIBVLC_API int libvlc_video_get_track (libvlc_media_player_t *p_mi)
 Get current video track. 
LIBVLC_API int libvlc_video_set_track (libvlc_media_player_t *p_mi, int i_track)
 Set video track. 
LIBVLC_API int libvlc_video_take_snapshot (libvlc_media_player_t *p_mi, unsigned num, const char *psz_filepath, unsigned int i_width, unsigned int i_height)
 Take a snapshot of the current video window. 
LIBVLC_API void libvlc_video_set_deinterlace (libvlc_media_player_t *p_mi, const char *psz_mode)
 Enable or disable deinterlace filter. 
LIBVLC_API int libvlc_video_get_marquee_int (libvlc_media_player_t *p_mi, unsigned option)
 Get an integer marquee option value. 
LIBVLC_API char * libvlc_video_get_marquee_string (libvlc_media_player_t *p_mi, unsigned option)
 Get a string marquee option value. 
LIBVLC_API void libvlc_video_set_marquee_int (libvlc_media_player_t *p_mi, unsigned option, int i_val)
 Enable, disable or set an integer marquee option. 
LIBVLC_API void libvlc_video_set_marquee_string (libvlc_media_player_t *p_mi, unsigned option, const char *psz_text)
 Set a marquee string option. 
LIBVLC_API int libvlc_video_get_logo_int (libvlc_media_player_t *p_mi, unsigned option)
 Get integer logo option. 
LIBVLC_API void libvlc_video_set_logo_int (libvlc_media_player_t *p_mi, unsigned option, int value)
 Set logo option as integer. 
LIBVLC_API void libvlc_video_set_logo_string (libvlc_media_player_t *p_mi, unsigned option, const char *psz_value)
 Set logo option as string. 
LIBVLC_API int libvlc_video_get_adjust_int (libvlc_media_player_t *p_mi, unsigned option)
 Get integer adjust option. 
LIBVLC_API void libvlc_video_set_adjust_int (libvlc_media_player_t *p_mi, unsigned option, int value)
 Set adjust option as integer. 
LIBVLC_API float libvlc_video_get_adjust_float (libvlc_media_player_t *p_mi, unsigned option)
 Get float adjust option. 
LIBVLC_API void libvlc_video_set_adjust_float (libvlc_media_player_t *p_mi, unsigned option, float value)
 Set adjust option as float. 

Detailed Description

Enumeration Type Documentation

enum libvlc_video_adjust_option_t

option values for libvlc_video_{get,set}_adjust_{int,float,bool}

Enumerator:
libvlc_adjust_Enable  
libvlc_adjust_Contrast  
libvlc_adjust_Brightness  
libvlc_adjust_Hue  
libvlc_adjust_Saturation  
libvlc_adjust_Gamma  
enum libvlc_video_logo_option_t

option values for libvlc_video_{get,set}_logo_{int,string}

Enumerator:
libvlc_logo_enable  
libvlc_logo_file 

string argument, "file,d,t;file,d,t;..."

libvlc_logo_x  
libvlc_logo_y  
libvlc_logo_delay  
libvlc_logo_repeat  
libvlc_logo_opacity  
libvlc_logo_position  

Function Documentation

LIBVLC_API int libvlc_get_fullscreen(libvlc_media_player_t * p_mi) 

Get current fullscreen status.

Parameters
p_mithe media player
Returns
the fullscreen status (boolean)
LIBVLC_API void libvlc_set_fullscreen(libvlc_media_player_t * p_mi,
  int b_fullscreen 
 )  

Enable or disable fullscreen.

Warning
With most window managers, only a top-level windows can be in full-screen mode. Hence, this function will not operate properly if libvlc_media_player_set_xwindow() was used to embed the video in a non-top-level window. In that case, the embedding window must be reparented to the root window before fullscreen mode is enabled. You will want to reparent it back to its normal parent when disabling fullscreen.
Parameters
p_mithe media player
b_fullscreenboolean for fullscreen status
LIBVLC_API void libvlc_toggle_fullscreen(libvlc_media_player_t * p_mi) 

Toggle fullscreen status on non-embedded video outputs.

Warning
The same limitations applies to this function as to libvlc_set_fullscreen().
Parameters
p_mithe media player
LIBVLC_API void libvlc_toggle_teletext(libvlc_media_player_t * p_mi) 

Toggle teletext transparent status on video output.

Parameters
p_mithe media player
LIBVLC_API float libvlc_video_get_adjust_float(libvlc_media_player_t * p_mi,
  unsigned option 
 )  

Get float adjust option.

Parameters
p_milibvlc media player instance
optionadjust option to get, values of libvlc_video_adjust_option_t
Version
LibVLC 1.1.1 and later.
LIBVLC_API int libvlc_video_get_adjust_int(libvlc_media_player_t * p_mi,
  unsigned option 
 )  

Get integer adjust option.

Parameters
p_milibvlc media player instance
optionadjust option to get, values of libvlc_video_adjust_option_t
Version
LibVLC 1.1.1 and later.
LIBVLC_API char* libvlc_video_get_aspect_ratio(libvlc_media_player_t * p_mi) 

Get current video aspect ratio.

Parameters
p_mithe media player
Returns
the video aspect ratio or NULL if unspecified (the result must be released with free() or libvlc_free()).
LIBVLC_API libvlc_track_description_t* libvlc_video_get_chapter_description(libvlc_media_player_t * p_mi,
  int i_title 
 )  

Get the description of available chapters for specific title.

Parameters
p_mithe media player
i_titleselected title
Returns
list containing description of available chapter for title i_title
LIBVLC_API char* libvlc_video_get_crop_geometry(libvlc_media_player_t * p_mi) 

Get current crop filter geometry.

Parameters
p_mithe media player
Returns
the crop filter geometry or NULL if unset
LIBVLC_API int libvlc_video_get_cursor(libvlc_media_player_t * p_mi,
  unsigned num,
  int * px,
  int * py 
 )  

Get the mouse pointer coordinates over a video.

Coordinates are expressed in terms of the decoded video resolution, not in terms of pixels on the screen/viewport (to get the latter, you can query your windowing system directly).

Either of the coordinates may be negative or larger than the corresponding dimension of the video, if the cursor is outside the rendering area.

Warning
The coordinates may be out-of-date if the pointer is not located on the video rendering area. LibVLC does not track the pointer if it is outside of the video widget.
Note
LibVLC does not support multiple pointers (it does of course support multiple input devices sharing the same pointer) at the moment.
Parameters
p_mimedia player
numnumber of the video (starting from, and most commonly 0)
pxpointer to get the abscissa [OUT]
pypointer to get the ordinate [OUT]
Returns
0 on success, -1 if the specified video does not exist
LIBVLC_DEPRECATED LIBVLC_API int libvlc_video_get_height(libvlc_media_player_t * p_mi) 

Get current video height.

Deprecated:
Use libvlc_video_get_size() instead.
Parameters
p_mithe media player
Returns
the video pixel height or 0 if not applicable
LIBVLC_API int libvlc_video_get_logo_int(libvlc_media_player_t * p_mi,
  unsigned option 
 )  

Get integer logo option.

Parameters
p_milibvlc media player instance
optionlogo option to get, values of libvlc_video_logo_option_t
LIBVLC_API int libvlc_video_get_marquee_int(libvlc_media_player_t * p_mi,
  unsigned option 
 )  

Get an integer marquee option value.

Parameters
p_milibvlc media player
optionmarq option to get
See Also
libvlc_video_marquee_int_option_t
LIBVLC_API char* libvlc_video_get_marquee_string(libvlc_media_player_t * p_mi,
  unsigned option 
 )  

Get a string marquee option value.

Parameters
p_milibvlc media player
optionmarq option to get
See Also
libvlc_video_marquee_string_option_t
LIBVLC_API float libvlc_video_get_scale(libvlc_media_player_t * p_mi) 

Get the current video scaling factor.

See also libvlc_video_set_scale().

Parameters
p_mithe media player
Returns
the currently configured zoom factor, or 0. if the video is set to fit to the output window/drawable automatically.
LIBVLC_API int libvlc_video_get_size(libvlc_media_player_t * p_mi,
  unsigned num,
  unsigned * px,
  unsigned * py 
 )  

Get the pixel dimensions of a video.

Parameters
p_mimedia player
numnumber of the video (starting from, and most commonly 0)
pxpointer to get the pixel width [OUT]
pypointer to get the pixel height [OUT]
Returns
0 on success, -1 if the specified video does not exist
LIBVLC_API int libvlc_video_get_spu(libvlc_media_player_t * p_mi) 

Get current video subtitle.

Parameters
p_mithe media player
Returns
the video subtitle selected, or -1 if none
LIBVLC_API int libvlc_video_get_spu_count(libvlc_media_player_t * p_mi) 

Get the number of available video subtitles.

Parameters
p_mithe media player
Returns
the number of available video subtitles
LIBVLC_API int64_t libvlc_video_get_spu_delay(libvlc_media_player_t * p_mi) 

Get the current subtitle delay.

Positive values means subtitles are being displayed later, negative values earlier.

Parameters
p_mimedia player
Returns
time (in microseconds) the display of subtitles is being delayed
Version
LibVLC 2.0.0 or later
LIBVLC_API libvlc_track_description_t* libvlc_video_get_spu_description(libvlc_media_player_t * p_mi) 

Get the description of available video subtitles.

Parameters
p_mithe media player
Returns
list containing description of available video subtitles
LIBVLC_API int libvlc_video_get_teletext(libvlc_media_player_t * p_mi) 

Get current teletext page requested.

Parameters
p_mithe media player
Returns
the current teletext page requested.
LIBVLC_API libvlc_track_description_t* libvlc_video_get_title_description(libvlc_media_player_t * p_mi) 

Get the description of available titles.

Parameters
p_mithe media player
Returns
list containing description of available titles
LIBVLC_API int libvlc_video_get_track(libvlc_media_player_t * p_mi) 

Get current video track.

Parameters
p_mimedia player
Returns
the video track ID (int) or -1 if no active input
LIBVLC_API int libvlc_video_get_track_count(libvlc_media_player_t * p_mi) 

Get number of available video tracks.

Parameters
p_mimedia player
Returns
the number of available video tracks (int)
LIBVLC_API libvlc_track_description_t* libvlc_video_get_track_description(libvlc_media_player_t * p_mi) 

Get the description of available video tracks.

Parameters
p_mimedia player
Returns
list with description of available video tracks, or NULL on error
LIBVLC_DEPRECATED LIBVLC_API int libvlc_video_get_width(libvlc_media_player_t * p_mi) 

Get current video width.

Deprecated:
Use libvlc_video_get_size() instead.
Parameters
p_mithe media player
Returns
the video pixel width or 0 if not applicable
LIBVLC_API void libvlc_video_set_adjust_float(libvlc_media_player_t * p_mi,
  unsigned option,
  float value 
 )  

Set adjust option as float.

Options that take a different type value are ignored.

Parameters
p_milibvlc media player instance
optionadust option to set, values of libvlc_video_adjust_option_t
valueadjust option value
Version
LibVLC 1.1.1 and later.
LIBVLC_API void libvlc_video_set_adjust_int(libvlc_media_player_t * p_mi,
  unsigned option,
  int value 
 )  

Set adjust option as integer.

Options that take a different type value are ignored. Passing libvlc_adjust_enable as option value has the side effect of starting (arg !0) or stopping (arg 0) the adjust filter.

Parameters
p_milibvlc media player instance
optionadust option to set, values of libvlc_video_adjust_option_t
valueadjust option value
Version
LibVLC 1.1.1 and later.
LIBVLC_API void libvlc_video_set_aspect_ratio(libvlc_media_player_t * p_mi,
  const char * psz_aspect 
 )  

Set new video aspect ratio.

Parameters
p_mithe media player
psz_aspectnew video aspect-ratio or NULL to reset to default
Note
Invalid aspect ratios are ignored.
LIBVLC_API void libvlc_video_set_crop_geometry(libvlc_media_player_t * p_mi,
  const char * psz_geometry 
 )  

Set new crop filter geometry.

Parameters
p_mithe media player
psz_geometrynew crop filter geometry (NULL to unset)
LIBVLC_API void libvlc_video_set_deinterlace(libvlc_media_player_t * p_mi,
  const char * psz_mode 
 )  

Enable or disable deinterlace filter.

Parameters
p_milibvlc media player
psz_modetype of deinterlace filter, NULL to disable
LIBVLC_API void libvlc_video_set_key_input(libvlc_media_player_t * p_mi,
  unsigned on 
 )  

Enable or disable key press events handling, according to the LibVLC hotkeys configuration.

By default and for historical reasons, keyboard events are handled by the LibVLC video widget.

Note
On X11, there can be only one subscriber for key press and mouse click events per window. If your application has subscribed to those events for the X window ID of the video widget, then LibVLC will not be able to handle key presses and mouse clicks in any case.
Warning
This function is only implemented for X11 and Win32 at the moment.
Parameters
p_mithe media player
ontrue to handle key press events, false to ignore them.
LIBVLC_API void libvlc_video_set_logo_int(libvlc_media_player_t * p_mi,
  unsigned option,
  int value 
 )  

Set logo option as integer.

Options that take a different type value are ignored. Passing libvlc_logo_enable as option value has the side effect of starting (arg !0) or stopping (arg 0) the logo filter.

Parameters
p_milibvlc media player instance
optionlogo option to set, values of libvlc_video_logo_option_t
valuelogo option value
LIBVLC_API void libvlc_video_set_logo_string(libvlc_media_player_t * p_mi,
  unsigned option,
  const char * psz_value 
 )  

Set logo option as string.

Options that take a different type value are ignored.

Parameters
p_milibvlc media player instance
optionlogo option to set, values of libvlc_video_logo_option_t
psz_valuelogo option value
LIBVLC_API void libvlc_video_set_marquee_int(libvlc_media_player_t * p_mi,
  unsigned option,
  int i_val 
 )  

Enable, disable or set an integer marquee option.

Setting libvlc_marquee_Enable has the side effect of enabling (arg !0) or disabling (arg 0) the marq filter.

Parameters
p_milibvlc media player
optionmarq option to set
See Also
libvlc_video_marquee_int_option_t
Parameters
i_valmarq option value
LIBVLC_API void libvlc_video_set_marquee_string(libvlc_media_player_t * p_mi,
  unsigned option,
  const char * psz_text 
 )  

Set a marquee string option.

Parameters
p_milibvlc media player
optionmarq option to set
See Also
libvlc_video_marquee_string_option_t
Parameters
psz_textmarq option value
LIBVLC_API void libvlc_video_set_mouse_input(libvlc_media_player_t * p_mi,
  unsigned on 
 )  

Enable or disable mouse click events handling.

By default, those events are handled. This is needed for DVD menus to work, as well as a few video filters such as "puzzle".

See Also
libvlc_video_set_key_input().
Warning
This function is only implemented for X11 and Win32 at the moment.
Parameters
p_mithe media player
ontrue to handle mouse click events, false to ignore them.
LIBVLC_API void libvlc_video_set_scale(libvlc_media_player_t * p_mi,
  float f_factor 
 )  

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.

Parameters
p_mithe media player
f_factorthe scaling factor, or zero
LIBVLC_API int libvlc_video_set_spu(libvlc_media_player_t * p_mi,
  int i_spu 
 )  

Set new video subtitle.

Parameters
p_mithe media player
i_spuvideo subtitle track to select (i_id from track description)
Returns
0 on success, -1 if out of range
LIBVLC_API int libvlc_video_set_spu_delay(libvlc_media_player_t * p_mi,
  int64_t i_delay 
 )  

Set the subtitle delay.

This affects the timing of when the subtitle will be displayed. Positive values result in subtitles being displayed later, while negative values will result in subtitles being displayed earlier.

The subtitle delay will be reset to zero each time the media changes.

Parameters
p_mimedia player
i_delaytime (in microseconds) the display of subtitles should be delayed
Returns
0 on success, -1 on error
Version
LibVLC 2.0.0 or later
LIBVLC_API int libvlc_video_set_subtitle_file(libvlc_media_player_t * p_mi,
  const char * psz_subtitle 
 )  

Set new video subtitle file.

Parameters
p_mithe media player
psz_subtitlenew video subtitle file
Returns
the success status (boolean)
LIBVLC_API void libvlc_video_set_teletext(libvlc_media_player_t * p_mi,
  int i_page 
 )  

Set new teletext page to retrieve.

Parameters
p_mithe media player
i_pageteletex page number requested
LIBVLC_API int libvlc_video_set_track(libvlc_media_player_t * p_mi,
  int i_track 
 )  

Set video track.

Parameters
p_mimedia player
i_trackthe track ID (i_id field from track description)
Returns
0 on success, -1 if out of range
LIBVLC_API int libvlc_video_take_snapshot(libvlc_media_player_t * p_mi,
  unsigned num,
  const char * psz_filepath,
  unsigned int i_width,
  unsigned int i_height 
 )  

Take a snapshot of the current video window.

If i_width AND i_height is 0, original size is used. If i_width XOR i_height is 0, original aspect-ratio is preserved.

Parameters
p_mimedia player instance
numnumber of video output (typically 0 for the first/only one)
psz_filepaththe path where to save the screenshot to
i_widththe snapshot‘s width
i_heightthe snapshot‘s height
Returns
0 on success, -1 if the video was not found
Generated by   doxygen 1.8.1.2

LibVLC video controls