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) | 
|   | 
ISOBMFF file hinting. 
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