MP4(3)

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)