The way I understand it and read the code the currentNALUnitEndsAccessUnit() method returning true marks the end of a frame not a a NAL unit. (remember NAL unit does not always equal frame).

Yes, "currentNALUnitEndsAccessUnit()" should return True iff (if and only if) the most recently-delivered NAL unit marks the end of a video frame (i.e., a complete screen).


question; if you have a NAL unit that can't fit in the buffer provided in doGetNextFrame() can you hold on to the part of the NAL unit that didn't fit and pass it in the next time doGetNextFrame() is called?

No. Each NAL unit must fit completely in the output buffer (at the server end), and the input buffer (at the receiving end). (Our software takes care of fragmenting a large NAL unit across several *network* (RTP) packets, and reassembling at the receiver end, so you don't need to concern yourself with this. However, each NAL unit must fit completely within an output (and input) buffer.

Very large NAL units are not a good idea, because they get sent in several consecutive RTP packets, and if any one of these packets gets lost, then the whole NAL unit will (effectlvely) be lost. Therefore, if possible, you should reduce the size of your NAL units - e.g., using slices.

--

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
_______________________________________________
live-devel mailing list
[email protected]
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to