|  | libgpac
    Documentation of the core library of GPAC | 
Utility tools DASH manifests. More...
 Collaboration diagram for MPD/M3U8/Smooth Manifest Parsing:
 Collaboration diagram for MPD/M3U8/Smooth Manifest Parsing:| Data Structures | |
| struct | GF_MPD_Metrics | 
| struct | GF_MPD_ContentComponent | 
| struct | GF_MPD_Descriptor | 
| struct | GF_MPD_Subset | 
| struct | GF_MPD_SegmentTimelineEntry | 
| struct | GF_MPD_SegmentTimeline | 
| struct | GF_MPD_ByteRange | 
| struct | GF_MPD_BaseURL | 
| struct | GF_MPD_URL | 
| struct | GF_MPD_Fractional | 
| struct | GF_MPD_ISOBMFInfo | 
| struct | GF_MPD_SegmentBase | 
| struct | GF_MPD_MultipleSegmentBase | 
| struct | GF_MPD_SegmentURL | 
| struct | GF_MPD_SegmentList | 
| struct | GF_MPD_SegmentTemplate | 
| struct | GF_MPD_CommonAttributes | 
| struct | GF_MPD_ProducerReferenceTime | 
| struct | GF_MPD_SubRepresentation | 
| struct | GF_DASH_RepresentationPlayback | 
| struct | GF_DASH_SegmenterContext | 
| struct | GF_DASH_FragmentContext | 
| struct | GF_DASH_SegmentContext | 
| struct | GF_MPD_Representation | 
| struct | GF_MPD_AdaptationSet | 
| struct | GF_MPD_Inband_Event | 
| struct | GF_MPD_Period | 
| struct | GF_MPD_ProgramInfo | 
| struct | GF_MPD | 
| struct | GF_FileDownload | 
| struct | GF_DASHCueInfo | 
| Macros | |
| #define | MPD_EXTENSIBLE | 
| #define | GF_MPD_SEGMENT_BASE | 
| #define | GF_MPD_MULTIPLE_SEGMENT_BASE | 
| #define | GF_MPD_COMMON_ATTRIBUTES_ELEMENTS | 
| Typedefs | |
| typedef u32 | GF_DashAbsoluteURLMode | 
| typedef u32 | GF_DashHLSLowLatencyType | 
| Functions | |
| GF_Err | gf_media_mpd_format_segment_name (GF_DashTemplateSegmentType seg_type, Bool is_bs_switching, char *segment_name, const char *rep_id, const char *base_url, const char *seg_rad_name, const char *seg_ext, u64 start_time, u32 bandwidth, u32 segment_number, Bool use_segment_timeline, Bool forced) | 
| GF_Err | gf_mpd_init_from_dom (GF_XMLNode *root, GF_MPD *mpd, const char *base_url) | 
| GF_Err | gf_mpd_complete_from_dom (GF_XMLNode *root, GF_MPD *mpd, const char *base_url) | 
| GF_MPD * | gf_mpd_new () | 
| void | gf_mpd_del (GF_MPD *mpd) | 
| void | gf_mpd_segment_url_free (void *ptr) | 
| void | gf_mpd_segment_base_free (void *ptr) | 
| void | gf_mpd_parse_segment_url (GF_List *container, GF_XMLNode *root) | 
| u64 | gf_mpd_parse_date (const char *const attr) | 
| void | gf_mpd_url_free (void *_item) | 
| GF_MPD_Period * | gf_mpd_period_new () | 
| void | gf_mpd_period_free (void *_item) | 
| GF_Err | gf_mpd_write (GF_MPD const *const mpd, FILE *out, Bool compact) | 
| GF_Err | gf_mpd_write_file (GF_MPD const *const mpd, const char *file_name) | 
| GF_Err | gf_mpd_write_m3u8_master_playlist (GF_MPD const *const mpd, FILE *out, const char *m3u8_name, GF_MPD_Period *period, GF_M3U8WriteMode mode) | 
| GF_Err | gf_mpd_parse_period (GF_MPD *mpd, GF_XMLNode *root) | 
| GF_MPD_Descriptor * | gf_mpd_descriptor_new (const char *id, const char *uri, const char *value) | 
| GF_MPD_AdaptationSet * | gf_mpd_adaptation_set_new () | 
| GF_Err | gf_m3u8_to_mpd (const char *m3u8_file, const char *base_url, const char *mpd_file, u32 reload_count, char *mimeTypeForM3U8Segments, Bool do_import, Bool use_mpd_templates, Bool use_segment_timeline, GF_FileDownload *getter, GF_MPD *mpd, Bool parse_sub_playlist, Bool keep_files) | 
| GF_Err | gf_m3u8_solve_representation_xlink (GF_MPD_Representation *rep, const char *base_url, GF_FileDownload *getter, Bool *is_static, u64 *duration, u8 signature[GF_SHA1_DIGEST_SIZE]) | 
| GF_MPD_SegmentList * | gf_mpd_solve_segment_list_xlink (GF_MPD *mpd, GF_XMLNode *root) | 
| GF_Err | gf_mpd_init_smooth_from_dom (GF_XMLNode *root, GF_MPD *mpd, const char *default_base_url) | 
| void | gf_mpd_delete_segment_list (GF_MPD_SegmentList *segment_list) | 
| void | gf_mpd_del_list (GF_List *list, void(*__destructor)(void *), Bool reset_only) | 
| void | gf_mpd_descriptor_free (void *item) | 
| GF_Err | gf_mpd_split_adaptation_sets (GF_MPD *mpd) | 
| GF_Err | gf_mpd_smooth_to_mpd (char *smooth_file, GF_MPD *mpd, const char *default_base_url) | 
| u32 | gf_mpd_get_base_url_count (GF_MPD *mpd, GF_MPD_Period *period, GF_MPD_AdaptationSet *set, GF_MPD_Representation *rep) | 
| GF_Err | gf_mpd_resolve_url (GF_MPD *mpd, GF_MPD_Representation *rep, GF_MPD_AdaptationSet *set, GF_MPD_Period *period, const char *mpd_url, u32 base_url_index, GF_MPD_URLResolveType resolve_type, u32 item_index, u32 nb_segments_removed, char **out_url, u64 *out_range_start, u64 *out_range_end, u64 *segment_duration, Bool *is_in_base_url, char **out_key_url, bin128 *key_iv, u32 *out_start_number, s32 subseg_index) | 
| Double | gf_mpd_get_duration (GF_MPD *mpd) | 
| void | gf_mpd_resolve_segment_duration (GF_MPD_Representation *rep, GF_MPD_AdaptationSet *set, GF_MPD_Period *period, u64 *out_duration, u32 *out_timescale, u64 *out_pts_offset, GF_MPD_SegmentTimeline **out_segment_timeline) | 
| GF_Err | gf_mpd_get_segment_start_time_with_timescale (s32 in_segment_index, GF_MPD_Period const *const in_period, GF_MPD_AdaptationSet const *const in_set, GF_MPD_Representation const *const in_rep, u64 *out_segment_start_time, u64 *out_opt_segment_duration, u32 *out_opt_scale) | 
| GF_Err | gf_mpd_seek_in_period (Double seek_time, MPDSeekMode seek_mode, GF_MPD_Period const *const in_period, GF_MPD_AdaptationSet const *const in_set, GF_MPD_Representation const *const in_rep, u32 *out_segment_index, Double *out_opt_seek_time, Double *out_seg_dur) | 
| void | gf_mpd_base_url_free (void *_item) | 
| GF_MPD_Representation * | gf_mpd_representation_new () | 
| void | gf_mpd_representation_free (void *_item) | 
| GF_MPD_SegmentTimeline * | gf_mpd_segmentimeline_new () | 
| GF_Err | gf_mpd_load_cues (const char *cues_file, u32 stream_id, u32 *cues_timescale, Bool *use_edit_list, s32 *ts_offset, GF_DASHCueInfo **out_cues, u32 *nb_cues) | 
| GF_MPD_Descriptor * | gf_mpd_get_descriptor (GF_List *desclist, char *scheme_id) | 
| char * | gf_mpd_resolve_subnumber (char *llhas_template, char *segment_filename, u32 part_idx) | 
Utility tools DASH manifests.
This section documents the DASH, Smooth and HLS manifest parsing functions of the GPAC framework.
| struct GF_MPD_Metrics | 
metrics, not yet supported
| Data Fields | ||
|---|---|---|
| u32 | dummy | |
| struct GF_MPD_ContentComponent | 
Content Component description
| Data Fields | ||
|---|---|---|
| u32 | id | content component ID | 
| char * | type | content component mime type | 
| char * | lang | content component language | 
| struct GF_MPD_Descriptor | 
basic extensible MPD descriptor
| Data Fields | ||
|---|---|---|
| MPD_EXTENSIBLE char * | scheme_id_uri | mandatory schemeid URL | 
| char * | value | associated value, may be NULL | 
| char * | id | associated ID, may be NULL | 
| struct GF_MPD_Subset | 
subset, not yet supported
| Data Fields | ||
|---|---|---|
| u32 | dummy | |
| struct GF_MPD_SegmentTimelineEntry | 
| struct GF_MPD_ByteRange | 
| struct GF_MPD_BaseURL | 
base URL
 Collaboration diagram for GF_MPD_BaseURL:
 Collaboration diagram for GF_MPD_BaseURL:| Data Fields | ||
|---|---|---|
| char * | URL | URL | 
| char * | service_location | service location if any | 
| GF_MPD_ByteRange * | byte_range | byte range if any | 
| char * | redirection | GPAC internal: redirection for that URL | 
| const char * | hls_vp_rel_url | GPAC internal: original URL relative to HLS variant playlist  | 
| struct GF_MPD_URL | 
MPD URL
 Collaboration diagram for GF_MPD_URL:
 Collaboration diagram for GF_MPD_URL:| Data Fields | ||
|---|---|---|
| char * | sourceURL | URL of source | 
| GF_MPD_ByteRange * | byte_range | byte range if any | 
| Bool | is_resolved | GPAC internal - indicates the URL has already been solved | 
| struct GF_MPD_ISOBMFInfo | 
| struct GF_MPD_SegmentBase | 
MPD segment base
| struct GF_MPD_MultipleSegmentBase | 
Multiple segment base
| struct GF_MPD_SegmentURL | 
segment URL
 Collaboration diagram for GF_MPD_SegmentURL:
 Collaboration diagram for GF_MPD_SegmentURL:| Data Fields | ||
|---|---|---|
| char * | media | media URL if any | 
| GF_MPD_ByteRange * | media_range | media range if any | 
| char * | index | index url if any | 
| GF_MPD_ByteRange * | index_range | index range if any | 
| u64 | duration | duration of segment | 
| char * | key_url | key URL of segment, HLS only | 
| bin128 | key_iv | key IV of segment, HLS only | 
| u32 | hls_seq_num | sequence number of segment, HLS only | 
| u64 | hls_utc_time | informative UTC start time of segment, HLS only | 
| u8 | hls_ll_chunk_type | 0: full segment, 1: LL-HLS part, 2: independent LL-HLS part | 
| u8 | can_merge | merge flag for byte-range subsegs 0: cannot merge, 1: can merge | 
| u8 | is_first_part | merge flag for byte-range subsegs 0: cannot merge, 1: can merge | 
| u64 | first_tfdt | |
| u64 | first_pck_seq | |
| u64 | frag_start_offset | |
| u64 | frag_tfdt | |
| u32 | split_first_dur | |
| u32 | split_last_dur | |
| struct GF_MPD_SegmentList | 
SegmentList
| Data Fields | ||
|---|---|---|
| GF_MPD_MULTIPLE_SEGMENT_BASE GF_List * | segment_URLs | inherits multiple segment base list of segments - can be NULL if no segment | 
| char * | xlink_href | xlink URL for external list | 
| Bool | xlink_actuate_on_load | xlink evaluation on load if set, otherwise on use | 
| u32 | consecutive_xlink_count | GPAC internal, number of consecutive xlink while solving | 
| char * | dasher_segment_name | GPAC internal, we store the segment template here | 
| char * | previous_xlink_href | GPAC internal, we store the previous xlink before resolution | 
| Bool | index_mode | GPAC internal for index mode | 
| Bool | use_split_dur | |
| u32 | sample_duration | |
| u32 | src_timescale | |
| u32 | pid_delay | |
| s32 | first_cts_offset | |
| struct GF_MPD_SegmentTemplate | 
SegmentTemplate
| Data Fields | ||
|---|---|---|
| GF_MPD_MULTIPLE_SEGMENT_BASE char * | media | inherits multiple segment base media segment template | 
| char * | index | index segment template | 
| char * | initialization | init segment template | 
| char * | bitstream_switching | bitstream switching segment template | 
| u32 | nb_parts | part count for sub-segment representations | 
| const char * | hls_init_name | internal, for HLS generation | 
| struct GF_MPD_CommonAttributes | 
common attributes
| struct GF_MPD_ProducerReferenceTime | 
producer reference time
 Collaboration diagram for GF_MPD_ProducerReferenceTime:
 Collaboration diagram for GF_MPD_ProducerReferenceTime:| Data Fields | ||
|---|---|---|
| u32 | ID | ID of producer | 
| Bool | inband | is timing inband (prft in segment) | 
| GF_MPD_ProducerRefType | type | clock type | 
| char * | scheme | scheme for application ref type | 
| char * | wallclock | wallclock time as UTC timestamp | 
| u64 | presentation_time | presentation time in timescale of the Representation | 
| GF_MPD_Descriptor * | utc_timing | UTC timing desc if any | 
| struct GF_MPD_SubRepresentation | 
SubRepresentation
| Data Fields | ||
|---|---|---|
| GF_MPD_COMMON_ATTRIBUTES_ELEMENTS u32 | level | inherits common attributes level of subrepresentation | 
| char * | dependecy_level | dependency level of subrepresentation | 
| u32 | bandwidth | bandwidth of subrepresentation, MANDATORY if level set | 
| char * | content_components | content comonents string | 
| struct GF_DASH_RepresentationPlayback | 
State for representation playback, GPAC internal
 Collaboration diagram for GF_DASH_RepresentationPlayback:
 Collaboration diagram for GF_DASH_RepresentationPlayback:| Data Fields | ||
|---|---|---|
| Bool | disabled | disabled | 
| char * | cached_init_segment_url | name of cahed init segment URL (usually local cache or gmem:// url) | 
| Bool | owned_gmem | if set indicates the associated gmem memory is owned by this representation | 
| u64 | init_start_range | start range of the init segment | 
| u64 | init_end_range | end range of the init segment | 
| u32 | probe_switch_count | number of switching probes | 
| GF_Blob | init_segment | init segment blob | 
| char * | key_url | associated key URL if any, for HLS | 
| bin128 | key_IV | associated key IV if any, for HLS | 
| Double | prev_max_available_speed | previous maximum speed that this representation can be played, or 0 if it has never been played | 
| Bool | waiting_codec_reset | after switch we may have some buffered segments of the previous representation; so codec stats at this moment is unreliable. we should wait after the codec reset | 
| Double | bola_v | BOLA Utility | 
| u32 | enhancement_rep_index_plus_one | index of the next enhancement representation plus 1, 0 is reserved in case of the highest representation | 
| Bool | broadcast_flag | set to true if the representation comes from a broadcast link (ATSC3, eMBMS) | 
| Bool | vvc_rpr_switch | if set indicates the associated representations use vvc rpr switching | 
| const char * | init_seg_name_start | start of segment name in full url | 
| void * | udta | opaque data | 
| u8 | xlink_digest[GF_SHA1_DIGEST_SIZE] | SHA1 digest for xlinks / m3u8 | 
| Bool | not_modified | set to TRUE if not modified in the update of an xlink | 
| u32 | use_ssr | representation uses SSR, value is estimated nb parts | 
| struct GF_DASH_SegmenterContext | 
segment context used by the dasher, GPAC internal
 Collaboration diagram for GF_DASH_SegmenterContext:
 Collaboration diagram for GF_DASH_SegmenterContext:| Data Fields | ||
|---|---|---|
| char * | period_id | ID of active period | 
| GF_Fraction64 | period_start | start of active period | 
| GF_Fraction64 | period_duration | duration of active period | 
| Bool | done | if GF_TRUE, representation is over | 
| u64 | last_pck_idx | niumber of last packet processed (to resume dashing) | 
| u32 | seg_number | number of last produced segment | 
| char * | src_url | source URL | 
| char * | init_seg | name of init segment | 
| char * | template_seg | segment template (half-resolved, no more s in it) | 
| char * | template_idx | index template (half-resolved, no more s in it) | 
| u32 | pid_id | ID of output PID | 
| u32 | source_pid | ID of source PID | 
| u32 | dep_pid_id | ID of source dependent PID | 
| Bool | owns_set | indicates if this representation drives the AS segmentation | 
| Bool | multi_pids | indicates if uses multi PID (eg, multiple sample descriptions in init segment) | 
| GF_Fraction | dash_dur | target segment duration for this stream | 
| u64 | next_seg_start | estimated next segment start time in MPD timescale | 
| u64 | first_cts | first CTS of stream in stream timescale | 
| u64 | first_dts | first DCTS of stream in stream timescale | 
| u32 | nb_repeat | number of past repetitions of the stream | 
| u64 | ts_offset | timestamp offset (in stream timescale) due to repetitions | 
| u32 | mpd_timescale | mpd timescale of the stream | 
| u64 | est_next_dts | estimated next DTS of the stream in media timescale | 
| Double | cumulated_subdur | cumulated sub duration of the stream (to handle partial file dashing) | 
| Double | cumulated_dur | cumulated duration of the stream (to handle loops) | 
| char * | mux_pids | space-separated list of PID IDs of streams muxed with this stream in a multiplex representation | 
| u32 | segs_purged | number of segments purged from the timeline and from disk | 
| Double | dur_purged | cumulated duration of segments purged | 
| u32 | moof_sn | next moof sequence number | 
| u32 | moof_sn_inc | next moof sequence number increment | 
| u32 | last_dyn_period_id | ID of last dynamic period in manifest | 
| Bool | subdur_forced | one subdur was forced on this rep due to looping | 
| struct GF_DASH_FragmentContext | 
| struct GF_DASH_SegmentContext | 
Segment context - GPAC internal, used to produce HLS manifests and segment lists/timeline
 Collaboration diagram for GF_DASH_SegmentContext:
 Collaboration diagram for GF_DASH_SegmentContext:| Data Fields | ||
|---|---|---|
| u64 | time | time in mpd timescale | 
| u64 | dur | duration in mpd timescale | 
| char * | filename | name as printed in segment lists / m3u8 | 
| char * | filepath | full path of file | 
| u32 | file_size | file size in bytes | 
| u64 | file_offset | file offset in bytes | 
| u32 | index_size | index size in bytes | 
| u64 | index_offset | index offset in bytes | 
| u32 | seg_num | segment number | 
| u32 | nb_frags | number of fragment infos | 
| GF_DASH_FragmentContext * | frags | number of fragment infos | 
| GF_DashHLSLowLatencyType | llhls_mode | HLS LL signaling - 0: disabled, 1: byte range, 2: files | 
| Bool | llhls_done | HLS LL segment done | 
| Bool | encrypted | HLS set to TRUE if encrypted | 
| char * | hls_key_uri | HLS key params (URI and co) | 
| bin128 | hls_iv | HLS IV | 
| u64 | stl_start | start time of segment timeline entry | 
| u32 | stl_rcount | repeat count of segment timeline | 
| char * | llhas_template | LLHAS template | 
| struct GF_MPD_Representation | 
Representation
 Collaboration diagram for GF_MPD_Representation:
 Collaboration diagram for GF_MPD_Representation:| Data Fields | ||
|---|---|---|
| GF_MPD_COMMON_ATTRIBUTES_ELEMENTS char * | id | inherits common attributes ID of representation, mandatory | 
| u32 | bandwidth | bandwidth in bits per secon, mandatory | 
| u32 | quality_ranking | quality ranking | 
| char * | dependency_id | dependency IDs of dependent representations | 
| char * | media_stream_structure_id | stream structure ID, not used by GPAC | 
| GF_List * | base_URLs | list of baseURLs if any | 
| GF_MPD_SegmentBase * | segment_base | segment base of representation, or NULL if list or template is used | 
| GF_MPD_SegmentList * | segment_list | segment list of representation, or NULL if base or template is used | 
| GF_MPD_SegmentTemplate * | segment_template | segment template of representation, or NULL if base or list is used | 
| GF_List * | sub_representations | number of subrepresentation | 
| GF_DASH_RepresentationPlayback | playback | all the below members are GPAC internal GPAC playback implementation | 
| u32 | m3u8_media_seq_min | internal, HLS: min sequence number of segments in playlist | 
| u32 | m3u8_media_seq_max | internal, HLS: max sequence number of segments in playlist | 
| u32 | m3u8_low_latency | internal, HLS: indicate this is a low latency rep | 
| u32 | m3u8_media_seq_indep_last | internal, HLS: sequence number of last indeendent segment or PART in playlist | 
| GF_DASH_SegmenterContext * | dasher_ctx | GPAC dasher context | 
| GF_List * | state_seg_list | list of segment states | 
| s32 | tsb_first_entry | |
| u32 | timescale | segment timescale (for HLS) | 
| u32 | streamtype | stream type (for HLS) | 
| u32 | timescale_mpd | segment manifest timescale (for HLS) | 
| GF_Fraction | dash_dur | dash duration | 
| const char * | hls_single_file_name | init segment name for HLS single file | 
| u32 | nb_chan | number of audio channels - HLS only | 
| char | str_chan[20] | CHANNELS attribute in string for special content - HLS only | 
| Double | fps | video FPS - HLS only | 
| const char * | groupID | groupID (for HLS) | 
| const char ** | group_ids_rend | groupIDs allowed in rendition (for HLS) | 
| u32 | nb_group_ids_rend | |
| char * | m3u8_name | user assigned m3u8 name for this representation | 
| char * | m3u8_var_name | generated m3u8 name if no user-assigned one | 
| FILE * | m3u8_var_file | temp file for m3u8 generation | 
| u8 | crypto_type | for m3u8: 0: not encrypted, 1: full segment, 2: CENC CBC, 2: CENC CTR | 
| u8 | def_kms_used | |
| u32 | nb_hls_master_tags | |
| const char ** | hls_master_tags | |
| u32 | nb_hls_variant_tags | |
| const char ** | hls_variant_tags | |
| Double | hls_ll_part_dur | target part (cmaf chunk) duration for HLS LL | 
| u64 | first_tfdt_plus_one | tfdt of first segment | 
| u32 | first_tfdt_timescale | |
| GF_Fraction | hls_max_seg_dur | |
| Bool | in_progress | |
| char * | res_url | |
| u32 | trackID | |
| Bool | sub_forced | |
| const char * | hls_forced | |
| const char * | init_base64 | |
| struct GF_MPD_AdaptationSet | 
AdaptationSet
 Collaboration diagram for GF_MPD_AdaptationSet:
 Collaboration diagram for GF_MPD_AdaptationSet:| Data Fields | ||
|---|---|---|
| GF_MPD_COMMON_ATTRIBUTES_ELEMENTS s32 | id | inherits common attributes ID of this set, -1 if not set | 
| s32 | group | group ID for this set, default value is -1: not set in MPD | 
| char * | lang | language | 
| char * | content_type | mime type | 
| GF_MPD_Fractional * | par | picture aspect ratio | 
| u32 | min_bandwidth | min bandwidth in bps | 
| u32 | max_bandwidth | max bandwidth in bps | 
| u32 | min_width | min width in pixels | 
| u32 | max_width | max width in pixels | 
| u32 | min_height | min height in pixels | 
| u32 | max_height | max height in pixels | 
| GF_MPD_Fractional | min_framerate | min framerate | 
| GF_MPD_Fractional | max_framerate | max framerate | 
| u32 | ssr_mode | set if sub-segment representation is used 0: not used 1: LL-HLS compatibiliity 2: regular SSR | 
| Bool | segment_alignment | set if segment boundaries are time-aligned across qualities | 
| Bool | bitstream_switching | set if a single init segment is needed (no reinit at quality switch) | 
| Bool | subsegment_alignment | set if subsegment boundaries are time-aligned across qualities | 
| u32 | subsegment_starts_with_sap | set if subsegment all start with given SAP type, 0 otherwise | 
| GF_List * | accessibility | accessibility descriptor list if any | 
| GF_List * | role | role descriptor list if any | 
| GF_List * | rating | rating descriptor list if any | 
| GF_List * | viewpoint | viewpoint descriptor list if any | 
| GF_List * | content_component | content component descriptor list if any | 
| GF_List * | inband_event | inband streams events | 
| GF_List * | base_URLs | base URL (alternate location) list if any | 
| GF_MPD_SegmentBase * | segment_base | segment base of representation, or NULL if list or template is used | 
| GF_MPD_SegmentList * | segment_list | segment list of representation, or NULL if base or template is used | 
| GF_MPD_SegmentTemplate * | segment_template | segment template of representation, or NULL if base or list is used | 
| GF_List * | representations | list of representations | 
| char * | xlink_href | xlink URL for the adaptation set | 
| Bool | xlink_actuate_on_load | xlink evaluation on load if set, otherwise on use | 
| void * | udta | user private, eg used by dasher | 
| u32 | nb_alt_mha_profiles | mpegh compatible profile hack | 
| u32 * | alt_mha_profiles | |
| Bool | alt_mha_profiles_only | |
| u32 | smooth_max_chunks | max number of valid chunks in smooth manifest | 
| Bool | intra_only | INTRA-ONLY trick mode | 
| Bool | use_hls_ll | adaptation set uses HLS LL | 
| Double | hls_ll_target_frag_dur | |
| struct GF_MPD_Inband_Event | 
| struct GF_MPD_Period | 
Period
 Collaboration diagram for GF_MPD_Period:
 Collaboration diagram for GF_MPD_Period:| Data Fields | ||
|---|---|---|
| MPD_EXTENSIBLE char * | ID | inherits from extensible ID of period | 
| u64 | start | start time in milliseconds, relative to the start of the MPD | 
| u64 | duration | duration in milliseconds | 
| Bool | bitstream_switching | set to GF_TRUE if adaptation sets in the period don't need reinit when switching quality | 
| GF_List * | base_URLs | base URL (alternate location) list if any | 
| GF_MPD_SegmentBase * | segment_base | segment base of representation, or NULL if list or template is used | 
| GF_MPD_SegmentList * | segment_list | segment list of representation, or NULL if base or template is used | 
| GF_MPD_SegmentTemplate * | segment_template | segment template of representation, or NULL if base or list is used | 
| GF_List * | adaptation_sets | list of adaptation sets | 
| GF_List * | subsets | list of subsets (not yet implemented) | 
| char * | xlink_href | xlink URL for the period | 
| Bool | xlink_actuate_on_load | xlink evaluation on load if set, otherwise on use | 
| char * | origin_base_url | original xlink URL before resolution - GPAC internal. Used to 
 | 
| char * | broken_xlink | broken/ignored xlink, used to identify ignored xlinks in MPD updates - GPAC internal | 
| GF_MPD_Type | type | type of the period - GPAC internal | 
| Bool | is_preroll | period is preroll - test only, GPAC internal | 
| struct GF_MPD_ProgramInfo | 
Program info
| Data Fields | ||
|---|---|---|
| MPD_EXTENSIBLE char * | lang | inherits from extensible languae | 
| char * | title | title | 
| char * | source | source | 
| char * | copyright | copyright | 
| char * | more_info_url | URL to get more info | 
| struct GF_MPD | 
MPD
| Data Fields | ||
|---|---|---|
| MPD_EXTENSIBLE char * | ID | inherits from extensible ID of the MPD | 
| char * | profiles | profile, mandatory | 
| GF_MPD_Type | type | offering type | 
| u64 | availabilityStartTime | UTC of availability start anchor, expressed in milliseconds, MANDATORY if type=dynamic | 
| u64 | availabilityEndTime | UTC of availability end anchor, expressed in milliseconds | 
| u64 | publishTime | UTC of last publishing of the manifest | 
| u64 | media_presentation_duration | presentation duration in milliseconds, MANDATORY if type=static | 
| u32 | minimum_update_period | refresh rate of MPD for dynamic offering, in milliseconds | 
| u32 | min_buffer_time | minimum buffer time in milliseconds, MANDATORY | 
| u32 | time_shift_buffer_depth | time shift depth in milliseconds | 
| u32 | suggested_presentation_delay | presentation delay in milliseconds | 
| u32 | max_segment_duration | maximum segment duration in milliseconds | 
| u32 | max_subsegment_duration | maximum subsegment duration in milliseconds | 
| GF_List * | program_infos | list of GF_MPD_ProgramInfo | 
| GF_List * | base_URLs | list of GF_MPD_BaseURL | 
| GF_List * | locations | list of strings | 
| GF_List * | metrics | list of Metrics | 
| GF_List * | periods | list of GF_MPD_Period | 
| const char * | xml_namespace | set during parsing, to set during authoring, won't be freed by GPAC | 
| GF_List * | utc_timings | UTC timing desc if any | 
| GF_List * | essential_properties | Essential properties | 
| GF_List * | supplemental_properties | Supplemental properties | 
| Bool | inject_service_desc | inject DASHIF-LL profile service desc | 
| Bool | index_mode | |
| u64 | gpac_init_ntp_ms | dasher init NTP clock in ms - GPAC internal | 
| u64 | gpac_next_ntp_ms | dasher next generation time NTP clock in ms - GPAC internal | 
| u64 | gpac_mpd_time | dasher current MPD time in milliseconds - GPAC internal | 
| Bool | write_context | indicates the GPAC state info should be written | 
| Bool | use_gpac_ext | |
| Bool | was_dynamic | indicates this is the last static serialization of a previously dynamic MPD | 
| Bool | create_m3u8_files | indicates the HLS variant files shall be created, otherwise temp files are used | 
| Bool | m3u8_time | indicates to insert clock reference in variant playlists | 
| u32 | force_llhls_mode | indicates LL-HLS forced generation. 0: regular write, 1: write as byterange, 2: write as independent files | 
| u32 | nb_hls_ext_master | HLS extensions to append in the master playlist | 
| const char ** | hls_ext_master | |
| Bool | llhls_preload | if true inject EXT-X-PRELOAD-HINT | 
| Bool | llhls_rendition_reports | if true inject EXT-X-RENDITION-REPORT | 
| Double | llhls_part_holdback | user-defined PART-HOLD-BACK, auto computed if <=0 | 
| GF_DashAbsoluteURLMode | hls_abs_url | |
| Bool | m3u8_use_repid | |
| Bool | hls_audio_primary | |
| u32 | segment_duration | requested segment duration for index mode | 
| char * | segment_template | |
| Bool | allow_empty_reps | |
| struct GF_DASHCueInfo | 
| #define MPD_EXTENSIBLE | 
macro for extensible MPD element Some elments are typically overloaded in XML, we keep the attributes / children nodes here. The attributes list is NULL if no extensions were found, otherwise it is a list of GF_XMLAttribute. The children list is NULL if no extensions were found, otherwise it is a list of GF_XMLNode
| #define GF_MPD_SEGMENT_BASE | 
macro for MPD segment base
| #define GF_MPD_MULTIPLE_SEGMENT_BASE | 
macro for multiple segment base WARNING: duration is expressed in GF_MPD_SEGMENT_BASE timescale unit startnumber=(u32)-1 if unused, 1 bydefault.
| #define GF_MPD_COMMON_ATTRIBUTES_ELEMENTS | 
Macro for common attributes and elements (representation, AdaptationSet, Preselection, ...)
not yet implemented; GF_List *inband_event_stream; \ GF_List *switching; \ GF_List *random_access; \ GF_List *group_labels; \ GF_List *labels; \ GF_List *content_popularity; \
MANDATORY: mime_type codecs
| typedef u32 GF_DashAbsoluteURLMode | 
| typedef u32 GF_DashHLSLowLatencyType | 
DASH template resolution mode
| enum GF_MPD_ScanType | 
| enum GF_MPD_Type | 
| enum GF_M3U8WriteMode | 
MPD URL resolutio mode
| enum MPDSeekMode | 
| GF_Err gf_media_mpd_format_segment_name | ( | GF_DashTemplateSegmentType | seg_type, | 
| Bool | is_bs_switching, | ||
| char * | segment_name, | ||
| const char * | rep_id, | ||
| const char * | base_url, | ||
| const char * | seg_rad_name, | ||
| const char * | seg_ext, | ||
| u64 | start_time, | ||
| u32 | bandwidth, | ||
| u32 | segment_number, | ||
| Bool | use_segment_timeline, | ||
| Bool | forced | ||
| ) | 
formats the segment name according to its template
| seg_type | the desired format mode | 
| is_bs_switching | set to GF_TRUE to indicate the target segment is a bitstream switching segment | 
| segment_name | target buffer where the segment name is formatted - size must be GF_MAX_PATH | 
| rep_id | ID of the target representation | 
| base_url | base URL, may be NULL | 
| seg_rad_name | base name of the output segmeents (eg, myfile_ZZZ), shall not be NULL, may be empty ("") | 
| seg_ext | segment extensions | 
| start_time | start time of the segment in MPD timescale | 
| bandwidth | bandwidth used for the representation | 
| segment_number | number of the target segment | 
| use_segment_timeline | indicates if segmentTimeline is used for segment addressing in the MPD | 
| forced | if true, do not append extension or missing $Number$ or $Time$ when resolving template | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| GF_Err gf_mpd_init_from_dom | ( | GF_XMLNode * | root, | 
| GF_MPD * | mpd, | ||
| const char * | base_url | ||
| ) | 
parses an MPD Element (and subtree) from DOM
| root | root of DOM parsing result | 
| mpd | MPD structure to fill | 
| base_url | base URL of the DOM document | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| GF_Err gf_mpd_complete_from_dom | ( | GF_XMLNode * | root, | 
| GF_MPD * | mpd, | ||
| const char * | base_url | ||
| ) | 
parses an MPD Period element (and subtree) from DOM
| root | root of DOM parsing result | 
| mpd | MPD structure to fill | 
| base_url | base URL of the DOM document | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| GF_MPD * gf_mpd_new | ( | ) | 
MPD constructor
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void gf_mpd_del | ( | GF_MPD * | mpd | ) | 
MPD destructor
| mpd | the target MPD | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| void gf_mpd_segment_url_free | ( | void * | ptr | ) | 
frees a GF_MPD_SegmentURL structure (type-casted to void *)
| ptr | the target GF_MPD_SegmentURL | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| void gf_mpd_segment_base_free | ( | void * | ptr | ) | 
frees a GF_MPD_SegmentBase structure (type-casted to void *)
| ptr | the target GF_MPD_SegmentBase | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| void gf_mpd_parse_segment_url | ( | GF_List * | container, | 
| GF_XMLNode * | root | ||
| ) | 
parses a new GF_MPD_SegmentURL from its DOM description
| container | the container list where to insert the segment URL | 
| root | the DOM description of the segment URL | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| u64 gf_mpd_parse_date | ( | const char *const | attr | ) | 
parses a xsDateTime
| attr | the date time value | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| void gf_mpd_url_free | ( | void * | _item | ) | 
frees a GF_MPD_URL structure (type-casted to void *)
| _item | the target GF_MPD_URL | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| GF_MPD_Period * gf_mpd_period_new | ( | ) | 
MPD Period constructor
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| void gf_mpd_period_free | ( | void * | _item | ) | 
MPD Period destructor
| _item | the MPD Period to free | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:writes an MPD to a file stream
| mpd | the target MPD to write | 
| out | the target file object | 
| compact | if set, removes all new line and indentation in the output | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:writes an MPD to a local file
| mpd | the target MPD to write | 
| file_name | the target file name | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| GF_Err gf_mpd_write_m3u8_master_playlist | ( | GF_MPD const *const | mpd, | 
| FILE * | out, | ||
| const char * | m3u8_name, | ||
| GF_MPD_Period * | period, | ||
| GF_M3U8WriteMode | mode | ||
| ) | 
writes an MPD to a m3u8 playlist
| mpd | the target MPD to write | 
| out | the target file object | 
| m3u8_name | the base m3u8 name to use (needed when generating variant playlist file names) | 
| period | the MPD period for that m3u8 | 
| mode | the write operation desired | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| GF_Err gf_mpd_parse_period | ( | GF_MPD * | mpd, | 
| GF_XMLNode * | root | ||
| ) | 
parses an MPD Period and appends it to the MPD period list
| mpd | the target MPD to write | 
| root | the DOM element describing the period | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| GF_MPD_Descriptor * gf_mpd_descriptor_new | ( | const char * | id, | 
| const char * | uri, | ||
| const char * | value | ||
| ) | 
creates a new MPD descriptor
| id | the descriptor ID, may be NULL | 
| uri | the descriptor schemeid URI, mandatory | 
| value | the descriptor value, may be NULL | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| GF_MPD_AdaptationSet * gf_mpd_adaptation_set_new | ( | ) | 
creates a new MPD AdaptationSet
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| GF_Err gf_m3u8_to_mpd | ( | const char * | m3u8_file, | 
| const char * | base_url, | ||
| const char * | mpd_file, | ||
| u32 | reload_count, | ||
| char * | mimeTypeForM3U8Segments, | ||
| Bool | do_import, | ||
| Bool | use_mpd_templates, | ||
| Bool | use_segment_timeline, | ||
| GF_FileDownload * | getter, | ||
| GF_MPD * | mpd, | ||
| Bool | parse_sub_playlist, | ||
| Bool | keep_files | ||
| ) | 
converts M3U8 to MPD - getter is optional (download will still be processed if NULL)
| m3u8_file | the path to the local m3u8 master playlist file | 
| base_url | the original URL of the file if any | 
| mpd_file | the destination MPD file, or NULL when filling an MPD structure | 
| reload_count | number of times the manifest was reloaded | 
| mimeTypeForM3U8Segments | default mime type for the segments in case not found in the m3u8 | 
| do_import | if GF_TRUE, will try to load the media segments to extract more info | 
| use_mpd_templates | if GF_TRUE, will use MPD SegmentTemplate instead of SegmentList (only if parse_sub_playlist is GF_TRUE) | 
| use_segment_timeline | if GF_TRUE, uses SegmentTimeline to describe the varying duration of segments | 
| getter | HTTP interface object | 
| mpd | MPD structure to fill, or NULL if converting to file | 
| parse_sub_playlist | if GF_TRUE, parses sub playlists, otherwise only the master playlist is parsed and xlink are added on each representation to the target m3u8 sub playlist | 
| keep_files | if GF_TRUE, will not delete any files downloaded in the conversion process | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| GF_Err gf_m3u8_solve_representation_xlink | ( | GF_MPD_Representation * | rep, | 
| const char * | base_url, | ||
| GF_FileDownload * | getter, | ||
| Bool * | is_static, | ||
| u64 * | duration, | ||
| u8 | signature[GF_SHA1_DIGEST_SIZE] | ||
| ) | 
solves an m3u8 xlink on a representation, and fills the SegmentList accordingly
| rep | the target representation | 
| base_url | base URL of master manifest (representation xlink is likely relative to this URL) | 
| getter | HTTP interface object | 
| is_static | set to GF_TRUE if the variant subplaylist is on demand | 
| duration | set to the duration of the parsed subplaylist | 
| signature | SHA1 digest of last solved version, updated if changed | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| GF_MPD_SegmentList * gf_mpd_solve_segment_list_xlink | ( | GF_MPD * | mpd, | 
| GF_XMLNode * | root | ||
| ) | 
creates a segment list from a remote segment list DOM root
| mpd | the target MPD to write | 
| root | the DOM element describing the segment list | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| GF_Err gf_mpd_init_smooth_from_dom | ( | GF_XMLNode * | root, | 
| GF_MPD * | mpd, | ||
| const char * | default_base_url | ||
| ) | 
inits an MPD from a smooth manifest root node
| root | the root node of a smooth manifest | 
| mpd | the MPD to fill | 
| default_base_url | the default URL of the smooth manifest | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| void gf_mpd_delete_segment_list | ( | GF_MPD_SegmentList * | segment_list | ) | 
deletes a segment list
| segment_list | the segment list to delete | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| void gf_mpd_del_list | ( | GF_List * | list, | 
| void(*)(void *) | __destructor, | ||
| Bool | reset_only | ||
| ) | 
deletes a list content and optionally destructs the list
| list | the target list | 
| __destructor | the destructor function to use to destroy list items | 
| reset_only | if GF_TRUE, does not destroy the target list | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| void gf_mpd_descriptor_free | ( | void * | item | ) | 
deletes a GF_MPD_Descriptor object
| item | the descriptor to delete | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:splits all adaptation sets of a source MPD, creating one adaptation set per quality of each orgingal adaptation sets
| mpd | the target MPD | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:converts a smooth manifest (local file) to an MPD
| smooth_file | local path to the smooth manifest | 
| mpd | MPD structure to fill | 
| default_base_url | the default URL of the smooth manifest | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| u32 gf_mpd_get_base_url_count | ( | GF_MPD * | mpd, | 
| GF_MPD_Period * | period, | ||
| GF_MPD_AdaptationSet * | set, | ||
| GF_MPD_Representation * | rep | ||
| ) | 
get the number of base URLs for the given representation. This cumuluates all base URLs at MPD, period, AdaptationSet and Representation levels
| mpd | the target MPD | 
| period | the target period | 
| set | the target adaptation set | 
| rep | the target representation | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| GF_Err gf_mpd_resolve_url | ( | GF_MPD * | mpd, | 
| GF_MPD_Representation * | rep, | ||
| GF_MPD_AdaptationSet * | set, | ||
| GF_MPD_Period * | period, | ||
| const char * | mpd_url, | ||
| u32 | base_url_index, | ||
| GF_MPD_URLResolveType | resolve_type, | ||
| u32 | item_index, | ||
| u32 | nb_segments_removed, | ||
| char ** | out_url, | ||
| u64 * | out_range_start, | ||
| u64 * | out_range_end, | ||
| u64 * | segment_duration, | ||
| Bool * | is_in_base_url, | ||
| char ** | out_key_url, | ||
| bin128 * | key_iv, | ||
| u32 * | out_start_number, | ||
| s32 | subseg_index | ||
| ) | 
resolves a URL based for a given segment, based on the MPD url, the type of resolution
| mpd | the target MPD | 
| rep | the target Representation | 
| set | the target AdaptationSet | 
| period | the target Period | 
| mpd_url | the original URL of the MPD | 
| base_url_index | 0-based index of the baseURL to use | 
| resolve_type | the type of URL resolution desired | 
| item_index | the index of the target segment (startNumber based) | 
| nb_segments_removed | number of segments removed when purging the MPD after updates (can be 0). The start number will be offset by this value | 
| out_url | set to the resolved URL, to be freed by caller | 
| out_range_start | set to the resolved start range, 0 if no range | 
| out_range_end | set to the resolved end range, 0 if no range | 
| segment_duration | set to the resolved segment duartion, 0 if unknown | 
| is_in_base_url | set to GF_TRUE if the resuloved URL is a sub-part of the baseURL (optional, may be NULL) | 
| out_key_url | set to the key URL for the segment for HLS (optional, may be NULL) | 
| key_iv | set to the key IV for the segment for HLS (optional, may be NULL) | 
| out_start_number | set to the start_number used (optional, may be NULL) | 
| subseg_index | index of subseg, -1 means no SSR is used | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:get duration of the presentation
| mpd | the target MPD | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| void gf_mpd_resolve_segment_duration | ( | GF_MPD_Representation * | rep, | 
| GF_MPD_AdaptationSet * | set, | ||
| GF_MPD_Period * | period, | ||
| u64 * | out_duration, | ||
| u32 * | out_timescale, | ||
| u64 * | out_pts_offset, | ||
| GF_MPD_SegmentTimeline ** | out_segment_timeline | ||
| ) | 
gets the duration of media segments
| rep | the target Representation | 
| set | the target AdaptationSet | 
| period | the target Period | 
| out_duration | set to the average media segment duration | 
| out_timescale | set to the MPD timescale used by this representation | 
| out_pts_offset | set to the presentation time offset if any (optional, may be NULL) | 
| out_segment_timeline | set to the segment timeline description if any (optional, may be NULL) | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| GF_Err gf_mpd_get_segment_start_time_with_timescale | ( | s32 | in_segment_index, | 
| GF_MPD_Period const *const | in_period, | ||
| GF_MPD_AdaptationSet const *const | in_set, | ||
| GF_MPD_Representation const *const | in_rep, | ||
| u64 * | out_segment_start_time, | ||
| u64 * | out_opt_segment_duration, | ||
| u32 * | out_opt_scale | ||
| ) | 
gets the start_time from the segment index of a period/set/rep
| in_segment_index | the index of the target segment (startNumber based) | 
| in_period | the target Period | 
| in_set | the target AdaptationSet | 
| in_rep | the target Representation | 
| out_segment_start_time | set to the MPD start time of the segment | 
| out_opt_segment_duration | set to the segment duration (optional, may be NULL) | 
| out_opt_scale | set to the MPD timescale for this segment (optional, may be NULL) | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| GF_Err gf_mpd_seek_in_period | ( | Double | seek_time, | 
| MPDSeekMode | seek_mode, | ||
| GF_MPD_Period const *const | in_period, | ||
| GF_MPD_AdaptationSet const *const | in_set, | ||
| GF_MPD_Representation const *const | in_rep, | ||
| u32 * | out_segment_index, | ||
| Double * | out_opt_seek_time, | ||
| Double * | out_seg_dur | ||
| ) | 
returns the segment index in the given period for the given time
| seek_time | the desired time in seconds | 
| seek_mode | the desired seek mode | 
| in_period | the target Period | 
| in_set | the target AdaptationSet | 
| in_rep | the target Representation | 
| out_segment_index | the corresponding segment index | 
| out_opt_seek_time | the corresponding seek time (start time of segment in seconds) (optional, may be NULL) | 
| out_seg_dur | the corresponding segment duration in seconds, may be null | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| void gf_mpd_base_url_free | ( | void * | _item | ) | 
deletes a GF_MPD_BaseURL structure (type-casted to void *)
| _item | the GF_MPD_BaseURL to free | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| GF_MPD_Representation * gf_mpd_representation_new | ( | ) | 
creates a new GF_MPD_Representation
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| void gf_mpd_representation_free | ( | void * | _item | ) | 
deletes a GF_MPD_Representation structure (type-casted to void *)
| _item | the GF_MPD_Representation to free | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| GF_MPD_SegmentTimeline * gf_mpd_segmentimeline_new | ( | ) | 
creates a new GF_MPD_SegmentTimeline
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| GF_Err gf_mpd_load_cues | ( | const char * | cues_file, | 
| u32 | stream_id, | ||
| u32 * | cues_timescale, | ||
| Bool * | use_edit_list, | ||
| s32 * | ts_offset, | ||
| GF_DASHCueInfo ** | out_cues, | ||
| u32 * | nb_cues | ||
| ) | 
loads a cue file and allocates cues as needed
| cues_file | the XML cue file to load | 
| stream_id | the ID of the stream for which we load cues (typically, TrackID or GF_PROP_PID_ID) | 
| cues_timescale | set to the timescale used in the cues document | 
| use_edit_list | set to GF_TRUE if the cts values of cues have edit list applied (i.e. are ISOBMFF presentation times) | 
| ts_offset | set to the timestamp offset to subtract from DTS/CTS values | 
| out_cues | set to a newly allocated list of cues, to free by the caller | 
| nb_cues | set to the number of cues parsed | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| GF_MPD_Descriptor * gf_mpd_get_descriptor | ( | GF_List * | desclist, | 
| char * | scheme_id | ||
| ) | 
gets first MPD descriptor from descriptor list for a given scheme_id
| desclist | list of MPD Descriptors | 
| scheme_id | scheme ID to look for | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| char * gf_mpd_resolve_subnumber | ( | char * | llhas_template, | 
| char * | segment_filename, | ||
| u32 | part_idx | ||
| ) | 
resolve the SubNumber template, utility function used by some output filters
| llhas_template | template for the segment, or NULL if none | 
| segment_filename | segment filename | 
| part_idx | index of part to use | 
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function: