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
html5_media.h File Reference
+ Include dependency graph for html5_media.h:
+ This graph shows which files directly or indirectly include this file:

Data Structures

struct  GF_HTML_MediaRuntime
 
struct  GF_HTML_MediaError
 
struct  GF_HTML_MediaTimeRanges
 
struct  GF_HTML_Track
 
struct  GF_HTML_TextTrack
 
struct  GF_HTML_TrackList
 
struct  GF_HTML_MediaController
 
struct  GF_HTML_MediaElement
 
struct  GF_HTML_ArrayBuffer
 

Macros

#define BASE_HTML_TRACK
 
#define BASE_HTML_TRACK_LIST
 

Enumerations

enum  GF_HTML_MediaErrorCode { MEDIA_ERR_ABORTED = 1, MEDIA_ERR_NETWORK = 2, MEDIA_ERR_DECODE = 3, MEDIA_ERR_SRC_NOT_SUPPORTED = 4 }
 
enum  GF_HTML_NetworkState { NETWORK_EMPTY = 0, NETWORK_IDLE = 1, NETWORK_LOADING = 2, NETWORK_NO_SOURCE = 3 }
 
enum  GF_HTML_MediaReadyState {
  HAVE_NOTHING = 0, HAVE_METADATA = 1, HAVE_CURRENT_DATA = 2, HAVE_FUTURE_DATA = 3,
  HAVE_ENOUGH_DATA = 4
}
 
enum  GF_HTML_TrackType { HTML_MEDIA_TRACK_TYPE_UNKNOWN = 0, HTML_MEDIA_TRACK_TYPE_AUDIO = 1, HTML_MEDIA_TRACK_TYPE_VIDEO = 2, HTML_MEDIA_TRACK_TYPE_TEXT = 3 }
 
enum  GF_HTML_MediaControllerPlaybackState { MEDIA_CONTROLLER_WAITING = 0, MEDIA_CONTROLLER_PLAYING = 1, MEDIA_CONTROLLER_ENDED = 2 }
 

Functions

GF_Err gf_media_time_ranges_add (GF_HTML_MediaTimeRanges *timeranges, double start, double end)
 
void gf_html_timeranges_reset (GF_HTML_MediaTimeRanges *range)
 
void gf_html_timeranges_del (GF_HTML_MediaTimeRanges *range)
 
GF_HTML_Trackhtml_media_add_new_track_to_list (GF_HTML_TrackList *tracklist, GF_HTML_TrackType type, const char *mime, Bool enable_or_selected, const char *id, const char *kind, const char *label, const char *lang)
 
Bool html_media_tracklist_has_track (GF_HTML_TrackList *tracklist, const char *id)
 
GF_HTML_Trackhtml_media_tracklist_get_track (GF_HTML_TrackList *tracklist, const char *id)
 
void gf_html_tracklist_del (GF_HTML_TrackList *tlist)
 
GF_HTML_Trackgf_html_media_track_new (GF_HTML_TrackType type, const char *mime, Bool enable_or_selected, const char *id, const char *kind, const char *label, const char *lang)
 
void gf_html_track_del (GF_HTML_Track *track)
 
GF_HTML_MediaElementgf_html_media_element_new (GF_Node *media_node, GF_HTML_MediaController *mc)
 
void gf_html_media_element_del (GF_HTML_MediaElement *me)
 
GF_HTML_MediaControllergf_html_media_controller_new ()
 
void gf_html_media_controller_del (GF_HTML_MediaController *mc)
 
GF_HTML_ArrayBuffergf_arraybuffer_new (char *data, u32 length)
 
JSObject * gf_arraybuffer_js_new (JSContext *c, char *data, u32 length, JSObject *parent)
 
void gf_arraybuffer_del (GF_HTML_ArrayBuffer *buffer, Bool del_js)
 
void html_media_element_js_init (JSContext *c, JSObject *new_obj, GF_Node *n)
 

Data Structure Documentation

