NAME
MP4SetHintTrackRtpPayload - Set the RTP payload parameters of the hint
track
SYNTAX
#include <mp4.h>
bool MP4SetHintTrackRtpPayload(
MP4FileHandle hFile,
MP4TrackId hintTrackId,
const char* pPayloadName,
u_int8_t* pPayloadNumber,
u_int16_t maxPayloadSize = 0
bool include_rtp_map = true
bool include_mpeg4_esid = true
)
ARGUMENTS
hFile Specifies the mp4 file to which the operation applies.
hintTrackId
Specifies the hint track to which the operation applies.
pPayloadName
Specifies the RTP payload name.
pPayloadNumber
Specifies a pointer to the RTP payload number.
maxPayloadSize
Specifies the maximum RTP payload size in bytes.
include_rtp_map
Specifies if the a=rtpmap statement is included.
include_mpeg4_esid
Specifies if the a=mpeg4-esid statement is included.
RETURN VALUES
Upon success, true (1). Upon an error, false (0).
DESCRIPTION
MP4SetHintTrackRtpPayload sets the RTP payload parameters for the hint
track. The RTP payload is the set of rules by which media samples are
packed into RTP packets.
The payload name identifies which RTP payload is being used for the RTP
packets created from the hint track. This value is sent to the receiver
in the SDP description. For example, MP3 audio sent according to the
rules in IETF RFC 2250 uses the name "MPA" for the RTP payload.
The payload number is a shorter form of the payload name. This value is
associated with the payload name in the SDP description and then sent
in every RTP packet. Payload numbers 1 thru 95 are statically assigned
in IETF RFC 1890, numbers 96 thru 127 are dynamically assigned within a
session. If the RTP payload in use is one of the statically assigned
ones, you should pass this value to the library. If you need a dynamic
payload number assigned, pass the define value MP4_SET_DYNAMIC_PAYLOAD
for this parameter and the library will choose an valid available
number and return this value.
The maxPayloadSize specifies the maximum number of bytes that should be
placed in the RTP payload section of the RTP packets. It is desirable
that RTP packets not exceed the maximum transmission unit (MTU) of the
IP network they travel over since otherwise the packets must be
fragmented at the IP level which consumes router resources and can lead
to less robust behavior in the face of packet loss.
The default value for maxPayloadSize is 1460, which is the MTU for an
Ethernet or similar network minus the standard sizes of the IP, UDP,
and RTP headers (1500 - 20 - 8 - 12 = 1460).
If you anticipate streaming over IP networks with smaller MTU sizes, or
that extensions to the network headers might be used, a more
conservative value should be chosen. The minimum MTU for an IP network
is 576 bytes.
SEE ALSO
MP4(3) MP4GetHintTrackPayload(3)