If my H/W encoder is single-slice, am I doomed? Seems to be working well on a reliable network for 1080i @ 5 Mb/s. Anything higher (10 Mb/s) is not as stable but I haven't had time investigating why.

For the reference frames, the codec generates a buffer containing 3 NAL units (SPS, PPS and the reference frame) but since SPS and PPS NAL units are so small, I don't bother sending them by themselves. The other buffers contain 1 NAL unit also.

Thank you!

Georges

Ross Finlayson wrote:
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.

_______________________________________________
live-devel mailing list
[email protected]
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to