The spec talks about logical units for compressed data but does not specify what they actually are. For AVC (H.264) I had assumed that this would be elementary stream NALs. However, I am now of the opinion that the logical units are different depending on the output port settings.
For example, if the output port generates whole frames then the spec makes sense if a logical unit is all the NALs that make up the frame (does not include previous I-frame data for a P-frame). However, if the output port generates slices (that directly correspond to the compressed data NALs), then a logical unit is the NAL slice.
Whilst on this subject, I have interpreted the spec to mean that unformatted data can be sent to a standard video decoder but the output port metadata (flags, timestamps & marks) isn’t much use to the IL client (except EOS flag). If the client parses the input data and ensures that no more than 1 logical unit is present in an input buffer, the output port metadata is useful.
I would very much appreciate future versions of the spec to detail what the data format is for each different port format as at the moment it is very much open to interpretation.
Any thoughts on this? BTW, should this sort of question be entered as a bug on the spec? I know we can’t change the spec much as we risk making currently compliant components/clients non-compliant, but for future components to be inter-changable we do need to tighten up on the details!