VLC  3.0.21
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
libvlc.h File Reference
Include dependency graph for libvlc.h:

Go to the source code of this file.

Data Structures

struct  vlc_exit
 
struct  libvlc_priv_t
 
struct  counter_sample_t
 
struct  counter_t
 

Macros

#define vlc_backtrace()   vlc_trace(__func__, __FILE__, __LINE__)
 
#define vlc_custom_create(o, s, n)   vlc_custom_create(VLC_OBJECT(o), s, n)
 
#define vlc_object_set_name(o, n)   vlc_object_set_name(VLC_OBJECT(o), n)
 
#define vlc_object_set_destructor(a, b)   vlc_object_set_destructor (VLC_OBJECT(a), b)
 
#define ZOOM_SECTION   N_("Zoom")
 
#define ZOOM_QUARTER_KEY_TEXT   N_("1:4 Quarter")
 
#define ZOOM_HALF_KEY_TEXT   N_("1:2 Half")
 
#define ZOOM_ORIGINAL_KEY_TEXT   N_("1:1 Original")
 
#define ZOOM_DOUBLE_KEY_TEXT   N_("2:1 Double")
 
#define libvlc_stats(o)   (libvlc_priv((VLC_OBJECT(o))->obj.libvlc)->b_stats)
 

Typedefs

typedef struct variable_t variable_t
 
typedef struct vlc_logger_t vlc_logger_t
 
typedef struct vlc_exit vlc_exit_t
 
typedef void(* vlc_destructor_t) (struct vlc_object_t *)
 
typedef struct vlc_dialog_provider vlc_dialog_provider
 Private LibVLC instance data. More...
 
typedef struct vlc_keystore vlc_keystore
 
typedef struct vlc_actions_t vlc_actions_t
 
typedef struct libvlc_priv_t libvlc_priv_t
 
typedef struct counter_sample_t counter_sample_t
 
typedef struct counter_t counter_t
 

Enumerations

enum  { STATS_COUNTER, STATS_DERIVATIVE }
 
enum  {
  STATS_INPUT_BITRATE, STATS_READ_BYTES, STATS_READ_PACKETS, STATS_DEMUX_READ,
  STATS_DEMUX_BITRATE, STATS_DEMUX_CORRUPTED, STATS_DEMUX_DISCONTINUITY, STATS_PLAYED_ABUFFERS,
  STATS_LOST_ABUFFERS, STATS_DECODED_AUDIO, STATS_DECODED_VIDEO, STATS_DECODED_SUB,
  STATS_CLIENT_CONNECTIONS, STATS_ACTIVE_CONNECTIONS, STATS_SOUT_SENT_PACKETS, STATS_SOUT_SENT_BYTES,
  STATS_SOUT_SEND_BITRATE, STATS_DISPLAYED_PICTURES, STATS_LOST_PICTURES
}
 

Functions

void system_Init (void)
 Initializes MME timer, Winsock. More...
 
void system_Configure (libvlc_int_t *, int, const char *const [])
 
void vlc_CPU_init (void)
 Determines the CPU capabilities and stores them in cpu_flags. More...
 
void vlc_CPU_dump (vlc_object_t *)
 
int vlc_clone_detach (vlc_thread_t *, void *(*)(void *), void *, int)
 
int vlc_set_priority (vlc_thread_t, int)
 
void vlc_threads_setup (libvlc_int_t *)
 
void vlc_trace (const char *fn, const char *file, unsigned line)
 Print a backtrace to the standard error for debugging purpose. More...
 
void vlc_assert_locked (vlc_mutex_t *)
 Asserts that a mutex is locked by the calling thread. More...
 
int vlc_LogPreinit (libvlc_int_t *)
 Performs preinitialization of the messages logging subsystem. More...
 
int vlc_LogInit (libvlc_int_t *)
 Initializes the messages logging subsystem and drain the early messages to the configured log. More...
 
void vlc_LogDeinit (libvlc_int_t *)
 
void vlc_ExitInit (vlc_exit_t *)
 
void vlc_ExitDestroy (vlc_exit_t *)
 
void * vlc_custom_create (vlc_object_t *p_this, size_t i_size, const char *psz_type)
 Creates a VLC object. More...
 
int vlc_object_set_name (vlc_object_t *, const char *)
 Assign a name to an object for vlc_object_find_name(). More...
 
void vlc_object_set_destructor (vlc_object_t *, vlc_destructor_t)
 Set the destructor of a vlc object. More...
 
void * vlc_objres_new (size_t size, void(*release)(void *))
 Allocates an object resource. More...
 
void vlc_objres_push (vlc_object_t *obj, void *data)
 Pushes an object resource on the object resources stack. More...
 
void vlc_objres_clear (vlc_object_t *obj)
 Releases all resources of an object. More...
 
void vlc_objres_remove (vlc_object_t *obj, void *data, bool(*match)(void *, void *))
 Releases one object resource explicitly. More...
 
static libvlc_priv_tlibvlc_priv (libvlc_int_t *libvlc)
 
int intf_InsertItem (libvlc_int_t *, const char *mrl, unsigned optc, const char *const *optv, unsigned flags)
 Inserts an item in the playlist. More...
 
void intf_DestroyAll (libvlc_int_t *)
 Stops and destroys all interfaces, then the playlist. More...
 
int vlc_MetadataRequest (libvlc_int_t *libvlc, input_item_t *item, input_item_meta_request_option_t i_options, int timeout, void *id)
 
void var_OptionParse (vlc_object_t *, const char *, bool trusted)
 Parse a stringified option This function parse a string option and create the associated object variable The option must be of the form "[no[-]]foo[=bar]" where foo is the option name and bar is the value of the option. More...
 
counter_tstats_CounterCreate (int)
 Create a statistics counter. More...
 
void stats_Update (counter_t *, uint64_t, uint64_t *)
 Update a counter element with new values. More...
 
void stats_CounterClean (counter_t *)
 
void stats_ComputeInputStats (input_thread_t *, input_stats_t *)
 
void stats_ReinitInputStats (input_stats_t *)
 

Variables

const char psz_vlc_changeset []
 

Macro Definition Documentation

◆ libvlc_stats

#define libvlc_stats (   o)    (libvlc_priv((VLC_OBJECT(o))->obj.libvlc)->b_stats)

◆ vlc_backtrace

#define vlc_backtrace ( )    vlc_trace(__func__, __FILE__, __LINE__)

◆ vlc_custom_create

#define vlc_custom_create (   o,
  s,
 
)    vlc_custom_create(VLC_OBJECT(o), s, n)

◆ vlc_object_set_destructor

#define vlc_object_set_destructor (   a,
 
)    vlc_object_set_destructor (VLC_OBJECT(a), b)

◆ vlc_object_set_name

#define vlc_object_set_name (   o,
 
)    vlc_object_set_name(VLC_OBJECT(o), n)

◆ ZOOM_DOUBLE_KEY_TEXT

#define ZOOM_DOUBLE_KEY_TEXT   N_("2:1 Double")

◆ ZOOM_HALF_KEY_TEXT

#define ZOOM_HALF_KEY_TEXT   N_("1:2 Half")

◆ ZOOM_ORIGINAL_KEY_TEXT

#define ZOOM_ORIGINAL_KEY_TEXT   N_("1:1 Original")

◆ ZOOM_QUARTER_KEY_TEXT

#define ZOOM_QUARTER_KEY_TEXT   N_("1:4 Quarter")

◆ ZOOM_SECTION

#define ZOOM_SECTION   N_("Zoom")

Typedef Documentation

◆ counter_sample_t

◆ counter_t

typedef struct counter_t counter_t

◆ libvlc_priv_t

typedef struct libvlc_priv_t libvlc_priv_t

◆ variable_t

typedef struct variable_t variable_t

◆ vlc_actions_t

typedef struct vlc_actions_t vlc_actions_t

◆ vlc_destructor_t

typedef void(* vlc_destructor_t) (struct vlc_object_t *)

◆ vlc_dialog_provider

Private LibVLC instance data.

◆ vlc_exit_t

typedef struct vlc_exit vlc_exit_t

◆ vlc_keystore

typedef struct vlc_keystore vlc_keystore

◆ vlc_logger_t

typedef struct vlc_logger_t vlc_logger_t

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
STATS_COUNTER 
STATS_DERIVATIVE 

◆ anonymous enum

anonymous enum
Enumerator
STATS_INPUT_BITRATE 
STATS_READ_BYTES 
STATS_READ_PACKETS 
STATS_DEMUX_READ 
STATS_DEMUX_BITRATE 
STATS_DEMUX_CORRUPTED 
STATS_DEMUX_DISCONTINUITY 
STATS_PLAYED_ABUFFERS 
STATS_LOST_ABUFFERS 
STATS_DECODED_AUDIO 
STATS_DECODED_VIDEO 
STATS_DECODED_SUB 
STATS_CLIENT_CONNECTIONS 
STATS_ACTIVE_CONNECTIONS 
STATS_SOUT_SENT_PACKETS 
STATS_SOUT_SENT_BYTES 
STATS_SOUT_SEND_BITRATE 
STATS_DISPLAYED_PICTURES 
STATS_LOST_PICTURES 

Function Documentation

◆ intf_DestroyAll()

void intf_DestroyAll ( libvlc_int_t libvlc)

◆ intf_InsertItem()

int intf_InsertItem ( libvlc_int_t libvlc,
const char *  mrl,
unsigned  optc,
const char *const *  optv,
unsigned  flags 
)

Inserts an item in the playlist.

This function is used during initialization. Unlike playlist_Add() and variants, it inserts an item to the beginning of the playlist. That is meant to compensate for the reverse parsing order of the command line.

Note
This function may not be called at the same time as intf_DestroyAll().

< No error

References input_item_AddOptions(), input_item_New, input_item_Release(), intf_GetPlaylist(), playlist_t::p_playing, playlist_Lock(), playlist_NodeAddInput(), playlist_Unlock(), unlikely, and VLC_SUCCESS.

Referenced by GetFilenames(), and libvlc_InternalInit().

◆ libvlc_priv()

static libvlc_priv_t* libvlc_priv ( libvlc_int_t libvlc)
inlinestatic

◆ stats_ComputeInputStats()

void stats_ComputeInputStats ( input_thread_t ,
input_stats_t  
)

◆ stats_CounterClean()

void stats_CounterClean ( counter_t )

◆ stats_CounterCreate()

counter_t* stats_CounterCreate ( int  i_compute_type)

Create a statistics counter.

Parameters
i_compute_typethe aggregation type. One of STATS_LAST (always keep the last value), STATS_COUNTER (increment by the passed value), STATS_MAX (keep the maximum passed value), STATS_MIN, or STATS_DERIVATIVE (keep a time derivative of the value)

References counter_t::i_compute_type, counter_t::i_samples, counter_t::last_update, and counter_t::pp_samples.

◆ stats_ReinitInputStats()

void stats_ReinitInputStats ( input_stats_t )

◆ stats_Update()

void stats_Update ( counter_t p_counter,
uint64_t  val,
uint64_t *  new_val 
)

Update a counter element with new values.

Parameters
p_counterthe counter to update
valthe vlc_value union containing the new value to aggregate. For more information on how data is aggregated,
See also
stats_Create
Parameters
val_newa pointer that will be filled with new data

References CLOCK_FREQ, counter_sample_t::date, counter_t::i_compute_type, counter_t::i_samples, counter_t::last_update, mdate(), counter_t::pp_samples, STATS_COUNTER, STATS_DERIVATIVE, TAB_APPEND, TAB_ERASE, TAB_INSERT, unlikely, and counter_sample_t::value.

Referenced by AStreamReadBlock(), AStreamReadStream(), EsOutSend(), and input_CreateFilename().

◆ system_Configure()

void system_Configure ( libvlc_int_t ,
int  ,
const char * const  [] 
)

◆ system_Init()

void system_Init ( void  )

Initializes MME timer, Winsock.

References _fmode_bin, getenv(), LoadLibraryFlags, setenv(), and system_InitWSA().

Referenced by config_GetLibDir(), and libvlc_InternalInit().

◆ var_OptionParse()

void var_OptionParse ( vlc_object_t p_obj,
const char *  psz_option,
bool  trusted 
)

Parse a stringified option This function parse a string option and create the associated object variable The option must be of the form "[no[-]]foo[=bar]" where foo is the option name and bar is the value of the option.

Parameters
p_objthe object in which the variable must be created
psz_optionthe option to parse
trustedwhether the option is set by a trusted input or not
Returns
nothing

References vlc_value_t::b_bool, config_GetType(), config_IsSafe(), vlc_value_t::f_float, vlc_value_t::i_int, i_type, msg_Err, psz_name, vlc_value_t::psz_string, psz_value, strdup(), strtoll(), us_atof(), var_Create(), var_Set(), VLC_VAR_BOOL, VLC_VAR_FLOAT, VLC_VAR_INTEGER, and VLC_VAR_STRING.

Referenced by input_item_ApplyOptions(), and var_LocationParse().

◆ vlc_assert_locked()

void vlc_assert_locked ( vlc_mutex_t )

◆ vlc_clone_detach()

int vlc_clone_detach ( vlc_thread_t ,
void *  *)(void *,
void *  ,
int   
)

◆ vlc_CPU_dump()

void vlc_CPU_dump ( vlc_object_t )

◆ vlc_CPU_init()

void vlc_CPU_init ( void  )

Determines the CPU capabilities and stores them in cpu_flags.

The result can be retrieved with vlc_CPU().

References cpu_flags.

Referenced by _DLL_InitTerm(), DllMain(), and vlc_CPU().

◆ vlc_custom_create()

void* vlc_custom_create ( vlc_object_t p_this,
size_t  i_size,
const char *  psz_type 
)

◆ vlc_ExitDestroy()

void vlc_ExitDestroy ( vlc_exit_t )

◆ vlc_ExitInit()

void vlc_ExitInit ( vlc_exit_t )

◆ vlc_LogDeinit()

void vlc_LogDeinit ( libvlc_int_t )

Referenced by libvlc_InternalCleanup().

◆ vlc_LogInit()

int vlc_LogInit ( libvlc_int_t vlc)

