VLC
3.0.21
|
Files | |
file | libvlc_media.h |
Data Structures | |
struct | libvlc_media_stats_t |
struct | libvlc_media_track_info_t |
struct | libvlc_audio_track_t |
struct | libvlc_video_viewpoint_t |
Viewpoint. More... | |
struct | libvlc_video_track_t |
struct | libvlc_subtitle_track_t |
struct | libvlc_media_track_t |
struct | libvlc_media_slave_t |
A slave of a libvlc_media_t. More... | |
Macros | |
#define | VLC_FORWARD_DECLARE_OBJECT(a) struct a |
Functions | |
LIBVLC_API libvlc_media_t * | libvlc_media_new_location (libvlc_instance_t *p_instance, const char *psz_mrl) |
Create a media with a certain given media resource location, for instance a valid URL. More... | |
LIBVLC_API libvlc_media_t * | libvlc_media_new_path (libvlc_instance_t *p_instance, const char *path) |
Create a media for a certain file path. More... | |
LIBVLC_API libvlc_media_t * | libvlc_media_new_fd (libvlc_instance_t *p_instance, int fd) |
Create a media for an already open file descriptor. More... | |
LIBVLC_API libvlc_media_t * | libvlc_media_new_callbacks (libvlc_instance_t *instance, libvlc_media_open_cb open_cb, libvlc_media_read_cb read_cb, libvlc_media_seek_cb seek_cb, libvlc_media_close_cb close_cb, void *opaque) |
Create a media with custom callbacks to read the data from. More... | |
LIBVLC_API libvlc_media_t * | libvlc_media_new_as_node (libvlc_instance_t *p_instance, const char *psz_name) |
Create a media as an empty node with a given name. More... | |
LIBVLC_API void | libvlc_media_add_option (libvlc_media_t *p_md, const char *psz_options) |
Add an option to the media. More... | |
LIBVLC_API void | libvlc_media_add_option_flag (libvlc_media_t *p_md, const char *psz_options, unsigned i_flags) |
Add an option to the media with configurable flags. More... | |
LIBVLC_API void | libvlc_media_retain (libvlc_media_t *p_md) |
Retain a reference to a media descriptor object (libvlc_media_t). More... | |
LIBVLC_API void | libvlc_media_release (libvlc_media_t *p_md) |
Decrement the reference count of a media descriptor object. More... | |
LIBVLC_API char * | libvlc_media_get_mrl (libvlc_media_t *p_md) |
Get the media resource locator (mrl) from a media descriptor object. More... | |
LIBVLC_API libvlc_media_t * | libvlc_media_duplicate (libvlc_media_t *p_md) |
Duplicate a media descriptor object. More... | |
LIBVLC_API char * | libvlc_media_get_meta (libvlc_media_t *p_md, libvlc_meta_t e_meta) |
Read the meta of the media. More... | |
LIBVLC_API void | libvlc_media_set_meta (libvlc_media_t *p_md, libvlc_meta_t e_meta, const char *psz_value) |
Set the meta of the media (this function will not save the meta, call libvlc_media_save_meta in order to save the meta) More... | |
LIBVLC_API int | libvlc_media_save_meta (libvlc_media_t *p_md) |
Save the meta previously set. More... | |
LIBVLC_API libvlc_state_t | libvlc_media_get_state (libvlc_media_t *p_md) |
Get current state of media descriptor object. More... | |
LIBVLC_API int | libvlc_media_get_stats (libvlc_media_t *p_md, libvlc_media_stats_t *p_stats) |
Get the current statistics about the media. More... | |
LIBVLC_API struct libvlc_media_list_t * | libvlc_media_subitems (libvlc_media_t *p_md) |
Get subitems of media descriptor object. More... | |
LIBVLC_API libvlc_event_manager_t * | libvlc_media_event_manager (libvlc_media_t *p_md) |
Get event manager from media descriptor object. More... | |
LIBVLC_API libvlc_time_t | libvlc_media_get_duration (libvlc_media_t *p_md) |
Get duration (in ms) of media descriptor object item. More... | |
LIBVLC_API int | libvlc_media_parse_with_options (libvlc_media_t *p_md, libvlc_media_parse_flag_t parse_flag, int timeout) |
Parse the media asynchronously with options. More... | |
LIBVLC_API void | libvlc_media_parse_stop (libvlc_media_t *p_md) |
Stop the parsing of the media. More... | |
LIBVLC_API libvlc_media_parsed_status_t | libvlc_media_get_parsed_status (libvlc_media_t *p_md) |
Get Parsed status for media descriptor object. More... | |
LIBVLC_API void | libvlc_media_set_user_data (libvlc_media_t *p_md, void *p_new_user_data) |
Sets media descriptor's user_data. More... | |
LIBVLC_API void * | libvlc_media_get_user_data (libvlc_media_t *p_md) |
Get media descriptor's user_data. More... | |
LIBVLC_API unsigned | libvlc_media_tracks_get (libvlc_media_t *p_md, libvlc_media_track_t ***tracks) |
Get media descriptor's elementary streams description. More... | |
const LIBVLC_API char * | libvlc_media_get_codec_description (libvlc_track_type_t i_type, uint32_t i_codec) |
Get codec description from media elementary stream. More... | |
LIBVLC_API void | libvlc_media_tracks_release (libvlc_media_track_t **p_tracks, unsigned i_count) |
Release media descriptor's elementary streams description array. More... | |
LIBVLC_API libvlc_media_type_t | libvlc_media_get_type (libvlc_media_t *p_md) |
Get the media type of the media descriptor object. More... | |
LIBVLC_API int | libvlc_media_slaves_add (libvlc_media_t *p_md, libvlc_media_slave_type_t i_type, unsigned int i_priority, const char *psz_uri) |
Add a slave to the current media. More... | |
LIBVLC_API void | libvlc_media_slaves_clear (libvlc_media_t *p_md) |
Clear all slaves previously added by libvlc_media_slaves_add() or internally. More... | |
LIBVLC_API unsigned int | libvlc_media_slaves_get (libvlc_media_t *p_md, libvlc_media_slave_t ***ppp_slaves) |
Get a media descriptor's slave list. More... | |
LIBVLC_API void | libvlc_media_slaves_release (libvlc_media_slave_t **pp_slaves, unsigned int i_count) |
Release a media descriptor's slave list. More... | |
LIBVLC_DEPRECATED LIBVLC_API void | libvlc_media_parse (libvlc_media_t *p_md) |
Parse a media. More... | |
LIBVLC_DEPRECATED LIBVLC_API void | libvlc_media_parse_async (libvlc_media_t *p_md) |
Parse a media. More... | |
LIBVLC_DEPRECATED LIBVLC_API int | libvlc_media_is_parsed (libvlc_media_t *p_md) |
Return true is the media descriptor object is parsed. More... | |
LIBVLC_DEPRECATED LIBVLC_API int | libvlc_media_get_tracks_info (libvlc_media_t *p_md, libvlc_media_track_info_t **tracks) |
Get media descriptor's elementary streams description. More... | |
libvlc_media_t is an abstract representation of a playable media. It consists of a media location and various optional meta data.
#define VLC_FORWARD_DECLARE_OBJECT | ( | a | ) | struct a |
typedef struct libvlc_audio_track_t libvlc_audio_track_t |
typedef void(* libvlc_media_close_cb) (void *opaque) |
Callback prototype to close a custom bitstream input media.
opaque | private pointer as set by the libvlc_media_open_cb callback |
typedef int(* libvlc_media_open_cb) (void *opaque, void **datap, uint64_t *sizep) |
Callback prototype to open a custom bitstream input media.
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 libvlc_media_close_cb callback.
opaque | private pointer as passed to libvlc_media_new_callbacks() |
datap | storage space for a private data pointer [OUT] |
sizep | byte length of the bitstream or UINT64_MAX if unknown [OUT] |
typedef enum libvlc_media_parse_flag_t libvlc_media_parse_flag_t |
Parse flags used by libvlc_media_parse_with_options()
typedef enum libvlc_media_parsed_status_t libvlc_media_parsed_status_t |
Parse status used sent by libvlc_media_parse_with_options() or returned by libvlc_media_get_parsed_status()
typedef ssize_t(* libvlc_media_read_cb) (void *opaque, unsigned char *buf, size_t len) |
Callback prototype to read data from a custom bitstream input media.
opaque | private pointer as set by the libvlc_media_open_cb callback |
buf | start address of the buffer to read data into |
len | bytes length of the buffer |
typedef int(* libvlc_media_seek_cb) (void *opaque, uint64_t offset) |
Callback prototype to seek a custom bitstream input media.
opaque | private pointer as set by the libvlc_media_open_cb callback |
offset | absolute byte offset to seek to |
typedef struct libvlc_media_slave_t libvlc_media_slave_t |
A slave of a libvlc_media_t.
typedef enum libvlc_media_slave_type_t libvlc_media_slave_type_t |
Type of a media slave: subtitle or audio.
typedef struct libvlc_media_stats_t libvlc_media_stats_t |
typedef struct libvlc_media_t libvlc_media_t |
typedef struct libvlc_media_track_info_t libvlc_media_track_info_t |
typedef struct libvlc_media_track_t libvlc_media_track_t |
typedef enum libvlc_media_type_t libvlc_media_type_t |
Media type.
typedef enum libvlc_meta_t libvlc_meta_t |
Meta data types.
typedef enum libvlc_state_t libvlc_state_t |
Note the order of libvlc_state_t enum must match exactly the order of.
Expected states by web plugins are: IDLE/CLOSE=0, OPENING=1, PLAYING=3, PAUSED=4, STOPPING=5, ENDED=6, ERROR=7
typedef struct libvlc_subtitle_track_t libvlc_subtitle_track_t |
typedef enum libvlc_track_type_t libvlc_track_type_t |
typedef enum libvlc_video_orient_t libvlc_video_orient_t |
typedef enum libvlc_video_projection_t libvlc_video_projection_t |
typedef struct libvlc_video_track_t libvlc_video_track_t |
typedef struct libvlc_video_viewpoint_t libvlc_video_viewpoint_t |
Viewpoint.
Parse flags used by libvlc_media_parse_with_options()
Enumerator | |
---|---|
libvlc_media_parse_local | Parse media if it's a local file. |
libvlc_media_parse_network | Parse media even if it's a network file. |
libvlc_media_fetch_local | Fetch meta and covert art using local resources. |
libvlc_media_fetch_network | Fetch meta and covert art using network resources. |
libvlc_media_do_interact | 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()
Enumerator | |
---|---|
libvlc_media_parsed_status_skipped | |
libvlc_media_parsed_status_failed | |
libvlc_media_parsed_status_timeout | |
libvlc_media_parsed_status_done |
enum libvlc_media_type_t |
Media type.
Enumerator | |
---|---|
libvlc_media_type_unknown | |
libvlc_media_type_file | |
libvlc_media_type_directory | |
libvlc_media_type_disc | |
libvlc_media_type_stream | |
libvlc_media_type_playlist |
enum libvlc_meta_t |
Meta data types.
enum libvlc_state_t |
Note the order of libvlc_state_t enum must match exactly the order of.
Expected states by web plugins are: IDLE/CLOSE=0, OPENING=1, PLAYING=3, PAUSED=4, STOPPING=5, ENDED=6, ERROR=7
Enumerator | |
---|---|
libvlc_NothingSpecial | |
libvlc_Opening | |
libvlc_Buffering | |
libvlc_Playing | |
libvlc_Paused | |
libvlc_Stopped | |
libvlc_Ended | |
libvlc_Error |
enum libvlc_track_type_t |
LIBVLC_API void libvlc_media_add_option | ( | libvlc_media_t * | p_md, |
const char * | psz_options | ||
) |
Add an option to the media.
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.
p_md | the media descriptor |
psz_options | the options (as a string) |
LIBVLC_API void libvlc_media_add_option_flag | ( | libvlc_media_t * | p_md, |
const char * | psz_options, | ||
unsigned | i_flags | ||
) |
Add an option to the media with configurable flags.
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.
p_md | the media descriptor |
psz_options | the options (as a string) |
i_flags | the flags for this option |
LIBVLC_API libvlc_media_t* libvlc_media_duplicate | ( | libvlc_media_t * | p_md | ) |
Duplicate a media descriptor object.
p_md | a media descriptor object. |
LIBVLC_API libvlc_event_manager_t* libvlc_media_event_manager | ( | libvlc_media_t * | p_md | ) |
Get event manager from media descriptor object.
NOTE: this function doesn't increment reference counting.
p_md | a media descriptor object |
const LIBVLC_API char* libvlc_media_get_codec_description | ( | libvlc_track_type_t | i_type, |
uint32_t | i_codec | ||
) |
Get codec description from media elementary stream.
i_type | i_type from libvlc_media_track_t |
i_codec | i_codec or i_original_fourcc from libvlc_media_track_t |
LIBVLC_API libvlc_time_t libvlc_media_get_duration | ( | libvlc_media_t * | p_md | ) |
Get duration (in ms) of media descriptor object item.
p_md | media descriptor object |
LIBVLC_API char* libvlc_media_get_meta | ( | libvlc_media_t * | p_md, |
libvlc_meta_t | e_meta | ||
) |
Read the meta of the media.
If the media has not yet been parsed this will return NULL.
p_md | the media descriptor |
e_meta | the meta to read |
LIBVLC_API char* libvlc_media_get_mrl | ( | libvlc_media_t * | p_md | ) |
Get the media resource locator (mrl) from a media descriptor object.
p_md | a media descriptor object |
LIBVLC_API libvlc_media_parsed_status_t libvlc_media_get_parsed_status | ( | libvlc_media_t * | p_md | ) |
Get Parsed status for media descriptor object.
p_md | media descriptor object |
LIBVLC_API libvlc_state_t libvlc_media_get_state | ( | libvlc_media_t * | p_md | ) |
Get current state of media descriptor object.
Possible media states are libvlc_NothingSpecial=0, libvlc_Opening, libvlc_Playing, libvlc_Paused, libvlc_Stopped, libvlc_Ended, libvlc_Error.
p_md | a media descriptor object |
LIBVLC_API int libvlc_media_get_stats | ( | libvlc_media_t * | p_md, |
libvlc_media_stats_t * | p_stats | ||
) |
Get the current statistics about the media.
p_md | media descriptor object |
p_stats | structure that contain the statistics about the media (this structure must be allocated by the caller) |
LIBVLC_DEPRECATED LIBVLC_API int libvlc_media_get_tracks_info | ( | libvlc_media_t * | p_md, |
libvlc_media_track_info_t ** | tracks | ||
) |
Get media descriptor's elementary streams description.
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.
p_md | media descriptor object |
tracks | address to store an allocated array of Elementary Streams descriptions (must be freed by the caller) [OUT] |
LIBVLC_API libvlc_media_type_t libvlc_media_get_type | ( | libvlc_media_t * | p_md | ) |
Get the media type of the media descriptor object.
p_md | media descriptor object |
LIBVLC_API void* libvlc_media_get_user_data | ( | libvlc_media_t * | p_md | ) |
Get media descriptor's user_data.
user_data is specialized data accessed by the host application, VLC.framework uses it as a pointer to an native object that references a libvlc_media_t pointer
p_md | media descriptor object |
LIBVLC_DEPRECATED LIBVLC_API int libvlc_media_is_parsed | ( | libvlc_media_t * | p_md | ) |
Return true is the media descriptor object is parsed.
p_md | media descriptor object |
LIBVLC_API libvlc_media_t* libvlc_media_new_as_node | ( | libvlc_instance_t * | p_instance, |
const char * | psz_name | ||
) |
Create a media as an empty node with a given name.
p_instance | the instance |
psz_name | the name of the node |
LIBVLC_API libvlc_media_t* libvlc_media_new_callbacks | ( | libvlc_instance_t * | instance, |
libvlc_media_open_cb | open_cb, | ||
libvlc_media_read_cb | read_cb, | ||
libvlc_media_seek_cb | seek_cb, | ||
libvlc_media_close_cb | close_cb, | ||
void * | opaque | ||
) |
Create a media with custom callbacks to read the data from.
instance | LibVLC instance |
open_cb | callback to open the custom bitstream input media |
read_cb | callback to read data (must not be NULL) |
seek_cb | callback to seek, or NULL if seeking is not supported |
close_cb | callback to close the media, or NULL if unnecessary |
opaque | data pointer for the open callback |
LIBVLC_API libvlc_media_t* libvlc_media_new_fd | ( | libvlc_instance_t * | p_instance, |
int | fd | ||
) |
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.
p_instance | the instance |
fd | open file descriptor |
LIBVLC_API libvlc_media_t* libvlc_media_new_location | ( | libvlc_instance_t * | p_instance, |
const char * | psz_mrl | ||
) |
Create a media with a certain given media resource location, for instance a valid URL.
p_instance | the instance |
psz_mrl | the media location |
LIBVLC_API libvlc_media_t* libvlc_media_new_path | ( | libvlc_instance_t * | p_instance, |
const char * | path | ||
) |
Create a media for a certain file path.
p_instance | the instance |
path | local filesystem path |
LIBVLC_DEPRECATED LIBVLC_API void libvlc_media_parse | ( | libvlc_media_t * | p_md | ) |
Parse a media.
This fetches (local) art, meta data and tracks information. The method is synchronous.
p_md | media descriptor object |
LIBVLC_DEPRECATED LIBVLC_API void libvlc_media_parse_async | ( | libvlc_media_t * | p_md | ) |
Parse a media.
This fetches (local) art, meta data and tracks information. The method is the asynchronous of libvlc_media_parse().
To track when this is over you can listen to libvlc_MediaParsedChanged event. However if the media was already parsed you will not receive this event.
p_md | media descriptor object |
LIBVLC_API void libvlc_media_parse_stop | ( | libvlc_media_t * | p_md | ) |
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.
p_md | media descriptor object |
LIBVLC_API int libvlc_media_parse_with_options | ( | libvlc_media_t * | p_md, |
libvlc_media_parse_flag_t | parse_flag, | ||
int | timeout | ||
) |
Parse the media asynchronously with options.
This fetches (local or network) art, meta data and/or tracks information. This method is the extended version of libvlc_media_parse_with_options().
To track when this is over you can listen to libvlc_MediaParsedChanged event. However if this functions returns an error, you will not receive any events.
It uses a flag to specify parse options (see libvlc_media_parse_flag_t). All these flags can be combined. By default, media is parsed if it's a local file.
p_md | media descriptor object |
parse_flag | parse options: |
timeout | 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). |
LIBVLC_API void libvlc_media_release | ( | libvlc_media_t * | p_md | ) |
Decrement the reference count of a media descriptor object.
If the reference count is 0, then libvlc_media_release() will release the media descriptor object. It will send out an libvlc_MediaFreed event to all listeners. If the media descriptor object has been released it should not be used again.
p_md | the media descriptor |
LIBVLC_API void libvlc_media_retain | ( | libvlc_media_t * | p_md | ) |
Retain a reference to a media descriptor object (libvlc_media_t).
Use libvlc_media_release() to decrement the reference count of a media descriptor object.
p_md | the media descriptor |
LIBVLC_API int libvlc_media_save_meta | ( | libvlc_media_t * | p_md | ) |
Save the meta previously set.
p_md | the media desriptor |
LIBVLC_API void libvlc_media_set_meta | ( | libvlc_media_t * | p_md, |
libvlc_meta_t | e_meta, | ||
const char * | psz_value | ||
) |
Set the meta of the media (this function will not save the meta, call libvlc_media_save_meta in order to save the meta)
p_md | the media descriptor |
e_meta | the meta to write |
psz_value | the media's meta |
LIBVLC_API void libvlc_media_set_user_data | ( | libvlc_media_t * | p_md, |
void * | p_new_user_data | ||
) |
Sets media descriptor's user_data.
user_data is specialized data accessed by the host application, VLC.framework uses it as a pointer to an native object that references a libvlc_media_t pointer
p_md | media descriptor object |
p_new_user_data | pointer to user data |
LIBVLC_API int libvlc_media_slaves_add | ( | libvlc_media_t * | p_md, |
libvlc_media_slave_type_t | i_type, | ||
unsigned int | i_priority, | ||
const char * | psz_uri | ||
) |
Add a slave to the current media.
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).
p_md | media descriptor object |
i_type | subtitle or audio |
i_priority | from 0 (low priority) to 4 (high priority) |
psz_uri | Uri of the slave (should contain a valid scheme). |
LIBVLC_API void libvlc_media_slaves_clear | ( | libvlc_media_t * | p_md | ) |
Clear all slaves previously added by libvlc_media_slaves_add() or internally.
p_md | media descriptor object |
LIBVLC_API unsigned int libvlc_media_slaves_get | ( | libvlc_media_t * | p_md, |
libvlc_media_slave_t *** | ppp_slaves | ||
) |
Get a media descriptor's slave list.
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.
p_md | media descriptor object |
ppp_slaves | address to store an allocated array of slaves (must be freed with libvlc_media_slaves_release()) [OUT] |
LIBVLC_API void libvlc_media_slaves_release | ( | libvlc_media_slave_t ** | pp_slaves, |
unsigned int | i_count | ||
) |
Release a media descriptor's slave list.
pp_slaves | slave array to release |
i_count | number of elements in the array |
LIBVLC_API struct libvlc_media_list_t* libvlc_media_subitems | ( | libvlc_media_t * | p_md | ) |
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.
p_md | media descriptor object |
LIBVLC_API unsigned libvlc_media_tracks_get | ( | libvlc_media_t * | p_md, |
libvlc_media_track_t *** | tracks | ||
) |
Get media descriptor's elementary streams description.
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.
p_md | media descriptor object |
tracks | address to store an allocated array of Elementary Streams descriptions (must be freed with libvlc_media_tracks_release by the caller) [OUT] |
LIBVLC_API void libvlc_media_tracks_release | ( | libvlc_media_track_t ** | p_tracks, |
unsigned | i_count | ||
) |
Release media descriptor's elementary streams description array.
p_tracks | tracks info array to release |
i_count | number of elements in the array |