OpenMAX AL (and OpenSL ES and OpenMAX IL) are effectively “clients” or users of the Content Pipe Interface. In the case of AL, the media object uses the content pipe interface methods to read and write data from the content pipe. Therefore, the application is the one that implements the CP functions. AL media objects just invoke these functions. The application will populate the content pipe, when it is used as a data source by AL. AL will write data to the content pipe when it is used as a data sink
The last line in the second paragraph of Section 2.3 explains the media objects “using” the Content Pipe: The media object utilizes the methods of the content pipe interface to read or write data.
Yes, that clarifies things. It was the only way that really made sense to me, but I wanted to be sure before I got too deep in implementing content pipe providers.