Clarification on Content Pipe Implementation

I’m having trouble determining who should be filling and implementing the content pipe structure.

Should the client provide its own implementation of the content pipe functions and fill out the structure after CPA_GetContentPipe?

Or should the handle from CPA_GetContentPipe() really be opaque and all the implementation is provided by OpenMAX AL?

I’m using v1.0 of the content pipe specification.

Hi andrewcoopergarmin,

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.

Hope this clarifies things,


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.