In the specification section 18.104.22.168 (p. 55) it is said that each buffer is associated with only one buffer header ("The IL client shares buffer headers with each port with which it is communicating. Likewise, each pair of tunneling ports share buffer headers; otherwise, the same buffer transferred over multiple ports will have distinct buffer headers associated with it for each port."
In the OMX_UseBuffer function, a port is given a buffer and allocates a buffer header for it and returns the buffer header to the supplier port (by the way the example in section 22.214.171.124.2 has a typo, the last line has the index as j instead of i).
In section 126.96.36.199 (p. 25) it is specified that:
"C. When a non-supplier port receives an OMX_UseBuffer call from its tunneled port, the non-supplier port shall share the buffer with all ports on that component that reuse it.
D. When a port A shares a buffer with a port B on the same component where port B reuses the buffer of port A, then port B shall call OMX_UseBuffer and pass the buffer on its tunneled port."
Will that not create two buffer headers for the same buffer? Once in the non-suplier port and a second time on the non-suplier port of the port that re-uses the buffer.
It is also not clear to me how the shared ports share buffers. Do the ports share buffers using their buffer headers or directly the buffer themselves? If that is the case, I guess there should be another method similar to OMX_UseBuffer that hands over a populated buffer header to another component instead of a pointer to the buffer.
I am quite confused why the buffer headers need to be allocated by the non-suplier ports. I understand that they need to receive a UseBuffer type of information so that they can verify that enough buffers are allocated and therefore can switch to Idle state, but could that not be still achieved had the supplier port allocated the buffer header?
Is there a private mailing list where these things were discussed before the specification was released. Is it possible for non-member individual to read the archieves of that list if it exists?
IMHO there should be a post release discussions section in the public forums.
I wonder if anybody is reading this forum.