GPAC
Open Source Multimedia Framework. For more information, check out http://gpac.wp.mines-telecom.fr
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups
mpd_in.c File Reference
+ Include dependency graph for mpd_in.c:

Data Structures

struct  GF_MPD_In
 
struct  GF_MPDGroup
 

Functions

static u32 MPD_RegisterMimeTypes (const GF_InputService *plug)
 
Bool MPD_CanHandleURL (GF_InputService *plug, const char *url)
 
static void MPD_NotifyData (GF_MPDGroup *group, Bool chunk_flush)
 
static GF_Err MPD_ClientQuery (GF_InputService *ifce, GF_NetworkCommand *param)
 
static GF_Err MPD_LoadMediaService (GF_MPD_In *mpdin, u32 group_index, const char *mime, const char *init_segment_name)
 
GF_InputServiceMPD_GetInputServiceForChannel (GF_MPD_In *mpdin, LPNETCHANNEL channel)
 
s32 MPD_GetGroupIndexForChannel (GF_MPD_In *mpdin, LPNETCHANNEL channel)
 
GF_Err MPD_ConnectChannel (GF_InputService *plug, LPNETCHANNEL channel, const char *url, Bool upstream)
 
GF_Err MPD_DisconnectChannel (GF_InputService *plug, LPNETCHANNEL channel)
 
static void mpdin_dash_segment_netio (void *cbk, GF_NETIO_Parameter *param)
 
void mpdin_dash_io_delete_cache_file (GF_DASHFileIO *dashio, GF_DASHFileIOSession session, const char *cache_url)
 
GF_DASHFileIOSession mpdin_dash_io_create (GF_DASHFileIO *dashio, Bool persistent, const char *url, s32 group_idx)
 
void mpdin_dash_io_del (GF_DASHFileIO *dashio, GF_DASHFileIOSession session)
 
void mpdin_dash_io_abort (GF_DASHFileIO *dashio, GF_DASHFileIOSession session)
 
GF_Err mpdin_dash_io_setup_from_url (GF_DASHFileIO *dashio, GF_DASHFileIOSession session, const char *url, s32 group_idx)
 
GF_Err mpdin_dash_io_set_range (GF_DASHFileIO *dashio, GF_DASHFileIOSession session, u64 start_range, u64 end_range, Bool discontinue_cache)
 
GF_Err mpdin_dash_io_init (GF_DASHFileIO *dashio, GF_DASHFileIOSession session)
 
GF_Err mpdin_dash_io_run (GF_DASHFileIO *dashio, GF_DASHFileIOSession session)
 
const char * mpdin_dash_io_get_url (GF_DASHFileIO *dashio, GF_DASHFileIOSession session)
 
const char * mpdin_dash_io_get_cache_name (GF_DASHFileIO *dashio, GF_DASHFileIOSession session)
 
const char * mpdin_dash_io_get_mime (GF_DASHFileIO *dashio, GF_DASHFileIOSession session)
 
const char * mpdin_dash_io_get_header_value (GF_DASHFileIO *dashio, GF_DASHFileIOSession session, const char *header_name)
 
u64 mpdin_dash_io_get_utc_start_time (GF_DASHFileIO *dashio, GF_DASHFileIOSession session)
 
u32 mpdin_dash_io_get_bytes_per_sec (GF_DASHFileIO *dashio, GF_DASHFileIOSession session)
 
u32 mpdin_dash_io_get_total_size (GF_DASHFileIO *dashio, GF_DASHFileIOSession session)
 
u32 mpdin_dash_io_get_bytes_done (GF_DASHFileIO *dashio, GF_DASHFileIOSession session)
 
GF_Err mpdin_dash_io_on_dash_event (GF_DASHFileIO *dashio, GF_DASHEventType dash_evt, s32 group_idx, GF_Err error_code)
 
GF_Err MPD_ConnectService (GF_InputService *plug, GF_ClientService *serv, const char *url)
 
static GF_DescriptorMPD_GetServiceDesc (GF_InputService *plug, u32 expect_type, const char *sub_url)
 
GF_Err MPD_CloseService (GF_InputService *plug)
 
GF_Err MPD_ServiceCommand (GF_InputService *plug, GF_NetworkCommand *com)
 
GF_Err MPD_ChannelGetSLP (GF_InputService *plug, LPNETCHANNEL channel, char **out_data_ptr, u32 *out_data_size, GF_SLHeader *out_sl_hdr, Bool *sl_compressed, GF_Err *out_reception_status, Bool *is_new_data)
 
GF_Err MPD_ChannelReleaseSLP (GF_InputService *plug, LPNETCHANNEL channel)
 
Bool MPD_CanHandleURLInService (GF_InputService *plug, const char *url)
 
const u32QueryInterfaces ()
 
GF_BaseInterfaceLoadInterface (u32 InterfaceType)
 
void ShutdownInterface (GF_BaseInterface *bi)
 

Variables

const char * MPD_MPD_DESC = "MPEG-DASH Streaming"
 
const char * MPD_MPD_EXT = "3gm mpd"
 
const char * MPD_M3U8_DESC = "Apple HLS Streaming"
 
const char * MPD_M3U8_EXT = "m3u8 m3u"
 

Data Structure Documentation

struct GF_MPD_In
+ Collaboration diagram for GF_MPD_In:
Data Fields
GF_ClientService * service
GF_InputService * plug
GF_DashClient * dash
GF_DASHFileIO dash_io
Bool connection_ack_sent
Bool in_seek
Bool memory_storage
Bool use_max_res
Bool immediate_switch
Bool allow_http_abort
Bool enable_buffering
u32 use_low_latency
Double previous_start_range
u32 width
u32 height
struct GF_MPDGroup
+ Collaboration diagram for GF_MPDGroup:
Data Fields
GF_MPD_In * mpdin
GF_InputService * segment_ifce
Bool service_connected
Bool service_descriptor_fetched
Bool netio_assigned
Bool has_new_data
u32 idx
GF_DownloadSession * sess

