![]()  | 
  
    libgpac
    
   Documentation of the core library of GPAC 
   | 
  
 Collaboration diagram for ISOBMFF RTP Hinting:Enumerations | |
| enum | GF_ISOHintFormat { GF_ISOM_HINT_RTP = GF_4CC('r', 't', 'p', ' ') } | 
Functions | |
| GF_Err | gf_isom_setup_hint_track (GF_ISOFile *isom_file, u32 trackNumber, GF_ISOHintFormat HintType) | 
| GF_Err | gf_isom_new_hint_description (GF_ISOFile *isom_file, u32 trackNumber, s32 HintTrackVersion, s32 LastCompatibleVersion, u8 Rely, u32 *HintDescriptionIndex) | 
| GF_Err | gf_isom_begin_hint_sample (GF_ISOFile *isom_file, u32 trackNumber, u32 HintDescriptionIndex, u32 TransmissionTime) | 
| GF_Err | gf_isom_end_hint_sample (GF_ISOFile *isom_file, u32 trackNumber, u8 IsRandomAccessPoint) | 
| GF_Err | gf_isom_hint_blank_data (GF_ISOFile *isom_file, u32 trackNumber, u8 AtBegin) | 
| GF_Err | gf_isom_hint_direct_data (GF_ISOFile *isom_file, u32 trackNumber, u8 *data, u32 dataLength, u8 AtBegin) | 
| GF_Err | gf_isom_hint_sample_data (GF_ISOFile *isom_file, u32 trackNumber, GF_ISOTrackID SourceTrackID, u32 SampleNumber, u16 DataLength, u32 offsetInSample, u8 *extra_data, u8 AtBegin) | 
| GF_Err | gf_isom_hint_sample_description_data (GF_ISOFile *isom_file, u32 trackNumber, GF_ISOTrackID SourceTrackID, u32 sampleDescriptionIndex, u16 DataLength, u32 offsetInDescription, u8 AtBegin) | 
| GF_Err | gf_isom_rtp_packet_begin (GF_ISOFile *isom_file, u32 trackNumber, s32 relativeTime, u8 PackingBit, u8 eXtensionBit, u8 MarkerBit, u8 PayloadType, u8 disposable_packet, u8 IsRepeatedPacket, u16 SequenceNumber) | 
| GF_Err | gf_isom_rtp_packet_set_flags (GF_ISOFile *isom_file, u32 trackNumber, u8 PackingBit, u8 eXtensionBit, u8 MarkerBit, u8 disposable_packet, u8 IsRepeatedPacket) | 
| GF_Err | gf_isom_rtp_packet_set_offset (GF_ISOFile *isom_file, u32 trackNumber, s32 timeOffset) | 
| GF_Err | gf_isom_rtp_set_timescale (GF_ISOFile *isom_file, u32 trackNumber, u32 HintDescriptionIndex, u32 TimeScale) | 
| GF_Err | gf_isom_rtp_set_time_offset (GF_ISOFile *isom_file, u32 trackNumber, u32 HintDescriptionIndex, u32 TimeOffset) | 
| GF_Err | gf_isom_rtp_set_time_sequence_offset (GF_ISOFile *isom_file, u32 trackNumber, u32 HintDescriptionIndex, u32 SequenceNumberOffset) | 
| GF_Err | gf_isom_sdp_add_track_line (GF_ISOFile *isom_file, u32 trackNumber, const char *text) | 
| GF_Err | gf_isom_sdp_clean_track (GF_ISOFile *isom_file, u32 trackNumber) | 
| GF_Err | gf_isom_sdp_add_line (GF_ISOFile *isom_file, const char *text) | 
| GF_Err | gf_isom_sdp_clean (GF_ISOFile *isom_file) | 
| GF_Err | gf_isom_dump_hint_sample (GF_ISOFile *isom_file, u32 trackNumber, u32 SampleNum, FILE *trace) | 
| GF_Err | gf_isom_sdp_get (GF_ISOFile *isom_file, const char **sdp, u32 *length) | 
| GF_Err | gf_isom_sdp_track_get (GF_ISOFile *isom_file, u32 trackNumber, const char **sdp, u32 *length) | 
| u32 | gf_isom_get_payt_count (GF_ISOFile *isom_file, u32 trackNumber) | 
| const char * | gf_isom_get_payt_info (GF_ISOFile *isom_file, u32 trackNumber, u32 index, u32 *payID) | 
| enum GF_ISOHintFormat | 
| GF_Err gf_isom_setup_hint_track | ( | GF_ISOFile * | isom_file, | 
| u32 | trackNumber, | ||
| GF_ISOHintFormat | HintType | ||
| ) | 
sets up a hint track based on the hint format
| isom_file | the target ISO file | 
| trackNumber | the target hint track | 
| HintType | the desired hint type | 
 Here is the call graph for this function:
 Here is the caller graph for this function:| GF_Err gf_isom_new_hint_description | ( | GF_ISOFile * | isom_file, | 
| u32 | trackNumber, | ||
| s32 | HintTrackVersion, | ||
| s32 | LastCompatibleVersion, | ||
| u8 | Rely, | ||
| u32 * | HintDescriptionIndex | ||
| ) | 
creates a HintDescription for the HintTrack
| isom_file | the target ISO file | 
| trackNumber | the target hint track | 
| HintTrackVersion | version of hint track | 
| LastCompatibleVersion | last compatible version of hint track | 
| Rely | flag indicating whether a reliable transport protocol is desired/required for data transport 0: not desired (UDP/IP). NB: most RTP streaming servers only support UDP/IP for data 1: preferable (TCP/IP if possible or UDP/IP) 2: required (TCP/IP only) | 
| HintDescriptionIndex | is set to the newly created hint sample description index | 
 Here is the call graph for this function:
 Here is the caller graph for this function:| GF_Err gf_isom_begin_hint_sample | ( | GF_ISOFile * | isom_file, | 
| u32 | trackNumber, | ||
| u32 | HintDescriptionIndex, | ||
| u32 | TransmissionTime | ||
| ) | 
starts a new sample for the hint track. A sample is just a collection of packets the transmissionTime is indicated in the media timeScale of the hint track
| isom_file | the target ISO file | 
| trackNumber | the target hint track | 
| HintDescriptionIndex | the target hint sample description index | 
| TransmissionTime | the target transmission time in hint media timescale | 
 Here is the call graph for this function:
 Here is the caller graph for this function:ends an hint sample once all your packets for this sample are done
| isom_file | the target ISO file | 
| trackNumber | the target hint track | 
| IsRandomAccessPoint | set to GF_TRUE if you want to indicate that this is a random access point in the stream | 
 Here is the call graph for this function:
 Here is the caller graph for this function:PacketHandling functions Data can be added at the end or at the beginning of the current packet by setting AtBegin to 1 the data will be added at the beginning This allows constructing the packet payload before any meta-data
adds a blank chunk of data in the sample that is skipped while streaming
| isom_file | the target ISO file | 
| trackNumber | the target hint track | 
| AtBegin | indicates if the blank chunk should be at the end or at the beginning of the hint packet | 
 Here is the call graph for this function:
 Here is the caller graph for this function:| GF_Err gf_isom_hint_direct_data | ( | GF_ISOFile * | isom_file, | 
| u32 | trackNumber, | ||
| u8 * | data, | ||
| u32 | dataLength, | ||
| u8 | AtBegin | ||
| ) | 
adds a chunk of data in the packet that is directly copied while streaming
| isom_file | the target ISO file | 
| trackNumber | the target hint track | 
| data | buffer to add to the RTP packet | 
| dataLength | size of buffer to add to the RTP packet | 
| AtBegin | indicates if the blank chunk should be at the end or at the beginning of the hint packet | 
 Here is the call graph for this function:
 Here is the caller graph for this function:| GF_Err gf_isom_hint_sample_data | ( | GF_ISOFile * | isom_file, | 
| u32 | trackNumber, | ||
| GF_ISOTrackID | SourceTrackID, | ||
| u32 | SampleNumber, | ||
| u16 | DataLength, | ||
| u32 | offsetInSample, | ||
| u8 * | extra_data, | ||
| u8 | AtBegin | ||
| ) | 
adds a reference to some sample data in the packet
| isom_file | the target ISO file | 
| trackNumber | the target hint track | 
| SourceTrackID | the ID of the track where the referenced sample is | 
| SampleNumber | the sample number containing the data to be added | 
| DataLength | the length of bytes to copy in the packet | 
| offsetInSample | the offset in bytes in the sample at which to begin copying data | 
| extra_data | only used when the sample is actually the sample that will contain this packet (useful to store en encrypted version of a packet only available while streaming) In this case, set SourceTrackID to the HintTrack ID and SampleNumber to 0 In this case, the DataOffset MUST BE NULL and length will indicate the extra_data size | 
| AtBegin | indicates if the blank chunk should be at the end or at the beginning of the hint packet | 
 Here is the call graph for this function:
 Here is the caller graph for this function:| GF_Err gf_isom_hint_sample_description_data | ( | GF_ISOFile * | isom_file, | 
| u32 | trackNumber, | ||
| GF_ISOTrackID | SourceTrackID, | ||
| u32 | sampleDescriptionIndex, | ||
| u16 | DataLength, | ||
| u32 | offsetInDescription, | ||
| u8 | AtBegin | ||
| ) | 
adds a reference to some stream description data in the packet (headers, ...)
| isom_file | the target ISO file | 
| trackNumber | the target hint track | 
| SourceTrackID | the ID of the track where the referenced sample is | 
| sampleDescriptionIndex | the index of the stream description in the desired track | 
| DataLength | the length of bytes to copy in the packet | 
| offsetInDescription | the offset in bytes in the description at which to begin copying data. Since it is far from being obvious / interoperable what this offset is, we recommend not using this function and injecting the data instead using gf_isom_hint_direct_data. | 
| AtBegin | indicates if the blank chunk should be at the end or at the beginning of the hint packet | 
 Here is the call graph for this function:
 Here is the caller graph for this function:| GF_Err gf_isom_rtp_packet_begin | ( | GF_ISOFile * | isom_file, | 
| u32 | trackNumber, | ||
| s32 | relativeTime, | ||
| u8 | PackingBit, | ||
| u8 | eXtensionBit, | ||
| u8 | MarkerBit, | ||
| u8 | PayloadType, | ||
| u8 | disposable_packet, | ||
| u8 | IsRepeatedPacket, | ||
| u16 | SequenceNumber | ||
| ) | 
creates a new RTP packet in the HintSample. If a previous packet was created, it is stored in the hint sample and a new packet is created.
| isom_file | the target ISO file | 
| trackNumber | the target hint track | 
| relativeTime | RTP time offset of this packet in the HintSample if any - in hint track time scale. Used for data smoothing by servers. | 
| PackingBit | the 'P' bit of the RTP packet header | 
| eXtensionBit | the'X' bit of the RTP packet header | 
| MarkerBit | the 'M' bit of the RTP packet header | 
| PayloadType | the payload type, on 7 bits, format 0x0XXXXXXX | 
| disposable_packet | indicates if this packet can be skipped by a server | 
| IsRepeatedPacket | indicates if this is a duplicate packet of a previous one and can be skipped by a server | 
| SequenceNumber | the RTP base sequence number of the packet. Because of support for repeated packets, you have to set the sequence number yourself. | 
 Here is the call graph for this function:
 Here is the caller graph for this function:| GF_Err gf_isom_rtp_packet_set_flags | ( | GF_ISOFile * | isom_file, | 
| u32 | trackNumber, | ||
| u8 | PackingBit, | ||
| u8 | eXtensionBit, | ||
| u8 | MarkerBit, | ||
| u8 | disposable_packet, | ||
| u8 | IsRepeatedPacket | ||
| ) | 
sets the flags of the RTP packet
| isom_file | the target ISO file | 
| trackNumber | the target hint track | 
| PackingBit | the 'P' bit of the RTP packet header | 
| eXtensionBit | the'X' bit of the RTP packet header | 
| MarkerBit | the 'M' bit of the RTP packet header | 
| disposable_packet | indicates if this packet can be skipped by a server | 
| IsRepeatedPacket | indicates if this is a duplicate packet of a previous one and can be skipped by a server | 
 Here is the call graph for this function:
 Here is the caller graph for this function:sets the time offset of this packet. This enables packets to be placed in the hint track in decoding order, but have their presentation time-stamp in the transmitted packet in a different order. Typically used for MPEG video with B-frames
