LibVLCSharp The name of the folder that contains the per-architecture folders The Core class handles libvlc loading intricacies on various platforms as well as the libvlc/libvlcsharp version match check. The Core class handles libvlc loading intricacies on various platforms as well as the libvlc/libvlcsharp version match check. Initializes the X threading system Linux X11 only non-zero on success, zero on failure Load the native libvlc library (if necessary, depending on platform) Ensure that you installed the VideoLAN.LibVLC.[YourPlatform] package in your target project This will throw a if the native libvlc libraries cannot be found or loaded. It may also throw a if the LibVLC and LibVLCSharp major versions do not match. See https://code.videolan.org/videolan/LibVLCSharp/-/blob/master/docs/versioning.md for more info about the versioning strategy. The path to the directory that contains libvlc and libvlccore No need to specify unless running netstandard 1.1, or using custom location for libvlc This parameter is NOT supported on Linux, use LD_LIBRARY_PATH instead. Disable error dialogs in case of dll loading failures on older Windows versions. This is mostly to fix Windows XP support (https://code.videolan.org/videolan/LibVLCSharp/issues/173), though it may happen under other conditions (broken plugins/wrong ABI). As libvlc may load additional plugins later in the lifecycle of the application, we should not unset this on exiting Dialogs can be raised by libvlc for network actions and logins. You may only call once PostLogin or PostAction or Dismiss after which this instance will be invalid. Post a login answer. After this call, the instance won't be valid anymore valid non-empty string valid string if true stores the credentials Post a question answer. After this call, this instance won't be valid anymore QuestionCb 1 for action1, 2 for action2 return true on success, false otherwise Dismiss a dialog. After this call, this instance won't be valid anymore true if properly dismissed, false otherwise Describes the question type by libvlc Normal question Warning question Critical question Called when an error message needs to be displayed. title of the dialog text of the dialog Called when a login dialog needs to be displayed. You can interact with this dialog by calling PostLogin() to post an answer or Dismiss() to cancel this dialog. id used to interact with the dialog title of the dialog text of the dialog user name that should be set on the user form if true, ask the user if he wants to save the credentials Use token to cancel operation Called when a question dialog needs to be displayed. You can interact with this dialog by calling PostAction() to post an answer or Dismiss() to cancel this dialog. id used to interact with the dialog title of the dialog text of the dialog question type (or severity) of the dialog text of the cancel button text of the first button, if NULL, don't display this button text of the second button, if NULL, don't display this button Use token to cancel operation Called when a progress dialog needs to be displayed. If cancellable cancelText is not NULL, you can cancel this dialog by calling libvlc_dialog_dismiss() id used to interact with the dialog title of the dialog text of the dialog true if the progress dialog is indeterminate initial position of the progress bar (between 0.0 and 1.0) text of the cancel button, if NULL the dialog is not cancellable Use token to cancel operation Called when a progress dialog needs to be updated. id of the dialog position of the progress bar (between 0.0 and 1.0) new text of the progress dialog Equalizer settings can be applied to a media player using this type Create a new default equalizer, with all frequency values zeroed. The new equalizer can subsequently be applied to a media player by invoking libvlc_media_player_set_equalizer(). version LibVLC 2.2.0 or later Create a new equalizer, with initial frequency values copied from an existing preset. The new equalizer can subsequently be applied to a media player by invoking libvlc_media_player_set_equalizer(). version LibVLC 2.2.0 or later index of the preset, counting from zero Set a new pre-amplification value for an equalizer. The new equalizer settings are subsequently applied to a media player by invoking MediaPlayer::setEqualizer(). The supplied amplification value will be clamped to the -20.0 to +20.0 range. preamp value (-20.0 to 20.0 Hz) LibVLC 2.2.0 or later true on success, false otherwise Get the current pre-amplification value from an equalizer. return preamp value (Hz) LibVLC 2.2.0 or later Set a new amplification value for a particular equalizer frequency band. The new equalizer settings are subsequently applied to a media player by invoking MediaPlayer::setEqualizer(). The supplied amplification value will be clamped to the -20.0 to +20.0 range. LibVLC 2.2.0 or later amplification value (-20.0 to 20.0 Hz) index, counting from zero, of the frequency band to set Get the amplification value for a particular equalizer frequency band. LibVLC 2.2.0 or later index, counting from zero, of the frequency band to get amplification value (Hz); NaN if there is no such frequency band Get the number of equalizer presets. LibVLC 2.2.0 or later Get the name of a particular equalizer preset. This name can be used, for example, to prepare a preset label or menu in a user interface. index of the preset, counting from zero preset name, or empty string if there is no such preset Get the number of distinct frequency bands for an equalizer. return number of frequency bands LibVLC 2.2.0 or later Get a particular equalizer band frequency. This value can be used, for example, to create a label for an equalizer band control in a user interface. LibVLC 2.2.0 or later index index of the band, counting from zero equalizer band frequency (Hz), or -1 if there is no such band The class that manages one type of event Increments the reference count to the event handler method. The event type The event handler for this event type The MediaPlayerChanged event indicates when a new MediaPlayer has been set up with the VideoView and is ready to use for a first time playback. MediaPlayerChangedEventArgs constructor, used internally by LibVLCSharp The previous mediaplayer (if any) The new mediaplayer (if any) The previous mediaplayer (if any) The new mediaplayer (if any) Internal event used by LibVLCSharp. MediaPlayerChangingEventArgs constructor, used internally by LibVLCSharp The previous mediaplayer (if any) The new mediaplayer (if any) The previous mediaplayer (if any) The new mediaplayer (if any) Helper method that creates a user friendly type from the internal interop structure. AudioOutputDescriptionStructure from interop public AudioOutputDescription to be consumed by the user Helper method that creates a user friendly type from the internal interop structure. AudioOutputDeviceStructure from interop public AudioOutputDevice to be consumed by the user Helper method that creates a user friendly type from the internal interop structure. ModuleDescriptionStructure from interop public ModuleDescription to be consumed by the user Helper method that creates a user friendly type from the internal interop structure. TrackDescriptionStructure from interop public TrackDescription to be consumed by the user Helper method that creates a user friendly type from the internal interop structure. ChapterDescriptionStructure from interop public ChapterDescription to be consumed by the user Helper method that creates a user friendly type from the internal interop structure. MediaSlaveStructure from interop public MediaSlave to be consumed by the user Helper method that creates a user friendly type from the internal interop structure. TrackDescriptionStructure from interop public TrackDescription to be consumed by the user Helper method that creates a user friendly type from the internal interop structure. SubtitleTrackStructure from interop public SubtitleTrack to be consumed by the user Helper method that creates a user friendly type from the internal interop structure. MediaDiscovererDescriptionStructure from interop public MediaDiscovererDescription to be consumed by the user Helper method that creates a user friendly type from the internal interop structure. RendererDescriptionStructure from interop public RendererDescription to be consumed by the user Helper method that marshals a UTF16 managed string to a UTF8 native string ptr the managed string to marshal to native a ptr to the UTF8 string that needs to be freed after use Helper method that mashals a UTF8 native string ptr to a UTF16 managed string. Optionally frees the native string ptr the native string to marshal to managed frees the native pointer of the libvlc string (use only for char*) a managed UTF16 string The Span-based APIs on Stream are not available on older targets. Span can be backported on older TFMs through the System.Memory package, but System.IO does not provide the same benefit. This code is extracted from dotnet/runtime to allow efficient media callbacks implementation. https://github.com/dotnet/runtime/blob/c4b9dabec8186a0d61f0cc3ea0b7efea579bf24e/src/libraries/System.Private.CoreLib/src/System/IO/Stream.cs#L720-L734 the .NET stream the buffer to read number of bytes read Helper for libvlc_new libvlc options, an UTF16 string array turned to UTF8 string pointer array the create function call the result of the create function Thrown when libvlc could not be created Generic marshalling function to retrieve structs from a libvlc linked list Internal struct type publicly facing struct type Native libvlc call: retrieve collection start pointer from parent reference Retrieve the internal struct by marshalling the native pointer Create a publicly facing struct from the internal struct values Access next element in the list Native libvlc call: release resources allocated with the getRef call An array of publicly facing struct types Generic marshalling function to retrieve structs from libvlc by reading from unmanaged memory with offsets This supports uint libvlc signatures. Internal struct type publicly facing struct type native reference of the parent Native libvlc call: retrieve collection start pointer from parent reference Retrieve the internal struct by marshalling the native pointer Create a publicly facing struct from the internal struct values Native libvlc call: release the array allocated with the getRef call with the given element count An array of publicly facing struct types Generic marshalling function to retrieve structs from libvlc by reading from unmanaged memory with offsets Internal struct type publicly facing struct type native reference of the parent Native libvlc call: retrieve collection start pointer from parent reference Retrieve the internal struct by marshalling the native pointer Create a publicly facing struct from the internal struct values Native libvlc call: release the array allocated with the getRef call with the given element count An array of publicly facing struct types Generic marshalling function to retrieve structs from libvlc by reading from unmanaged memory with offsets This supports an additional enum configuration parameter. Internal struct type publicly facing struct type Additional enum confugation type native reference of the parent Additional enum confugation type Native libvlc call: retrieve collection start pointer from parent reference Retrieve the internal struct by marshalling the native pointer Create a publicly facing struct from the internal struct values Native libvlc call: release the array allocated with the getRef call with the given element count An array of publicly facing struct types Turns an array of UTF16 C# strings to an array of pointer to UTF8 strings Array of pointer you need to release when you're done with Marshal.FreeHGlobal Marshal a pointer to a struct Helper with netstandard1.1 and net40 support Crossplatform dlopen true if successful Crossplatform fclose true if successful Frees an heap allocation returned by a LibVLC function. If you know you're using the same underlying C run-time as the LibVLC implementation, then you can call ANSI C free() directly instead. the pointer Performs the native call, frees the ptrs and returns the result Performs the native call and frees the ptrs Gets the instance represented by the given handle. This must be a GCHandle. The type of instance to retrieve The handle given back by libvlc null if it is not a valid handle, the instance otherwise Small helper for determining the current platform Returns true if running on Windows, false otherwise Returns true if running on Linux, false otherwise Returns true if running on Linux desktop, false otherwise Returns true if running on macOS, false otherwise Returns true if running in 64bit process, false otherwise This base class is used for the main libvlc types The pointer to the native code representation of this object Release native resources by calling this C function Indicates whether this object has already been disposed Base constructor for most libvlc objects. Will perform native calls. A create function that will return a pointer to the instance in native code A release Action that takes the native pointer to that C# instance's native code representation and performs the release call in native code. It will be called once when the C# instance gets disposed. Dispose of this instance Dispose of this instance true if called from a method Interface for video control Occurs when the size of the control changes Gets the width of the video view Gets the height of the video view VideoView Interface MediaPlayer object connected to the view Main LibVLC API object representing a libvlc instance in native code. Note: You may create multiple mediaplayers from a single LibVLC instance Determines whether two object instances are equal. other libvlc instance to compare with true if same instance, false otherwise Determines whether two object instances are equal. other libvlc instance to compare with true if same instance, false otherwise The real log event handlers. The GCHandle to be passed to callbacks as userData Returns the hashcode for this libvlc instance Create and initialize a libvlc instance. This functions accept a list of "command line" arguments similar to the main(). These arguments affect the LibVLC instance default configuration. LibVLC may create threads. Therefore, any thread-unsafe process initialization must be performed before calling libvlc_new(). In particular and where applicable: - setlocale() and textdomain(), - setenv(), unsetenv() and putenv(), - with the X11 display system, XInitThreads() (see also libvlc_media_player_set_xwindow()) and - on Microsoft Windows, SetErrorMode(). - sigprocmask() shall never be invoked; pthread_sigmask() can be used. On POSIX systems, the SIGCHLD signalmust notbe ignored, i.e. the signal handler must set to SIG_DFL or a function pointer, not SIG_IGN. Also while LibVLC is active, the wait() function shall not be called, and any call to waitpid() shall use a strictly positive value for the first parameter (i.e. the PID). Failure to follow those rules may lead to a deadlock or a busy loop. Also on POSIX systems, it is recommended that the SIGPIPE signal be blocked, even if it is not, in principles, necessary, e.g.: On Microsoft Windows Vista/2008, the process error mode SEM_FAILCRITICALERRORS flagmustbe set before using LibVLC. On later versions, that is optional and unnecessary. Also on Microsoft Windows (Vista and any later version), setting the default DLL directories to SYSTEM32 exclusively is strongly recommended for security reasons: Arguments are meant to be passed from the command line to LibVLC, just like VLC media player does. The list of valid arguments depends on the LibVLC version, the operating system and platform, and set of available LibVLC plugins. Invalid or unsupported arguments will cause the function to fail (i.e. return NULL). Also, some arguments may alter the behaviour or otherwise interfere with other LibVLC functions. There is absolutely no warranty or promise of forward, backward and cross-platform compatibility with regards to libvlc_new() arguments. We recommend that you do not use them, other than when debugging. This will throw a if the native libvlc libraries cannot be found or loaded. It may also throw a if the LibVLC and LibVLCSharp major versions do not match. See https://code.videolan.org/videolan/LibVLCSharp/-/blob/master/docs/versioning.md for more info about the versioning strategy. // example
using var libvlc = new LibVLC("--verbose=2");
// or
using var libvlc = new LibVLC("--verbose", "2");
list of arguments, in the form "--option=value" the libvlc instance or NULL in case of error
Create and initialize a libvlc instance. This functions accept a list of "command line" arguments similar to the main(). These arguments affect the LibVLC instance default configuration. LibVLC may create threads. Therefore, any thread-unsafe process initialization must be performed before calling libvlc_new(). In particular and where applicable: - setlocale() and textdomain(), - setenv(), unsetenv() and putenv(), - with the X11 display system, XInitThreads() (see also libvlc_media_player_set_xwindow()) and - on Microsoft Windows, SetErrorMode(). - sigprocmask() shall never be invoked; pthread_sigmask() can be used. On POSIX systems, the SIGCHLD signalmust notbe ignored, i.e. the signal handler must set to SIG_DFL or a function pointer, not SIG_IGN. Also while LibVLC is active, the wait() function shall not be called, and any call to waitpid() shall use a strictly positive value for the first parameter (i.e. the PID). Failure to follow those rules may lead to a deadlock or a busy loop. Also on POSIX systems, it is recommended that the SIGPIPE signal be blocked, even if it is not, in principles, necessary, e.g.: On Microsoft Windows Vista/2008, the process error mode SEM_FAILCRITICALERRORS flagmustbe set before using LibVLC. On later versions, that is optional and unnecessary. Also on Microsoft Windows (Vista and any later version), setting the default DLL directories to SYSTEM32 exclusively is strongly recommended for security reasons: Arguments are meant to be passed from the command line to LibVLC, just like VLC media player does. The list of valid arguments depends on the LibVLC version, the operating system and platform, and set of available LibVLC plugins. Invalid or unsupported arguments will cause the function to fail (i.e. return NULL). Also, some arguments may alter the behaviour or otherwise interfere with other LibVLC functions. There is absolutely no warranty or promise of forward, backward and cross-platform compatibility with regards to libvlc_new() arguments. We recommend that you do not use them, other than when debugging. This will throw a if the native libvlc libraries cannot be found or loaded. It may also throw a if the LibVLC and LibVLCSharp major versions do not match. See https://code.videolan.org/videolan/LibVLCSharp/-/blob/master/docs/versioning.md for more info about the versioning strategy. enable verbose debug logs list of arguments (should be NULL) Make dirty hacks to include necessary defaults on some platforms. The options given by the user enable debug logs The patched options Dispose of this libvlc instance Determines whether 2 instances of libvlc are equals 1st instance of libvlc 2nd instance of libvlc Determines whether 2 instances of libvlc are different 1st instance of libvlc 2nd instance of libvlc Try to start a user interface for the libvlc instance. interface name, or null for default True if successful, false otherwise Registers a callback for the LibVLC exit event. This is mostly useful if the VLC playlist and/or at least one interface are started with libvlc_playlist_play() or libvlc_add_intf() respectively. Typically, this function will wake up your application main loop (from another thread). callback to invoke when LibVLC wants to exit, or NULL to disable the exit handler (as by default) This function should be called before the playlist or interface are started. Otherwise, there is a small race condition: the exit event could be raised before the handler is registered. This function and libvlc_wait() cannot be used at the same time. Sets the application name. LibVLC passes this as the user agent string when a protocol requires it. human-readable application name, e.g. "FooBar player 1.2.3" HTTP User Agent, e.g. "FooBar/1.2.3 Python/2.6.0" LibVLC 1.1.1 or later Sets some meta-information about the application. See also libvlc_set_user_agent(). Java-style application identifier, e.g. "com.acme.foobar" application version numbers, e.g. "1.2.3" application icon name, e.g. "foobar" LibVLC 2.1.0 or later. Close log file handle true if no file to close or close operation successful, false otherwise Sets up logging to a file. Watch out: Overwrite contents if file exists! Potentially throws a VLCException if FILE * cannot be obtained FILE pointer opened for writing (the FILE pointer must remain valid until libvlc_log_unset()) open/create file with Write access. If existing, resets content. LibVLC 2.1.0 or later The event that is triggered when a log is emitted from libVLC. Listening to this event will discard the default logger in libvlc. Returns a list of audio filters that are available. a list of module descriptions. It should be freed with libvlc_module_description_list_release(). In case of an error, NULL is returned. libvlc_module_description_t libvlc_module_description_list_release Returns a list of video filters that are available. a list of module descriptions. It should be freed with libvlc_module_description_list_release(). In case of an error, NULL is returned. libvlc_module_description_t libvlc_module_description_list_release Gets the list of available audio output modules. list of available audio outputs. It must be freed with libvlc_audio_output_list_release libvlc_audio_output_t . In case of error, NULL is returned. Gets a list of audio output devices for a given audio output module, audio output name (as returned by libvlc_audio_output_list_get()) A NULL-terminated linked list of potential audio output devices. It must be freed with libvlc_audio_output_device_list_release() libvlc_audio_output_device_set(). Not all audio outputs support this. In particular, an empty (NULL) list of devices doesnotimply that the specified audio output does not work. The list might not be exhaustive. Some audio output devices in the list might not actually work in some circumstances. By default, it is recommended to not specify any explicit audio device. LibVLC 2.1.0 or later. Get media discoverer services by category category of services to fetch the number of media discoverer services (0 on error) LibVLC 3.0.0 and later. Register callbacks in order to handle VLC dialogs. LibVLC 3.0.0 and later. Called when an error message needs to be displayed. Called when a login dialog needs to be displayed. You can interact with this dialog by calling Dialog.PostLogin() to post an answer or Dialog.Dismiss() to cancel this dialog. Called when a question dialog needs to be displayed. You can interact with this dialog by calling Dialog.PostLogin() to post an answer or Dialog.Dismiss() to cancel this dialog. Called when a progress dialog needs to be displayed. Called when a progress dialog needs to be updated. Unset dialog callbacks if previously set True if dialog handlers are set List of available renderers used to create RendererDiscoverer objects Note: LibVLC 3.0.0 and later Gets log message debug infos. This function retrieves self-debug information about a log message: - the name of the VLC module emitting the message, - the name of the source code module (i.e.file) and - the line number within the source code module. The returned module name and file name will be NULL if unknown. The returned line number will similarly be zero if unknown. The log message context (as passed to the ) The module name storage. The source code file name storage. The source code file line number storage. Increments the native reference counter for this libvlc instance The version of the LibVLC engine currently used by LibVLCSharp The changeset of the LibVLC engine currently used by LibVLCSharp A human-readable error message for the last LibVLC error in the calling thread. The resulting string is valid until another error occurs (at least until the next LibVLC call). Null if no error. Clears the LibVLC error status for the current thread. This is optional. By default, the error status is automatically overridden when a new error occurs, and destroyed when the thread exits. Retrieve the libvlc compiler version. Example: "gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu6)" Registers a callback for the LibVLC exit event. This is mostly useful if the VLC playlist and/or at least one interface are started with libvlc_playlist_play() or AddInterface() respectively. Typically, this function will wake up your application main loop (from another thread). Logging messages level. Future LibVLC versions may define new levels. Debug message Important informational message Warning (potential error) message Error message Registers a callback for the LibVLC exit event. This is mostly useful if the VLC playlist and/or at least one interface are started with libvlc_playlist_play() or AddInterface() respectively. Typically, this function will wake up your application main loop (from another thread). LibVLCEvent types Useless event, it will be triggered only when calling libvlc_media_discoverer_start() Useless event, it will be triggered only when calling libvlc_media_discoverer_stop() Useless event, it will be triggered only when calling libvlc_media_discoverer_stop() Useless event, it will be triggered only when calling libvlc_media_discoverer_stop() Useless event, it will be triggered only when calling libvlc_media_discoverer_stop() Useless event, it will be triggered only when calling libvlc_media_discoverer_stop() Useless event, it will be triggered only when calling libvlc_media_discoverer_stop() Useless event, it will be triggered only when calling libvlc_media_discoverer_stop() Useless event, it will be triggered only when calling libvlc_media_discoverer_stop() Useless event, it will be triggered only when calling libvlc_media_discoverer_stop() Useless event, it will be triggered only when calling libvlc_media_discoverer_stop() Useless event, it will be triggered only when calling libvlc_media_discoverer_stop() Useless event, it will be triggered only when calling libvlc_media_discoverer_stop() Useless event, it will be triggered only when calling libvlc_media_discoverer_stop() Useless event, it will be triggered only when calling libvlc_media_discoverer_stop() Renderer item This struct is passed by a or deleted. An item is valid until the is called with the same pointer. libvlc_renderer_discoverer_event_manager() A LibVLC event Media metadata changed Type of the metadata that changed Media parsed status changed The new parsed status Media sub item added The newly added media subitem The duration of the media changed The new media duration The media has been freed Freed media The state of the media changed New media state A media sub item tree has been added New media sub item tree The mediaplayer's media changed New mediaplayer's media The mediaplayer buffering information Caching information The mediaplayer's time changed Mediaplayer's current time The mediaplayer's position changed Mediaplayer's current position The mediaplayer's seekable status changed The new seekable capability The mediaplayer's pausable status changed The new pausable capability The mediaplayer's title changed The new title The mediaplayer's chapter changed The new chapter The mediaplayer had a snapshot taken Filename of the newly taken snapshot The mediaplayer's length changed The new mediaplayer length The mediaplayer's video output changed Number of available video outputs The mediaplayer scrambled status changed The scrambled status The mediaplayer has a new Elementary Stream (ES) The Id of the new Elementary Stream (ES) The type of the new Elementary Stream (ES) An Elementary Stream (ES) was deleted The Id of the deleted Elementary Stream (ES) The type of the deleted Elementary Stream (ES) An Elementary Stream (ES) was selected The Id of the selected Elementary Stream (ES) The type of the seleted Elementary Stream (ES) The mediaplayer's audio device changed String describing the audio device The mediaplayer's volume changed The new volume Base class for MediaList events Current node Current index Default constructor Current node Current index An item has been added to the MediaList An item is about to be added to the MediaList An item has been deleted from the MediaList An item is about to be deleted from the MediaList A new RendererItem has been found The newly found RendererItem A RendererItem has been deleted The deleted RendererItem The LibVLC Log Event Arg The severity of the log message. By default, you will only get error messages, but you can get all messages by specifying "-vv" in the options. The log message The name of the module that emitted the message The source file that emitted the message. This may be if that info is not available, i.e. always if you are using a release version of VLC. The line in the at which the message was emitted. This may be if that info is not available, i.e. always if you are using a release version of VLC. Helper property with already formatted log message Media is an abstract representation of a playable media. It can be a network stream or a local video/audio file. Media Constructs a libvlc Media instance A libvlc instance A path, location, or node name, depending on the 3rd parameter The type of the 2nd argument. the libvlc options, in the form of ":your-option" Media Constructs a libvlc Media instance A libvlc instance The absolute URI of the resource. the libvlc options, in the form of ":your-option" Create a media for an already open file descriptor. The file descriptor shall be open for reading(or reading and writing). Regular file descriptors, pipe read descriptors and character device descriptors(including TTYs) are supported on all platforms. Block device descriptors are supported where available. Directory descriptors are supported on systems that provide fdopendir(). Sockets are supported on all platforms where they are file descriptors, i.e.all except Windows. \note This library will not automatically close the file descriptor under any circumstance.Nevertheless, a file descriptor can usually only be rendered once in a media player.To render it a second time, the file descriptor should probably be rewound to the beginning with lseek(). A libvlc instance open file descriptor the libvlc options, in the form of ":your-option" Create a media from a media list media list to create media from Create a media from a MediaInput requires libvlc 3.0 or higher the libvlc instance the media to be used by libvlc. LibVLCSharp will NOT dispose or close it. Use or implement your own. the libvlc options, in the form of ":your-option" Add an option to the media. // example
media.AddOption(":no-audio");
the media option, in the form of ":your-option" This option will be used to determine how the media_player will read the media. This allows to use VLC's advanced reading/streaming options on a per-media basis. The options are listed in 'vlc --long-help' from the command line, e.g. "-sout-all". Keep in mind that available options and their semantics vary across LibVLC versions and builds. Not all options affects libvlc_media_t objects: Specifically, due to architectural issues most audio and video options, such as text renderer options, have no effects on an individual media. These options must be set through libvlc_new() instead.
Convenience method for crossplatform media configuration mediaConfiguration translate to strings parsed by the vlc engine, some are platform specific Add an option to the media with configurable flags. the media option the flags for this option This option will be used to determine how the media_player will read the media. This allows to use VLC's advanced reading/streaming options on a per-media basis. The options are detailed in vlc --long-help, for instance "--sout-all". Note that all options are not usable on medias: specifically, due to architectural issues, video-related options such as text renderer options cannot be set on a single media. They must be set on the whole libvlc instance instead. Get the media resource locator (mrl) from a media descriptor object Duplicate a media descriptor object. Read the meta of the media. the meta to read the media's meta If the media has not yet been parsed this will return NULL. Set the meta of the media (this function will not save the meta, call libvlc_media_save_meta in order to save the meta) the to write the media's meta Save the meta previously set true if the write operation was successful Get current of media descriptor object. Get the current statistics about the media structure that contain the statistics about the media Get event manager from media descriptor object. NOTE: this function doesn't increment reference counting. event manager object Get duration (in ms) of media descriptor object item. duration of media item or -1 on error Parse the media asynchronously with options. It uses a flag to specify parse options (see ). All these flags can be combined. By default, the media is parsed only if it's a local file. Note: Parsing can be aborted with ParseStop(). Parse options flags. They can be combined maximum time allowed to preparse the media. If -1, the default "preparse-timeout" option will be used as a timeout. If 0, it will wait indefinitely. If > 0, the timeout will be used (in milliseconds). token to cancel the operation the parse status of the media Return true is the media descriptor object is parsed true if media object has been parsed otherwise it returns false Get Parsed status for media descriptor object. a value of the libvlc_media_parsed_status_t enum libvlc_MediaParsedChanged libvlc_media_parsed_status_t LibVLC 3.0.0 or later Stop the parsing of the media When the media parsing is stopped, the libvlc_MediaParsedChanged event will be sent with the libvlc_media_parsed_status_timeout status. libvlc_media_parse_with_options LibVLC 3.0.0 or later Get media descriptor's elementary streams description address to store an allocated array of Elementary Streams descriptions (must be freed with libvlc_media_tracks_release by the caller) [OUT] the number of Elementary Streams (zero on error) Note, you need to call libvlc_media_parse() or play the media at least once before calling this function. Not doing this will result in an empty array. LibVLC 2.1.0 and later. Get subitems of media descriptor object. This will increment the reference count of supplied media descriptor object. Use libvlc_media_list_release() to decrement the reference counting. list of media descriptor subitems or NULL The type of the media Add a slave to the current media. subtitle or audio from 0 (low priority) to 4 (high priority) Uri of the slave (should contain a valid scheme). true on success, false on error. A slave is an external input source that may contains an additional subtitle track (like a .srt) or an additional audio track (like a .ac3). This function must be called before the media is parsed (via libvlc_media_parse_with_options()) or before the media is played (via libvlc_media_player_play()) LibVLC 3.0.0 and later. Add a slave to the current media. subtitle or audio from 0 (low priority) to 4 (high priority) Uri of the slave (should contain a valid scheme). true on success, false on error. A slave is an external input source that may contains an additional subtitle track (like a .srt) or an additional audio track (like a .ac3). This function must be called before the media is parsed (via libvlc_media_parse_with_options()) or before the media is played (via libvlc_media_player_play()) LibVLC 3.0.0 and later. Clear all slaves previously added by libvlc_media_slaves_add() or internally. LibVLC 3.0.0 and later. Get a media descriptor's slave list address to store an allocated array of slaves (must be freed with libvlc_media_slaves_release()) [OUT] the number of slaves (zero on error) The list will contain slaves parsed by VLC or previously added by libvlc_media_slaves_add(). The typical use case of this function is to save a list of slave in a database for a later use. LibVLC 3.0.0 and later. libvlc_media_slaves_add Get a media's codec description The type of the track the codec or fourcc the codec description Equality override for this media instance the media to compare this one with Custom hascode implemenation for this Media instance the hashcode for this Media instance Increments the native reference counter for the media It consists of a media location and various optional meta data. @{ LibVLC media item/descriptor external API Callback prototype to open a custom bitstream input media. private pointer as passed to libvlc_media_new_callbacks() storage space for a private data pointer [OUT] byte length of the bitstream or UINT64_MAX if unknown [OUT] 0 on success, non-zero on error. In case of failure, the other callbacks will not be invoked and any value stored in *datap and *sizep is discarded. The same media item can be opened multiple times. Each time, this callback is invoked. It should allocate and initialize any instance-specific resources, then store them in *datap. The instance resources can be freed in the For convenience, *datap is initially NULL and *sizep is initially 0. Callback prototype to read data from a custom bitstream input media. private pointer as set by the start address of the buffer to read data into bytes length of the buffer strictly positive number of bytes read, 0 on end-of-stream, or -1 on non-recoverable error callback If no data is immediately available, then the callback should sleep. The application is responsible for avoiding deadlock situations. In particular, the callback should return an error if playback is stopped; if it does not return, then libvlc_media_player_stop() will never return. Callback prototype to seek a custom bitstream input media. private pointer as set by the absolute byte offset to seek to 0 on success, -1 on error. callback Callback prototype to close a custom bitstream input media. private pointer as set by the callback The meta information changed The parsing status changed A sub item was added to this media's MediaList The duration of the media changed The media was freed on the native side The media state changed A sub item tree was added to this media Note the order of libvlc_state_t enum must match exactly the order of mediacontrol_PlayerStatus, input_state_e enums, and VideoLAN.LibVLCSharp.State (at bindings/cil/src/media.cs). Expected states by web plugins are: IDLE/CLOSE=0, OPENING=1, PLAYING=3, PAUSED=4, STOPPING=5, ENDED=6, ERROR=7 Nothing special happening Opening media Buffering media Playing media Paused media Stopped media Ended media Error media Media track type such as Audio, Video or Text Unknown track Audio track Video track Text track Video orientation Normal. Top line represents top, left column left. Flipped horizontally Flipped vertically Rotated 180 degrees Transposed Rotated 90 degrees clockwise (or 270 anti-clockwise) Rotated 90 degrees anti-clockwise Anti-transposed Video projection Rectangular 360 spherical Cubemap layout standard Type of a media slave: subtitle or audio. Subtitle Audio Meta data types Title metadata Artist metadata Genre metadata Copyright metadata Album metadata Track number metadata Description metadata Rating metadata Date metadata Setting metadata URL metadata Language metadata Now playing metadata Publisher metadata Encoded by metadata Artwork URL metadata Track ID metadata Total track metadata Director metadata Season metadata Episode metadata Show name metadata Actors metadata Album artist metadata Disc number metadata Disc total metadata The FromType enum is used to drive the media creation. A media is usually created using a string, which can represent one of 3 things: FromPath, FromLocation, AsNode. Create a media for a certain file path. Create a media with a certain given media resource location, for instance a valid URL. note To refer to a local file with this function, the file://... URI syntax must be used (see IETF RFC3986). We recommend using FromPath instead when dealing with local files. Create a media as an empty node with a given name. Parse flags used by libvlc_media_parse_with_options() libvlc_media_parse_with_options Parse media if it's a local file Parse media even if it's a network file Fetch meta and covert art using local resources Fetch meta and covert art using network resources Interact with the user (via libvlc_dialog_cbs) when preparsing this item (and not its sub items). Set this flag in order to receive a callback when the input is asking for credentials. Parse status used sent by libvlc_media_parse_with_options() or returned by libvlc_media_get_parsed_status() libvlc_media_parse_with_options libvlc_media_get_parsed_status Parsing was skipped Parsing failed Parsing timed out Parsing completed successfully Media type libvlc_media_get_type Unknown media type File type Directory type Disc type Stream type Playlist type Configuration helper designed to be used for advanced libvlc configuration More info at https://wiki.videolan.org/VLC_command-line_help/ Enable/disable hardware decoding (crossplatform). Caching value for local files, in milliseconds [0 .. 60000ms] Caching value for network resources, in milliseconds [0 .. 60000ms] Builds the current MediaConfiguration for consumption by libvlc (or storage) Configured libvlc options as strings MediaDiscoverer should be used to find media on NAS and any SMB/UPnP-enabled device on your local network. Media discoverer constructor libvlc instance this will be attached to name from one of LibVLC.MediaDiscoverers Start media discovery. To stop it, call MediaDiscover::stop() or destroy the object directly. false in case of error, true otherwise Stop media discovery. Get media service discover object its localized name. under v3 only Get event manager from media service discover object. under v3 only Query if media service discover object is running. The MediaList attached to this MediaDiscoverer Media discovery has been started for this media discoverer Media discovery has been stopped for this media discoverer Dispose of this media discoverer true if called from a method Category of a media discoverer libvlc_media_discoverer_list_get() devices, like portable music player LAN/WAN services, like Upnp, SMB, or SAP Podcasts Local directories, like Video, Music or Pictures directories An abstract class that lets libvlc read a media from callbacks. Override this to provide your own reading mechanism, or you can use the class The GCHandle to be passed to callbacks as userData The constructor A value indicating whether this Media input can be seeked in. LibVLC calls this method when it wants to open the media This value must be filled with the length of the media (or ulong.MaxValue if unknown) true if the stream opened successfully LibVLC calls this method when it wants to read the media The buffer where read data must be written The buffer length strictly positive number of bytes read, 0 on end-of-stream, or -1 on non-recoverable error LibVLC calls this method when it wants to seek to a specific position in the media The offset, in bytes, since the beginning of the stream true if the seek succeeded, false otherwise LibVLC calls this method when it wants to close the media. Override this to dispose things in your child class Disposes of this instance The MediaList holds a list of Media types Get subitems of media descriptor object. Get media service discover media list. Create an empty media list. Associate media instance with this media list instance. If another media instance was present it will be released. media instance to add Add media instance to media list a media instance true on success, false if the media list is read-only Insert media instance in media list on a position. a media instance position in the array where to insert true on success, false if the media list is read-only Remove media instance from media list on a position. position in the array where to remove the iteam true on success, false if the media list is read-only or the item was not found Get count on media list items. Gets the element at the specified index position in array where to insert media instance at position, or null if not found. In case of success, Media.Retain() is called to increase the refcount on the media. Find index position of List media instance in media list. Warning: the function will return the first matched position. media instance position of media instance or -1 if media not found This indicates if this media list is read-only from a user point of view. True if readonly, false otherwise Get lock on media list items Release lock on media list items The MediaList lock should be held upon entering this function. Get libvlc_event_manager from this media list instance. The p_event_manager is immutable, so you don't have to hold the lock Increments the native reference counter for this medialist instance An item has been added to the MediaList An item is about to be added to the MediaList An item has been deleted from the MediaList An item is about to be deleted from the MediaList The media list reached its end Returns an enumerator that iterates through a collection of media an enumerator over a media collection The MediaPlayer type is used to control playback, set renderers, provide events and much more The GCHandle to be passed to callbacks as userData Create an empty Media Player object the libvlc instance in which the Media Player should be created. a new media player object, or NULL on error. Create a Media Player object from a Media the media. Afterwards the p_md can be safely destroyed. a new media player object, or NULL on error. Get the media used by the media_player. Set the media that will be used by the media_player. If any, previous md will be released. Note: It is safe to release the Media on the C# side after it's been set on the MediaPlayer successfully return true if the media player is playing, false otherwise Start playback with Media that is set If playback was already started, this method has no effect true if successful Set media and start playback true if successful Pause or resume (no effect if there is no media). version LibVLC 1.1.1 or later play/resume if true, pause if false Toggle pause (no effect if there is no media) Stop the playback (no effect if there is no media) warning: This is synchronous, and will block until all VLC threads have been joined. Calling this from a VLC callback is a bound to cause a deadlock. Get the NSView handler previously set return the NSView handler or 0 if none where set Set the NSView handler where the media player should render its video output. Use the vout called "macosx". The drawable is an NSObject that follow the VLCOpenGLVideoViewEmbedding protocol: VLCOpenGLVideoViewEmbedding NSObject Or it can be an NSView object. If you want to use it along with Qt4 see the QMacCocoaViewContainer. Then the following code should work: { NSView *video = [[NSView alloc] init]; QMacCocoaViewContainer *container = new QMacCocoaViewContainer(video, parent); libvlc_media_player_set_nsobject(mp, video); [video release]; } You can find a live example in VLCVideoView in VLCKit.framework. Set an X Window System drawable where the media player should render its video output. The call takes effect when the playback starts. If it is already started, it might need to be stopped before changes apply. If LibVLC was built without X11 output support, then this function has no effects. By default, LibVLC will capture input events on the video rendering area. Use libvlc_video_set_mouse_input() and libvlc_video_set_key_input() to disable that and deliver events to the parent window / to the application instead. By design, the X11 protocol delivers input events to only one recipient. Warning: The application must call the XInitThreads() function from Xlib before libvlc_new(), and before any call to XOpenDisplay() directly or via any other library.Failure to call XInitThreads() will seriously impede LibVLC performance. Calling XOpenDisplay() before XInitThreads() will eventually crash the process. That is a limitation of Xlib. uint: X11 window ID Set a Win32/Win64 API window handle (HWND) where the media player should render its video output. If LibVLC was built without Win32/Win64 API output support, then this has no effects. Get the Windows API window handle (HWND) previously set The movie length (in ms), or -1 if there is no media. Set the movie time (in ms). This has no effect if no media is being played. Not all formats and protocols support this. Get the movie time (in ms), or -1 if there is no media. Set movie position as percentage between 0.0 and 1.0. This has no effect if playback is not enabled. This might not work depending on the underlying input format and protocol. Get movie position as percentage between 0.0 and 1.0. Set the movie time. This has no effect if no media is being played. Not all formats and protocols support this. the movie time to seek to Set movie chapter (if applicable). Get the movie chapter number currently playing, or -1 if there is no media. Get the number of chapters in movie, or -1. True if the player is able to play Get the number of chapters in title, or -1 Set movie title number to play Get movie title number currently playing, or -1 The title number count, or -1 Set previous chapter (if applicable) Set next chapter (if applicable) Get the requested movie play rate. warning Depending on the underlying media, the requested rate may be different from the real playback rate. Set movie play rate movie play rate to set return -1 if an error was detected, 0 otherwise (but even then, it might not actually work depending on the underlying media protocol) Get the current state of the media player (playing, paused, ...) Get the frames per second (fps) for this playing movie, or 0 if unspecified Get the number of video outputs True if the media player can seek True if the media player can pause True if the current program is scrambled LibVLC 2.2.0 or later Display the next frame (if supported) Navigate through DVD Menu the Navigation mode LibVLC 2.0.0 or later Set if, and how, the video title will be shown when media is played. position at which to display the title, or libvlc_position_disable to prevent the title from being displayed title display timeout in milliseconds (ignored if libvlc_position_disable) LibVLC 2.1.0 or later Toggle fullscreen status on non-embedded video outputs. warning: The same limitations applies to this function as to MediaPlayer::setFullscreen() Enable or disable fullscreen. Warning, TL;DR version : Unless you know what you're doing, don't use this. Put your VideoView inside a fullscreen control instead, refer to your platform documentation. Warning, long version : With most window managers, only a top-level windows can be in full-screen mode. Hence, this function will not operate properly if libvlc_media_player_set_xwindow() was used to embed the video in a non-top-level window. In that case, the embedding window must be reparented to the root window before fullscreen mode is enabled. You will want to reparent it back to its normal parent when disabling fullscreen. return the fullscreen status (boolean) Toggle teletext transparent status on video output. Apply new equalizer settings to a media player. The equalizer is first created by invoking libvlc_audio_equalizer_new() or libvlc_audio_equalizer_new_from_preset(). It is possible to apply new equalizer settings to a media player whether the media player is currently playing media or not. Invoking this method will immediately apply the new equalizer settings to the audio output of the currently playing media if there is any. If there is no currently playing media, the new equalizer settings will be applied later if and when new media is played. Equalizer settings will automatically be applied to subsequently played media. To disable the equalizer for a media player invoke this method passing NULL for the p_equalizer parameter. The media player does not keep a reference to the supplied equalizer so it is safe for an application to release the equalizer reference any time after this method returns. opaque equalizer handle, or NULL to disable the equalizer for this media player LibVLC 2.2.0 or later true on success, false otherwise. unsetEqualizer disable equalizer for this media player true on success, false otherwise. Sets callbacks and private data for decoded audio. Use libvlc_audio_set_format() or libvlc_audio_set_format_callbacks() to configure the decoded audio format. Note: The audio callbacks override any other audio output mechanism. If the callbacks are set, LibVLC will not output audio in any way. callback to play audio samples (must not be NULL) callback to pause playback (or NULL to ignore) callback to resume playback (or NULL to ignore) callback to flush audio buffers (or NULL to ignore) callback to drain audio buffers (or NULL to ignore) Set callbacks and private data for decoded audio. This only works in combination with libvlc_audio_set_callbacks(). Use libvlc_audio_set_format() or libvlc_audio_set_format_callbacks() to configure the decoded audio format. callback to apply audio volume, or NULL to apply volume in software Sets decoded audio format via callbacks. This only works in combination with libvlc_audio_set_callbacks(). callback to select the audio format (cannot be NULL) callback to release any allocated resources (or NULL) Sets a fixed decoded audio format. This only works in combination with libvlc_audio_set_callbacks(), and is mutually exclusive with libvlc_audio_set_format_callbacks(). a four-characters string identifying the sample format (e.g. "S16N" or "FL32") sample rate (expressed in Hz) channels count Selects an audio output module. Note: Any change will take effect only after playback is stopped and restarted. Audio output cannot be changed while playing. name of audio output, use psz_name of true if function succeeded, false on error Get the current audio output device identifier. This complements warning The initial value for the current audio output device identifier may not be set or may be some unknown value.A LibVLC application should compare this value against the known device identifiers (e.g.those that were previously retrieved by a call to or ) to find the current audio output device. It is possible that the selected audio output device changes(an external change) without a call to .That may make this method unsuitable to use if a LibVLC application is attempting to track dynamic audio device changes as they happen. the current audio output device identifier, or NULL if no device is selected or in case of error. Configures an explicit audio output device. If the module paramater is NULL, audio output will be moved to the device specified by the device identifier string immediately.This is the recommended usage. A list of adequate potential device strings can be obtained with However passing NULL is supported in LibVLC version 2.2.0 and later only; in earlier versions, this function would have no effects when the module parameter was NULL. If the module parameter is not NULL, the device parameter of the corresponding audio output, if it exists, will be set to the specified string. A list of adequate potential device strings can be obtained with device identifier string If NULL, current audio output module. if non-NULL, name of audio output module Gets a list of potential audio output devices Not all audio outputs support enumerating devices. The audio output may be functional even if the list is empty (NULL). The list may not be exhaustive. Some audio output devices in the list might not actually work in some circumstances. By default, it is recommended to not specify any explicit audio device. Toggle mute status. Warning Toggling mute atomically is not always possible: On some platforms, other processes can mute the VLC audio playback stream asynchronously. Thus, there is a small race condition where toggling will not work. See also the limitations of libvlc_audio_set_mute(). Get current mute status. Set mute status. Warning This function does not always work. If there are no active audio playback stream, the mute status might not be available. If digital pass-through (S/PDIF, HDMI...) is in use, muting may be unapplicable. Also some audio output plugins do not support muting at all. Note To force silent playback, disable all audio tracks. This is more efficient and reliable than mute. Get/Set the volume in percents (0 = mute, 100 = 0dB) Get the number of available audio tracks (int), or -1 if unavailable Retrive the audio track description Get current audio track ID or -1 if no active input. Set current audio track. the track ID (i_id field from track description) true on success, false on error Get current audio channel. Set current audio channel. the audio channel Equals override based on the native instance reference the mediaplayer instance to compare this to Custom hascode implemenation for this MediaPlayer instance the hashcode for this MediaPlayer instance Get current audio delay (microseconds). Set current audio delay. The audio delay will be reset to zero each time the media changes. the audio delay (microseconds) true on success, false on error Set callbacks and private data to render decoded video to a custom area in memory. Use libvlc_video_set_format() or libvlc_video_set_format_callbacks() to configure the decoded format. Warning Rendering video into custom memory buffers is considerably less efficient than rendering in a custom window as normal. For optimal perfomances, VLC media player renders into a custom window, and does not use this function and associated callbacks. It is highly recommended that other LibVLC-based application do likewise. To embed video in a window, use libvlc_media_player_set_xid() or equivalent depending on the operating system. If window embedding does not fit the application use case, then a custom LibVLC video output display plugin is required to maintain optimal video rendering performances. The following limitations affect performance: Hardware video decoding acceleration will either be disabled completely, or require(relatively slow) copy from video/DSP memory to main memory. Sub-pictures(subtitles, on-screen display, etc.) must be blent into the main picture by the CPU instead of the GPU. Depending on the video format, pixel format conversion, picture scaling, cropping and/or picture re-orientation, must be performed by the CPU instead of the GPU. Memory copying is required between LibVLC reference picture buffers and application buffers (between lock and unlock callbacks). callback to lock video memory (must not be NULL) callback to unlock video memory (or NULL if not needed) callback to display video (or NULL if not needed) Set decoded video chroma and dimensions. This only works in combination with MediaPlayer::setCallbacks() , and is mutually exclusive with MediaPlayer::setFormatCallbacks() a four-characters string identifying the chroma (e.g."RV32" or "YUYV") pixel width pixel height line pitch (in bytes) Set decoded video chroma and dimensions. This only works in combination with libvlc_video_set_callbacks(). callback to select the video format (cannot be NULL) callback to release any allocated resources (or NULL) Enable or disable key press events handling, according to the LibVLC hotkeys configuration. By default and for historical reasons, keyboard events are handled by the LibVLC video widget. Note On X11, there can be only one subscriber for key press and mouse click events per window. If your application has subscribed to those events for the X window ID of the video widget, then LibVLC will not be able to handle key presses and mouse clicks in any case. Warning This function is only implemented for X11 and Win32 at the moment. true to handle key press events, false to ignore them. Enable or disable mouse click events handling. By default, those events are handled. This is needed for DVD menus to work, as well as a few video filters such as "puzzle". Warning This function is only implemented for X11 and Win32 at the moment. true to handle mouse click events, false to ignore them. Get the pixel dimensions of a video. number of the video (starting from, and most commonly 0) pointer to get the pixel width [OUT] pointer to get the pixel height [OUT] Get the mouse pointer coordinates over a video. Coordinates are expressed in terms of the decoded video resolution, not in terms of pixels on the screen/viewport (to get the latter, you can query your windowing system directly). Either of the coordinates may be negative or larger than the corresponding dimension of the video, if the cursor is outside the rendering area. Warning The coordinates may be out-of-date if the pointer is not located on the video rendering area. LibVLC does not track the pointer if it is outside of the video widget. Note LibVLC does not support multiple pointers(it does of course support multiple input devices sharing the same pointer) at the moment. number of the video (starting from, and most commonly 0) pointer to get the abscissa [OUT] pointer to get the ordinate [OUT] true on success, false on failure Get/Set the current video scaling factor. See also MediaPlayer::setScale() . That is the ratio of the number of pixels on screen to the number of pixels in the original decoded video in each dimension.Zero is a special value; it will adjust the video to the output window/drawable(in windowed mode) or the entire screen. Note that not all video outputs support scaling. Get/set current video aspect ratio. Set to null to reset to default Invalid aspect ratios are ignored. The current video subtitle track Set Spu (subtitle) Video subtitle track to select (id from track description) true on success, false otherwise Get the number of available video subtitles. Retrieve SpuDescription in a TrackDescription struct Get the current subtitle delay. Set the subtitle delay. This affects the timing of when the subtitle will be displayed. Positive values result in subtitles being displayed later, while negative values will result in subtitles being displayed earlier. The subtitle delay will be reset to zero each time the media changes. time (in microseconds) the display of subtitles should be delayed true if successful, false otherwise Get the description of available titles. Get the full description of available chapters. Index of the title to query for chapters (uses current title if set to -1) Array of chapter descriptions. Get the description of available chapters for specific title. selected title chapter descriptions Get/Set current crop filter geometry. Empty string to unset Get current teletext page requested. Set new teletext page to retrieve. Get number of available video tracks. Get the description of available video tracks. Get current video track ID (int) or -1 if no active input. Set video track. the track ID (i_id field from track description) true on sucess, false out of range Take a snapshot of the current video window. If i_width AND i_height is 0, original size is used. If i_width XOR i_height is 0, original aspect-ratio is preserved. number of video output (typically 0 for the first/only one) the path where to save the screenshot to the snapshot's width the snapshot's height true on success Enable or disable deinterlace filter type of deinterlace filter, null to disable Get an integer marquee option value marq option to get Get a string marquee option value marq option to get Enable, disable or set an integer marquee option Setting libvlc_marquee_Enable has the side effect of enabling (arg !0) or disabling (arg 0) the marq filter. marq option to set marq option value Enable, disable or set an string marquee option marq option to set marq option value Get integer logo option. logo option to get, values of libvlc_video_logo_option_t Set logo option as integer. Options that take a different type value are ignored. Passing libvlc_logo_enable as option value has the side effect of starting (arg !0) or stopping (arg 0) the logo filter. logo option to set, values of libvlc_video_logo_option_t logo option value Set logo option as string. Options that take a different type value are ignored. logo option to set, values of libvlc_video_logo_option_t logo option value Get integer adjust option. adjust option to get, values of libvlc_video_adjust_option_t Set adjust option as integer. Options that take a different type value are ignored. Passing libvlc_adjust_enable as option value has the side effect of starting (arg !0) or stopping (arg 0) the adjust filter. adust option to set, values of libvlc_video_adjust_option_t adjust option value Get adjust option float value The option for which to get the value the float value for a given option Set adjust option as float. Options that take a different type value are ignored. adust option to set, values of adjust option value Add a slave to the current media player. note If the player is playing, the slave will be added directly. This call will also update the slave list of the attached VLC::Media. subtitle or audio Uri of the slave (should contain a valid scheme). True if this slave should be selected when it's loaded Current 360 viewpoint of this mediaplayer. Update with Update the video viewpoint information. The values are set asynchronously, it will be used by the next frame displayed. It is safe to call this function before the media player is started. LibVLC 3.0.0 and later view point yaw in degrees ]-180;180] view point pitch in degrees ]-90;90] view point roll in degrees ]-180;180] field of view in degrees ]0;180[ (default 80.) if true replace the old viewpoint with the new one. If false, increase/decrease it. true if successful, false otherwise Set a renderer to the media player. discovered renderer item or null to fallback on local rendering true on success, false otherwise Gets the media role. version LibVLC 3.0.0 and later. Sets the media role. version LibVLC 3.0.0 and later. true on success, false otherwise Increments the native reference counter for this mediaplayer instance Enable/disable hardware decoding in a crossplatform way. Caching value for local files, in milliseconds [0 .. 60000ms] Caching value for network resources, in milliseconds [0 .. 60000ms] A LibVLC media player plays one media (usually in a custom drawable). @{ LibVLC simple media player external API Opaque equalizer handle. Equalizer settings can be applied to a media player. Callback prototype to allocate and lock a picture buffer. private pointer as passed to libvlc_video_set_callbacks() [IN] start address of the pixel planes (LibVLC allocates the array of void pointers, this callback must initialize the array) [OUT] a private pointer for the display and unlock callbacks to identify the picture buffers Whenever a new video frame needs to be decoded, the lock callback is invoked. Depending on the video chroma, one or three pixel planes of adequate dimensions must be returned via the second parameter. Those planes must be aligned on 32-bytes boundaries. Callback prototype to unlock a picture buffer. private pointer as passed to libvlc_video_set_callbacks() [IN] private pointer returned from the pixel planes as defined by the When the video frame decoding is complete, the unlock callback is invoked. This callback might not be needed at all. It is only an indication that the application can now read the pixel values if it needs to. A picture buffer is unlocked after the picture is decoded, but before the picture is displayed. callback [IN] callback (this parameter is only for convenience) [IN] Callback prototype to display a picture. private pointer as passed to libvlc_video_set_callbacks() [IN] private pointer returned from the When the video frame needs to be shown, as determined by the media playback clock, the display callback is invoked. callback [IN] Callback prototype to configure picture buffers format. This callback gets the format of the video as output by the video decoder and the chain of video filters (if any). It can opt to change any parameter as it needs. In that case, LibVLC will attempt to convert the video format (rescaling and chroma conversion) but these operations can be CPU intensive. pointer to the private pointer passed to libvlc_video_set_callbacks() [IN/OUT] pointer to the 4 bytes video format identifier [IN/OUT] pointer to the pixel width [IN/OUT] pointer to the pixel height [IN/OUT] table of scanline pitches in bytes for each pixel plane (the table is allocated by LibVLC) [OUT] table of scanlines count for each plane [OUT] the number of picture buffers allocated, 0 indicates failure For each pixels plane, the scanline pitch must be bigger than or equal to the number of bytes per pixel multiplied by the pixel width. Similarly, the number of scanlines must be bigger than of equal to the pixel height. Furthermore, we recommend that pitches and lines be multiple of 32 to not break assumptions that might be held by optimized code in the video decoders, video filters and/or video converters. Callback prototype to configure picture buffers format. private pointer as passed to libvlc_video_set_callbacks() (and possibly modified by Callback prototype to setup the audio playback. pointer to the data pointer passed to libvlc_audio_set_callbacks() [IN/OUT] 4 bytes sample format [IN/OUT] sample rate [IN/OUT] channels count [IN/OUT] 0 on success, anything else to skip audio playback This is called when the media player needs to create a new audio output. Callback prototype for audio playback cleanup. data pointer as passed to libvlc_audio_set_callbacks() [IN] This is called when the media player no longer needs an audio output. Callback prototype for audio playback. data pointer as passed to libvlc_audio_set_callbacks() [IN] pointer to a table of audio samples to play back [IN] number of audio samples to play back expected play time stamp (see libvlc_delay()) The LibVLC media player decodes and post-processes the audio signal asynchronously (in an internal thread). Whenever audio samples are ready to be queued to the output, this callback is invoked. The number of samples provided per invocation may depend on the file format, the audio coding algorithm, the decoder plug-in, the post-processing filters and timing. Application must not assume a certain number of samples. The exact format of audio samples is determined by libvlc_audio_set_format() or libvlc_audio_set_format_callbacks() as is the channels layout. Note that the number of samples is per channel. For instance, if the audio track sampling rate is 48000 Hz, then 1200 samples represent 25 milliseconds of audio signal - regardless of the number of audio channels. Callback prototype for audio pause. data pointer as passed to libvlc_audio_set_callbacks() [IN] time stamp of the pause request (should be elapsed already) LibVLC invokes this callback to pause audio playback. The pause callback is never called if the audio is already paused. Callback prototype for audio resumption. data pointer as passed to libvlc_audio_set_callbacks() [IN] time stamp of the resumption request (should be elapsed already) LibVLC invokes this callback to resume audio playback after it was previously paused. The resume callback is never called if the audio is not paused. Callback prototype for audio buffer flush. LibVLC invokes this callback if it needs to discard all pending buffers and stop playback as soon as possible. This typically occurs when the media is stopped. data pointer as passed to libvlc_audio_set_callbacks() [IN] current presentation timestamp Callback prototype for audio buffer drain. data pointer as passed to libvlc_audio_set_callbacks() [IN] LibVLC may invoke this callback when the decoded audio track is ending. There will be no further decoded samples for the track, but playback should nevertheless continue until all already pending buffers are rendered. Callback prototype for audio volume change. data pointer as passed to libvlc_audio_set_callbacks() [IN] software volume (1. = nominal, 0. = mute) muted flag Get the Event Manager from which the media player send event. The media of this mediaplayer changed Nothing special to report The mediaplayer is opening a media The mediaplayer is buffering The mediaplayer started playing a media The mediaplayer paused playback The mediaplayer stopped playback The mediaplayer went forward in the playback The mediaplayer went backward in the playback The mediaplayer reached the end of the playback The mediaplayer encountered an error during playback The mediaplayer's playback time changed The mediaplayer's position changed The mediaplayer's seek capability changed The mediaplayer's pause capability changed The title of the mediaplayer changed The mediaplayer changed the chapter of a media The mediaplayer took a snapshot The length of a playback changed The Video Output count of the MediaPlayer changed The mediaplayer scrambled status changed The mediaplayer has a new Elementary Stream (ES) The mediaplayer has one less Elementary Stream (ES) An Elementary Stream (ES) was selected The mediaplayer's audio device changed The mediaplayer is corked The mediaplayer is uncorked The mediaplayer is muted The mediaplayer is unmuted The mediaplayer's volume changed Dispose override Effectively stops playback and disposes a media if any release any unmanaged resources Description for titles Menu title Interactive title Marq options definition Enable marquee Text marquee Color marquee Opacity marquee Position marquee Refresh marquee Size marquee Timeout marquee X marquee Y marquee Navigation mode Activate Navigation up Navigation down Navigation left Navigation right Navigation popup Enumeration of values used to set position (e.g. of video title). Disable Center video title Left video title Right video title Top video title TopLeft video title TopRight video title Bottom video title BottomLeft video title BottomRight video title Enumeration of teletext keys than can be passed via libvlc_video_set_teletext() Red Green Yellow Blue Index option values for libvlc_video_{get,set}_logo_{int,string} Enable string argument, "file,d,t;file,d,t;..." X Y Delay Repeat Opacity Position option values for libvlc_video_{get,set}_adjust_{int,float,bool} Enable Contrast Brightness Hue Saturation Gamma Audio channels Error Stereo mode RStereo mode Left mode Right mode Dolbys mode Media player roles. LibVLC 3.0.0 and later. See Don't use a media player role Music (or radio) playback Video playback Speech, real-time communication Video game User interaction feedback Embedded animation (e.g. in web page) Audio editing/production Accessibility Testing The renderer discoverer can be used to find and use a Chromecast or other distant renderers. Create a new renderer discoverer with a LibVLC and protocol name depending on host platform libvlc instance this will be connected to The service discovery protocol name depending on platform. Use to find the one for your platform, or let libvlcsharp find it for you Start the renderer discovery true if start successful Stop the renderer discovery Raised when a renderer item has been found Raised when a renderer item has disappeared A renderer item represents a device that libvlc can use to render media. Name of the renderer item Type of the renderer item IconUri of the renderer item true if the renderer item can render video true if the renderer item can render audio A implementation that reads from a .NET stream Initializes a new instance of , which reads from the given .NET stream. You are still responsible to dispose the stream you give as input. The stream to be read from. LibVLC calls this method when it wants to open the media This value must be filled with the length of the media (or ulong.MaxValue if unknown) true if the stream opened successfully LibVLC calls this method when it wants to read the media The buffer where read data must be written The buffer length strictly positive number of bytes read, 0 on end-of-stream, or -1 on non-recoverable error LibVLC calls this method when it wants to seek to a specific position in the media The offset, in bytes, since the beginning of the stream true if the seek succeeded, false otherwise LibVLC calls this method when it wants to close the media. Description for audio output. AudioOutputDescription default constructor Audio output name Audio output description Audio output name Audio output description Description for audio output device AudioOutputDevice default constructor Device identifier string User-friendly device description Device identifier string. User-friendly device description. Description for chapters. Time-offset of the chapter in milliseconds Duration of the chapter in milliseconds Chapter name TrackDescription constructor Chapter time-offset Chapter duration Chapter name Description of a module. Default constructor for ModuleDescription Module name Module short name Module long name Module help Module name Module short name Module long name Module help Description for video, audio tracks and subtitles. It contains id, name (description string) Track description Id Track description TrackDescription constructor Track description Id Track description Description of a media discoverer Media discoverer description name Media discoverer description long name Media discoverer category A slave of a libvlc_media_t libvlc_media_slaves_get Media slave URI Media slave type Media slave priority Statistics of a Media The number of bytes read The input bitrate The number of bytes read by the demux The demux bitrate The number of frame discarded The number of frame dropped The number of decoded video blocks The number of decoded audio blocks The number of frames displayed The number of frames lost The number of buffers played The number of buffers lost The number of packets sent The number of bytes sent The bitrate used to send Audio track Audio track channels Audio track rate Video track Video height Video Width Video SarNum Video SarDen Video frame rate num Video frame rate den Video orientation Video projection Video viewpoint Subtitle track Subtitle encoding Media track information Media track codec Media track original fourcc Media track id Media track type Media track profile Media track level Media track data Media track bitrate Media track language Media track description Media track data struct, containing info about audio, video and subtitles track Audio track Video track Subtitle track Renderer description Renderer Name Renderer long name Viewpoint for video outputs view point yaw in degrees ]-180;180] view point pitch in degrees ]-90;90] view point roll in degrees ]-180;180] field of view in degrees ]0;180[ (default 80.) This exception is thrown when a problem with VLC occured VLC Exception constructor Creates a with a message and an inner exeption