Function Documentation

static u32 MPD_RegisterMimeTypes ( const GF_InputService plug)
static

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Bool MPD_CanHandleURL ( GF_InputService plug,
const char *  url 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void MPD_NotifyData ( GF_MPDGroup group,
Bool  chunk_flush 
)
static

+ Here is the caller graph for this function:

static GF_Err MPD_ClientQuery ( GF_InputService ifce,
GF_NetworkCommand param 
)
static

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static GF_Err MPD_LoadMediaService ( GF_MPD_In mpdin,
u32  group_index,
const char *  mime,
const char *  init_segment_name 
)
static

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

GF_InputService* MPD_GetInputServiceForChannel ( GF_MPD_In mpdin,
LPNETCHANNEL  channel 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

s32 MPD_GetGroupIndexForChannel ( GF_MPD_In mpdin,
LPNETCHANNEL  channel 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

GF_Err MPD_ConnectChannel ( GF_InputService plug,
LPNETCHANNEL  channel,
const char *  url,
Bool  upstream 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

GF_Err MPD_DisconnectChannel ( GF_InputService plug,
LPNETCHANNEL  channel 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void mpdin_dash_segment_netio ( void *  cbk,
GF_NETIO_Parameter param 
)
static

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void mpdin_dash_io_delete_cache_file ( GF_DASHFileIO *  dashio,
GF_DASHFileIOSession  session,
const char *  cache_url 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

GF_DASHFileIOSession mpdin_dash_io_create ( GF_DASHFileIO *  dashio,
Bool  persistent,
const char *  url,
s32  group_idx 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void mpdin_dash_io_del ( GF_DASHFileIO *  dashio,
GF_DASHFileIOSession  session 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void mpdin_dash_io_abort ( GF_DASHFileIO *  dashio,
GF_DASHFileIOSession  session 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

GF_Err mpdin_dash_io_setup_from_url ( GF_DASHFileIO *  dashio,
GF_DASHFileIOSession  session,
const char *  url,
s32  group_idx 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

GF_Err mpdin_dash_io_set_range ( GF_DASHFileIO *  dashio,
GF_DASHFileIOSession  session,
u64  start_range,
u64  end_range,
Bool  discontinue_cache 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

GF_Err mpdin_dash_io_init ( GF_DASHFileIO *  dashio,
GF_DASHFileIOSession  session 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

GF_Err mpdin_dash_io_run ( GF_DASHFileIO *  dashio,
GF_DASHFileIOSession  session 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const char* mpdin_dash_io_get_url ( GF_DASHFileIO *  dashio,
GF_DASHFileIOSession  session 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const char* mpdin_dash_io_get_cache_name ( GF_DASHFileIO *  dashio,
GF_DASHFileIOSession  session 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const char* mpdin_dash_io_get_mime ( GF_DASHFileIO *  dashio,
GF_DASHFileIOSession  session 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const char* mpdin_dash_io_get_header_value ( GF_DASHFileIO *  dashio,
GF_DASHFileIOSession  session,
const char *  header_name 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u64 mpdin_dash_io_get_utc_start_time ( GF_DASHFileIO *  dashio,
GF_DASHFileIOSession  session 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 mpdin_dash_io_get_bytes_per_sec ( GF_DASHFileIO *  dashio,
GF_DASHFileIOSession  session 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 mpdin_dash_io_get_total_size ( GF_DASHFileIO *  dashio,
GF_DASHFileIOSession  session 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 mpdin_dash_io_get_bytes_done ( GF_DASHFileIO *  dashio,
GF_DASHFileIOSession  session 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

GF_Err mpdin_dash_io_on_dash_event ( GF_DASHFileIO *  dashio,
GF_DASHEventType  dash_evt,
s32  group_idx,
GF_Err  error_code 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

GF_Err MPD_ConnectService ( GF_InputService plug,
GF_ClientService *  serv,
const char *  url 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static GF_Descriptor* MPD_GetServiceDesc ( GF_InputService plug,
u32  expect_type,
const char *  sub_url 
)
static

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

GF_Err MPD_CloseService ( GF_InputService plug)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

GF_Err MPD_ServiceCommand ( GF_InputService plug,
GF_NetworkCommand com 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

GF_Err MPD_ChannelGetSLP ( GF_InputService plug,
LPNETCHANNEL  channel,
char **  out_data_ptr,
u32 out_data_size,
GF_SLHeader out_sl_hdr,
Bool sl_compressed,
GF_Err out_reception_status,
Bool is_new_data 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

GF_Err MPD_ChannelReleaseSLP ( GF_InputService plug,
LPNETCHANNEL  channel 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Bool MPD_CanHandleURLInService ( GF_InputService plug,
const char *  url 
)

May arrive when using pid:// URLs into a TS stream

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const u32* QueryInterfaces ( )
GF_BaseInterface* LoadInterface ( u32  InterfaceType)

+ Here is the call graph for this function:

void ShutdownInterface ( GF_BaseInterface bi)

+ Here is the call graph for this function:

Variable Documentation

const char* MPD_MPD_DESC = "MPEG-DASH Streaming"
const char* MPD_MPD_EXT = "3gm mpd"
const char* MPD_M3U8_DESC = "Apple HLS Streaming"
const char* MPD_M3U8_EXT = "m3u8 m3u"