| isom_file | the target ISO file | 
| trackNumber | the target hint track | 
| timeOffset | time offset in RTP media timescale | 
 Here is the call graph for this function:
 Here is the caller graph for this function:| GF_Err gf_isom_rtp_set_timescale | ( | GF_ISOFile * | isom_file, | 
| u32 | trackNumber, | ||
| u32 | HintDescriptionIndex, | ||
| u32 | TimeScale | ||
| ) | 
sets the RTP TimeScale that the server use to send packets some RTP payloads may need a specific timeScale that is not the timeScale in the file format the default timeScale choosen by the API is the MediaTimeScale of the hint track
| isom_file | the target ISO file | 
| trackNumber | the target hint track | 
| HintDescriptionIndex | the target hint sample description index | 
| TimeScale | the RTP timescale to use | 
 Here is the call graph for this function:
 Here is the caller graph for this function:| GF_Err gf_isom_rtp_set_time_offset | ( | GF_ISOFile * | isom_file, | 
| u32 | trackNumber, | ||
| u32 | HintDescriptionIndex, | ||
| u32 | TimeOffset | ||
| ) | 
sets the RTP TimeOffset that the server will add to the packets if not set, the server adds a random offset
| isom_file | the target ISO file | 
| trackNumber | the target hint track | 
| HintDescriptionIndex | the target hint sample description index | 
| TimeOffset | the time offset in RTP timescale | 
 Here is the call graph for this function:
 Here is the caller graph for this function:| GF_Err gf_isom_rtp_set_time_sequence_offset | ( | GF_ISOFile * | isom_file, | 
| u32 | trackNumber, | ||
| u32 | HintDescriptionIndex, | ||
| u32 | SequenceNumberOffset | ||
| ) | 
sets the RTP SequenceNumber Offset that the server will add to the packets if not set, the server adds a random offset
| isom_file | the target ISO file | 
| trackNumber | the target hint track | 
| HintDescriptionIndex | the target hint sample description index | 
| SequenceNumberOffset | the sequence number offset | 
 Here is the call graph for this function:
 Here is the caller graph for this function:adds an SDP line to the SDP container at the track level (media-specific SDP info)
| isom_file | the target ISO file | 
| trackNumber | the target hint track | 
| text | the SDP text to add the target hint track | 
 Here is the call graph for this function:
 Here is the caller graph for this function:removes all SDP info at the track level
| isom_file | the target ISO file | 
| trackNumber | the target hint track | 
 Here is the call graph for this function:
 Here is the caller graph for this function:| GF_Err gf_isom_sdp_add_line | ( | GF_ISOFile * | isom_file, | 
| const char * | text | ||
| ) | 
adds an SDP line to the SDP container at the movie level (presentation SDP info)
| isom_file | the target ISO file | 
| text | the SDP text to add the target hint track | 
 Here is the call graph for this function:
 Here is the caller graph for this function:| GF_Err gf_isom_sdp_clean | ( | GF_ISOFile * | isom_file | ) | 
removes all SDP info at the movie level
| isom_file | the target ISO file | 
 Here is the call graph for this function:
 Here is the caller graph for this function:| GF_Err gf_isom_dump_hint_sample | ( | GF_ISOFile * | isom_file, | 
| u32 | trackNumber, | ||
| u32 | SampleNum, | ||
| FILE * | trace | ||
| ) | 
dumps RTP hint samples structure into XML trace file
| isom_file | the target ISO file | 
| trackNumber | the target track | 
| SampleNum | the target sample number | 
| trace | the file object to dump to | 
 Here is the call graph for this function:
 Here is the caller graph for this function:gets SDP info at the movie level
| isom_file | the target ISO file | 
| sdp | set to the sdp text, including a null-terminating character - do not modify | 
| length | set to the sdp length, not including the null-terminating character | 
 Here is the call graph for this function:
 Here is the caller graph for this function:| GF_Err gf_isom_sdp_track_get | ( | GF_ISOFile * | isom_file, | 
| u32 | trackNumber, | ||
| const char ** | sdp, | ||
| u32 * | length | ||
| ) | 
gets SDP info at the track level
| isom_file | the target ISO file | 
| trackNumber | the target track | 
| sdp | set to the sdp text, including a null-terminating character - do not modify | 
| length | set to the sdp length, not including the null-terminating character | 
 Here is the call graph for this function:
 Here is the caller graph for this function:gets number of payload type defines for an RTP hint track
| isom_file | the target ISO file | 
| trackNumber | the target track | 
 Here is the call graph for this function:
 Here is the caller graph for this function:| const char * gf_isom_get_payt_info | ( | GF_ISOFile * | isom_file, | 
| u32 | trackNumber, | ||
| u32 | index, | ||
| u32 * | payID | ||
| ) | 
gets payload type information for an RTP hint track
| isom_file | the target ISO file | 
| trackNumber | the target track | 
| index | the payload type 1_based index | 
| payID | set to the ID of the payload type | 
 Here is the call graph for this function:
 Here is the caller graph for this function: