libgpac
Documentation of the core library of GPAC
|
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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. |
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 |
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 |
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 |
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 |
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 |
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 |
removes all SDP info at the track level
isom_file | the target ISO file |
trackNumber | the target hint track |
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 |
GF_Err gf_isom_sdp_clean | ( | GF_ISOFile * | isom_file | ) |
removes all SDP info at the movie level
isom_file | the target ISO file |
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 |
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 |
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 |
gets number of payload type defines for an RTP hint track
isom_file | the target ISO file |
trackNumber | the target track |
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 |