VLC  3.0.21
libvlc_media_player.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * libvlc_media_player.h: libvlc_media_player external API
3  *****************************************************************************
4  * Copyright (C) 1998-2015 VLC authors and VideoLAN
5  * $Id$
6  *
7  * Authors: ClĂ©ment Stenac <zorglub@videolan.org>
8  * Jean-Paul Saman <jpsaman@videolan.org>
9  * Pierre d'Herbemont <pdherbemont@videolan.org>
10  *
11  * This program is free software; you can redistribute it and/or modify it
12  * under the terms of the GNU Lesser General Public License as published by
13  * the Free Software Foundation; either version 2.1 of the License, or
14  * (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU Lesser General Public License for more details.
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * along with this program; if not, write to the Free Software Foundation,
23  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
24  *****************************************************************************/
25 
26 #ifndef VLC_LIBVLC_MEDIA_PLAYER_H
27 #define VLC_LIBVLC_MEDIA_PLAYER_H 1
28 
29 # ifdef __cplusplus
30 extern "C" {
31 # else
32 # include <stdbool.h>
33 # endif
34 
35 /** \defgroup libvlc_media_player LibVLC media player
36  * \ingroup libvlc
37  * A LibVLC media player plays one media (usually in a custom drawable).
38  * @{
39  * \file
40  * LibVLC simple media player external API
41  */
42 
44 
45 /**
46  * Description for video, audio tracks and subtitles. It contains
47  * id, name (description string) and pointer to next record.
48  */
49 typedef struct libvlc_track_description_t
50 {
51  int i_id;
52  char *psz_name;
54 
56 
57 /**
58  * Description for titles
59  */
60 enum
61 {
64 };
65 
66 typedef struct libvlc_title_description_t
67 {
68  int64_t i_duration; /**< duration in milliseconds */
69  char *psz_name; /**< title name */
70  unsigned i_flags; /**< info if item was recognized as a menu, interactive or plain content by the demuxer */
72 
73 /**
74  * Description for chapters
75  */
76 typedef struct libvlc_chapter_description_t
77 {
78  int64_t i_time_offset; /**< time-offset of the chapter in milliseconds */
79  int64_t i_duration; /**< duration of the chapter in milliseconds */
80  char *psz_name; /**< chapter name */
82 
83 /**
84  * Description for audio output. It contains
85  * name, description and pointer to next record.
86  */
87 typedef struct libvlc_audio_output_t
88 {
89  char *psz_name;
92 
94 
95 /**
96  * Description for audio output device.
97  */
98 typedef struct libvlc_audio_output_device_t
99 {
100  struct libvlc_audio_output_device_t *p_next; /**< Next entry in list */
101  char *psz_device; /**< Device identifier string */
102  char *psz_description; /**< User-friendly device description */
103  /* More fields may be added here in later versions */
105 
106 /**
107  * Marq options definition
108  */
111  libvlc_marquee_Text, /** string argument */
121 
122 /**
123  * Navigation mode
124  */
125 typedef enum libvlc_navigate_mode_t
126 {
134 
135 /**
136  * Enumeration of values used to set position (e.g. of video title).
137  */
138 typedef enum libvlc_position_t {
150 
151 /**
152  * Enumeration of teletext keys than can be passed via
153  * libvlc_video_set_teletext()
154  */
155 typedef enum libvlc_teletext_key_t {
160  libvlc_teletext_key_index = 'i' << 16,
162 
163 /**
164  * Opaque equalizer handle.
165  *
166  * Equalizer settings can be applied to a media player.
167  */
169 
170 /**
171  * Create an empty Media Player object
172  *
173  * \param p_libvlc_instance the libvlc instance in which the Media Player
174  * should be created.
175  * \return a new media player object, or NULL on error.
176  */
178 
179 /**
180  * Create a Media Player object from a Media
181  *
182  * \param p_md the media. Afterwards the p_md can be safely
183  * destroyed.
184  * \return a new media player object, or NULL on error.
185  */
187 
188 /**
189  * Release a media_player after use
190  * Decrement the reference count of a media player object. If the
191  * reference count is 0, then libvlc_media_player_release() will
192  * release the media player object. If the media player object
193  * has been released, then it should not be used again.
194  *
195  * \param p_mi the Media Player to free
196  */
198 
199 /**
200  * Retain a reference to a media player object. Use
201  * libvlc_media_player_release() to decrement reference count.
202  *
203  * \param p_mi media player object
204  */
206 
207 /**
208  * Set the media that will be used by the media_player. If any,
209  * previous md will be released.
210  *
211  * \param p_mi the Media Player
212  * \param p_md the Media. Afterwards the p_md can be safely
213  * destroyed.
214  */
216  libvlc_media_t *p_md );
217 
218 /**
219  * Get the media used by the media_player.
220  *
221  * \param p_mi the Media Player
222  * \return the media associated with p_mi, or NULL if no
223  * media is associated
224  */
226 
227 /**
228  * Get the Event Manager from which the media player send event.
229  *
230  * \param p_mi the Media Player
231  * \return the event manager associated with p_mi
232  */
234 
235 /**
236  * is_playing
237  *
238  * \param p_mi the Media Player
239  * \return 1 if the media player is playing, 0 otherwise
240  *
241  * \libvlc_return_bool
242  */
244 
245 /**
246  * Play
247  *
248  * \param p_mi the Media Player
249  * \return 0 if playback started (and was already started), or -1 on error.
250  */
252 
253 /**
254  * Pause or resume (no effect if there is no media)
255  *
256  * \param mp the Media Player
257  * \param do_pause play/resume if zero, pause if non-zero
258  * \version LibVLC 1.1.1 or later
259  */
261  int do_pause );
262 
263 /**
264  * Toggle pause (no effect if there is no media)
265  *
266  * \param p_mi the Media Player
267  */
269 
270 /**
271  * Stop (no effect if there is no media)
272  *
273  * \param p_mi the Media Player
274  */
276 
277 /**
278  * Set a renderer to the media player
279  *
280  * \note must be called before the first call of libvlc_media_player_play() to
281  * take effect.
282  *
283  * \see libvlc_renderer_discoverer_new
284  *
285  * \param p_mi the Media Player
286  * \param p_item an item discovered by libvlc_renderer_discoverer_start()
287  * \return 0 on success, -1 on error.
288  * \version LibVLC 3.0.0 or later
289  */
291  libvlc_renderer_item_t *p_item );
292 
293 /**
294  * Callback prototype to allocate and lock a picture buffer.
295  *
296  * Whenever a new video frame needs to be decoded, the lock callback is
297  * invoked. Depending on the video chroma, one or three pixel planes of
298  * adequate dimensions must be returned via the second parameter. Those
299  * planes must be aligned on 32-bytes boundaries.
300  *
301  * \param opaque private pointer as passed to libvlc_video_set_callbacks() [IN]
302  * \param planes start address of the pixel planes (LibVLC allocates the array
303  * of void pointers, this callback must initialize the array) [OUT]
304  * \return a private pointer for the display and unlock callbacks to identify
305  * the picture buffers
306  */
307 typedef void *(*libvlc_video_lock_cb)(void *opaque, void **planes);
308 
309 /**
310  * Callback prototype to unlock a picture buffer.
311  *
312  * When the video frame decoding is complete, the unlock callback is invoked.
313  * This callback might not be needed at all. It is only an indication that the
314  * application can now read the pixel values if it needs to.
315  *
316  * \note A picture buffer is unlocked after the picture is decoded,
317  * but before the picture is displayed.
318  *
319  * \param opaque private pointer as passed to libvlc_video_set_callbacks() [IN]
320  * \param picture private pointer returned from the @ref libvlc_video_lock_cb
321  * callback [IN]
322  * \param planes pixel planes as defined by the @ref libvlc_video_lock_cb
323  * callback (this parameter is only for convenience) [IN]
324  */
325 typedef void (*libvlc_video_unlock_cb)(void *opaque, void *picture,
326  void *const *planes);
327 
328 /**
329  * Callback prototype to display a picture.
330  *
331  * When the video frame needs to be shown, as determined by the media playback
332  * clock, the display callback is invoked.
333  *
334  * \param opaque private pointer as passed to libvlc_video_set_callbacks() [IN]
335  * \param picture private pointer returned from the @ref libvlc_video_lock_cb
336  * callback [IN]
337  */
338 typedef void (*libvlc_video_display_cb)(void *opaque, void *picture);
339 
340 /**
341  * Callback prototype to configure picture buffers format.
342  * This callback gets the format of the video as output by the video decoder
343  * and the chain of video filters (if any). It can opt to change any parameter
344  * as it needs. In that case, LibVLC will attempt to convert the video format
345  * (rescaling and chroma conversion) but these operations can be CPU intensive.
346  *
347  * \param opaque pointer to the private pointer passed to
348  * libvlc_video_set_callbacks() [IN/OUT]
349  * \param chroma pointer to the 4 bytes video format identifier [IN/OUT]
350  * \param width pointer to the pixel width [IN/OUT]
351  * \param height pointer to the pixel height [IN/OUT]
352  * \param pitches table of scanline pitches in bytes for each pixel plane
353  * (the table is allocated by LibVLC) [OUT]
354  * \param lines table of scanlines count for each plane [OUT]
355  * \return the number of picture buffers allocated, 0 indicates failure
356  *
357  * \note
358  * For each pixels plane, the scanline pitch must be bigger than or equal to
359  * the number of bytes per pixel multiplied by the pixel width.
360  * Similarly, the number of scanlines must be bigger than of equal to
361  * the pixel height.
362  * Furthermore, we recommend that pitches and lines be multiple of 32
363  * to not break assumptions that might be held by optimized code
364  * in the video decoders, video filters and/or video converters.
365  */
366 typedef unsigned (*libvlc_video_format_cb)(void **opaque, char *chroma,
367  unsigned *width, unsigned *height,
368  unsigned *pitches,
369  unsigned *lines);
370 
371 /**
372  * Callback prototype to configure picture buffers format.
373  *
374  * \param opaque private pointer as passed to libvlc_video_set_callbacks()
375  * (and possibly modified by @ref libvlc_video_format_cb) [IN]
376  */
377 typedef void (*libvlc_video_cleanup_cb)(void *opaque);
378 
379 
380 /**
381  * Set callbacks and private data to render decoded video to a custom area
382  * in memory.
383  * Use libvlc_video_set_format() or libvlc_video_set_format_callbacks()
384  * to configure the decoded format.
385  *
386  * \warning Rendering video into custom memory buffers is considerably less
387  * efficient than rendering in a custom window as normal.
388  *
389  * For optimal perfomances, VLC media player renders into a custom window, and
390  * does not use this function and associated callbacks. It is <b>highly
391  * recommended</b> that other LibVLC-based application do likewise.
392  * To embed video in a window, use libvlc_media_player_set_xid() or equivalent
393  * depending on the operating system.
394  *
395  * If window embedding does not fit the application use case, then a custom
396  * LibVLC video output display plugin is required to maintain optimal video
397  * rendering performances.
398  *
399  * The following limitations affect performance:
400  * - Hardware video decoding acceleration will either be disabled completely,
401  * or require (relatively slow) copy from video/DSP memory to main memory.
402  * - Sub-pictures (subtitles, on-screen display, etc.) must be blent into the
403  * main picture by the CPU instead of the GPU.
404  * - Depending on the video format, pixel format conversion, picture scaling,
405  * cropping and/or picture re-orientation, must be performed by the CPU
406  * instead of the GPU.
407  * - Memory copying is required between LibVLC reference picture buffers and
408  * application buffers (between lock and unlock callbacks).
409  *
410  * \param mp the media player
411  * \param lock callback to lock video memory (must not be NULL)
412  * \param unlock callback to unlock video memory (or NULL if not needed)
413  * \param display callback to display video (or NULL if not needed)
414  * \param opaque private pointer for the three callbacks (as first parameter)
415  * \version LibVLC 1.1.1 or later
416  */
420  libvlc_video_unlock_cb unlock,
421  libvlc_video_display_cb display,
422  void *opaque );
423 
424 /**
425  * Set decoded video chroma and dimensions.
426  * This only works in combination with libvlc_video_set_callbacks(),
427  * and is mutually exclusive with libvlc_video_set_format_callbacks().
428  *
429  * \param mp the media player
430  * \param chroma a four-characters string identifying the chroma
431  * (e.g. "RV32" or "YUYV")
432  * \param width pixel width
433  * \param height pixel height
434  * \param pitch line pitch (in bytes)
435  * \version LibVLC 1.1.1 or later
436  * \bug All pixel planes are expected to have the same pitch.
437  * To use the YCbCr color space with chrominance subsampling,
438  * consider using libvlc_video_set_format_callbacks() instead.
439  */
441 void libvlc_video_set_format( libvlc_media_player_t *mp, const char *chroma,
442  unsigned width, unsigned height,
443  unsigned pitch );
444 
445 /**
446  * Set decoded video chroma and dimensions. This only works in combination with
447  * libvlc_video_set_callbacks().
448  *
449  * \param mp the media player
450  * \param setup callback to select the video format (cannot be NULL)
451  * \param cleanup callback to release any allocated resources (or NULL)
452  * \version LibVLC 2.0.0 or later
453  */
457  libvlc_video_cleanup_cb cleanup );
458 
459 /**
460  * Set the NSView handler where the media player should render its video output.
461  *
462  * Use the vout called "macosx".
463  *
464  * The drawable is an NSObject that follow the VLCOpenGLVideoViewEmbedding
465  * protocol:
466  *
467  * @code{.m}
468  * \@protocol VLCOpenGLVideoViewEmbedding <NSObject>
469  * - (void)addVoutSubview:(NSView *)view;
470  * - (void)removeVoutSubview:(NSView *)view;
471  * \@end
472  * @endcode
473  *
474  * Or it can be an NSView object.
475  *
476  * If you want to use it along with Qt see the QMacCocoaViewContainer. Then
477  * the following code should work:
478  * @code{.mm}
479  * {
480  * NSView *video = [[NSView alloc] init];
481  * QMacCocoaViewContainer *container = new QMacCocoaViewContainer(video, parent);
482  * libvlc_media_player_set_nsobject(mp, video);
483  * [video release];
484  * }
485  * @endcode
486  *
487  * You can find a live example in VLCVideoView in VLCKit.framework.
488  *
489  * \param p_mi the Media Player
490  * \param drawable the drawable that is either an NSView or an object following
491  * the VLCOpenGLVideoViewEmbedding protocol.
492  */
494 
495 /**
496  * Get the NSView handler previously set with libvlc_media_player_set_nsobject().
497  *
498  * \param p_mi the Media Player
499  * \return the NSView handler or 0 if none where set
500  */
502 
503 /**
504  * Set an X Window System drawable where the media player should render its
505  * video output. The call takes effect when the playback starts. If it is
506  * already started, it might need to be stopped before changes apply.
507  * If LibVLC was built without X11 output support, then this function has no
508  * effects.
509  *
510  * By default, LibVLC will capture input events on the video rendering area.
511  * Use libvlc_video_set_mouse_input() and libvlc_video_set_key_input() to
512  * disable that and deliver events to the parent window / to the application
513  * instead. By design, the X11 protocol delivers input events to only one
514  * recipient.
515  *
516  * \warning
517  * The application must call the XInitThreads() function from Xlib before
518  * libvlc_new(), and before any call to XOpenDisplay() directly or via any
519  * other library. Failure to call XInitThreads() will seriously impede LibVLC
520  * performance. Calling XOpenDisplay() before XInitThreads() will eventually
521  * crash the process. That is a limitation of Xlib.
522  *
523  * \param p_mi media player
524  * \param drawable X11 window ID
525  *
526  * \note
527  * The specified identifier must correspond to an existing Input/Output class
528  * X11 window. Pixmaps are <b>not</b> currently supported. The default X11
529  * server is assumed, i.e. that specified in the DISPLAY environment variable.
530  *
531  * \warning
532  * LibVLC can deal with invalid X11 handle errors, however some display drivers
533  * (EGL, GLX, VA and/or VDPAU) can unfortunately not. Thus the window handle
534  * must remain valid until playback is stopped, otherwise the process may
535  * abort or crash.
536  *
537  * \bug
538  * No more than one window handle per media player instance can be specified.
539  * If the media has multiple simultaneously active video tracks, extra tracks
540  * will be rendered into external windows beyond the control of the
541  * application.
542  */
544  uint32_t drawable);
545 
546 /**
547  * Get the X Window System window identifier previously set with
548  * libvlc_media_player_set_xwindow(). Note that this will return the identifier
549  * even if VLC is not currently using it (for instance if it is playing an
550  * audio-only input).
551  *
552  * \param p_mi the Media Player
553  * \return an X window ID, or 0 if none where set.
554  */
556 
557 /**
558  * Set a Win32/Win64 API window handle (HWND) where the media player should
559  * render its video output. If LibVLC was built without Win32/Win64 API output
560  * support, then this has no effects.
561  *
562  * \warning the HWND must have the WS_CLIPCHILDREN set in its style.
563  *
564  * \param p_mi the Media Player
565  * \param drawable windows handle of the drawable
566  */
567 LIBVLC_API void libvlc_media_player_set_hwnd ( libvlc_media_player_t *p_mi, void *drawable );
568 
569 /**
570  * Get the Windows API window handle (HWND) previously set with
571  * libvlc_media_player_set_hwnd(). The handle will be returned even if LibVLC
572  * is not currently outputting any video to it.
573  *
574  * \param p_mi the Media Player
575  * \return a window handle or NULL if there are none.
576  */
578 
579 /**
580  * Set the android context.
581  *
582  * \version LibVLC 3.0.0 and later.
583  *
584  * \param p_mi the media player
585  * \param p_awindow_handler org.videolan.libvlc.AWindow jobject owned by the
586  * org.videolan.libvlc.MediaPlayer class from the libvlc-android project.
587  */
589  void *p_awindow_handler );
590 
591 /**
592  * Set the EFL Evas Object.
593  *
594  * \version LibVLC 3.0.0 and later.
595  *
596  * \param p_mi the media player
597  * \param p_evas_object a valid EFL Evas Object (Evas_Object)
598  * \return -1 if an error was detected, 0 otherwise.
599  */
601  void *p_evas_object );
602 
603 
604 /**
605  * Callback prototype for audio playback.
606  *
607  * The LibVLC media player decodes and post-processes the audio signal
608  * asynchronously (in an internal thread). Whenever audio samples are ready
609  * to be queued to the output, this callback is invoked.
610  *
611  * The number of samples provided per invocation may depend on the file format,
612  * the audio coding algorithm, the decoder plug-in, the post-processing
613  * filters and timing. Application must not assume a certain number of samples.
614  *
615  * The exact format of audio samples is determined by libvlc_audio_set_format()
616  * or libvlc_audio_set_format_callbacks() as is the channels layout.
617  *
618  * Note that the number of samples is per channel. For instance, if the audio
619  * track sampling rate is 48000 Hz, then 1200 samples represent 25 milliseconds
620  * of audio signal - regardless of the number of audio channels.
621  *
622  * \param data data pointer as passed to libvlc_audio_set_callbacks() [IN]
623  * \param samples pointer to a table of audio samples to play back [IN]
624  * \param count number of audio samples to play back
625  * \param pts expected play time stamp (see libvlc_delay())
626  */
627 typedef void (*libvlc_audio_play_cb)(void *data, const void *samples,
628  unsigned count, int64_t pts);
629 
630 /**
631  * Callback prototype for audio pause.
632  *
633  * LibVLC invokes this callback to pause audio playback.
634  *
635  * \note The pause callback is never called if the audio is already paused.
636  * \param data data pointer as passed to libvlc_audio_set_callbacks() [IN]
637  * \param pts time stamp of the pause request (should be elapsed already)
638  */
639 typedef void (*libvlc_audio_pause_cb)(void *data, int64_t pts);
640 
641 /**
642  * Callback prototype for audio resumption.
643  *
644  * LibVLC invokes this callback to resume audio playback after it was
645  * previously paused.
646  *
647  * \note The resume callback is never called if the audio is not paused.
648  * \param data data pointer as passed to libvlc_audio_set_callbacks() [IN]
649  * \param pts time stamp of the resumption request (should be elapsed already)
650  */
651 typedef void (*libvlc_audio_resume_cb)(void *data, int64_t pts);
652 
653 /**
654  * Callback prototype for audio buffer flush.
655  *
656  * LibVLC invokes this callback if it needs to discard all pending buffers and
657  * stop playback as soon as possible. This typically occurs when the media is
658  * stopped.
659  *
660  * \param data data pointer as passed to libvlc_audio_set_callbacks() [IN]
661  */
662 typedef void (*libvlc_audio_flush_cb)(void *data, int64_t pts);
663 
664 /**
665  * Callback prototype for audio buffer drain.
666  *
667  * LibVLC may invoke this callback when the decoded audio track is ending.
668  * There will be no further decoded samples for the track, but playback should
669  * nevertheless continue until all already pending buffers are rendered.
670  *
671  * \param data data pointer as passed to libvlc_audio_set_callbacks() [IN]
672  */
673 typedef void (*libvlc_audio_drain_cb)(void *data);
674 
675 /**
676  * Callback prototype for audio volume change.
677  * \param data data pointer as passed to libvlc_audio_set_callbacks() [IN]
678  * \param volume software volume (1. = nominal, 0. = mute)
679  * \param mute muted flag
680  */
681 typedef void (*libvlc_audio_set_volume_cb)(void *data,
682  float volume, bool mute);
683 
684 /**
685  * Sets callbacks and private data for decoded audio.
686  *
687  * Use libvlc_audio_set_format() or libvlc_audio_set_format_callbacks()
688  * to configure the decoded audio format.
689  *
690  * \note The audio callbacks override any other audio output mechanism.
691  * If the callbacks are set, LibVLC will <b>not</b> output audio in any way.
692  *
693  * \param mp the media player
694  * \param play callback to play audio samples (must not be NULL)
695  * \param pause callback to pause playback (or NULL to ignore)
696  * \param resume callback to resume playback (or NULL to ignore)
697  * \param flush callback to flush audio buffers (or NULL to ignore)
698  * \param drain callback to drain audio buffers (or NULL to ignore)
699  * \param opaque private pointer for the audio callbacks (as first parameter)
700  * \version LibVLC 2.0.0 or later
701  */
705  libvlc_audio_pause_cb pause,
706  libvlc_audio_resume_cb resume,
707  libvlc_audio_flush_cb flush,
708  libvlc_audio_drain_cb drain,
709  void *opaque );
710 
711 /**
712  * Set callbacks and private data for decoded audio. This only works in
713  * combination with libvlc_audio_set_callbacks().
714  * Use libvlc_audio_set_format() or libvlc_audio_set_format_callbacks()
715  * to configure the decoded audio format.
716  *
717  * \param mp the media player
718  * \param set_volume callback to apply audio volume,
719  * or NULL to apply volume in software
720  * \version LibVLC 2.0.0 or later
721  */
724  libvlc_audio_set_volume_cb set_volume );
725 
726 /**
727  * Callback prototype to setup the audio playback.
728  *
729  * This is called when the media player needs to create a new audio output.
730  * \param opaque pointer to the data pointer passed to
731  * libvlc_audio_set_callbacks() [IN/OUT]
732  * \param format 4 bytes sample format [IN/OUT]
733  * \param rate sample rate [IN/OUT]
734  * \param channels channels count [IN/OUT]
735  * \return 0 on success, anything else to skip audio playback
736  */
737 typedef int (*libvlc_audio_setup_cb)(void **data, char *format, unsigned *rate,
738  unsigned *channels);
739 
740 /**
741  * Callback prototype for audio playback cleanup.
742  *
743  * This is called when the media player no longer needs an audio output.
744  * \param opaque data pointer as passed to libvlc_audio_set_callbacks() [IN]
745  */
746 typedef void (*libvlc_audio_cleanup_cb)(void *data);
747 
748 /**
749  * Sets decoded audio format via callbacks.
750  *
751  * This only works in combination with libvlc_audio_set_callbacks().
752  *
753  * \param mp the media player
754  * \param setup callback to select the audio format (cannot be NULL)
755  * \param cleanup callback to release any allocated resources (or NULL)
756  * \version LibVLC 2.0.0 or later
757  */
760  libvlc_audio_setup_cb setup,
761  libvlc_audio_cleanup_cb cleanup );
762 
763 /**
764  * Sets a fixed decoded audio format.
765  *
766  * This only works in combination with libvlc_audio_set_callbacks(),
767  * and is mutually exclusive with libvlc_audio_set_format_callbacks().
768  *
769  * \param mp the media player
770  * \param format a four-characters string identifying the sample format
771  * (e.g. "S16N" or "f32l")
772  * \param rate sample rate (expressed in Hz)
773  * \param channels channels count
774  * \version LibVLC 2.0.0 or later
775  */
777 void libvlc_audio_set_format( libvlc_media_player_t *mp, const char *format,
778  unsigned rate, unsigned channels );
779 
780 /** \bug This might go away ... to be replaced by a broader system */
781 
782 /**
783  * Get the current movie length (in ms).
784  *
785  * \param p_mi the Media Player
786  * \return the movie length (in ms), or -1 if there is no media.
787  */
789 
790 /**
791  * Get the current movie time (in ms).
792  *
793  * \param p_mi the Media Player
794  * \return the movie time (in ms), or -1 if there is no media.
795  */
797 
798 /**
799  * Set the movie time (in ms). This has no effect if no media is being played.
800  * Not all formats and protocols support this.
801  *
802  * \param p_mi the Media Player
803  * \param i_time the movie time (in ms).
804  */
806 
807 /**
808  * Get movie position as percentage between 0.0 and 1.0.
809  *
810  * \param p_mi the Media Player
811  * \return movie position, or -1. in case of error
812  */
814 
815 /**
816  * Set movie position as percentage between 0.0 and 1.0.
817  * This has no effect if playback is not enabled.
818  * This might not work depending on the underlying input format and protocol.
819  *
820  * \param p_mi the Media Player
821  * \param f_pos the position
822  */
824 
825 /**
826  * Set movie chapter (if applicable).
827  *
828  * \param p_mi the Media Player
829  * \param i_chapter chapter number to play
830  */
832 
833 /**
834  * Get movie chapter.
835  *
836  * \param p_mi the Media Player
837  * \return chapter number currently playing, or -1 if there is no media.
838  */
840 
841 /**
842  * Get movie chapter count
843  *
844  * \param p_mi the Media Player
845  * \return number of chapters in movie, or -1.
846  */
848 
849 /**
850  * Is the player able to play
851  *
852  * \param p_mi the Media Player
853  * \return boolean
854  *
855  * \libvlc_return_bool
856  */
858 
859 /**
860  * Get title chapter count
861  *
862  * \param p_mi the Media Player
863  * \param i_title title
864  * \return number of chapters in title, or -1
865  */
867  libvlc_media_player_t *p_mi, int i_title );
868 
869 /**
870  * Set movie title
871  *
872  * \param p_mi the Media Player
873  * \param i_title title number to play
874  */
876 
877 /**
878  * Get movie title
879  *
880  * \param p_mi the Media Player
881  * \return title number currently playing, or -1
882  */
884 
885 /**
886  * Get movie title count
887  *
888  * \param p_mi the Media Player
889  * \return title number count, or -1
890  */
892 
893 /**
894  * Set previous chapter (if applicable)
895  *
896  * \param p_mi the Media Player
897  */
899 
900 /**
901  * Set next chapter (if applicable)
902  *
903  * \param p_mi the Media Player
904  */
906 
907 /**
908  * Get the requested movie play rate.
909  * @warning Depending on the underlying media, the requested rate may be
910  * different from the real playback rate.
911  *
912  * \param p_mi the Media Player
913  * \return movie play rate
914  */
916 
917 /**
918  * Set movie play rate
919  *
920  * \param p_mi the Media Player
921  * \param rate movie play rate to set
922  * \return -1 if an error was detected, 0 otherwise (but even then, it might
923  * not actually work depending on the underlying media protocol)
924  */
926 
927 /**
928  * Get current movie state
929  *
930  * \param p_mi the Media Player
931  * \return the current state of the media player (playing, paused, ...) \see libvlc_state_t
932  */
934 
935 /**
936  * How many video outputs does this media player have?
937  *
938  * \param p_mi the media player
939  * \return the number of video outputs
940  */
942 
943 /**
944  * Is this media player seekable?
945  *
946  * \param p_mi the media player
947  * \return true if the media player can seek
948  *
949  * \libvlc_return_bool
950  */
952 
953 /**
954  * Can this media player be paused?
955  *
956  * \param p_mi the media player
957  * \return true if the media player can pause
958  *
959  * \libvlc_return_bool
960  */
962 
963 /**
964  * Check if the current program is scrambled
965  *
966  * \param p_mi the media player
967  * \return true if the current program is scrambled
968  *
969  * \libvlc_return_bool
970  * \version LibVLC 2.2.0 or later
971  */
973 
974 /**
975  * Display the next frame (if supported)
976  *
977  * \param p_mi the media player
978  */
980 
981 /**
982  * Navigate through DVD Menu
983  *
984  * \param p_mi the Media Player
985  * \param navigate the Navigation mode
986  * \version libVLC 2.0.0 or later
987  */
989  unsigned navigate );
990 
991 /**
992  * Set if, and how, the video title will be shown when media is played.
993  *
994  * \param p_mi the media player
995  * \param position position at which to display the title, or libvlc_position_disable to prevent the title from being displayed
996  * \param timeout title display timeout in milliseconds (ignored if libvlc_position_disable)
997  * \version libVLC 2.1.0 or later
998  */
1000 
1001 /**
1002  * Add a slave to the current media player.
1003  *
1004  * \note If the player is playing, the slave will be added directly. This call
1005  * will also update the slave list of the attached libvlc_media_t.
1006  *
1007  * \version LibVLC 3.0.0 and later.
1008  *
1009  * \see libvlc_media_slaves_add
1010  *
1011  * \param p_mi the media player
1012  * \param i_type subtitle or audio
1013  * \param psz_uri Uri of the slave (should contain a valid scheme).
1014  * \param b_select True if this slave should be selected when it's loaded
1015  *
1016  * \return 0 on success, -1 on error.
1017  */
1018 LIBVLC_API
1021  const char *psz_uri, bool b_select );
1022 
1023 /**
1024  * Release (free) libvlc_track_description_t
1025  *
1026  * \param p_track_description the structure to release
1027  */
1029 
1030 /** \defgroup libvlc_video LibVLC video controls
1031  * @{
1032  */
1033 
1034 /**
1035  * Toggle fullscreen status on non-embedded video outputs.
1036  *
1037  * @warning The same limitations applies to this function
1038  * as to libvlc_set_fullscreen().
1039  *
1040  * \param p_mi the media player
1041  */
1043 
1044 /**
1045  * Enable or disable fullscreen.
1046  *
1047  * @warning With most window managers, only a top-level windows can be in
1048  * full-screen mode. Hence, this function will not operate properly if
1049  * libvlc_media_player_set_xwindow() was used to embed the video in a
1050  * non-top-level window. In that case, the embedding window must be reparented
1051  * to the root window <b>before</b> fullscreen mode is enabled. You will want
1052  * to reparent it back to its normal parent when disabling fullscreen.
1053  *
1054  * \param p_mi the media player
1055  * \param b_fullscreen boolean for fullscreen status
1056  */
1057 LIBVLC_API void libvlc_set_fullscreen( libvlc_media_player_t *p_mi, int b_fullscreen );
1058 
1059 /**
1060  * Get current fullscreen status.
1061  *
1062  * \param p_mi the media player
1063  * \return the fullscreen status (boolean)
1064  *
1065  * \libvlc_return_bool
1066  */
1068 
1069 /**
1070  * Enable or disable key press events handling, according to the LibVLC hotkeys
1071  * configuration. By default and for historical reasons, keyboard events are
1072  * handled by the LibVLC video widget.
1073  *
1074  * \note On X11, there can be only one subscriber for key press and mouse
1075  * click events per window. If your application has subscribed to those events
1076  * for the X window ID of the video widget, then LibVLC will not be able to
1077  * handle key presses and mouse clicks in any case.
1078  *
1079  * \warning This function is only implemented for X11 and Win32 at the moment.
1080  *
1081  * \param p_mi the media player
1082  * \param on true to handle key press events, false to ignore them.
1083  */
1084 LIBVLC_API
1085 void libvlc_video_set_key_input( libvlc_media_player_t *p_mi, unsigned on );
1086 
1087 /**
1088  * Enable or disable mouse click events handling. By default, those events are
1089  * handled. This is needed for DVD menus to work, as well as a few video
1090  * filters such as "puzzle".
1091  *
1092  * \see libvlc_video_set_key_input().
1093  *
1094  * \warning This function is only implemented for X11 and Win32 at the moment.
1095  *
1096  * \param p_mi the media player
1097  * \param on true to handle mouse click events, false to ignore them.
1098  */
1099 LIBVLC_API
1100 void libvlc_video_set_mouse_input( libvlc_media_player_t *p_mi, unsigned on );
1101 
1102 /**
1103  * Get the pixel dimensions of a video.
1104  *
1105  * \param p_mi media player
1106  * \param num number of the video (starting from, and most commonly 0)
1107  * \param px pointer to get the pixel width [OUT]
1108  * \param py pointer to get the pixel height [OUT]
1109  * \return 0 on success, -1 if the specified video does not exist
1110  */
1111 LIBVLC_API
1112 int libvlc_video_get_size( libvlc_media_player_t *p_mi, unsigned num,
1113  unsigned *px, unsigned *py );
1114 
1115 /**
1116  * Get the mouse pointer coordinates over a video.
1117  * Coordinates are expressed in terms of the decoded video resolution,
1118  * <b>not</b> in terms of pixels on the screen/viewport (to get the latter,
1119  * you can query your windowing system directly).
1120  *
1121  * Either of the coordinates may be negative or larger than the corresponding
1122  * dimension of the video, if the cursor is outside the rendering area.
1123  *
1124  * @warning The coordinates may be out-of-date if the pointer is not located
1125  * on the video rendering area. LibVLC does not track the pointer if it is
1126  * outside of the video widget.
1127  *
1128  * @note LibVLC does not support multiple pointers (it does of course support
1129  * multiple input devices sharing the same pointer) at the moment.
1130  *
1131  * \param p_mi media player
1132  * \param num number of the video (starting from, and most commonly 0)
1133  * \param px pointer to get the abscissa [OUT]
1134  * \param py pointer to get the ordinate [OUT]
1135  * \return 0 on success, -1 if the specified video does not exist
1136  */
1137 LIBVLC_API
1138 int libvlc_video_get_cursor( libvlc_media_player_t *p_mi, unsigned num,
1139  int *px, int *py );
1140 
1141 /**
1142  * Get the current video scaling factor.
1143  * See also libvlc_video_set_scale().
1144  *
1145  * \param p_mi the media player
1146  * \return the currently configured zoom factor, or 0. if the video is set
1147  * to fit to the output window/drawable automatically.
1148  */
1150 
1151 /**
1152  * Set the video scaling factor. That is the ratio of the number of pixels on
1153  * screen to the number of pixels in the original decoded video in each
1154  * dimension. Zero is a special value; it will adjust the video to the output
1155  * window/drawable (in windowed mode) or the entire screen.
1156  *
1157  * Note that not all video outputs support scaling.
1158  *
1159  * \param p_mi the media player
1160  * \param f_factor the scaling factor, or zero
1161  */
1162 LIBVLC_API void libvlc_video_set_scale( libvlc_media_player_t *p_mi, float f_factor );
1163 
1164 /**
1165  * Get current video aspect ratio.
1166  *
1167  * \param p_mi the media player
1168  * \return the video aspect ratio or NULL if unspecified
1169  * (the result must be released with free() or libvlc_free()).
1170  */
1172 
1173 /**
1174  * Set new video aspect ratio.
1175  *
1176  * \param p_mi the media player
1177  * \param psz_aspect new video aspect-ratio or NULL to reset to default
1178  * \note Invalid aspect ratios are ignored.
1179  */
1180 LIBVLC_API void libvlc_video_set_aspect_ratio( libvlc_media_player_t *p_mi, const char *psz_aspect );
1181 
1182 /**
1183  * Create a video viewpoint structure.
1184  *
1185  * \version LibVLC 3.0.0 and later
1186  *
1187  * \return video viewpoint or NULL
1188  * (the result must be released with free() or libvlc_free()).
1189  */
1191 
1192 /**
1193  * Update the video viewpoint information.
1194  *
1195  * \note It is safe to call this function before the media player is started.
1196  *
1197  * \version LibVLC 3.0.0 and later
1198  *
1199  * \param p_mi the media player
1200  * \param p_viewpoint video viewpoint allocated via libvlc_video_new_viewpoint()
1201  * \param b_absolute if true replace the old viewpoint with the new one. If
1202  * false, increase/decrease it.
1203  * \return -1 in case of error, 0 otherwise
1204  *
1205  * \note the values are set asynchronously, it will be used by the next frame displayed.
1206  */
1208  const libvlc_video_viewpoint_t *p_viewpoint,
1209  bool b_absolute);
1210 
1211 /**
1212  * Get current video subtitle.
1213  *
1214  * \param p_mi the media player
1215  * \return the video subtitle selected, or -1 if none
1216  */
1218 
1219 /**
1220  * Get the number of available video subtitles.
1221  *
1222  * \param p_mi the media player
1223  * \return the number of available video subtitles
1224  */
1226 
1227 /**
1228  * Get the description of available video subtitles.
1229  *
1230  * \param p_mi the media player
1231  * \return list containing description of available video subtitles.
1232  * It must be freed with libvlc_track_description_list_release()
1233  */
1236 
1237 /**
1238  * Set new video subtitle.
1239  *
1240  * \param p_mi the media player
1241  * \param i_spu video subtitle track to select (i_id from track description)
1242  * \return 0 on success, -1 if out of range
1243  */
1244 LIBVLC_API int libvlc_video_set_spu( libvlc_media_player_t *p_mi, int i_spu );
1245 
1246 /**
1247  * Get the current subtitle delay. Positive values means subtitles are being
1248  * displayed later, negative values earlier.
1249  *
1250  * \param p_mi media player
1251  * \return time (in microseconds) the display of subtitles is being delayed
1252  * \version LibVLC 2.0.0 or later
1253  */
1255 
1256 /**
1257  * Set the subtitle delay. This affects the timing of when the subtitle will
1258  * be displayed. Positive values result in subtitles being displayed later,
1259  * while negative values will result in subtitles being displayed earlier.
1260  *
1261  * The subtitle delay will be reset to zero each time the media changes.
1262  *
1263  * \param p_mi media player
1264  * \param i_delay time (in microseconds) the display of subtitles should be delayed
1265  * \return 0 on success, -1 on error
1266  * \version LibVLC 2.0.0 or later
1267  */
1268 LIBVLC_API int libvlc_video_set_spu_delay( libvlc_media_player_t *p_mi, int64_t i_delay );
1269 
1270 /**
1271  * Get the full description of available titles
1272  *
1273  * \version LibVLC 3.0.0 and later.
1274  *
1275  * \param p_mi the media player
1276  * \param titles address to store an allocated array of title descriptions
1277  * descriptions (must be freed with libvlc_title_descriptions_release()
1278  * by the caller) [OUT]
1279  *
1280  * \return the number of titles (-1 on error)
1281  */
1283  libvlc_title_description_t ***titles );
1284 
1285 /**
1286  * Release a title description
1287  *
1288  * \version LibVLC 3.0.0 and later
1289  *
1290  * \param p_titles title description array to release
1291  * \param i_count number of title descriptions to release
1292  */
1293 LIBVLC_API
1295  unsigned i_count );
1296 
1297 /**
1298  * Get the full description of available chapters
1299  *
1300  * \version LibVLC 3.0.0 and later.
1301  *
1302  * \param p_mi the media player
1303  * \param i_chapters_of_title index of the title to query for chapters (uses current title if set to -1)
1304  * \param pp_chapters address to store an allocated array of chapter descriptions
1305  * descriptions (must be freed with libvlc_chapter_descriptions_release()
1306  * by the caller) [OUT]
1307  *
1308  * \return the number of chapters (-1 on error)
1309  */
1311  int i_chapters_of_title,
1312  libvlc_chapter_description_t *** pp_chapters );
1313 
1314 /**
1315  * Release a chapter description
1316  *
1317  * \version LibVLC 3.0.0 and later
1318  *
1319  * \param p_chapters chapter description array to release
1320  * \param i_count number of chapter descriptions to release
1321  */
1322 LIBVLC_API
1324  unsigned i_count );
1325 
1326 /**
1327  * Get current crop filter geometry.
1328  *
1329  * \param p_mi the media player
1330  * \return the crop filter geometry or NULL if unset
1331  */
1333 
1334 /**
1335  * Set new crop filter geometry.
1336  *
1337  * \param p_mi the media player
1338  * \param psz_geometry new crop filter geometry (NULL to unset)
1339  */
1340 LIBVLC_API
1341 void libvlc_video_set_crop_geometry( libvlc_media_player_t *p_mi, const char *psz_geometry );
1342 
1343 /**
1344  * Get current teletext page requested or 0 if it's disabled.
1345  *
1346  * Teletext is disabled by default, call libvlc_video_set_teletext() to enable
1347  * it.
1348  *
1349  * \param p_mi the media player
1350  * \return the current teletext page requested.
1351  */
1353 
1354 /**
1355  * Set new teletext page to retrieve.
1356  *
1357  * This function can also be used to send a teletext key.
1358  *
1359  * \param p_mi the media player
1360  * \param i_page teletex page number requested. This value can be 0 to disable
1361  * teletext, a number in the range ]0;1000[ to show the requested page, or a
1362  * \ref libvlc_teletext_key_t. 100 is the default teletext page.
1363  */
1365 
1366 /**
1367  * Get number of available video tracks.
1368  *
1369  * \param p_mi media player
1370  * \return the number of available video tracks (int)
1371  */
1373 
1374 /**
1375  * Get the description of available video tracks.
1376  *
1377  * \param p_mi media player
1378  * \return list with description of available video tracks, or NULL on error.
1379  * It must be freed with libvlc_track_description_list_release()
1380  */
1383 
1384 /**
1385  * Get current video track.
1386  *
1387  * \param p_mi media player
1388  * \return the video track ID (int) or -1 if no active input
1389  */
1391 
1392 /**
1393  * Set video track.
1394  *
1395  * \param p_mi media player
1396  * \param i_track the track ID (i_id field from track description)
1397  * \return 0 on success, -1 if out of range
1398  */
1399 LIBVLC_API
1400 int libvlc_video_set_track( libvlc_media_player_t *p_mi, int i_track );
1401 
1402 /**
1403  * Take a snapshot of the current video window.
1404  *
1405  * If i_width AND i_height is 0, original size is used.
1406  * If i_width XOR i_height is 0, original aspect-ratio is preserved.
1407  *
1408  * \param p_mi media player instance
1409  * \param num number of video output (typically 0 for the first/only one)
1410  * \param psz_filepath the path of a file or a folder to save the screenshot into
1411  * \param i_width the snapshot's width
1412  * \param i_height the snapshot's height
1413  * \return 0 on success, -1 if the video was not found
1414  */
1415 LIBVLC_API
1416 int libvlc_video_take_snapshot( libvlc_media_player_t *p_mi, unsigned num,
1417  const char *psz_filepath, unsigned int i_width,
1418  unsigned int i_height );
1419 
1420 /**
1421  * Enable or disable deinterlace filter
1422  *
1423  * \param p_mi libvlc media player
1424  * \param psz_mode type of deinterlace filter, NULL to disable
1425  */
1427  const char *psz_mode );
1428 
1429 /**
1430  * Get an integer marquee option value
1431  *
1432  * \param p_mi libvlc media player
1433  * \param option marq option to get \see libvlc_video_marquee_int_option_t
1434  */
1436  unsigned option );
1437 
1438 /**
1439  * Get a string marquee option value
1440  *
1441  * \param p_mi libvlc media player
1442  * \param option marq option to get \see libvlc_video_marquee_string_option_t
1443  */
1445  unsigned option );
1446 
1447 /**
1448  * Enable, disable or set an integer marquee option
1449  *
1450  * Setting libvlc_marquee_Enable has the side effect of enabling (arg !0)
1451  * or disabling (arg 0) the marq filter.
1452  *
1453  * \param p_mi libvlc media player
1454  * \param option marq option to set \see libvlc_video_marquee_int_option_t
1455  * \param i_val marq option value
1456  */
1458  unsigned option, int i_val );
1459 
1460 /**
1461  * Set a marquee string option
1462  *
1463  * \param p_mi libvlc media player
1464  * \param option marq option to set \see libvlc_video_marquee_string_option_t
1465  * \param psz_text marq option value
1466  */
1468  unsigned option, const char *psz_text );
1469 
1470 /** option values for libvlc_video_{get,set}_logo_{int,string} */
1473  libvlc_logo_file, /**< string argument, "file,d,t;file,d,t;..." */
1480 };
1481 
1482 /**
1483  * Get integer logo option.
1484  *
1485  * \param p_mi libvlc media player instance
1486  * \param option logo option to get, values of libvlc_video_logo_option_t
1487  */
1489  unsigned option );
1490 
1491 /**
1492  * Set logo option as integer. Options that take a different type value
1493  * are ignored.
1494  * Passing libvlc_logo_enable as option value has the side effect of
1495  * starting (arg !0) or stopping (arg 0) the logo filter.
1496  *
1497  * \param p_mi libvlc media player instance
1498  * \param option logo option to set, values of libvlc_video_logo_option_t
1499  * \param value logo option value
1500  */
1502  unsigned option, int value );
1503 
1504 /**
1505  * Set logo option as string. Options that take a different type value
1506  * are ignored.
1507  *
1508  * \param p_mi libvlc media player instance
1509  * \param option logo option to set, values of libvlc_video_logo_option_t
1510  * \param psz_value logo option value
1511  */
1513  unsigned option, const char *psz_value );
1514 
1515 
1516 /** option values for libvlc_video_{get,set}_adjust_{int,float,bool} */
1524 };
1525 
1526 /**
1527  * Get integer adjust option.
1528  *
1529  * \param p_mi libvlc media player instance
1530  * \param option adjust option to get, values of libvlc_video_adjust_option_t
1531  * \version LibVLC 1.1.1 and later.
1532  */
1534  unsigned option );
1535 
1536 /**
1537  * Set adjust option as integer. Options that take a different type value
1538  * are ignored.
1539  * Passing libvlc_adjust_enable as option value has the side effect of
1540  * starting (arg !0) or stopping (arg 0) the adjust filter.
1541  *
1542  * \param p_mi libvlc media player instance
1543  * \param option adust option to set, values of libvlc_video_adjust_option_t
1544  * \param value adjust option value
1545  * \version LibVLC 1.1.1 and later.
1546  */
1548  unsigned option, int value );
1549 
1550 /**
1551  * Get float adjust option.
1552  *
1553  * \param p_mi libvlc media player instance
1554  * \param option adjust option to get, values of libvlc_video_adjust_option_t
1555  * \version LibVLC 1.1.1 and later.
1556  */
1558  unsigned option );
1559 
1560 /**
1561  * Set adjust option as float. Options that take a different type value
1562  * are ignored.
1563  *
1564  * \param p_mi libvlc media player instance
1565  * \param option adust option to set, values of libvlc_video_adjust_option_t
1566  * \param value adjust option value
1567  * \version LibVLC 1.1.1 and later.
1568  */
1570  unsigned option, float value );
1571 
1572 /** @} video */
1573 
1574 /** \defgroup libvlc_audio LibVLC audio controls
1575  * @{
1576  */
1577 
1578 /**
1579  * Audio device types
1580  */
1592 
1593 /**
1594  * Audio channels
1595  */
1604 
1605 
1606 /**
1607  * Gets the list of available audio output modules.
1608  *
1609  * \param p_instance libvlc instance
1610  * \return list of available audio outputs. It must be freed with
1611 * \see libvlc_audio_output_list_release \see libvlc_audio_output_t .
1612  * In case of error, NULL is returned.
1613  */
1616 
1617 /**
1618  * Frees the list of available audio output modules.
1619  *
1620  * \param p_list list with audio outputs for release
1621  */
1622 LIBVLC_API
1624 
1625 /**
1626  * Selects an audio output module.
1627  * \note Any change will take be effect only after playback is stopped and
1628  * restarted. Audio output cannot be changed while playing.
1629  *
1630  * \param p_mi media player
1631  * \param psz_name name of audio output,
1632  * use psz_name of \see libvlc_audio_output_t
1633  * \return 0 if function succeeded, -1 on error
1634  */
1636  const char *psz_name );
1637 
1638 /**
1639  * Gets a list of potential audio output devices,
1640  * \see libvlc_audio_output_device_set().
1641  *
1642  * \note Not all audio outputs support enumerating devices.
1643  * The audio output may be functional even if the list is empty (NULL).
1644  *
1645  * \note The list may not be exhaustive.
1646  *
1647  * \warning Some audio output devices in the list might not actually work in
1648  * some circumstances. By default, it is recommended to not specify any
1649  * explicit audio device.
1650  *
1651  * \param mp media player
1652  * \return A NULL-terminated linked list of potential audio output devices.
1653  * It must be freed with libvlc_audio_output_device_list_release()
1654  * \version LibVLC 2.2.0 or later.
1655  */
1658 
1659 /**
1660  * Gets a list of audio output devices for a given audio output module,
1661  * \see libvlc_audio_output_device_set().
1662  *
1663  * \note Not all audio outputs support this. In particular, an empty (NULL)
1664  * list of devices does <b>not</b> imply that the specified audio output does
1665  * not work.
1666  *
1667  * \note The list might not be exhaustive.
1668  *
1669  * \warning Some audio output devices in the list might not actually work in
1670  * some circumstances. By default, it is recommended to not specify any
1671  * explicit audio device.
1672  *
1673  * \param p_instance libvlc instance
1674  * \param aout audio output name
1675  * (as returned by libvlc_audio_output_list_get())
1676  * \return A NULL-terminated linked list of potential audio output devices.
1677  * It must be freed with libvlc_audio_output_device_list_release()
1678  * \version LibVLC 2.1.0 or later.
1679  */
1682  const char *aout );
1683 
1684 /**
1685  * Frees a list of available audio output devices.
1686  *
1687  * \param p_list list with audio outputs for release
1688  * \version LibVLC 2.1.0 or later.
1689  */
1691  libvlc_audio_output_device_t *p_list );
1692 
1693 /**
1694  * Configures an explicit audio output device.
1695  *
1696  * If the module paramater is NULL, audio output will be moved to the device
1697  * specified by the device identifier string immediately. This is the
1698  * recommended usage.
1699  *
1700  * A list of adequate potential device strings can be obtained with
1701  * libvlc_audio_output_device_enum().
1702  *
1703  * However passing NULL is supported in LibVLC version 2.2.0 and later only;
1704  * in earlier versions, this function would have no effects when the module
1705  * parameter was NULL.
1706  *
1707  * If the module parameter is not NULL, the device parameter of the
1708  * corresponding audio output, if it exists, will be set to the specified
1709  * string. Note that some audio output modules do not have such a parameter
1710  * (notably MMDevice and PulseAudio).
1711  *
1712  * A list of adequate potential device strings can be obtained with
1713  * libvlc_audio_output_device_list_get().
1714  *
1715  * \note This function does not select the specified audio output plugin.
1716  * libvlc_audio_output_set() is used for that purpose.
1717  *
1718  * \warning The syntax for the device parameter depends on the audio output.
1719  *
1720  * Some audio output modules require further parameters (e.g. a channels map
1721  * in the case of ALSA).
1722  *
1723  * \param mp media player
1724  * \param module If NULL, current audio output module.
1725  * if non-NULL, name of audio output module
1726  (\see libvlc_audio_output_t)
1727  * \param device_id device identifier string
1728  * \return Nothing. Errors are ignored (this is a design bug).
1729  */
1731  const char *module,
1732  const char *device_id );
1733 
1734 /**
1735  * Get the current audio output device identifier.
1736  *
1737  * This complements libvlc_audio_output_device_set().
1738  *
1739  * \warning The initial value for the current audio output device identifier
1740  * may not be set or may be some unknown value. A LibVLC application should
1741  * compare this value against the known device identifiers (e.g. those that
1742  * were previously retrieved by a call to libvlc_audio_output_device_enum or
1743  * libvlc_audio_output_device_list_get) to find the current audio output device.
1744  *
1745  * It is possible that the selected audio output device changes (an external
1746  * change) without a call to libvlc_audio_output_device_set. That may make this
1747  * method unsuitable to use if a LibVLC application is attempting to track
1748  * dynamic audio device changes as they happen.
1749  *
1750  * \param mp media player
1751  * \return the current audio output device identifier
1752  * NULL if no device is selected or in case of error
1753  * (the result must be released with free() or libvlc_free()).
1754  * \version LibVLC 3.0.0 or later.
1755  */
1757 
1758 /**
1759  * Toggle mute status.
1760  *
1761  * \param p_mi media player
1762  * \warning Toggling mute atomically is not always possible: On some platforms,
1763  * other processes can mute the VLC audio playback stream asynchronously. Thus,
1764  * there is a small race condition where toggling will not work.
1765  * See also the limitations of libvlc_audio_set_mute().
1766  */
1768 
1769 /**
1770  * Get current mute status.
1771  *
1772  * \param p_mi media player
1773  * \return the mute status (boolean) if defined, -1 if undefined/unapplicable
1774  */
1776 
1777 /**
1778  * Set mute status.
1779  *
1780  * \param p_mi media player
1781  * \param status If status is true then mute, otherwise unmute
1782  * \warning This function does not always work. If there are no active audio
1783  * playback stream, the mute status might not be available. If digital
1784  * pass-through (S/PDIF, HDMI...) is in use, muting may be unapplicable. Also
1785  * some audio output plugins do not support muting at all.
1786  * \note To force silent playback, disable all audio tracks. This is more
1787  * efficient and reliable than mute.
1788  */
1789 LIBVLC_API void libvlc_audio_set_mute( libvlc_media_player_t *p_mi, int status );
1790 
1791 /**
1792  * Get current software audio volume.
1793  *
1794  * \param p_mi media player
1795  * \return the software volume in percents
1796  * (0 = mute, 100 = nominal / 0dB)
1797  */
1799 
1800 /**
1801  * Set current software audio volume.
1802  *
1803  * \param p_mi media player
1804  * \param i_volume the volume in percents (0 = mute, 100 = 0dB)
1805  * \return 0 if the volume was set, -1 if it was out of range
1806  */
1807 LIBVLC_API int libvlc_audio_set_volume( libvlc_media_player_t *p_mi, int i_volume );
1808 
1809 /**
1810  * Get number of available audio tracks.
1811  *
1812  * \param p_mi media player
1813  * \return the number of available audio tracks (int), or -1 if unavailable
1814  */
1816 
1817 /**
1818  * Get the description of available audio tracks.
1819  *
1820  * \param p_mi media player
1821  * \return list with description of available audio tracks, or NULL.
1822  * It must be freed with libvlc_track_description_list_release()
1823  */
1826 
1827 /**
1828  * Get current audio track.
1829  *
1830  * \param p_mi media player
1831  * \return the audio track ID or -1 if no active input.
1832  */
1834 
1835 /**
1836  * Set current audio track.
1837  *
1838  * \param p_mi media player
1839  * \param i_track the track ID (i_id field from track description)
1840  * \return 0 on success, -1 on error
1841  */
1842 LIBVLC_API int libvlc_audio_set_track( libvlc_media_player_t *p_mi, int i_track );
1843 
1844 /**
1845  * Get current audio channel.
1846  *
1847  * \param p_mi media player
1848  * \return the audio channel \see libvlc_audio_output_channel_t
1849  */
1851 
1852 /**
1853  * Set current audio channel.
1854  *
1855  * \param p_mi media player
1856  * \param channel the audio channel, \see libvlc_audio_output_channel_t
1857  * \return 0 on success, -1 on error
1858  */
1860 
1861 /**
1862  * Get current audio delay.
1863  *
1864  * \param p_mi media player
1865  * \return the audio delay (microseconds)
1866  * \version LibVLC 1.1.1 or later
1867  */
1869 
1870 /**
1871  * Set current audio delay. The audio delay will be reset to zero each time the media changes.
1872  *
1873  * \param p_mi media player
1874  * \param i_delay the audio delay (microseconds)
1875  * \return 0 on success, -1 on error
1876  * \version LibVLC 1.1.1 or later
1877  */
1878 LIBVLC_API int libvlc_audio_set_delay( libvlc_media_player_t *p_mi, int64_t i_delay );
1879 
1880 /**
1881  * Get the number of equalizer presets.
1882  *
1883  * \return number of presets
1884  * \version LibVLC 2.2.0 or later
1885  */
1887 
1888 /**
1889  * Get the name of a particular equalizer preset.
1890  *
1891  * This name can be used, for example, to prepare a preset label or menu in a user
1892  * interface.
1893  *
1894  * \param u_index index of the preset, counting from zero
1895  * \return preset name, or NULL if there is no such preset
1896  * \version LibVLC 2.2.0 or later
1897  */
1898 LIBVLC_API const char *libvlc_audio_equalizer_get_preset_name( unsigned u_index );
1899 
1900 /**
1901  * Get the number of distinct frequency bands for an equalizer.
1902  *
1903  * \return number of frequency bands
1904  * \version LibVLC 2.2.0 or later
1905  */
1907 
1908 /**
1909  * Get a particular equalizer band frequency.
1910  *
1911  * This value can be used, for example, to create a label for an equalizer band control
1912  * in a user interface.
1913  *
1914  * \param u_index index of the band, counting from zero
1915  * \return equalizer band frequency (Hz), or -1 if there is no such band
1916  * \version LibVLC 2.2.0 or later
1917  */
1918 LIBVLC_API float libvlc_audio_equalizer_get_band_frequency( unsigned u_index );
1919 
1920 /**
1921  * Create a new default equalizer, with all frequency values zeroed.
1922  *
1923  * The new equalizer can subsequently be applied to a media player by invoking
1924  * libvlc_media_player_set_equalizer().
1925  *
1926  * The returned handle should be freed via libvlc_audio_equalizer_release() when
1927  * it is no longer needed.
1928  *
1929  * \return opaque equalizer handle, or NULL on error
1930  * \version LibVLC 2.2.0 or later
1931  */
1933 
1934 /**
1935  * Create a new equalizer, with initial frequency values copied from an existing
1936  * preset.
1937  *
1938  * The new equalizer can subsequently be applied to a media player by invoking
1939  * libvlc_media_player_set_equalizer().
1940  *
1941  * The returned handle should be freed via libvlc_audio_equalizer_release() when
1942  * it is no longer needed.
1943  *
1944  * \param u_index index of the preset, counting from zero
1945  * \return opaque equalizer handle, or NULL on error
1946  * \version LibVLC 2.2.0 or later
1947  */
1949 
1950 /**
1951  * Release a previously created equalizer instance.
1952  *
1953  * The equalizer was previously created by using libvlc_audio_equalizer_new() or
1954  * libvlc_audio_equalizer_new_from_preset().
1955  *
1956  * It is safe to invoke this method with a NULL p_equalizer parameter for no effect.
1957  *
1958  * \param p_equalizer opaque equalizer handle, or NULL
1959  * \version LibVLC 2.2.0 or later
1960  */
1962 
1963 /**
1964  * Set a new pre-amplification value for an equalizer.
1965  *
1966  * The new equalizer settings are subsequently applied to a media player by invoking
1967  * libvlc_media_player_set_equalizer().
1968  *
1969  * The supplied amplification value will be clamped to the -20.0 to +20.0 range.
1970  *
1971  * \param p_equalizer valid equalizer handle, must not be NULL
1972  * \param f_preamp preamp value (-20.0 to 20.0 Hz)
1973  * \return zero on success, -1 on error
1974  * \version LibVLC 2.2.0 or later
1975  */
1976 LIBVLC_API int libvlc_audio_equalizer_set_preamp( libvlc_equalizer_t *p_equalizer, float f_preamp );
1977 
1978 /**
1979  * Get the current pre-amplification value from an equalizer.
1980  *
1981  * \param p_equalizer valid equalizer handle, must not be NULL
1982  * \return preamp value (Hz)
1983  * \version LibVLC 2.2.0 or later
1984  */
1986 
1987 /**
1988  * Set a new amplification value for a particular equalizer frequency band.
1989  *
1990  * The new equalizer settings are subsequently applied to a media player by invoking
1991  * libvlc_media_player_set_equalizer().
1992  *
1993  * The supplied amplification value will be clamped to the -20.0 to +20.0 range.
1994  *
1995  * \param p_equalizer valid equalizer handle, must not be NULL
1996  * \param f_amp amplification value (-20.0 to 20.0 Hz)
1997  * \param u_band index, counting from zero, of the frequency band to set
1998  * \return zero on success, -1 on error
1999  * \version LibVLC 2.2.0 or later
2000  */
2001 LIBVLC_API int libvlc_audio_equalizer_set_amp_at_index( libvlc_equalizer_t *p_equalizer, float f_amp, unsigned u_band );
2002 
2003 /**
2004  * Get the amplification value for a particular equalizer frequency band.
2005  *
2006  * \param p_equalizer valid equalizer handle, must not be NULL
2007  * \param u_band index, counting from zero, of the frequency band to get
2008  * \return amplification value (Hz); NaN if there is no such frequency band
2009  * \version LibVLC 2.2.0 or later
2010  */
2011 LIBVLC_API float libvlc_audio_equalizer_get_amp_at_index( libvlc_equalizer_t *p_equalizer, unsigned u_band );
2012 
2013 /**
2014  * Apply new equalizer settings to a media player.
2015  *
2016  * The equalizer is first created by invoking libvlc_audio_equalizer_new() or
2017  * libvlc_audio_equalizer_new_from_preset().
2018  *
2019  * It is possible to apply new equalizer settings to a media player whether the media
2020  * player is currently playing media or not.
2021  *
2022  * Invoking this method will immediately apply the new equalizer settings to the audio
2023  * output of the currently playing media if there is any.
2024  *
2025  * If there is no currently playing media, the new equalizer settings will be applied
2026  * later if and when new media is played.
2027  *
2028  * Equalizer settings will automatically be applied to subsequently played media.
2029  *
2030  * To disable the equalizer for a media player invoke this method passing NULL for the
2031  * p_equalizer parameter.
2032  *
2033  * The media player does not keep a reference to the supplied equalizer so it is safe
2034  * for an application to release the equalizer reference any time after this method
2035  * returns.
2036  *
2037  * \param p_mi opaque media player handle
2038  * \param p_equalizer opaque equalizer handle, or NULL to disable the equalizer for this media player
2039  * \return zero on success, -1 on error
2040  * \version LibVLC 2.2.0 or later
2041  */
2043 
2044 /**
2045  * Media player roles.
2046  *
2047  * \version LibVLC 3.0.0 and later.
2048  *
2049  * See \ref libvlc_media_player_set_role()
2050  */
2052  libvlc_role_None = 0, /**< Don't use a media player role */
2053  libvlc_role_Music, /**< Music (or radio) playback */
2054  libvlc_role_Video, /**< Video playback */
2055  libvlc_role_Communication, /**< Speech, real-time communication */
2056  libvlc_role_Game, /**< Video game */
2057  libvlc_role_Notification, /**< User interaction feedback */
2058  libvlc_role_Animation, /**< Embedded animation (e.g. in web page) */
2059  libvlc_role_Production, /**< Audio editting/production */
2060  libvlc_role_Accessibility, /**< Accessibility */
2061  libvlc_role_Test /** Testing */
2062 #define libvlc_role_Last libvlc_role_Test
2064 
2065 /**
2066  * Gets the media role.
2067  *
2068  * \version LibVLC 3.0.0 and later.
2069  *
2070  * \param p_mi media player
2071  * \return the media player role (\ref libvlc_media_player_role_t)
2072  */
2074 
2075 /**
2076  * Sets the media role.
2077  *
2078  * \param p_mi media player
2079  * \param role the media player role (\ref libvlc_media_player_role_t)
2080  * \return 0 on success, -1 on error
2081  */
2083  unsigned role);
2084 
2085 /** @} audio */
2086 
2087 /** @} media_player */
2088 
2089 # ifdef __cplusplus
2090 }
2091 # endif
2092 
2093 #endif /* VLC_LIBVLC_MEDIA_PLAYER_H */
libvlc_media_player_get_hwnd
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_media_player_new
LIBVLC_API libvlc_media_player_t * libvlc_media_player_new(libvlc_instance_t *p_libvlc_instance)
Create an empty Media Player object.
libvlc_title_description_t::psz_name
char * psz_name
title name
Definition: libvlc_media_player.h:68
libvlc_media_player_play
LIBVLC_API int libvlc_media_player_play(libvlc_media_player_t *p_mi)
Play.
count
size_t count
Definition: core.c:461
libvlc_adjust_Brightness
Definition: libvlc_media_player.h:1519
libvlc_audio_set_callbacks
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)
Sets callbacks and private data for decoded audio.
libvlc_chapter_descriptions_release
LIBVLC_API void libvlc_chapter_descriptions_release(libvlc_chapter_description_t **p_chapters, unsigned i_count)
Release a chapter description.
libvlc_audio_output_device_list_get
LIBVLC_API libvlc_audio_output_device_t * libvlc_audio_output_device_list_get(libvlc_instance_t *p_instance, const char *aout)
Gets a list of audio output devices for a given audio output module,.
libvlc_navigate_left
Definition: libvlc_media_player.h:129
libvlc_role_Video
Video playback.
Definition: libvlc_media_player.h:2053
libvlc_video_get_track_count
LIBVLC_API int libvlc_video_get_track_count(libvlc_media_player_t *p_mi)
Get number of available video tracks.
libvlc_media_player_get_position
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_video_adjust_option_t
libvlc_video_adjust_option_t
option values for libvlc_video_{get,set}_adjust_{int,float,bool}
Definition: libvlc_media_player.h:1516
libvlc_video_get_spu_description
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_audio_equalizer_set_amp_at_index
LIBVLC_API int libvlc_audio_equalizer_set_amp_at_index(libvlc_equalizer_t *p_equalizer, float f_amp, unsigned u_band)
Set a new amplification value for a particular equalizer frequency band.
libvlc_video_get_crop_geometry
LIBVLC_API char * libvlc_video_get_crop_geometry(libvlc_media_player_t *p_mi)
Get current crop filter geometry.
libvlc_role_Music
Music (or radio) playback.
Definition: libvlc_media_player.h:2052
libvlc_media_player_will_play
LIBVLC_API int libvlc_media_player_will_play(libvlc_media_player_t *p_mi)
Is the player able to play.
libvlc_media_player_set_rate
LIBVLC_API int libvlc_media_player_set_rate(libvlc_media_player_t *p_mi, float rate)
Set movie play rate.
libvlc_media_player_new_from_media
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.
libvlc_audio_get_channel
LIBVLC_API int libvlc_audio_get_channel(libvlc_media_player_t *p_mi)
Get current audio channel.
libvlc_media_player_next_frame
LIBVLC_API void libvlc_media_player_next_frame(libvlc_media_player_t *p_mi)
Display the next frame (if supported)
libvlc_audio_get_volume
LIBVLC_API int libvlc_audio_get_volume(libvlc_media_player_t *p_mi)
Get current software audio volume.
libvlc_audio_equalizer_get_preamp
LIBVLC_API float libvlc_audio_equalizer_get_preamp(libvlc_equalizer_t *p_equalizer)
Get the current pre-amplification value from an equalizer.
libvlc_media_player_set_android_context
LIBVLC_API void libvlc_media_player_set_android_context(libvlc_media_player_t *p_mi, void *p_awindow_handler)
Set the android context.
libvlc_audio_output_device_t::psz_description
char * psz_description
User-friendly device description.
Definition: libvlc_media_player.h:101
libvlc_video_take_snapshot
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_track_description_t::p_next
struct libvlc_track_description_t * p_next
Definition: libvlc_media_player.h:52
libvlc_title_description_t
struct libvlc_title_description_t libvlc_title_description_t
libvlc_audio_set_format
LIBVLC_API void libvlc_audio_set_format(libvlc_media_player_t *mp, const char *format, unsigned rate, unsigned channels)
Sets a fixed decoded audio format.
libvlc_media_player_release
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_media_player_event_manager
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.
libvlc_video_format_cb
unsigned(* libvlc_video_format_cb)(void **opaque, char *chroma, unsigned *width, unsigned *height, unsigned *pitches, unsigned *lines)
Callback prototype to configure picture buffers format.
Definition: libvlc_media_player.h:365
libvlc_video_set_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_marquee_X
Definition: libvlc_media_player.h:117
libvlc_position_top
Definition: libvlc_media_player.h:142
libvlc_AudioChannel_Stereo
Definition: libvlc_media_player.h:1597
libvlc_media_t
struct libvlc_media_t libvlc_media_t
Definition: libvlc_media.h:47
libvlc_video_get_cursor
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_media_player_is_playing
LIBVLC_API int libvlc_media_player_is_playing(libvlc_media_player_t *p_mi)
is_playing
libvlc_logo_enable
Definition: libvlc_media_player.h:1471
libvlc_video_unlock_cb
void(* libvlc_video_unlock_cb)(void *opaque, void *picture, void *const *planes)
Callback prototype to unlock a picture buffer.
Definition: libvlc_media_player.h:324
libvlc_media_player_set_time
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_media_player_get_time
LIBVLC_API libvlc_time_t libvlc_media_player_get_time(libvlc_media_player_t *p_mi)
Get the current movie time (in ms).
libvlc_teletext_key_index
Definition: libvlc_media_player.h:159
libvlc_media_player_role
libvlc_media_player_role
Media player roles.
Definition: libvlc_media_player.h:2050
libvlc_media_player_add_slave
LIBVLC_API int libvlc_media_player_add_slave(libvlc_media_player_t *p_mi, libvlc_media_slave_type_t i_type, const char *psz_uri, bool b_select)
Add a slave to the current media player.
libvlc_audio_output_device_t::psz_device
char * psz_device
Device identifier string.
Definition: libvlc_media_player.h:100
libvlc_track_description_t::i_id
int i_id
Definition: libvlc_media_player.h:50
libvlc_state_t
libvlc_state_t
Note the order of libvlc_state_t enum must match exactly the order of.
Definition: libvlc_media.h:89
libvlc_audio_output_device_t
Description for audio output device.
Definition: libvlc_media_player.h:97
libvlc_audio_equalizer_get_band_count
LIBVLC_API unsigned libvlc_audio_equalizer_get_band_count(void)
Get the number of distinct frequency bands for an equalizer.
libvlc_logo_file
string argument, "file,d,t;file,d,t;..."
Definition: libvlc_media_player.h:1472
libvlc_audio_equalizer_release
LIBVLC_API void libvlc_audio_equalizer_release(libvlc_equalizer_t *p_equalizer)
Release a previously created equalizer instance.
libvlc_role_Game
Video game.
Definition: libvlc_media_player.h:2055
libvlc_audio_get_track_count
LIBVLC_API int libvlc_audio_get_track_count(libvlc_media_player_t *p_mi)
Get number of available audio tracks.
libvlc_role_Notification
User interaction feedback.
Definition: libvlc_media_player.h:2056
libvlc_video_viewpoint_t
Viewpoint.
Definition: libvlc_media.h:205
libvlc_toggle_fullscreen
LIBVLC_API void libvlc_toggle_fullscreen(libvlc_media_player_t *p_mi)
Toggle fullscreen status on non-embedded video outputs.
libvlc_AudioOutputDevice_3F2R
Definition: libvlc_media_player.h:1585
libvlc_media_player_get_chapter_count_for_title
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_audio_set_track
LIBVLC_API int libvlc_audio_set_track(libvlc_media_player_t *p_mi, int i_track)
Set current audio track.
libvlc_teletext_key_t
libvlc_teletext_key_t
Enumeration of teletext keys than can be passed via libvlc_video_set_teletext()
Definition: libvlc_media_player.h:154
libvlc_media_player_program_scrambled
LIBVLC_API int libvlc_media_player_program_scrambled(libvlc_media_player_t *p_mi)
Check if the current program is scrambled.
libvlc_media_player_get_chapter
LIBVLC_API int libvlc_media_player_get_chapter(libvlc_media_player_t *p_mi)
Get movie chapter.
libvlc_audio_output_t::p_next
struct libvlc_audio_output_t * p_next
Definition: libvlc_media_player.h:90
libvlc_audio_set_volume_cb
void(* libvlc_audio_set_volume_cb)(void *data, float volume, bool mute)
Callback prototype for audio volume change.
Definition: libvlc_media_player.h:680
libvlc_audio_set_mute
LIBVLC_API void libvlc_audio_set_mute(libvlc_media_player_t *p_mi, int status)
Set mute status.
libvlc_media_player_stop
LIBVLC_API void libvlc_media_player_stop(libvlc_media_player_t *p_mi)
Stop (no effect if there is no media)
libvlc_audio_get_delay
LIBVLC_API int64_t libvlc_audio_get_delay(libvlc_media_player_t *p_mi)
Get current audio delay.
libvlc_event_manager_t
struct libvlc_event_manager_t libvlc_event_manager_t
Event manager that belongs to a libvlc object, and from whom events can be received.
Definition: libvlc.h:310
libvlc_audio_equalizer_new
LIBVLC_API libvlc_equalizer_t * libvlc_audio_equalizer_new(void)
Create a new default equalizer, with all frequency values zeroed.
libvlc_navigate_up
Definition: libvlc_media_player.h:127
libvlc_audio_equalizer_set_preamp
LIBVLC_API int libvlc_audio_equalizer_set_preamp(libvlc_equalizer_t *p_equalizer, float f_preamp)
Set a new pre-amplification value for an equalizer.
libvlc_logo_opacity
Definition: libvlc_media_player.h:1477
libvlc_video_set_logo_string
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_video_get_scale
LIBVLC_API float libvlc_video_get_scale(libvlc_media_player_t *p_mi)
Get the current video scaling factor.
libvlc_audio_output_device_list_release
LIBVLC_API void libvlc_audio_output_device_list_release(libvlc_audio_output_device_t *p_list)
Frees a list of available audio output devices.
libvlc_media_player_set_pause
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_equalizer_t
struct libvlc_equalizer_t libvlc_equalizer_t
Opaque equalizer handle.
Definition: libvlc_media_player.h:167
libvlc_AudioOutputDevice_Error
Definition: libvlc_media_player.h:1581
libvlc_adjust_Enable
Definition: libvlc_media_player.h:1517
libvlc_video_set_format
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_video_get_track_description
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_teletext_key_blue
Definition: libvlc_media_player.h:158
libvlc_video_set_marquee_string
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_video_set_callbacks
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_media_slave_type_t
libvlc_media_slave_type_t
Type of a media slave: subtitle or audio.
Definition: libvlc_media.h:319
libvlc_AudioOutputDevice_7_1
Definition: libvlc_media_player.h:1588
libvlc_media_player_set_title
LIBVLC_API void libvlc_media_player_set_title(libvlc_media_player_t *p_mi, int i_title)
Set movie title.
libvlc_AudioOutputDevice_Stereo
Definition: libvlc_media_player.h:1583
libvlc_navigate_right
Definition: libvlc_media_player.h:130
libvlc_media_player_set_xwindow
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_set_fullscreen
LIBVLC_API void libvlc_set_fullscreen(libvlc_media_player_t *p_mi, int b_fullscreen)
Enable or disable fullscreen.
libvlc_position_top_right
Definition: libvlc_media_player.h:144
libvlc_media_player_set_role
LIBVLC_API int libvlc_media_player_set_role(libvlc_media_player_t *p_mi, unsigned role)
Sets the media role.
libvlc_chapter_description_t::psz_name
char * psz_name
chapter name
Definition: libvlc_media_player.h:79
lock
static vlc_mutex_t lock
Definition: interface.c:62
libvlc_audio_output_t
struct libvlc_audio_output_t libvlc_audio_output_t
Description for audio output.
libvlc_audio_output_t::psz_description
char * psz_description
Definition: libvlc_media_player.h:89
libvlc_audio_set_format_callbacks
LIBVLC_API void libvlc_audio_set_format_callbacks(libvlc_media_player_t *mp, libvlc_audio_setup_cb setup, libvlc_audio_cleanup_cb cleanup)
Sets decoded audio format via callbacks.
libvlc_video_set_marquee_int
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_audio_output_device_t
struct libvlc_audio_output_device_t libvlc_audio_output_device_t
Description for audio output device.
libvlc_teletext_key_green
Definition: libvlc_media_player.h:156
libvlc_audio_get_mute
LIBVLC_API int libvlc_audio_get_mute(libvlc_media_player_t *p_mi)
Get current mute status.
libvlc_position_bottom_right
Definition: libvlc_media_player.h:147
libvlc_media_player_navigate
LIBVLC_API void libvlc_media_player_navigate(libvlc_media_player_t *p_mi, unsigned navigate)
Navigate through DVD Menu.
libvlc_marquee_Color
string argument
Definition: libvlc_media_player.h:111
libvlc_position_t
libvlc_position_t
Enumeration of values used to set position (e.g.
Definition: libvlc_media_player.h:137
libvlc_AudioOutputDevice_2F2R
Definition: libvlc_media_player.h:1584
libvlc_video_set_spu_delay
LIBVLC_API int libvlc_video_set_spu_delay(libvlc_media_player_t *p_mi, int64_t i_delay)
Set the subtitle delay.
libvlc_marquee_Text
Definition: libvlc_media_player.h:110
libvlc_adjust_Saturation
Definition: libvlc_media_player.h:1521
libvlc_media_player_is_seekable
LIBVLC_API int libvlc_media_player_is_seekable(libvlc_media_player_t *p_mi)
Is this media player seekable?
i_type
int i_type
Definition: httpd.c:1252
libvlc_audio_equalizer_get_amp_at_index
LIBVLC_API float libvlc_audio_equalizer_get_amp_at_index(libvlc_equalizer_t *p_equalizer, unsigned u_band)
Get the amplification value for a particular equalizer frequency band.
libvlc_audio_get_track
LIBVLC_API int libvlc_audio_get_track(libvlc_media_player_t *p_mi)
Get current audio track.
libvlc_logo_repeat
Definition: libvlc_media_player.h:1476
libvlc_media_player_get_role
LIBVLC_API int libvlc_media_player_get_role(libvlc_media_player_t *p_mi)
Gets the media role.
libvlc_video_set_teletext
LIBVLC_API void libvlc_video_set_teletext(libvlc_media_player_t *p_mi, int i_page)
Set new teletext page to retrieve.
libvlc_audio_drain_cb
void(* libvlc_audio_drain_cb)(void *data)
Callback prototype for audio buffer drain.
Definition: libvlc_media_player.h:672
libvlc_audio_flush_cb
void(* libvlc_audio_flush_cb)(void *data, int64_t pts)
Callback prototype for audio buffer flush.
Definition: libvlc_media_player.h:661
libvlc_media_player_set_equalizer
LIBVLC_API int libvlc_media_player_set_equalizer(libvlc_media_player_t *p_mi, libvlc_equalizer_t *p_equalizer)
Apply new equalizer settings to a media player.
libvlc_video_get_marquee_string
LIBVLC_API char * libvlc_video_get_marquee_string(libvlc_media_player_t *p_mi, unsigned option)
Get a string marquee option value.
libvlc_audio_output_list_get
LIBVLC_API libvlc_audio_output_t * libvlc_audio_output_list_get(libvlc_instance_t *p_instance)
Gets the list of available audio output modules.
libvlc_AudioOutputDevice_5_1
Definition: libvlc_media_player.h:1586
libvlc_media_player_set_video_title_display
LIBVLC_API void libvlc_media_player_set_video_title_display(libvlc_media_player_t *p_mi, libvlc_position_t position, unsigned int timeout)
Set if, and how, the video title will be shown when media is played.
libvlc_audio_equalizer_get_preset_count
LIBVLC_API unsigned libvlc_audio_equalizer_get_preset_count(void)
Get the number of equalizer presets.
libvlc_marquee_Opacity
Definition: libvlc_media_player.h:112
libvlc_video_get_spu_delay
LIBVLC_API int64_t libvlc_video_get_spu_delay(libvlc_media_player_t *p_mi)
Get the current subtitle delay.
libvlc_video_get_teletext
LIBVLC_API int libvlc_video_get_teletext(libvlc_media_player_t *p_mi)
Get current teletext page requested or 0 if it's disabled.
libvlc_video_display_cb
void(* libvlc_video_display_cb)(void *opaque, void *picture)
Callback prototype to display a picture.
Definition: libvlc_media_player.h:337
libvlc_audio_toggle_mute
LIBVLC_API void libvlc_audio_toggle_mute(libvlc_media_player_t *p_mi)
Toggle mute status.
libvlc_marquee_Y
Definition: libvlc_media_player.h:118
libvlc_media_player_get_rate
LIBVLC_API float libvlc_media_player_get_rate(libvlc_media_player_t *p_mi)
Get the requested movie play rate.
libvlc_video_set_crop_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_teletext_key_red
Definition: libvlc_media_player.h:155
libvlc_video_get_adjust_int
LIBVLC_API int libvlc_video_get_adjust_int(libvlc_media_player_t *p_mi, unsigned option)
Get integer adjust option.
libvlc_video_update_viewpoint
LIBVLC_API int libvlc_video_update_viewpoint(libvlc_media_player_t *p_mi, const libvlc_video_viewpoint_t *p_viewpoint, bool b_absolute)
Update the video viewpoint information.
libvlc_title_description_t
Definition: libvlc_media_player.h:65
psz_name
const char * psz_name
Definition: vlc_codecs.h:315
libvlc_navigate_mode_t
libvlc_navigate_mode_t
Navigation mode.
Definition: libvlc_media_player.h:124
libvlc_media_player_set_media
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_get_fullscreen
LIBVLC_API int libvlc_get_fullscreen(libvlc_media_player_t *p_mi)
Get current fullscreen status.
libvlc_media_player_get_state
LIBVLC_API libvlc_state_t libvlc_media_player_get_state(libvlc_media_player_t *p_mi)
Get current movie state.
libvlc_video_set_adjust_float
LIBVLC_API void libvlc_video_set_adjust_float(libvlc_media_player_t *p_mi, unsigned option, float value)
Set adjust option as float.
libvlc_title_description_t::i_flags
unsigned i_flags
info if item was recognized as a menu, interactive or plain content by the demuxer
Definition: libvlc_media_player.h:69
libvlc_video_set_logo_int
LIBVLC_API void libvlc_video_set_logo_int(libvlc_media_player_t *p_mi, unsigned option, int value)
Set logo option as integer.
libvlc_media_player_has_vout
LIBVLC_API unsigned libvlc_media_player_has_vout(libvlc_media_player_t *p_mi)
How many video outputs does this media player have?
libvlc_audio_equalizer_get_band_frequency
LIBVLC_API float libvlc_audio_equalizer_get_band_frequency(unsigned u_index)
Get a particular equalizer band frequency.
libvlc_title_description_t::i_duration
int64_t i_duration
duration in milliseconds
Definition: libvlc_media_player.h:67
libvlc_position_bottom
Definition: libvlc_media_player.h:145
libvlc_audio_output_set
LIBVLC_API int libvlc_audio_output_set(libvlc_media_player_t *p_mi, const char *psz_name)
Selects an audio output module.
libvlc_video_set_adjust_int
LIBVLC_API void libvlc_video_set_adjust_int(libvlc_media_player_t *p_mi, unsigned option, int value)
Set adjust option as integer.
libvlc_video_get_adjust_float
LIBVLC_API float libvlc_video_get_adjust_float(libvlc_media_player_t *p_mi, unsigned option)
Get float adjust option.
libvlc_role_Animation
Embedded animation (e.g.
Definition: libvlc_media_player.h:2057
libvlc_audio_set_channel
LIBVLC_API int libvlc_audio_set_channel(libvlc_media_player_t *p_mi, int channel)
Set current audio channel.
libvlc_media_player_set_hwnd
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_media_player_get_full_title_descriptions
LIBVLC_API int libvlc_media_player_get_full_title_descriptions(libvlc_media_player_t *p_mi, libvlc_title_description_t ***titles)
Get the full description of available titles.
libvlc_chapter_description_t
Description for chapters.
Definition: libvlc_media_player.h:75
libvlc_AudioOutputDevice_SPDIF
Definition: libvlc_media_player.h:1589
LIBVLC_API
#define LIBVLC_API
Definition: libvlc.h:42
libvlc_audio_cleanup_cb
void(* libvlc_audio_cleanup_cb)(void *data)
Callback prototype for audio playback cleanup.
Definition: libvlc_media_player.h:745
libvlc_media_player_get_nsobject
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_video_set_key_input
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_chapter_description_t::i_time_offset
int64_t i_time_offset
time-offset of the chapter in milliseconds
Definition: libvlc_media_player.h:77
libvlc_video_set_spu
LIBVLC_API int libvlc_video_set_spu(libvlc_media_player_t *p_mi, int i_spu)
Set new video subtitle.
libvlc_audio_set_volume_callback
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_title_interactive
Definition: libvlc_media_player.h:62
libvlc_marquee_Size
Definition: libvlc_media_player.h:115
libvlc_media_player_previous_chapter
LIBVLC_API void libvlc_media_player_previous_chapter(libvlc_media_player_t *p_mi)
Set previous chapter (if applicable)
libvlc_adjust_Contrast
Definition: libvlc_media_player.h:1518
libvlc_media_player_set_nsobject
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_track_description_list_release
LIBVLC_API void libvlc_track_description_list_release(libvlc_track_description_t *p_track_description)
Release (free) libvlc_track_description_t.
libvlc_AudioChannel_Right
Definition: libvlc_media_player.h:1600
libvlc_AudioOutputDevice_Mono
Definition: libvlc_media_player.h:1582
libvlc_media_player_next_chapter
LIBVLC_API void libvlc_media_player_next_chapter(libvlc_media_player_t *p_mi)
Set next chapter (if applicable)
libvlc_AudioChannel_RStereo
Definition: libvlc_media_player.h:1598
libvlc_navigate_activate
Definition: libvlc_media_player.h:126
libvlc_audio_output_t
Description for audio output.
Definition: libvlc_media_player.h:86
libvlc_AudioOutputDevice_6_1
Definition: libvlc_media_player.h:1587
libvlc_audio_output_device_enum
LIBVLC_API libvlc_audio_output_device_t * libvlc_audio_output_device_enum(libvlc_media_player_t *mp)
Gets a list of potential audio output devices,.
libvlc_media_player_pause
LIBVLC_API void libvlc_media_player_pause(libvlc_media_player_t *p_mi)
Toggle pause (no effect if there is no media)
libvlc_audio_output_device_t::p_next
struct libvlc_audio_output_device_t * p_next
Next entry in list.
Definition: libvlc_media_player.h:99
libvlc_position_right
Definition: libvlc_media_player.h:141
libvlc_renderer_item_t
struct libvlc_renderer_item_t libvlc_renderer_item_t
Definition: libvlc_events.h:36
libvlc_audio_output_t::psz_name
char * psz_name
Definition: libvlc_media_player.h:88
libvlc_position_disable
Definition: libvlc_media_player.h:138
psz_value
char psz_value[8]
Definition: vout_intf.c:91
libvlc_video_set_track
LIBVLC_API int libvlc_video_set_track(libvlc_media_player_t *p_mi, int i_track)
Set video track.
libvlc_teletext_key_yellow
Definition: libvlc_media_player.h:157
libvlc_audio_set_volume
LIBVLC_API int libvlc_audio_set_volume(libvlc_media_player_t *p_mi, int i_volume)
Set current software audio volume.
libvlc_audio_equalizer_get_preset_name
const LIBVLC_API char * libvlc_audio_equalizer_get_preset_name(unsigned u_index)
Get the name of a particular equalizer preset.
libvlc_video_get_aspect_ratio
LIBVLC_API char * libvlc_video_get_aspect_ratio(libvlc_media_player_t *p_mi)
Get current video aspect ratio.
libvlc_logo_x
Definition: libvlc_media_player.h:1473
libvlc_AudioChannel_Dolbys
Definition: libvlc_media_player.h:1601
libvlc_media_player_get_title
LIBVLC_API int libvlc_media_player_get_title(libvlc_media_player_t *p_mi)
Get movie title.
libvlc_time_t
int64_t libvlc_time_t
Definition: libvlc.h:78
libvlc_video_set_deinterlace
LIBVLC_API void libvlc_video_set_deinterlace(libvlc_media_player_t *p_mi, const char *psz_mode)
Enable or disable deinterlace filter.
libvlc_audio_equalizer_new_from_preset
LIBVLC_API libvlc_equalizer_t * libvlc_audio_equalizer_new_from_preset(unsigned u_index)
Create a new equalizer, with initial frequency values copied from an existing preset.
libvlc_video_set_mouse_input
LIBVLC_API void libvlc_video_set_mouse_input(libvlc_media_player_t *p_mi, unsigned on)
Enable or disable mouse click events handling.
libvlc_logo_position
Definition: libvlc_media_player.h:1478
libvlc_video_get_logo_int
LIBVLC_API int libvlc_video_get_logo_int(libvlc_media_player_t *p_mi, unsigned option)
Get integer logo option.
libvlc_position_top_left
Definition: libvlc_media_player.h:143
libvlc_media_player_get_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.
libvlc_video_cleanup_cb
void(* libvlc_video_cleanup_cb)(void *opaque)
Callback prototype to configure picture buffers format.
Definition: libvlc_media_player.h:376
libvlc_audio_get_track_description
LIBVLC_API libvlc_track_description_t * libvlc_audio_get_track_description(libvlc_media_player_t *p_mi)
Get the description of available audio tracks.
libvlc_role_None
Don't use a media player role.
Definition: libvlc_media_player.h:2051
libvlc_media_player_get_xwindow
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_media_player_retain
LIBVLC_API void libvlc_media_player_retain(libvlc_media_player_t *p_mi)
Retain a reference to a media player object.
libvlc_audio_set_delay
LIBVLC_API int libvlc_audio_set_delay(libvlc_media_player_t *p_mi, int64_t i_delay)
Set current audio delay.
libvlc_media_player_role_t
enum libvlc_media_player_role libvlc_media_player_role_t
Media player roles.
libvlc_chapter_description_t::i_duration
int64_t i_duration
duration of the chapter in milliseconds
Definition: libvlc_media_player.h:78
libvlc_media_player_get_length
LIBVLC_API libvlc_time_t libvlc_media_player_get_length(libvlc_media_player_t *p_mi)
Get the current movie length (in ms).
libvlc_chapter_description_t
struct libvlc_chapter_description_t libvlc_chapter_description_t
Description for chapters.
libvlc_role_Production
Audio editting/production.
Definition: libvlc_media_player.h:2058
libvlc_title_descriptions_release
LIBVLC_API void libvlc_title_descriptions_release(libvlc_title_description_t **p_titles, unsigned i_count)
Release a title description.
libvlc_audio_output_device_get
LIBVLC_API char * libvlc_audio_output_device_get(libvlc_media_player_t *mp)
Get the current audio output device identifier.
libvlc_position_left
Definition: libvlc_media_player.h:140
libvlc_track_description_t
struct libvlc_track_description_t libvlc_track_description_t
Description for video, audio tracks and subtitles.
libvlc_instance_t
struct libvlc_instance_t libvlc_instance_t
This structure is opaque.
Definition: libvlc.h:76
libvlc_adjust_Hue
Definition: libvlc_media_player.h:1520
libvlc_video_get_marquee_int
LIBVLC_API int libvlc_video_get_marquee_int(libvlc_media_player_t *p_mi, unsigned option)
Get an integer marquee option value.
libvlc_title_menu
Definition: libvlc_media_player.h:61
libvlc_audio_output_channel_t
libvlc_audio_output_channel_t
Audio channels.
Definition: libvlc_media_player.h:1595
libvlc_audio_output_device_set
LIBVLC_API void libvlc_audio_output_device_set(libvlc_media_player_t *mp, const char *module, const char *device_id)
Configures an explicit audio output device.
libvlc_media_player_get_chapter_count
LIBVLC_API int libvlc_media_player_get_chapter_count(libvlc_media_player_t *p_mi)
Get movie chapter count.
libvlc_AudioChannel_Left
Definition: libvlc_media_player.h:1599
libvlc_marquee_Position
Definition: libvlc_media_player.h:113
libvlc_track_description_t
Description for video, audio tracks and subtitles.
Definition: libvlc_media_player.h:48
libvlc_video_set_format_callbacks
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_navigate_popup
Definition: libvlc_media_player.h:131
libvlc_audio_output_device_types_t
libvlc_audio_output_device_types_t
Audio device types.
Definition: libvlc_media_player.h:1580
libvlc_marquee_Timeout
Definition: libvlc_media_player.h:116
libvlc_position_center
Definition: libvlc_media_player.h:139
libvlc_video_new_viewpoint
LIBVLC_API libvlc_video_viewpoint_t * libvlc_video_new_viewpoint(void)
Create a video viewpoint structure.
libvlc_logo_delay
Definition: libvlc_media_player.h:1475
libvlc_media_player_can_pause
LIBVLC_API int libvlc_media_player_can_pause(libvlc_media_player_t *p_mi)
Can this media player be paused?
libvlc_media_player_get_title_count
LIBVLC_API int libvlc_media_player_get_title_count(libvlc_media_player_t *p_mi)
Get movie title count.
libvlc_video_lock_cb
void *(* libvlc_video_lock_cb)(void *opaque, void **planes)
Callback prototype to allocate and lock a picture buffer.
Definition: libvlc_media_player.h:306
libvlc_video_get_size
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_track_description_t::psz_name
char * psz_name
Definition: libvlc_media_player.h:51
libvlc_media_player_set_renderer
LIBVLC_API int libvlc_media_player_set_renderer(libvlc_media_player_t *p_mi, libvlc_renderer_item_t *p_item)
Set a renderer to the media player.
libvlc_role_Accessibility
Accessibility.
Definition: libvlc_media_player.h:2059
libvlc_position_bottom_left
Definition: libvlc_media_player.h:146
libvlc_adjust_Gamma
Definition: libvlc_media_player.h:1522
libvlc_media_player_set_position
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_role_Communication
Speech, real-time communication.
Definition: libvlc_media_player.h:2054
libvlc_audio_play_cb
void(* libvlc_audio_play_cb)(void *data, const void *samples, unsigned count, int64_t pts)
Callback prototype for audio playback.
Definition: libvlc_media_player.h:626
libvlc_marquee_Refresh
Definition: libvlc_media_player.h:114
libvlc_video_get_spu
LIBVLC_API int libvlc_video_get_spu(libvlc_media_player_t *p_mi)
Get current video subtitle.
libvlc_marquee_Enable
Definition: libvlc_media_player.h:109
libvlc_media_player_set_evas_object
LIBVLC_API int libvlc_media_player_set_evas_object(libvlc_media_player_t *p_mi, void *p_evas_object)
Set the EFL Evas Object.
libvlc_media_player_t
struct libvlc_media_player_t libvlc_media_player_t
Definition: libvlc_media_player.h:42
libvlc_AudioChannel_Error
Definition: libvlc_media_player.h:1596
libvlc_audio_output_list_release
LIBVLC_API void libvlc_audio_output_list_release(libvlc_audio_output_t *p_list)
Frees the list of available audio output modules.
libvlc_video_get_track
LIBVLC_API int libvlc_video_get_track(libvlc_media_player_t *p_mi)
Get current video track.
libvlc_video_get_spu_count
LIBVLC_API int libvlc_video_get_spu_count(libvlc_media_player_t *p_mi)
Get the number of available video subtitles.
libvlc_audio_resume_cb
void(* libvlc_audio_resume_cb)(void *data, int64_t pts)
Callback prototype for audio resumption.
Definition: libvlc_media_player.h:650
libvlc_media_player_get_full_chapter_descriptions
LIBVLC_API int libvlc_media_player_get_full_chapter_descriptions(libvlc_media_player_t *p_mi, int i_chapters_of_title, libvlc_chapter_description_t ***pp_chapters)
Get the full description of available chapters.
libvlc_audio_pause_cb
void(* libvlc_audio_pause_cb)(void *data, int64_t pts)
Callback prototype for audio pause.
Definition: libvlc_media_player.h:638
libvlc_media_player_set_chapter
LIBVLC_API void libvlc_media_player_set_chapter(libvlc_media_player_t *p_mi, int i_chapter)
Set movie chapter (if applicable).
libvlc_video_logo_option_t
libvlc_video_logo_option_t
option values for libvlc_video_{get,set}_logo_{int,string}
Definition: libvlc_media_player.h:1470
libvlc_navigate_down
Definition: libvlc_media_player.h:128
libvlc_audio_setup_cb
int(* libvlc_audio_setup_cb)(void **data, char *format, unsigned *rate, unsigned *channels)
Callback prototype to setup the audio playback.
Definition: libvlc_media_player.h:736
libvlc_video_set_scale
LIBVLC_API void libvlc_video_set_scale(libvlc_media_player_t *p_mi, float f_factor)
Set the video scaling factor.
libvlc_video_marquee_option_t
libvlc_video_marquee_option_t
Marq options definition.
Definition: libvlc_media_player.h:108
libvlc_logo_y
Definition: libvlc_media_player.h:1474