NAME
MP4AddRtpVideoHint - Add an RTP video specific hint
SYNTAX
#include <mp4.h>
bool MP4AddRtpVideoHint(
MP4FileHandle hFile,
MP4TrackId trackId,
bool isBFrame = false,
u_int32_t timestampOffset = 0
);
ARGUMENTS
hFile Specifies the mp4 file to which the operation applies.
trackId
Specifies the hint track to which the operation applies.
isBFrame
Specifies if this hint will contain packets for a video B frame
timestampOffset
Specifies a positive offset to add to the RTP timestamp for this
hint. Caveat: the value is in the hint track timescale.
RETURN VALUES
Upon success, true (1). Upon an error, false (0).
DESCRIPTION
MP4AddRtpVideoHint is an extended version of MP4AddRtpHint specifically
to handle MPEG video frames.
The isBFrame parameter allows the packets in the RTP hint to be marked
as belonging to a video B frame. This can be useful to a streaming
server if packets must be dropped due to system load or network
congestion. No other video frames are dependent on the contents of B
frames, so they are least damaging type of frames to drop.
The timestampOffset parameter allows an offset to be added to the RTP
timestamp of the packets in the RTP hint. This is necessary for MPEG
video that contains B frames since the video frames are transmitted out
of order with respect to when they should be rendered. I.e I and P
frames are transmitted before any B frames that depend on them. The RTP
timestamp must represent the rendering time of the data in the packets
hence an offset must be added.
Note: The timestampOffset is equivalent to the sample rendering offset
of a video media track. See MP4GetSampleRenderingOffset().
SEE ALSO
MP4(3) MP4AddRtpHint(3) MP4AddRtpPacket(3) MP4WriteRtpHint (3)