struct GF_HTML_MediaRuntime
+ Collaboration diagram for GF_HTML_MediaRuntime:
Data Fields
u32 nb_inst
GF_JSClass arrayBufferClass
GF_JSClass htmlVideoElementClass
GF_JSClass htmlAudioElementClass
GF_JSClass htmlSourceElementClass
GF_JSClass htmlTrackElementClass
GF_JSClass htmlMediaElementClass
GF_JSClass mediaControllerClass
GF_JSClass audioTrackListClass
GF_JSClass audioTrackClass
GF_JSClass videoTrackListClass
GF_JSClass videoTrackClass
GF_JSClass textTrackListClass
GF_JSClass textTrackClass
GF_JSClass textTrackCueListClass
GF_JSClass textTrackCueClass
GF_JSClass timeRangesClass
GF_JSClass trackEventClass
GF_JSClass mediaErrorClass
GF_JSClass mediaSourceClass
GF_JSClass sourceBufferClass
GF_JSClass sourceBufferListClass
GF_JSClass URLClass
GF_JSClass mediaStreamClass
GF_JSClass localMediaStreamClass
GF_JSClass mediaStreamTrackClass
GF_JSClass mediaStreamTrackListClass
GF_JSClass navigatorUserMediaClass
GF_JSClass navigatorUserMediaErrorClass
struct GF_HTML_MediaError
+ Collaboration diagram for GF_HTML_MediaError:
Data Fields
JSContext * c
JSObject * _this
GF_HTML_MediaErrorCode code
struct GF_HTML_MediaTimeRanges
+ Collaboration diagram for GF_HTML_MediaTimeRanges:
Data Fields
JSContext * c
JSObject * _this
GF_List * times
struct GF_HTML_Track
+ Collaboration diagram for GF_HTML_Track:
Data Fields
JSContext * c
JSObject * _this
u32 bin_id
LPNETCHANNEL channel
GF_ObjectDescriptor * od
GF_List * buffer
u32 packet_index
GF_Mutex * buffer_mutex
Bool last_dts_set
double last_dts
Bool highest_pts_set
double highest_pts
Bool needs_rap
u32 timescale
GF_HTML_TrackType type
char * id
char * kind
char * label
char * language
char * mime
Bool enabled_or_selected
struct GF_HTML_TextTrack
+ Collaboration diagram for GF_HTML_TextTrack:
Data Fields
JSContext * c
JSObject * _this
u32 bin_id
LPNETCHANNEL channel
GF_ObjectDescriptor * od
GF_List * buffer
u32 packet_index
GF_Mutex * buffer_mutex
Bool last_dts_set
double last_dts
Bool highest_pts_set
double highest_pts
Bool needs_rap
u32 timescale
GF_HTML_TrackType type
char * id
char * kind
char * label
char * language
char * mime
Bool enabled_or_selected
struct GF_HTML_TrackList
+ Collaboration diagram for GF_HTML_TrackList:
Data Fields
JSContext * c
JSObject * _this
GF_List * tracks
u32 selected_index
struct GF_HTML_MediaController
+ Collaboration diagram for GF_HTML_MediaController:
Data Fields
JSContext * c
JSObject * _this
GF_HTML_MediaTimeRanges buffered
GF_HTML_MediaTimeRanges seekable
GF_HTML_MediaTimeRanges played
Bool paused
GF_HTML_MediaControllerPlaybackState playbackState
double defaultPlaybackRate
GF_List * media_elements
struct GF_HTML_MediaElement
+ Collaboration diagram for GF_HTML_MediaElement:
Data Fields
JSContext * c
JSObject * _this
GF_Node * node
GF_HTML_MediaError error
char * currentSrc
GF_HTML_MediaTimeRanges buffered
Bool seeking
char * startDate
Bool paused
double defaultPlaybackRate
GF_HTML_MediaTimeRanges played
GF_HTML_MediaTimeRanges seekable
GF_HTML_MediaController * controller
GF_HTML_TrackList audioTracks
GF_HTML_TrackList videoTracks
GF_HTML_TrackList textTracks
struct GF_HTML_ArrayBuffer
+ Collaboration diagram for GF_HTML_ArrayBuffer:
Data Fields
JSContext * c
JSObject * _this
char * data
u32 length
char * url
Bool is_init
u32 reference_count

Macro Definition Documentation