Initializes the messages logging subsystem and drain the early messages to the configured log.

Returns
0 on success, -1 on error.

References libvlc_priv(), vlc_logger_t::lock, vlc_logger_t::log, libvlc_priv_t::logger, vlc_logger_t::module, vlc_logger_t::sys, unlikely, vlc_LogEarlyClose(), vlc_logger_load(), vlc_module_load, vlc_rwlock_unlock(), vlc_rwlock_wrlock(), vlc_vaLogDiscard(), and vlc_vaLogEarly().

Referenced by libvlc_InternalInit().

◆ vlc_LogPreinit()

int vlc_LogPreinit ( libvlc_int_t vlc)

Performs preinitialization of the messages logging subsystem.

Early log messages will be stored in memory until the subsystem is fully initialized with vlc_LogInit(). This enables logging before the configuration and modules bank are ready.

Returns
0 on success, -1 on error.

References libvlc_priv(), vlc_logger_t::lock, vlc_logger_t::log, libvlc_priv_t::logger, msg_Dbg, psz_vlc_changeset, unlikely, vlc_custom_create, vlc_LogEarlyOpen(), vlc_rwlock_init(), and vlc_vaLogDiscard().

Referenced by libvlc_InternalInit().

◆ vlc_MetadataRequest()

int vlc_MetadataRequest ( libvlc_int_t libvlc,
input_item_t item,
input_item_meta_request_option_t  i_options,
int  timeout,
void *  id 
)

< Not enough memory

< No error

◆ vlc_object_set_destructor()

void vlc_object_set_destructor ( vlc_object_t p_this,
vlc_destructor_t  pf_destructor 
)

Set the destructor of a vlc object.

This function sets the destructor of the vlc object. It will be called when the object is destroyed when the its refcount reaches 0. (It is called by the internal function vlc_object_destroy())

References vlc_object_internals::pf_destructor, and vlc_internals.

◆ vlc_object_set_name()

int vlc_object_set_name ( vlc_object_t ,
const char *   
)

Assign a name to an object for vlc_object_find_name().

< No error

< Not enough memory

References name, name_lock, vlc_object_internals::psz_name, strdup(), VLC_ENOMEM, vlc_internals, vlc_mutex_lock(), vlc_mutex_unlock(), and VLC_SUCCESS.

◆ vlc_objres_clear()

void vlc_objres_clear ( vlc_object_t obj)

Releases all resources of an object.

All resources added with vlc_objres_add() are released in reverse order. The resource list is reset to empty.

Parameters
objobject whose resources to release

References container_of, vlc_res::payload, vlc_res::release, and vlc_objres_pop().

Referenced by module_load(), and vlc_module_unload().

◆ vlc_objres_new()

void* vlc_objres_new ( size_t  size,
void(*)(void *)  release 
)

Allocates an object resource.

Parameters
sizestorage size in bytes of the resource data
releasecallback to release the resource
Returns
a pointer to the (uninitialized) storage space, or NULL on error

References add_overflow, and unlikely.

Referenced by vlc_obj_alloc_common(), and vlc_obj_malloc().

◆ vlc_objres_push()

void vlc_objres_push ( vlc_object_t obj,
void *  data 
)

Pushes an object resource on the object resources stack.

Parameters
objobject to allocate the resource for
dataresource base address (as returned by vlc_objres_new())

References container_of, vlc_res::payload, vlc_res::prev, and vlc_obj_res().

Referenced by vlc_obj_alloc_common(), and vlc_obj_malloc().

◆ vlc_objres_remove()

void vlc_objres_remove ( vlc_object_t obj,
void *  data,
bool(*)(void *, void *)  match 
)

Releases one object resource explicitly.

If a resource associated with an object needs to be released explicitly earlier than normal, call this function. This is relatively slow and should be avoided.

Parameters
objobject whose resource to release
dataprivate data for the comparison function
matchcomparison function to match the targeted resource

References vlc_res::payload, vlc_res::prev, vlc_res::release, and vlc_obj_res().

Referenced by vlc_obj_free().

◆ vlc_set_priority()

int vlc_set_priority ( vlc_thread_t  ,
int   
)

< No error

< No error

< Unspecified error

< No error

< No error

< Unspecified error

< No error

References vlc_thread_t::handle, rt_offset, rt_priorities, VLC_EGENERIC, and VLC_SUCCESS.

Referenced by Run().

◆ vlc_threads_setup()

void vlc_threads_setup ( libvlc_int_t )

◆ vlc_trace()

void vlc_trace ( const char *  fn,
const char *  file,
unsigned  line 
)

Print a backtrace to the standard error for debugging purpose.

References fsync().

Referenced by vlc_thread_fatal().

Variable Documentation

◆ psz_vlc_changeset

const char psz_vlc_changeset[]

Referenced by Version(), vlc_LogPreinit(), and vlc_LogSet().