![]() |
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: