VLC 4.0.0-dev

VLC stream manager. More...

Collaboration diagram for VLM:

Files

file  vlc_vlm.h
 VLC stream manager interface.
 

Data Structures

struct  vlm_media_t
 VLM media. More...
 
struct  vlm_media_instance_t
 VLM media instance. More...
 
struct  vlm_event_t
 
struct  vlm_message_t
 

Typedefs

typedef enum vlm_state_e vlm_state_e
 

Enumerations

enum  vlm_event_type_e {
  VLM_EVENT_MEDIA_ADDED = 0x100 , VLM_EVENT_MEDIA_REMOVED , VLM_EVENT_MEDIA_CHANGED , VLM_EVENT_MEDIA_INSTANCE_STARTED = 0x200 ,
  VLM_EVENT_MEDIA_INSTANCE_STOPPED , VLM_EVENT_MEDIA_INSTANCE_STATE
}
 VLM events You can catch vlm event by adding a callback on the variable "intf-event" of the VLM object. More...
 
enum  vlm_state_e {
  VLM_INIT_S = 0 , VLM_OPENING_S , VLM_PLAYING_S , VLM_PAUSE_S ,
  VLM_END_S , VLM_ERROR_S
}
 
enum  vlm_query_e {
  VLM_GET_MEDIAS , VLM_CLEAR_MEDIAS , VLM_ADD_MEDIA , VLM_DEL_MEDIA ,
  VLM_CHANGE_MEDIA , VLM_GET_MEDIA , VLM_GET_MEDIA_ID , VLM_GET_MEDIA_INSTANCES ,
  VLM_CLEAR_MEDIA_INSTANCES , VLM_START_MEDIA_BROADCAST_INSTANCE , VLM_STOP_MEDIA_INSTANCE , VLM_PAUSE_MEDIA_INSTANCE ,
  VLM_GET_MEDIA_INSTANCE_TIME , VLM_SET_MEDIA_INSTANCE_TIME , VLM_GET_MEDIA_INSTANCE_POSITION , VLM_SET_MEDIA_INSTANCE_POSITION ,
  VLM_CLEAR_SCHEDULES
}
 VLM control query. More...
 

Functions

vlm_tvlm_New (libvlc_int_t *, const char *path)
 
void vlm_Delete (vlm_t *)
 
int vlm_ExecuteCommand (vlm_t *, const char *, vlm_message_t **)
 
int vlm_Control (vlm_t *p_vlm, int i_query,...)
 
vlm_message_tvlm_MessageSimpleNew (const char *)
 
vlm_message_tvlm_MessageNew (const char *, const char *,...)
 
vlm_message_tvlm_MessageAdd (vlm_message_t *, vlm_message_t *)
 
void vlm_MessageDelete (vlm_message_t *)
 
static void vlm_media_Init (vlm_media_t *p_media)
 Initialize a vlm_media_t instance. More...
 
static void vlm_media_Copy (vlm_media_t *restrict p_dst, const vlm_media_t *restrict p_src)
 Copy a vlm_media_t instance into another vlm_media_t instance. More...
 
static void vlm_media_Clean (vlm_media_t *p_media)
 Cleanup and release memory associated with this vlm_media_t instance. More...
 
static vlm_media_tvlm_media_New (void)
 Allocate a new vlm_media_t instance. More...
 
static void vlm_media_Delete (vlm_media_t *p_media)
 Delete a vlm_media_t instance. More...
 
static vlm_media_tvlm_media_Duplicate (vlm_media_t *p_src)
 Copy a vlm_media_t instance. More...
 
static void vlm_media_instance_Init (vlm_media_instance_t *p_instance)
 Initialize vlm_media_instance_t. More...
 
static void vlm_media_instance_Clean (vlm_media_instance_t *p_instance)
 Cleanup vlm_media_instance_t. More...
 
static vlm_media_instance_tvlm_media_instance_New (void)
 Allocate a new vlm_media_instance_t. More...
 
static void vlm_media_instance_Delete (vlm_media_instance_t *p_instance)
 Delete a vlm_media_instance_t. More...
 

Detailed Description

VLC stream manager.

VLM is the server core in vlc that allows streaming of multiple media streams at the same time. It provides broadcast, schedule and video on demand features for streaming using several streaming and network protocols.

Typedef Documentation

◆ vlm_state_e

typedef enum vlm_state_e vlm_state_e

Enumeration Type Documentation

◆ vlm_event_type_e

VLM events You can catch vlm event by adding a callback on the variable "intf-event" of the VLM object.

This variable is an address that will hold a vlm_event_t* value.

Enumerator
VLM_EVENT_MEDIA_ADDED 
VLM_EVENT_MEDIA_REMOVED 
VLM_EVENT_MEDIA_CHANGED 
VLM_EVENT_MEDIA_INSTANCE_STARTED 
VLM_EVENT_MEDIA_INSTANCE_STOPPED 
VLM_EVENT_MEDIA_INSTANCE_STATE 

◆ vlm_query_e

VLM control query.

Enumerator
VLM_GET_MEDIAS 
VLM_CLEAR_MEDIAS 
VLM_ADD_MEDIA 
VLM_DEL_MEDIA 
VLM_CHANGE_MEDIA 
VLM_GET_MEDIA 
VLM_GET_MEDIA_ID 
VLM_GET_MEDIA_INSTANCES 
VLM_CLEAR_MEDIA_INSTANCES 
VLM_START_MEDIA_BROADCAST_INSTANCE 
VLM_STOP_MEDIA_INSTANCE 
VLM_PAUSE_MEDIA_INSTANCE 
VLM_GET_MEDIA_INSTANCE_TIME 
VLM_SET_MEDIA_INSTANCE_TIME 
VLM_GET_MEDIA_INSTANCE_POSITION 
VLM_SET_MEDIA_INSTANCE_POSITION 
VLM_CLEAR_SCHEDULES 

◆ vlm_state_e

Enumerator
VLM_INIT_S 
VLM_OPENING_S 
VLM_PLAYING_S 
VLM_PAUSE_S 
VLM_END_S 
VLM_ERROR_S 

Function Documentation

◆ vlm_Control()

int vlm_Control ( vlm_t p_vlm,
int  i_query,
  ... 
)

◆ vlm_Delete()

◆ vlm_ExecuteCommand()

int vlm_ExecuteCommand ( vlm_t p_vlm,
const char *  psz_command,
vlm_message_t **  pp_message 
)

◆ vlm_media_Clean()

static void vlm_media_Clean ( vlm_media_t p_media)
inlinestatic

Cleanup and release memory associated with this vlm_media_t instance.

You still need to release p_media itself with vlm_media_Delete().

Parameters
p_mediavlm_media_t to cleanup

References vlm_media_t::i_input, vlm_media_t::i_option, vlm_media_t::ppsz_input, vlm_media_t::ppsz_option, vlm_media_t::psz_name, vlm_media_t::psz_output, and TAB_CLEAN.

Referenced by vlm_ControlMediaChange(), vlm_ControlMediaDel(), and vlm_media_Delete().

◆ vlm_media_Copy()

static void vlm_media_Copy ( vlm_media_t *restrict  p_dst,
const vlm_media_t *restrict  p_src 
)
inlinestatic

◆ vlm_media_Delete()

static void vlm_media_Delete ( vlm_media_t p_media)
inlinestatic

Delete a vlm_media_t instance.

Parameters
p_mediavlm_media_t instance to delete

References vlm_media_Clean().

◆ vlm_media_Duplicate()

static vlm_media_t * vlm_media_Duplicate ( vlm_media_t p_src)
inlinestatic

Copy a vlm_media_t instance.

Parameters
p_srcvlm_media_t instance to copy
Returns
vlm_media_t duplicate of p_src

References vlm_media_Copy(), and vlm_media_New().

Referenced by vlm_ControlMediaGet(), and vlm_ControlMediaGets().

◆ vlm_media_Init()

static void vlm_media_Init ( vlm_media_t p_media)
inlinestatic

◆ vlm_media_instance_Clean()

static void vlm_media_instance_Clean ( vlm_media_instance_t p_instance)
inlinestatic

Cleanup vlm_media_instance_t.

Parameters
p_instancevlm_media_instance_t to cleanup

References vlm_media_instance_t::psz_name.

Referenced by vlm_media_instance_Delete().

◆ vlm_media_instance_Delete()

static void vlm_media_instance_Delete ( vlm_media_instance_t p_instance)
inlinestatic

Delete a vlm_media_instance_t.

Parameters
p_instancevlm_media_instance_t to delete

References vlm_media_instance_Clean().

◆ vlm_media_instance_Init()

◆ vlm_media_instance_New()

static vlm_media_instance_t * vlm_media_instance_New ( void  )
inlinestatic

◆ vlm_media_New()

static vlm_media_t * vlm_media_New ( void  )
inlinestatic

Allocate a new vlm_media_t instance.

Returns
vlm_media_t instance

References vlm_media_Init().

Referenced by vlm_media_Duplicate().

◆ vlm_MessageAdd()

vlm_message_t * vlm_MessageAdd ( vlm_message_t a,
vlm_message_t b 
)

◆ vlm_MessageDelete()

void vlm_MessageDelete ( vlm_message_t m)

References vlc_assert_unreachable, and VLC_UNUSED.

Referenced by Manage(), and vlm_New().

◆ vlm_MessageNew()

vlm_message_t * vlm_MessageNew ( const char *  a,
const char *  fmt,
  ... 
)

◆ vlm_MessageSimpleNew()

vlm_message_t * vlm_MessageSimpleNew ( const char *  a)

References VLC_UNUSED.

Referenced by vlm_MessageNew().

◆ vlm_New()