Data Structures | Modules | Typedefs | Enumerations | Functions

LibVLC media player
[LibVLC]

A LibVLC media player plays one media (usually in a custom drawable). More...

Collaboration diagram for LibVLC media player:

Data Structures

struct  libvlc_track_description_t
 Description for video, audio tracks and subtitles. More...
struct  libvlc_audio_output_t
 Description for audio output. More...
struct  libvlc_audio_output_device_t
 Description for audio output device. More...
struct  libvlc_rectangle_t
 Rectangle type for video geometry. More...

Modules

 LibVLC video controls
 LibVLC audio controls

Typedefs

typedef struct
libvlc_media_player_t 
libvlc_media_player_t
typedef struct
libvlc_track_description_t 
libvlc_track_description_t
 Description for video, audio tracks and subtitles.
typedef struct
libvlc_audio_output_t 
libvlc_audio_output_t
 Description for audio output.
typedef struct
libvlc_audio_output_device_t 
libvlc_audio_output_device_t
 Description for audio output device.
typedef struct libvlc_rectangle_t libvlc_rectangle_t
 Rectangle type for video geometry.
typedef enum
libvlc_video_marquee_option_t 
libvlc_video_marquee_option_t
 Marq options definition.
typedef enum libvlc_navigate_mode_t libvlc_navigate_mode_t
 Navigation mode.
typedef void *(* libvlc_video_lock_cb )(void *opaque, void **planes)
 Callback prototype to allocate and lock a picture buffer.
typedef void(* libvlc_video_unlock_cb )(void *opaque, void *picture, void *const *planes)
 Callback prototype to unlock a picture buffer.
typedef void(* libvlc_video_display_cb )(void *opaque, void *picture)
 Callback prototype to display a picture.
typedef unsigned(* libvlc_video_format_cb )(void **opaque, char *chroma, unsigned *width, unsigned *height, unsigned *pitches, unsigned *lines)
 Callback prototype to configure picture buffers format.
typedef void(* libvlc_video_cleanup_cb )(void *opaque)
 Callback prototype to configure picture buffers format.
typedef void(* libvlc_audio_play_cb )(void *data, const void *samples, unsigned count, int64_t pts)
 Callback prototype for audio playback.
typedef void(* libvlc_audio_pause_cb )(void *data, int64_t pts)
 Callback prototype for audio pause.
typedef void(* libvlc_audio_resume_cb )(void *data, int64_t pts)
 Callback prototype for audio resumption (i.e.
typedef void(* libvlc_audio_flush_cb )(void *data, int64_t pts)
 Callback prototype for audio buffer flush (i.e.
typedef void(* libvlc_audio_drain_cb )(void *data)
 Callback prototype for audio buffer drain (i.e.
typedef void(* libvlc_audio_set_volume_cb )(void *data, float volume, bool mute)
 Callback prototype for audio volume change.
typedef int(* libvlc_audio_setup_cb )(void **data, char *format, unsigned *rate, unsigned *channels)
 Callback prototype to setup the audio playback.
typedef void(* libvlc_audio_cleanup_cb )(void *data)
 Callback prototype for audio playback cleanup.

Enumerations

enum  libvlc_video_marquee_option_t {
  libvlc_marquee_Enable = 0, libvlc_marquee_Text, libvlc_marquee_Color, libvlc_marquee_Opacity,
  libvlc_marquee_Position, libvlc_marquee_Refresh, libvlc_marquee_Size, libvlc_marquee_Timeout,
  libvlc_marquee_X, libvlc_marquee_Y
}
 

Marq options definition.

More...
enum  libvlc_navigate_mode_t {
  libvlc_navigate_activate = 0, libvlc_navigate_up, libvlc_navigate_down, libvlc_navigate_left,
  libvlc_navigate_right
}
 

Navigation mode.

More...

Functions

LIBVLC_API libvlc_media_player_tlibvlc_media_player_new (libvlc_instance_t *p_libvlc_instance)
 Create an empty Media Player object.
LIBVLC_API libvlc_media_player_tlibvlc_media_player_new_from_media (libvlc_media_t *p_md)
 Create a Media Player object from a Media.
LIBVLC_API void libvlc_media_player_release (libvlc_media_player_t *p_mi)
 Release a media_player after use Decrement the reference count of a media player object.
LIBVLC_API void libvlc_media_player_retain (libvlc_media_player_t *p_mi)
 Retain a reference to a media player object.
LIBVLC_API void libvlc_media_player_set_media (libvlc_media_player_t *p_mi, libvlc_media_t *p_md)
 Set the media that will be used by the media_player.
LIBVLC_API libvlc_media_tlibvlc_media_player_get_media (libvlc_media_player_t *p_mi)
 Get the media used by the media_player.
LIBVLC_API libvlc_event_manager_tlibvlc_media_player_event_manager (libvlc_media_player_t *p_mi)
 Get the Event Manager from which the media player send event.
LIBVLC_API int libvlc_media_player_is_playing (libvlc_media_player_t *p_mi)
 is_playing
LIBVLC_API int libvlc_media_player_play (libvlc_media_player_t *p_mi)
 Play.
LIBVLC_API void libvlc_media_player_set_pause (libvlc_media_player_t *mp, int do_pause)
 Pause or resume (no effect if there is no media).
LIBVLC_API void libvlc_media_player_pause (libvlc_media_player_t *p_mi)
 Toggle pause (no effect if there is no media).
LIBVLC_API void libvlc_media_player_stop (libvlc_media_player_t *p_mi)
 Stop (no effect if there is no media).
LIBVLC_API void libvlc_video_set_callbacks (libvlc_media_player_t *mp, libvlc_video_lock_cb lock, libvlc_video_unlock_cb unlock, libvlc_video_display_cb display, void *opaque)
 Set callbacks and private data to render decoded video to a custom area in memory.
LIBVLC_API void libvlc_video_set_format (libvlc_media_player_t *mp, const char *chroma, unsigned width, unsigned height, unsigned pitch)
 Set decoded video chroma and dimensions.
LIBVLC_API void libvlc_video_set_format_callbacks (libvlc_media_player_t *mp, libvlc_video_format_cb setup, libvlc_video_cleanup_cb cleanup)
 Set decoded video chroma and dimensions.
LIBVLC_API void libvlc_media_player_set_nsobject (libvlc_media_player_t *p_mi, void *drawable)
 Set the NSView handler where the media player should render its video output.
LIBVLC_API void * libvlc_media_player_get_nsobject (libvlc_media_player_t *p_mi)
 Get the NSView handler previously set with libvlc_media_player_set_nsobject().
LIBVLC_API void libvlc_media_player_set_agl (libvlc_media_player_t *p_mi, uint32_t drawable)
 Set the agl handler where the media player should render its video output.
LIBVLC_API uint32_t libvlc_media_player_get_agl (libvlc_media_player_t *p_mi)
 Get the agl handler previously set with libvlc_media_player_set_agl().
LIBVLC_API void libvlc_media_player_set_xwindow (libvlc_media_player_t *p_mi, uint32_t drawable)
 Set an X Window System drawable where the media player should render its video output.
LIBVLC_API uint32_t libvlc_media_player_get_xwindow (libvlc_media_player_t *p_mi)
 Get the X Window System window identifier previously set with libvlc_media_player_set_xwindow().
LIBVLC_API void libvlc_media_player_set_hwnd (libvlc_media_player_t *p_mi, void *drawable)
 Set a Win32/Win64 API window handle (HWND) where the media player should render its video output.
LIBVLC_API void * libvlc_media_player_get_hwnd (libvlc_media_player_t *p_mi)
 Get the Windows API window handle (HWND) previously set with libvlc_media_player_set_hwnd().
LIBVLC_API void libvlc_audio_set_callbacks (libvlc_media_player_t *mp, libvlc_audio_play_cb play, libvlc_audio_pause_cb pause, libvlc_audio_resume_cb resume, libvlc_audio_flush_cb flush, libvlc_audio_drain_cb drain, void *opaque)
 Set callbacks and private data for decoded audio.
LIBVLC_API void libvlc_audio_set_volume_callback (libvlc_media_player_t *mp, libvlc_audio_set_volume_cb set_volume)
 Set callbacks and private data for decoded audio.
LIBVLC_API void libvlc_audio_set_format_callbacks (libvlc_media_player_t *mp, libvlc_audio_setup_cb setup, libvlc_audio_cleanup_cb cleanup)
 Set decoded audio format.
LIBVLC_API void libvlc_audio_set_format (libvlc_media_player_t *mp, const char *format, unsigned rate, unsigned channels)
 Set decoded audio format.
LIBVLC_API libvlc_time_t libvlc_media_player_get_length (libvlc_media_player_t *p_mi)
 Get the current movie length (in ms).
LIBVLC_API libvlc_time_t libvlc_media_player_get_time (libvlc_media_player_t *p_mi)
 Get the current movie time (in ms).
LIBVLC_API void libvlc_media_player_set_time (libvlc_media_player_t *p_mi, libvlc_time_t i_time)
 Set the movie time (in ms).
LIBVLC_API float libvlc_media_player_get_position (libvlc_media_player_t *p_mi)
 Get movie position as percentage between 0.0 and 1.0.
LIBVLC_API void libvlc_media_player_set_position (libvlc_media_player_t *p_mi, float f_pos)
 Set movie position as percentage between 0.0 and 1.0.
LIBVLC_API void libvlc_media_player_set_chapter (libvlc_media_player_t *p_mi, int i_chapter)
 Set movie chapter (if applicable).
LIBVLC_API int libvlc_media_player_get_chapter (libvlc_media_player_t *p_mi)
 Get movie chapter.
LIBVLC_API int libvlc_media_player_get_chapter_count (libvlc_media_player_t *p_mi)
 Get movie chapter count.
LIBVLC_API int libvlc_media_player_will_play (libvlc_media_player_t *p_mi)
 Is the player able to play.
LIBVLC_API int libvlc_media_player_get_chapter_count_for_title (libvlc_media_player_t *p_mi, int i_title)
 Get title chapter count.
LIBVLC_API void libvlc_media_player_set_title (libvlc_media_player_t *p_mi, int i_title)
 Set movie title.
LIBVLC_API int libvlc_media_player_get_title (libvlc_media_player_t *p_mi)
 Get movie title.
LIBVLC_API int libvlc_media_player_get_title_count (libvlc_media_player_t *p_mi)
 Get movie title count.
LIBVLC_API void libvlc_media_player_previous_chapter (libvlc_media_player_t *p_mi)
 Set previous chapter (if applicable).
LIBVLC_API void libvlc_media_player_next_chapter (libvlc_media_player_t *p_mi)
 Set next chapter (if applicable).
LIBVLC_API float libvlc_media_player_get_rate (libvlc_media_player_t *p_mi)
 Get the requested movie play rate.
LIBVLC_API int libvlc_media_player_set_rate (libvlc_media_player_t *p_mi, float rate)
 Set movie play rate.
LIBVLC_API libvlc_state_t libvlc_media_player_get_state (libvlc_media_player_t *p_mi)
 Get current movie state.
LIBVLC_API float libvlc_media_player_get_fps (libvlc_media_player_t *p_mi)
 Get movie fps rate.
LIBVLC_API unsigned libvlc_media_player_has_vout (libvlc_media_player_t *p_mi)
 end bug
LIBVLC_API int libvlc_media_player_is_seekable (libvlc_media_player_t *p_mi)
 Is this media player seekable?
LIBVLC_API int libvlc_media_player_can_pause (libvlc_media_player_t *p_mi)
 Can this media player be paused?
LIBVLC_API void libvlc_media_player_next_frame (libvlc_media_player_t *p_mi)
 Display the next frame (if supported).
LIBVLC_API void libvlc_media_player_navigate (libvlc_media_player_t *p_mi, unsigned navigate)
 Navigate through DVD Menu.
LIBVLC_API void libvlc_track_description_list_release (libvlc_track_description_t *p_track_description)
 Release (free) libvlc_track_description_t.
LIBVLC_DEPRECATED LIBVLC_API void libvlc_track_description_release (libvlc_track_description_t *p_track_description)

Detailed Description

A LibVLC media player plays one media (usually in a custom drawable).


Typedef Documentation

typedef void(* libvlc_audio_cleanup_cb)(void *data)

Callback prototype for audio playback cleanup.

This is called when the media player no longer needs an audio output.

Parameters:
opaque data pointer as passed to libvlc_audio_set_callbacks() [IN]
typedef void(* libvlc_audio_drain_cb)(void *data)

Callback prototype for audio buffer drain (i.e.

wait for pending buffers to be played).

Parameters:
data data pointer as passed to libvlc_audio_set_callbacks() [IN]
typedef void(* libvlc_audio_flush_cb)(void *data, int64_t pts)

Callback prototype for audio buffer flush (i.e.

discard all pending buffers and stop playback as soon as possible).

Parameters:
data data pointer as passed to libvlc_audio_set_callbacks() [IN]

Description for audio output device.

Description for audio output.

It contains name, description and pointer to next record.

typedef void(* libvlc_audio_pause_cb)(void *data, int64_t pts)

Callback prototype for audio pause.

Note:
The pause callback is never called if the audio is already paused.
Parameters:
data data pointer as passed to libvlc_audio_set_callbacks() [IN]
pts time stamp of the pause request (should be elapsed already)
typedef void(* libvlc_audio_play_cb)(void *data, const void *samples, unsigned count, int64_t pts)

Callback prototype for audio playback.

Parameters:
data data pointer as passed to libvlc_audio_set_callbacks() [IN]
samples pointer to the first audio sample to play back [IN]
count number of audio samples to play back
pts expected play time stamp (see libvlc_delay())
typedef void(* libvlc_audio_resume_cb)(void *data, int64_t pts)

Callback prototype for audio resumption (i.e.

restart from pause).

Note:
The resume callback is never called if the audio is not paused.
Parameters:
data data pointer as passed to libvlc_audio_set_callbacks() [IN]
pts time stamp of the resumption request (should be elapsed already)
typedef void(* libvlc_audio_set_volume_cb)(void *data, float volume, bool mute)

Callback prototype for audio volume change.

Parameters:
data data pointer as passed to libvlc_audio_set_callbacks() [IN]
volume software volume (1. = nominal, 0. = mute)
mute muted flag
typedef int(* libvlc_audio_setup_cb)(void **data, char *format, unsigned *rate, unsigned *channels)

Callback prototype to setup the audio playback.

This is called when the media player needs to create a new audio output.

Parameters:
opaque pointer to the data pointer passed to libvlc_audio_set_callbacks() [IN/OUT]
format 4 bytes sample format [IN/OUT]
rate sample rate [IN/OUT]
channels channels count [IN/OUT]
Returns:
0 on success, anything else to skip audio playback

Navigation mode.

Rectangle type for video geometry.

Description for video, audio tracks and subtitles.

It contains id, name (description string) and pointer to next record.

typedef void(* libvlc_video_cleanup_cb)(void *opaque)

Callback prototype to configure picture buffers format.

Parameters:
opaque private pointer as passed to libvlc_video_set_callbacks() (and possibly modified by libvlc_video_format_cb) [IN]
typedef void(* libvlc_video_display_cb)(void *opaque, void *picture)

Callback prototype to display a picture.

When the video frame needs to be shown, as determined by the media playback clock, the display callback is invoked.

Parameters:
opaque private pointer as passed to libvlc_video_set_callbacks() [IN]
picture private pointer returned from the libvlc_video_lock_cb callback [IN]
typedef unsigned(* libvlc_video_format_cb)(void **opaque, char *chroma, unsigned *width, unsigned *height, unsigned *pitches, unsigned *lines)

Callback prototype to configure picture buffers format.

This callback gets the format of the video as output by the video decoder and the chain of video filters (if any). It can opt to change any parameter as it needs. In that case, LibVLC will attempt to convert the video format (rescaling and chroma conversion) but these operations can be CPU intensive.

Parameters:
opaque pointer to the private pointer passed to libvlc_video_set_callbacks() [IN/OUT]
chroma pointer to the 4 bytes video format identifier [IN/OUT]
width pointer to the pixel width [IN/OUT]
height pointer to the pixel height [IN/OUT]
pitches table of scanline pitches in bytes for each pixel plane (the table is allocated by LibVLC) [OUT]
lines table of scanlines count for each plane [OUT]
Returns:
the number of picture buffers allocated, 0 indicates failure
Note:
For each pixels plane, the scanline pitch must be bigger than or equal to the number of bytes per pixel multiplied by the pixel width. Similarly, the number of scanlines must be bigger than of equal to the pixel height. Furthermore, we recommend that pitches and lines be multiple of 32 to not break assumption that might be made by various optimizations in the video decoders, video filters and/or video converters.
typedef void*(* libvlc_video_lock_cb)(void *opaque, void **planes)

Callback prototype to allocate and lock a picture buffer.

Whenever a new video frame needs to be decoded, the lock callback is invoked. Depending on the video chroma, one or three pixel planes of adequate dimensions must be returned via the second parameter. Those planes must be aligned on 32-bytes boundaries.

Parameters:
opaque private pointer as passed to libvlc_video_set_callbacks() [IN]
planes start address of the pixel planes (LibVLC allocates the array of void pointers, this callback must initialize the array) [OUT]
Returns:
a private pointer for the display and unlock callbacks to identify the picture buffers

Marq options definition.

typedef void(* libvlc_video_unlock_cb)(void *opaque, void *picture, void *const *planes)

Callback prototype to unlock a picture buffer.

When the video frame decoding is complete, the unlock callback is invoked. This callback might not be needed at all. It is only an indication that the application can now read the pixel values if it needs to.

Warning:
A picture buffer is unlocked after the picture is decoded, but before the picture is displayed.
Parameters:
opaque private pointer as passed to libvlc_video_set_callbacks() [IN]
picture private pointer returned from the libvlc_video_lock_cb callback [IN]
planes pixel planes as defined by the libvlc_video_lock_cb callback (this parameter is only for convenience) [IN]

Enumeration Type Documentation

Navigation mode.

Enumerator:
libvlc_navigate_activate 
libvlc_navigate_up 
libvlc_navigate_down 
libvlc_navigate_left 
libvlc_navigate_right 

Marq options definition.

Enumerator:
libvlc_marquee_Enable 
libvlc_marquee_Text 
libvlc_marquee_Color 

string argument

libvlc_marquee_Opacity 
libvlc_marquee_Position 
libvlc_marquee_Refresh 
libvlc_marquee_Size 
libvlc_marquee_Timeout 
libvlc_marquee_X 
libvlc_marquee_Y 

Function Documentation

LIBVLC_API void libvlc_audio_set_callbacks ( libvlc_media_player_t mp,
libvlc_audio_play_cb  play,
libvlc_audio_pause_cb  pause,
libvlc_audio_resume_cb  resume,
libvlc_audio_flush_cb  flush,
libvlc_audio_drain_cb  drain,
void *  opaque 
)

Set callbacks and private data for decoded audio.

Use libvlc_audio_set_format() or libvlc_audio_set_format_callbacks() to configure the decoded audio format.

Parameters:
mp the media player
play callback to play audio samples (must not be NULL)
pause callback to pause playback (or NULL to ignore)
resume callback to resume playback (or NULL to ignore)
flush callback to flush audio buffers (or NULL to ignore)
drain callback to drain audio buffers (or NULL to ignore)
opaque private pointer for the audio callbacks (as first parameter)
Version:
LibVLC 2.0.0 or later
LIBVLC_API void libvlc_audio_set_format ( libvlc_media_player_t mp,
const char *  format,
unsigned  rate,
unsigned  channels 
)

Set decoded audio format.

This only works in combination with libvlc_audio_set_callbacks(), and is mutually exclusive with libvlc_audio_set_format_callbacks().

Parameters:
mp the media player
format a four-characters string identifying the sample format (e.g. "S16N" or "FL32")
rate sample rate (expressed in Hz)
channels channels count
Version:
LibVLC 2.0.0 or later
LIBVLC_API void libvlc_audio_set_format_callbacks ( libvlc_media_player_t mp,
libvlc_audio_setup_cb  setup,
libvlc_audio_cleanup_cb  cleanup 
)

Set decoded audio format.

This only works in combination with libvlc_audio_set_callbacks().

Parameters:
mp the media player
setup callback to select the audio format (cannot be NULL)
cleanup callback to release any allocated resources (or NULL)
Version:
LibVLC 2.0.0 or later
LIBVLC_API void libvlc_audio_set_volume_callback ( libvlc_media_player_t mp,
libvlc_audio_set_volume_cb  set_volume 
)

Set callbacks and private data for decoded audio.

Use libvlc_audio_set_format() or libvlc_audio_set_format_callbacks() to configure the decoded audio format.

Parameters:
mp the media player
set_volume callback to apply audio volume, or NULL to apply volume in software
Version:
LibVLC 2.0.0 or later
LIBVLC_API int libvlc_media_player_can_pause ( libvlc_media_player_t p_mi  ) 

Can this media player be paused?

Parameters:
p_mi the media player
Returns:
true if the media player can pause
LIBVLC_API libvlc_event_manager_t* libvlc_media_player_event_manager ( libvlc_media_player_t p_mi  ) 

Get the Event Manager from which the media player send event.

Parameters:
p_mi the Media Player
Returns:
the event manager associated with p_mi
LIBVLC_API uint32_t libvlc_media_player_get_agl ( libvlc_media_player_t p_mi  ) 

Get the agl handler previously set with libvlc_media_player_set_agl().

Parameters:
p_mi the Media Player
Returns:
the agl handler or 0 if none where set
LIBVLC_API int libvlc_media_player_get_chapter ( libvlc_media_player_t p_mi  ) 

Get movie chapter.

Parameters:
p_mi the Media Player
Returns:
chapter number currently playing, or -1 if there is no media.
LIBVLC_API int libvlc_media_player_get_chapter_count ( libvlc_media_player_t p_mi  ) 

Get movie chapter count.

Parameters:
p_mi the Media Player
Returns:
number of chapters in movie, or -1.
LIBVLC_API int libvlc_media_player_get_chapter_count_for_title ( libvlc_media_player_t p_mi,
int  i_title 
)

Get title chapter count.

Parameters:
p_mi the Media Player
i_title title
Returns:
number of chapters in title, or -1
LIBVLC_API float libvlc_media_player_get_fps ( libvlc_media_player_t p_mi  ) 

Get movie fps rate.

Parameters:
p_mi the Media Player
Returns:
frames per second (fps) for this playing movie, or 0 if unspecified
LIBVLC_API void* libvlc_media_player_get_hwnd ( libvlc_media_player_t p_mi  ) 

Get the Windows API window handle (HWND) previously set with libvlc_media_player_set_hwnd().

The handle will be returned even if LibVLC is not currently outputting any video to it.

Parameters:
p_mi the Media Player
Returns:
a window handle or NULL if there are none.
LIBVLC_API libvlc_time_t libvlc_media_player_get_length ( libvlc_media_player_t p_mi  ) 

Get the current movie length (in ms).

Bug:
This might go away ...

to be replaced by a broader system

Parameters:
p_mi the Media Player
Returns:
the movie length (in ms), or -1 if there is no media.
LIBVLC_API libvlc_media_t* libvlc_media_player_get_media ( libvlc_media_player_t p_mi  ) 

Get the media used by the media_player.

Parameters:
p_mi the Media Player
Returns:
the media associated with p_mi, or NULL if no media is associated
LIBVLC_API void* libvlc_media_player_get_nsobject ( libvlc_media_player_t p_mi  ) 

Get the NSView handler previously set with libvlc_media_player_set_nsobject().

Parameters:
p_mi the Media Player
Returns:
the NSView handler or 0 if none where set
LIBVLC_API float libvlc_media_player_get_position ( libvlc_media_player_t p_mi  ) 

Get movie position as percentage between 0.0 and 1.0.

Parameters:
p_mi the Media Player
Returns:
movie position, or -1. in case of error
LIBVLC_API float libvlc_media_player_get_rate ( libvlc_media_player_t p_mi  ) 

Get the requested movie play rate.

Warning:
Depending on the underlying media, the requested rate may be different from the real playback rate.
Parameters:
p_mi the Media Player
Returns:
movie play rate
LIBVLC_API libvlc_state_t libvlc_media_player_get_state ( libvlc_media_player_t p_mi  ) 

Get current movie state.

Parameters:
p_mi the Media Player
Returns:
the current state of the media player (playing, paused, ...)
See also:
libvlc_state_t
LIBVLC_API libvlc_time_t libvlc_media_player_get_time ( libvlc_media_player_t p_mi  ) 

Get the current movie time (in ms).

Parameters:
p_mi the Media Player
Returns:
the movie time (in ms), or -1 if there is no media.
LIBVLC_API int libvlc_media_player_get_title ( libvlc_media_player_t p_mi  ) 

Get movie title.

Parameters:
p_mi the Media Player
Returns:
title number currently playing, or -1
LIBVLC_API int libvlc_media_player_get_title_count ( libvlc_media_player_t p_mi  ) 

Get movie title count.

Parameters:
p_mi the Media Player
Returns:
title number count, or -1
LIBVLC_API uint32_t libvlc_media_player_get_xwindow ( libvlc_media_player_t p_mi  ) 

Get the X Window System window identifier previously set with libvlc_media_player_set_xwindow().

Note that this will return the identifier even if VLC is not currently using it (for instance if it is playing an audio-only input).

Parameters:
p_mi the Media Player
Returns:
an X window ID, or 0 if none where set.
LIBVLC_API unsigned libvlc_media_player_has_vout ( libvlc_media_player_t p_mi  ) 

end bug

How many video outputs does this media player have?

Parameters:
p_mi the media player
Returns:
the number of video outputs
LIBVLC_API int libvlc_media_player_is_playing ( libvlc_media_player_t p_mi  ) 

is_playing

Parameters:
p_mi the Media Player
Returns:
1 if the media player is playing, 0 otherwise
LIBVLC_API int libvlc_media_player_is_seekable ( libvlc_media_player_t p_mi  ) 

Is this media player seekable?

Parameters:
p_mi the media player
Returns:
true if the media player can seek
LIBVLC_API void libvlc_media_player_navigate ( libvlc_media_player_t p_mi,
unsigned  navigate 
)

Navigate through DVD Menu.

Parameters:
p_mi the Media Player
navigate the Navigation mode
Version:
libVLC 2.0.0 or later
LIBVLC_API libvlc_media_player_t* libvlc_media_player_new ( libvlc_instance_t p_libvlc_instance  ) 

Create an empty Media Player object.

Parameters:
p_libvlc_instance the libvlc instance in which the Media Player should be created.
Returns:
a new media player object, or NULL on error.
LIBVLC_API libvlc_media_player_t* libvlc_media_player_new_from_media ( libvlc_media_t p_md  ) 

Create a Media Player object from a Media.

Parameters:
p_md the media. Afterwards the p_md can be safely destroyed.
Returns:
a new media player object, or NULL on error.
LIBVLC_API void libvlc_media_player_next_chapter ( libvlc_media_player_t p_mi  ) 

Set next chapter (if applicable).

Parameters:
p_mi the Media Player
LIBVLC_API void libvlc_media_player_next_frame ( libvlc_media_player_t p_mi  ) 

Display the next frame (if supported).

Parameters:
p_mi the media player
LIBVLC_API void libvlc_media_player_pause ( libvlc_media_player_t p_mi  ) 

Toggle pause (no effect if there is no media).

Parameters:
p_mi the Media Player
LIBVLC_API int libvlc_media_player_play ( libvlc_media_player_t p_mi  ) 

Play.

Parameters:
p_mi the Media Player
Returns:
0 if playback started (and was already started), or -1 on error.
LIBVLC_API void libvlc_media_player_previous_chapter ( libvlc_media_player_t p_mi  ) 

Set previous chapter (if applicable).

Parameters:
p_mi the Media Player
LIBVLC_API void libvlc_media_player_release ( libvlc_media_player_t p_mi  ) 

Release a media_player after use Decrement the reference count of a media player object.

If the reference count is 0, then libvlc_media_player_release() will release the media player object. If the media player object has been released, then it should not be used again.

Parameters:
p_mi the Media Player to free
LIBVLC_API void libvlc_media_player_retain ( libvlc_media_player_t p_mi  ) 

Retain a reference to a media player object.

Use libvlc_media_player_release() to decrement reference count.

Parameters:
p_mi media player object
LIBVLC_API void libvlc_media_player_set_agl ( libvlc_media_player_t p_mi,
uint32_t  drawable 
)

Set the agl handler where the media player should render its video output.

Parameters:
p_mi the Media Player
drawable the agl handler
LIBVLC_API void libvlc_media_player_set_chapter ( libvlc_media_player_t p_mi,
int  i_chapter 
)

Set movie chapter (if applicable).

Parameters:
p_mi the Media Player
i_chapter chapter number to play
LIBVLC_API void libvlc_media_player_set_hwnd ( libvlc_media_player_t p_mi,
void *  drawable 
)

Set a Win32/Win64 API window handle (HWND) where the media player should render its video output.

If LibVLC was built without Win32/Win64 API output support, then this has no effects.

Parameters:
p_mi the Media Player
drawable windows handle of the drawable
LIBVLC_API void libvlc_media_player_set_media ( libvlc_media_player_t p_mi,
libvlc_media_t p_md 
)

Set the media that will be used by the media_player.

If any, previous md will be released.

Parameters:
p_mi the Media Player
p_md the Media. Afterwards the p_md can be safely destroyed.
LIBVLC_API void libvlc_media_player_set_nsobject ( libvlc_media_player_t p_mi,
void *  drawable 
)

Set the NSView handler where the media player should render its video output.

Use the vout called "macosx".

The drawable is an NSObject that follow the VLCOpenGLVideoViewEmbedding protocol:

@protocol VLCOpenGLVideoViewEmbedding <NSObject>

  • (void)addVoutSubview:(NSView *)view;
  • (void)removeVoutSubview:(NSView *)view; @end

Or it can be an NSView object.

If you want to use it along with Qt4 see the QMacCocoaViewContainer. Then the following code should work: { NSView *video = [[NSView alloc] init]; QMacCocoaViewContainer *container = new QMacCocoaViewContainer(video, parent); libvlc_media_player_set_nsobject(mp, video); [video release]; }

You can find a live example in VLCVideoView in VLCKit.framework.

Parameters:
p_mi the Media Player
drawable the drawable that is either an NSView or an object following the VLCOpenGLVideoViewEmbedding protocol.
LIBVLC_API void libvlc_media_player_set_pause ( libvlc_media_player_t mp,
int  do_pause 
)

Pause or resume (no effect if there is no media).

Parameters:
mp the Media Player
do_pause play/resume if zero, pause if non-zero
Version:
LibVLC 1.1.1 or later
LIBVLC_API void libvlc_media_player_set_position ( libvlc_media_player_t p_mi,
float  f_pos 
)

Set movie position as percentage between 0.0 and 1.0.

This has no effect if playback is not enabled. This might not work depending on the underlying input format and protocol.

Parameters:
p_mi the Media Player
f_pos the position
LIBVLC_API int libvlc_media_player_set_rate ( libvlc_media_player_t p_mi,
float  rate 
)

Set movie play rate.

Parameters:
p_mi the Media Player
rate movie play rate to set
Returns:
-1 if an error was detected, 0 otherwise (but even then, it might not actually work depending on the underlying media protocol)
LIBVLC_API void libvlc_media_player_set_time ( libvlc_media_player_t p_mi,
libvlc_time_t  i_time 
)

Set the movie time (in ms).

This has no effect if no media is being played. Not all formats and protocols support this.

Parameters:
p_mi the Media Player
i_time the movie time (in ms).
LIBVLC_API void libvlc_media_player_set_title ( libvlc_media_player_t p_mi,
int  i_title 
)

Set movie title.

Parameters:
p_mi the Media Player
i_title title number to play
LIBVLC_API void libvlc_media_player_set_xwindow ( libvlc_media_player_t p_mi,
uint32_t  drawable 
)

Set an X Window System drawable where the media player should render its video output.

If LibVLC was built without X11 output support, then this has no effects.

The specified identifier must correspond to an existing Input/Output class X11 window. Pixmaps are not supported. The caller shall ensure that the X11 server is the same as the one the VLC instance has been configured with. This function must be called before video playback is started; otherwise it will only take effect after playback stop and restart.

Parameters:
p_mi the Media Player
drawable the ID of the X window
LIBVLC_API void libvlc_media_player_stop ( libvlc_media_player_t p_mi  ) 

Stop (no effect if there is no media).

Parameters:
p_mi the Media Player
LIBVLC_API int libvlc_media_player_will_play ( libvlc_media_player_t p_mi  ) 

Is the player able to play.

Parameters:
p_mi the Media Player
Returns:
boolean
LIBVLC_API void libvlc_track_description_list_release ( libvlc_track_description_t p_track_description  ) 

Release (free) libvlc_track_description_t.

Parameters:
p_track_description the structure to release
LIBVLC_DEPRECATED LIBVLC_API void libvlc_track_description_release ( libvlc_track_description_t p_track_description  ) 
Deprecated:
Use libvlc_track_description_list_release instead
LIBVLC_API void libvlc_video_set_callbacks ( libvlc_media_player_t mp,
libvlc_video_lock_cb  lock,
libvlc_video_unlock_cb  unlock,
libvlc_video_display_cb  display,
void *  opaque 
)

Set callbacks and private data to render decoded video to a custom area in memory.

Use libvlc_video_set_format() or libvlc_video_set_format_callbacks() to configure the decoded format.

Parameters:
mp the media player
lock callback to lock video memory (must not be NULL)
unlock callback to unlock video memory (or NULL if not needed)
display callback to display video (or NULL if not needed)
opaque private pointer for the three callbacks (as first parameter)
Version:
LibVLC 1.1.1 or later
LIBVLC_API void libvlc_video_set_format ( libvlc_media_player_t mp,
const char *  chroma,
unsigned  width,
unsigned  height,
unsigned  pitch 
)

Set decoded video chroma and dimensions.

This only works in combination with libvlc_video_set_callbacks(), and is mutually exclusive with libvlc_video_set_format_callbacks().

Parameters:
mp the media player
chroma a four-characters string identifying the chroma (e.g. "RV32" or "YUYV")
width pixel width
height pixel height
pitch line pitch (in bytes)
Version:
LibVLC 1.1.1 or later
Bug:
All pixel planes are expected to have the same pitch. To use the YCbCr color space with chrominance subsampling, consider using libvlc_video_set_format_callbacks() instead.
LIBVLC_API void libvlc_video_set_format_callbacks ( libvlc_media_player_t mp,
libvlc_video_format_cb  setup,
libvlc_video_cleanup_cb  cleanup 
)

Set decoded video chroma and dimensions.

This only works in combination with libvlc_video_set_callbacks().

Parameters:
mp the media player
setup callback to select the video format (cannot be NULL)
cleanup callback to release any allocated resources (or NULL)
Version:
LibVLC 2.0.0 or later
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines