ISOBMFF file hinting.
More...
|
GF_RTPHinter * | gf_hinter_track_new (GF_ISOFile *isom_file, u32 trackNumber, u32 Path_MTU, u32 max_ptime, u32 default_rtp_rate, u32 hint_flags, u8 PayloadID, Bool copy_media, u32 InterleaveGroupID, u8 InterleaveGroupPriority, GF_Err *e) |
|
void | gf_hinter_track_del (GF_RTPHinter *tkHinter) |
|
GF_Err | gf_hinter_track_process (GF_RTPHinter *tkHinter) |
|
u32 | gf_hinter_track_get_bandwidth (GF_RTPHinter *tkHinter) |
|
GF_Err | gf_hinter_track_force_no_offsets (GF_RTPHinter *tkHinter) |
|
u32 | gf_hinter_track_get_flags (GF_RTPHinter *tkHinter) |
|
void | gf_hinter_track_get_payload_name (GF_RTPHinter *tkHinter, char *payloadName) |
|
GF_Err | gf_hinter_track_finalize (GF_RTPHinter *tkHinter, Bool AddSystemInfo) |
|
GF_Err | gf_hinter_finalize (GF_ISOFile *isom_file, GF_SDP_IODProfile IOD_Profile, u32 bandwidth) |
|
Bool | gf_hinter_can_embbed_data (u8 *data, u32 data_size, u32 streamType) |
|
This section documents functions for ISOBMFF file hinting.
◆ GF_SDP_IODProfile
SDP IOD Profile
Enumerator |
---|
GF_SDP_IOD_NONE | no IOD included
|
GF_SDP_IOD_REGULAR | base64 encoding of the regular MPEG-4 IOD
|
GF_SDP_IOD_ISMA | base64 encoding of IOD containing BIFS and OD tracks (one AU only) - this is used for ISMA 1.0 profiles note that the "hinted" file will loose all systems info
|
GF_SDP_IOD_ISMA_STRICT | same as ISMA but removes all clock references from IOD
|
◆ gf_hinter_track_new()
GF_RTPHinter* gf_hinter_track_new |
( |
GF_ISOFile * |
isom_file, |
|
|
u32 |
trackNumber, |
|
|
u32 |
Path_MTU, |
|
|
u32 |
max_ptime, |
|
|
u32 |
default_rtp_rate, |
|
|
u32 |
hint_flags, |
|
|
u8 |
PayloadID, |
|
|
Bool |
copy_media, |
|
|
u32 |
InterleaveGroupID, |
|
|
u8 |
InterleaveGroupPriority, |
|
|
GF_Err * |
e |
|
) |
| |
Creates a new track hinter object
- Parameters
-
isom_file | the target ISOBMF file |
trackNumber | the track to hint |
Path_MTU | max RTP packet size (excluding IP/UDP/IP headers) |
max_ptime | max packet duration in RTP timescale, can be set to 0 for auto compute |
default_rtp_rate | RTP rate for the track, can be set to 0 for auto compute |
hint_flags | RTP flags as defined in <gpac/ietf.h> |
PayloadID | RTP payload ID, can be set to 0 for auto compute |
copy_media | if set, media is copied inside the hint samples, otherwise only referenced from the media track |
InterleaveGroupID | sets the group ID of this track for interleaving - same semantics as in gf_isom_set_track_interleaving_group |
InterleaveGroupPriority | sets the group priority of this track for interleaving - same semantics as in gf_isom_set_track_priority_in_group |
e | output error code if any |
- Returns
- the hinter object
◆ gf_hinter_track_del()
void gf_hinter_track_del |
( |
GF_RTPHinter * |
tkHinter | ) |
|
Delete the track hinter
- Parameters
-
tkHinter | track hinter object |
◆ gf_hinter_track_process()
GF_Err gf_hinter_track_process |
( |
GF_RTPHinter * |
tkHinter | ) |
|
hints all samples in the media track
- Parameters
-
tkHinter | track hinter object |
- Returns
- error if any
◆ gf_hinter_track_get_bandwidth()
u32 gf_hinter_track_get_bandwidth |
( |
GF_RTPHinter * |
tkHinter | ) |
|
Gets media bandwidth in kbps
- Parameters
-
tkHinter | track hinter object |
- Returns
- media bandwidth in kbps
◆ gf_hinter_track_force_no_offsets()
GF_Err gf_hinter_track_force_no_offsets |
( |
GF_RTPHinter * |
tkHinter | ) |
|
Force file to use no random offsets for sequence number and time, if supported by server
- Parameters
-
tkHinter | track hinter object |
- Returns
- error if any
◆ gf_hinter_track_get_flags()
u32 gf_hinter_track_get_flags |
( |
GF_RTPHinter * |
tkHinter | ) |
|
Gets track hinter flags
- Parameters
-
tkHinter | track hinter object |
- Returns
- hint flags for this object
◆ gf_hinter_track_get_payload_name()
void gf_hinter_track_get_payload_name |
( |
GF_RTPHinter * |
tkHinter, |
|
|
char * |
payloadName |
|
) |
| |
Gets rtp payload name
- Parameters
-
tkHinter | track hinter object |
payloadName | static buffer for retrieval, minimum 30 bytes |
◆ gf_hinter_track_finalize()
GF_Err gf_hinter_track_finalize |
( |
GF_RTPHinter * |
tkHinter, |
|
|
Bool |
AddSystemInfo |
|
) |
| |
Finalizes hinting process for the track (setup flags, write SDP for RTP, ...)
- Parameters
-
tkHinter | track hinter object |
AddSystemInfo | if true, systems info are duplicated in the SDP (decoder cfg, PL IDs ..) |
- Returns
- error if any
◆ gf_hinter_finalize()
Finalizes hinting process for the file (setup flags, write SDP for RTP, ...)
- Parameters
-
isom_file | target ISOBMF file |
IOD_Profile | the IOD profile to use for SDP |
bandwidth | total bandwidth in kbps of all hinted tracks, 0 means no bandwidth info at session level |
- Returns
- error if any
◆ gf_hinter_can_embbed_data()
Bool gf_hinter_can_embbed_data |
( |
u8 * |
data, |
|
|
u32 |
data_size, |
|
|
u32 |
streamType |
|
) |
| |
Check if the given data fits in an ESD url
- Parameters
-
data | data to be encoded |
data_size | size of data to be encoded |
streamType | systems stream type needed to signal data mime-type (OD, BIFS or any) |
- Returns
- GF_TRUE if the encoded data fits in an ESD url