LibVLC video controls

时间:2021-03-29 23:16:57

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

LibVLC video controls
Collaboration diagram for LibVLC video controls:
LibVLC video controls

Enumerations

enum   libvlc_video_logo_option_t { 
  libvlc_logo_enablelibvlc_logo_filelibvlc_logo_xlibvlc_logo_y
  libvlc_logo_delaylibvlc_logo_repeatlibvlc_logo_opacitylibvlc_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_Contrastlibvlc_adjust_Brightnesslibvlc_adjust_Hue
  libvlc_adjust_Saturationlibvlc_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

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   

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_mi the 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_mi the media player
b_fullscreen boolean 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_mi the media player
LIBVLC_API void libvlc_toggle_teletext ( libvlc_media_player_t *  p_mi )  

Toggle teletext transparent status on video output.

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

Get float adjust option.

Parameters
p_mi libvlc media player instance
option adjust 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_mi libvlc media player instance
option adjust 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_mi the 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_mi the media player
i_title selected 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_mi the 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_mi media player
num number of the video (starting from, and most commonly 0)
px pointer to get the abscissa [OUT]
py pointer 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_mi the 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_mi libvlc media player instance
option logo 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_mi libvlc media player
option marq 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_mi libvlc media player
option marq 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_mi the 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_mi media player
num number of the video (starting from, and most commonly 0)
px pointer to get the pixel width [OUT]
py pointer 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_mi the 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_mi the 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_mi media 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_mi the 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_mi the 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_mi the 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_mi media 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_mi media 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_mi media 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_mi the 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_mi libvlc media player instance
option adust option to set, values of libvlc_video_adjust_option_t
value adjust 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_mi libvlc media player instance
option adust option to set, values of libvlc_video_adjust_option_t
value adjust 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_mi the media player
psz_aspect new 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_mi the media player
psz_geometry new 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_mi libvlc media player
psz_mode type 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_mi the media player
on true 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_mi libvlc media player instance
option logo option to set, values of libvlc_video_logo_option_t
value logo 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_mi libvlc media player instance
option logo option to set, values of libvlc_video_logo_option_t
psz_value logo 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_mi libvlc media player
option marq option to set
See Also
libvlc_video_marquee_int_option_t
Parameters
i_val marq 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_mi libvlc media player
option marq option to set
See Also
libvlc_video_marquee_string_option_t
Parameters
psz_text marq 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_mi the media player
on true 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_mi the media player
f_factor the 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_mi the media player
i_spu video 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_mi media player
i_delay time (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_mi the media player
psz_subtitle new 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_mi the media player
i_page teletex page number requested
LIBVLC_API int libvlc_video_set_track ( libvlc_media_player_t *  p_mi,
    int  i_track 
  )    

Set video track.

Parameters
p_mi media player
i_track the 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_mi media player instance
num number of video output (typically 0 for the first/only one)
psz_filepath the path where to save the screenshot to
i_width the snapshot's width
i_height the snapshot's height
Returns
0 on success, -1 if the video was not found

Generated by  LibVLC video controls1.8.1.2