[Live-devel] When we need reject the packet?
Ross Finlayson
finlayson at live555.com
Fri Dec 9 13:55:37 PST 2005
At 01:55 AM 12/9/2005, you wrote:
>Hi,
>The code follow as (in MultiFramedRTPSource.cpp):
>
> if (fPacketLossInFragmentedFrame) {
> // This packet is unusable; reject it:
> fReorderingBuffer->releaseUsedPacket(nextPacket);
> fNeedDelivery = True;
> break;
> }
>
>I ask my co-worker about this. They say we did not consider it.
>The RTP packet loss issue depends on decorder abilty.
>Now, we use the MPEG4-ES codec.
>Where could I find the white paper talk about the issue(MPEG4 or H264)?
The RTP payload format (i.e., RTP packetization rules) for the
"video/MP4V-ES" MIME type is described in RFC 3640. In particular,
MPEG "access units" (e.g., 'picture' or 'video object') that are too
large to fit in a single RTP packet are fragmented over multiple RTP packets.
Our receiving class ("MPEG4ESVideoRTPSource" and its parent class
"MultiFramedRTPSource") requires that *all* packets that make up an
"access unit" (referred to in the code as a "frame") be received in
order for the data to be delivered to the receiver (e.g., media
player). Therefore, if there is any packet loss within an "access
unit", then all other data for the "access unit" will be
discarded. The reason for this is that incomplete "access units" are
useless to a decoder.
Ross Finlayson
Live Networks, Inc. (LIVE555.COM)
<http://www.live555.com/>
More information about the live-devel
mailing list