#define BASE_HTML_TRACK
Value:
/* JavaScript context associated to this object */\
JSContext *c;\
/* JavaScript counterpart */\
JSObject *_this;\
/* GPAC-specific properties */\
u32 bin_id; /* track id */\
LPNETCHANNEL channel; /* channel object used by the terminal */\
GF_ObjectDescriptor *od; /* MPEG-4 Object descriptor for this track */\
GF_List *buffer; /* List of MSE Packets */\
u32 packet_index; /* index of MSE Packets*/\
GF_Mutex *buffer_mutex;\
Bool last_dts_set; \
double last_dts; /* MSE last decode timestamp */ \
Bool highest_pts_set; \
double highest_pts; /* MSE highest presentation timestamp */ \
Bool needs_rap; /* MSE need random access point flag */ \
u32 timescale; /* used by time stamps in MSE Packets */ \
/* standard HTML properties */ \
char *id;\
char *kind;\
char *label;\
char *language;\
char *mime; \
Bool enabled_or_selected;
GF_HTML_TrackType
Definition: html5_media.h:143
uint32_t u32
Definition: setup.h:246
void * LPNETCHANNEL
Definition: service.h:43
Bool
Definition: setup.h:315
#define BASE_HTML_TRACK_LIST
Value:
/* JavaScript context associated to this object */\
JSContext *c;\
/* JavaScript counterpart */\
JSObject *_this;\
GF_List *tracks; \
/* onchange, onaddtrack, onremovetrack */ \
u32 selected_index;
uint32_t u32
Definition: setup.h:246

Enumeration Type Documentation

Enumerator
MEDIA_ERR_ABORTED 
MEDIA_ERR_NETWORK 
MEDIA_ERR_DECODE 
MEDIA_ERR_SRC_NOT_SUPPORTED 
Enumerator
NETWORK_EMPTY 
NETWORK_IDLE 
NETWORK_LOADING 
NETWORK_NO_SOURCE 
Enumerator
HAVE_NOTHING 
HAVE_METADATA 
HAVE_CURRENT_DATA 
HAVE_FUTURE_DATA 
HAVE_ENOUGH_DATA 
Enumerator
HTML_MEDIA_TRACK_TYPE_UNKNOWN 
HTML_MEDIA_TRACK_TYPE_AUDIO 
HTML_MEDIA_TRACK_TYPE_VIDEO 
HTML_MEDIA_TRACK_TYPE_TEXT 
Enumerator
MEDIA_CONTROLLER_WAITING 
MEDIA_CONTROLLER_PLAYING 
MEDIA_CONTROLLER_ENDED 

Function Documentation

GF_Err gf_media_time_ranges_add ( GF_HTML_MediaTimeRanges timeranges,
double  start,
double  end 
)
void gf_html_timeranges_reset ( GF_HTML_MediaTimeRanges range)
void gf_html_timeranges_del ( GF_HTML_MediaTimeRanges range)
GF_HTML_Track* html_media_add_new_track_to_list ( GF_HTML_TrackList tracklist,
GF_HTML_TrackType  type,
const char *  mime,
Bool  enable_or_selected,
const char *  id,
const char *  kind,
const char *  label,
const char *  lang 
)
Bool html_media_tracklist_has_track ( GF_HTML_TrackList tracklist,
const char *  id 
)
GF_HTML_Track* html_media_tracklist_get_track ( GF_HTML_TrackList tracklist,
const char *  id 
)
void gf_html_tracklist_del ( GF_HTML_TrackList tlist)
GF_HTML_Track* gf_html_media_track_new ( GF_HTML_TrackType  type,
const char *  mime,
Bool  enable_or_selected,
const char *  id,
const char *  kind,
const char *  label,
const char *  lang 
)
void gf_html_track_del ( GF_HTML_Track track)
GF_HTML_MediaElement* gf_html_media_element_new ( GF_Node media_node,
GF_HTML_MediaController mc 
)
void gf_html_media_element_del ( GF_HTML_MediaElement me)
GF_HTML_MediaController* gf_html_media_controller_new ( )
void gf_html_media_controller_del ( GF_HTML_MediaController mc)
GF_HTML_ArrayBuffer* gf_arraybuffer_new ( char *  data,
u32  length 
)
JSObject* gf_arraybuffer_js_new ( JSContext *  c,
char *  data,
u32  length,
JSObject *  parent 
)
void gf_arraybuffer_del ( GF_HTML_ArrayBuffer buffer,
Bool  del_js 
)
void html_media_element_js_init ( JSContext *  c,
JSObject *  new_obj,
GF_Node n 
)