xref: /aosp_15_r20/hardware/interfaces/media/omx/1.0/IOmxNode.hal (revision 4d7e907c777eeecc4c5bd7cf640a754fac206ff7)
1*4d7e907cSAndroid Build Coastguard Worker/*
2*4d7e907cSAndroid Build Coastguard Worker * Copyright (C) 2016 The Android Open Source Project
3*4d7e907cSAndroid Build Coastguard Worker *
4*4d7e907cSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License");
5*4d7e907cSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License.
6*4d7e907cSAndroid Build Coastguard Worker * You may obtain a copy of the License at
7*4d7e907cSAndroid Build Coastguard Worker *
8*4d7e907cSAndroid Build Coastguard Worker *      http://www.apache.org/licenses/LICENSE-2.0
9*4d7e907cSAndroid Build Coastguard Worker *
10*4d7e907cSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software
11*4d7e907cSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS,
12*4d7e907cSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*4d7e907cSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and
14*4d7e907cSAndroid Build Coastguard Worker * limitations under the License.
15*4d7e907cSAndroid Build Coastguard Worker */
16*4d7e907cSAndroid Build Coastguard Worker
17*4d7e907cSAndroid Build Coastguard Workerpackage [email protected];
18*4d7e907cSAndroid Build Coastguard Worker
19*4d7e907cSAndroid Build Coastguard Workerimport IOmxBufferSource;
20*4d7e907cSAndroid Build Coastguard Worker
21*4d7e907cSAndroid Build Coastguard Workerimport [email protected]::types;
22*4d7e907cSAndroid Build Coastguard Worker
23*4d7e907cSAndroid Build Coastguard Worker/**
24*4d7e907cSAndroid Build Coastguard Worker * Ref: frameworks/av/include/media/IOMX.h: IOMXNode
25*4d7e907cSAndroid Build Coastguard Worker * Ref: https://www.khronos.org/registry/omxil/specs/OpenMAX_IL_1_1_2_Specification.pdf
26*4d7e907cSAndroid Build Coastguard Worker */
27*4d7e907cSAndroid Build Coastguard Worker
28*4d7e907cSAndroid Build Coastguard Worker/**
29*4d7e907cSAndroid Build Coastguard Worker * IOmxNode is an interface for communicating with an OMX component (called
30*4d7e907cSAndroid Build Coastguard Worker * "node" here) that has been previously obtained by calling
31*4d7e907cSAndroid Build Coastguard Worker * IOmx::allocateNode().
32*4d7e907cSAndroid Build Coastguard Worker */
33*4d7e907cSAndroid Build Coastguard Workerinterface IOmxNode {
34*4d7e907cSAndroid Build Coastguard Worker
35*4d7e907cSAndroid Build Coastguard Worker    /**
36*4d7e907cSAndroid Build Coastguard Worker     * Free the node.
37*4d7e907cSAndroid Build Coastguard Worker     *
38*4d7e907cSAndroid Build Coastguard Worker     * @return status Status of the call.
39*4d7e907cSAndroid Build Coastguard Worker     */
40*4d7e907cSAndroid Build Coastguard Worker    freeNode(
41*4d7e907cSAndroid Build Coastguard Worker        ) generates (
42*4d7e907cSAndroid Build Coastguard Worker            Status status
43*4d7e907cSAndroid Build Coastguard Worker        );
44*4d7e907cSAndroid Build Coastguard Worker
45*4d7e907cSAndroid Build Coastguard Worker    /**
46*4d7e907cSAndroid Build Coastguard Worker     * Invoke a command on the node.
47*4d7e907cSAndroid Build Coastguard Worker     *
48*4d7e907cSAndroid Build Coastguard Worker     * @param cmd Type of the command.
49*4d7e907cSAndroid Build Coastguard Worker     * @param param Parameter for the command.
50*4d7e907cSAndroid Build Coastguard Worker     * @return status Status of the call.
51*4d7e907cSAndroid Build Coastguard Worker     *
52*4d7e907cSAndroid Build Coastguard Worker     * @see OMX_SendCommand() in the OpenMax IL standard.
53*4d7e907cSAndroid Build Coastguard Worker     */
54*4d7e907cSAndroid Build Coastguard Worker    sendCommand(
55*4d7e907cSAndroid Build Coastguard Worker            uint32_t cmd,
56*4d7e907cSAndroid Build Coastguard Worker            int32_t param
57*4d7e907cSAndroid Build Coastguard Worker        ) generates (
58*4d7e907cSAndroid Build Coastguard Worker            Status status
59*4d7e907cSAndroid Build Coastguard Worker        );
60*4d7e907cSAndroid Build Coastguard Worker
61*4d7e907cSAndroid Build Coastguard Worker    /**
62*4d7e907cSAndroid Build Coastguard Worker     * Retrieve a parameter setting from the node.
63*4d7e907cSAndroid Build Coastguard Worker     *
64*4d7e907cSAndroid Build Coastguard Worker     * @param index Type of the parameter to retrieve.
65*4d7e907cSAndroid Build Coastguard Worker     * @param inParams Information about the retrieval.
66*4d7e907cSAndroid Build Coastguard Worker     * @return status Status of the call.
67*4d7e907cSAndroid Build Coastguard Worker     * @return outParams Current parameter setting.
68*4d7e907cSAndroid Build Coastguard Worker     *
69*4d7e907cSAndroid Build Coastguard Worker     * @see OMX_GetParameter() in the OpenMax IL standard.
70*4d7e907cSAndroid Build Coastguard Worker     */
71*4d7e907cSAndroid Build Coastguard Worker    getParameter(
72*4d7e907cSAndroid Build Coastguard Worker            uint32_t index,
73*4d7e907cSAndroid Build Coastguard Worker            Bytes inParams
74*4d7e907cSAndroid Build Coastguard Worker        ) generates (
75*4d7e907cSAndroid Build Coastguard Worker            Status status,
76*4d7e907cSAndroid Build Coastguard Worker            Bytes outParams
77*4d7e907cSAndroid Build Coastguard Worker        );
78*4d7e907cSAndroid Build Coastguard Worker
79*4d7e907cSAndroid Build Coastguard Worker    /**
80*4d7e907cSAndroid Build Coastguard Worker     * Change a parameter setting of the node.
81*4d7e907cSAndroid Build Coastguard Worker     *
82*4d7e907cSAndroid Build Coastguard Worker     * @param index Type of the parameter to change.
83*4d7e907cSAndroid Build Coastguard Worker     * @param params New parameter setting.
84*4d7e907cSAndroid Build Coastguard Worker     * @return status Status of the call.
85*4d7e907cSAndroid Build Coastguard Worker     *
86*4d7e907cSAndroid Build Coastguard Worker     * @see OMX_SetParameter() in the OpenMax IL standard.
87*4d7e907cSAndroid Build Coastguard Worker     */
88*4d7e907cSAndroid Build Coastguard Worker    setParameter(
89*4d7e907cSAndroid Build Coastguard Worker            uint32_t index,
90*4d7e907cSAndroid Build Coastguard Worker            Bytes params
91*4d7e907cSAndroid Build Coastguard Worker        ) generates (
92*4d7e907cSAndroid Build Coastguard Worker            Status status
93*4d7e907cSAndroid Build Coastguard Worker        );
94*4d7e907cSAndroid Build Coastguard Worker
95*4d7e907cSAndroid Build Coastguard Worker    /**
96*4d7e907cSAndroid Build Coastguard Worker     * Retrieve a configuration from the node.
97*4d7e907cSAndroid Build Coastguard Worker     *
98*4d7e907cSAndroid Build Coastguard Worker     * @param index Type of the configuration to retrieve.
99*4d7e907cSAndroid Build Coastguard Worker     * @param inConfig Information about the retrieval.
100*4d7e907cSAndroid Build Coastguard Worker     * @return status Status of the call.
101*4d7e907cSAndroid Build Coastguard Worker     * @return outConfig Current configuration.
102*4d7e907cSAndroid Build Coastguard Worker     *
103*4d7e907cSAndroid Build Coastguard Worker     * @see OMX_GetConfig() in the OpenMax IL standard.
104*4d7e907cSAndroid Build Coastguard Worker     */
105*4d7e907cSAndroid Build Coastguard Worker    getConfig(
106*4d7e907cSAndroid Build Coastguard Worker            uint32_t index,
107*4d7e907cSAndroid Build Coastguard Worker            Bytes inConfig
108*4d7e907cSAndroid Build Coastguard Worker        ) generates (
109*4d7e907cSAndroid Build Coastguard Worker            Status status,
110*4d7e907cSAndroid Build Coastguard Worker            Bytes outConfig
111*4d7e907cSAndroid Build Coastguard Worker        );
112*4d7e907cSAndroid Build Coastguard Worker
113*4d7e907cSAndroid Build Coastguard Worker    /**
114*4d7e907cSAndroid Build Coastguard Worker     * Change a configuration of the node.
115*4d7e907cSAndroid Build Coastguard Worker     *
116*4d7e907cSAndroid Build Coastguard Worker     * @param index Type of the configuration to change.
117*4d7e907cSAndroid Build Coastguard Worker     * @param config New configuration.
118*4d7e907cSAndroid Build Coastguard Worker     * @return status Status of the call.
119*4d7e907cSAndroid Build Coastguard Worker     *
120*4d7e907cSAndroid Build Coastguard Worker     * @see OMX_SetConfig() in the OpenMax IL standard.
121*4d7e907cSAndroid Build Coastguard Worker     */
122*4d7e907cSAndroid Build Coastguard Worker    setConfig(
123*4d7e907cSAndroid Build Coastguard Worker            uint32_t index,
124*4d7e907cSAndroid Build Coastguard Worker            Bytes config
125*4d7e907cSAndroid Build Coastguard Worker        ) generates (
126*4d7e907cSAndroid Build Coastguard Worker            Status status
127*4d7e907cSAndroid Build Coastguard Worker        );
128*4d7e907cSAndroid Build Coastguard Worker
129*4d7e907cSAndroid Build Coastguard Worker    /**
130*4d7e907cSAndroid Build Coastguard Worker     * Set the mode of a port on the node.
131*4d7e907cSAndroid Build Coastguard Worker     *
132*4d7e907cSAndroid Build Coastguard Worker     * @param portIndex Index of the port.
133*4d7e907cSAndroid Build Coastguard Worker     * @param mode Target mode on the specified port.
134*4d7e907cSAndroid Build Coastguard Worker     * @return status Status of the call.
135*4d7e907cSAndroid Build Coastguard Worker     */
136*4d7e907cSAndroid Build Coastguard Worker    setPortMode(
137*4d7e907cSAndroid Build Coastguard Worker            uint32_t portIndex,
138*4d7e907cSAndroid Build Coastguard Worker            PortMode mode
139*4d7e907cSAndroid Build Coastguard Worker        ) generates (
140*4d7e907cSAndroid Build Coastguard Worker            Status status
141*4d7e907cSAndroid Build Coastguard Worker        );
142*4d7e907cSAndroid Build Coastguard Worker
143*4d7e907cSAndroid Build Coastguard Worker    /**
144*4d7e907cSAndroid Build Coastguard Worker     * Prepare a port for adaptive playback. This is based on the extension
145*4d7e907cSAndroid Build Coastguard Worker     * "OMX.google.android.index.prepareForAdaptivePlayback".
146*4d7e907cSAndroid Build Coastguard Worker     *
147*4d7e907cSAndroid Build Coastguard Worker     * @param portIndex Index of the port.
148*4d7e907cSAndroid Build Coastguard Worker     * @param enable Whether the adaptive playback is enabled or not.
149*4d7e907cSAndroid Build Coastguard Worker     * @param maxFrameWidth Maximum frame width.
150*4d7e907cSAndroid Build Coastguard Worker     * @param maxFrameHeight Maximum frame height.
151*4d7e907cSAndroid Build Coastguard Worker     * @return status Status of the call.
152*4d7e907cSAndroid Build Coastguard Worker     */
153*4d7e907cSAndroid Build Coastguard Worker    prepareForAdaptivePlayback(
154*4d7e907cSAndroid Build Coastguard Worker            uint32_t portIndex,
155*4d7e907cSAndroid Build Coastguard Worker            bool enable,
156*4d7e907cSAndroid Build Coastguard Worker            uint32_t maxFrameWidth,
157*4d7e907cSAndroid Build Coastguard Worker            uint32_t maxFrameHeight
158*4d7e907cSAndroid Build Coastguard Worker        ) generates (
159*4d7e907cSAndroid Build Coastguard Worker            Status status
160*4d7e907cSAndroid Build Coastguard Worker        );
161*4d7e907cSAndroid Build Coastguard Worker
162*4d7e907cSAndroid Build Coastguard Worker    /**
163*4d7e907cSAndroid Build Coastguard Worker     * Configure a port for a tunneled playback mode. This is based on the
164*4d7e907cSAndroid Build Coastguard Worker     * extension "OMX.google.android.index.configureVideoTunnelMode".
165*4d7e907cSAndroid Build Coastguard Worker     *
166*4d7e907cSAndroid Build Coastguard Worker     * @param portIndex Index of the port.
167*4d7e907cSAndroid Build Coastguard Worker     * @param tunneled Whether the tunneled mode is used or not.
168*4d7e907cSAndroid Build Coastguard Worker     * @param audioHwSync HW SYNC ID of the audio HAL output stream to sync
169*4d7e907cSAndroid Build Coastguard Worker     * the video with.
170*4d7e907cSAndroid Build Coastguard Worker     * @return status Status of the call.
171*4d7e907cSAndroid Build Coastguard Worker     * @return sidebandHandle Codec-allocated sideband window handle.
172*4d7e907cSAndroid Build Coastguard Worker     */
173*4d7e907cSAndroid Build Coastguard Worker    configureVideoTunnelMode(
174*4d7e907cSAndroid Build Coastguard Worker            uint32_t portIndex,
175*4d7e907cSAndroid Build Coastguard Worker            bool tunneled,
176*4d7e907cSAndroid Build Coastguard Worker            uint32_t audioHwSync
177*4d7e907cSAndroid Build Coastguard Worker        ) generates (
178*4d7e907cSAndroid Build Coastguard Worker            Status status,
179*4d7e907cSAndroid Build Coastguard Worker            handle sidebandHandle
180*4d7e907cSAndroid Build Coastguard Worker        );
181*4d7e907cSAndroid Build Coastguard Worker
182*4d7e907cSAndroid Build Coastguard Worker    /**
183*4d7e907cSAndroid Build Coastguard Worker     * Retrieve the buffer usage on a port. This is based on the extension
184*4d7e907cSAndroid Build Coastguard Worker     * "OMX.google.android.index.getAndroidNativeBufferUsage".
185*4d7e907cSAndroid Build Coastguard Worker     *
186*4d7e907cSAndroid Build Coastguard Worker     * @param portIndex Index of the port.
187*4d7e907cSAndroid Build Coastguard Worker     * @return status Status of the call.
188*4d7e907cSAndroid Build Coastguard Worker     * @return usage Current graphic buffer usage.
189*4d7e907cSAndroid Build Coastguard Worker     */
190*4d7e907cSAndroid Build Coastguard Worker    getGraphicBufferUsage(
191*4d7e907cSAndroid Build Coastguard Worker            uint32_t portIndex
192*4d7e907cSAndroid Build Coastguard Worker        ) generates (
193*4d7e907cSAndroid Build Coastguard Worker            Status status,
194*4d7e907cSAndroid Build Coastguard Worker            uint32_t usage
195*4d7e907cSAndroid Build Coastguard Worker        );
196*4d7e907cSAndroid Build Coastguard Worker
197*4d7e907cSAndroid Build Coastguard Worker    /**
198*4d7e907cSAndroid Build Coastguard Worker     * Set up a listener to events related to the input surface.
199*4d7e907cSAndroid Build Coastguard Worker     *
200*4d7e907cSAndroid Build Coastguard Worker     * @param bufferSource Listener object that implements
201*4d7e907cSAndroid Build Coastguard Worker     * IOmxBufferSource.
202*4d7e907cSAndroid Build Coastguard Worker     * @return status Status of the call.
203*4d7e907cSAndroid Build Coastguard Worker     *
204*4d7e907cSAndroid Build Coastguard Worker     * @see IOmxBufferSource.
205*4d7e907cSAndroid Build Coastguard Worker     */
206*4d7e907cSAndroid Build Coastguard Worker    setInputSurface(
207*4d7e907cSAndroid Build Coastguard Worker            IOmxBufferSource bufferSource
208*4d7e907cSAndroid Build Coastguard Worker        ) generates (
209*4d7e907cSAndroid Build Coastguard Worker            Status status
210*4d7e907cSAndroid Build Coastguard Worker        );
211*4d7e907cSAndroid Build Coastguard Worker
212*4d7e907cSAndroid Build Coastguard Worker    /**
213*4d7e907cSAndroid Build Coastguard Worker     * Allocate an opaque buffer on a port as a native handle.
214*4d7e907cSAndroid Build Coastguard Worker     *
215*4d7e907cSAndroid Build Coastguard Worker     * @param portIndex Index of the port.
216*4d7e907cSAndroid Build Coastguard Worker     * @param size Desired size of the buffer.
217*4d7e907cSAndroid Build Coastguard Worker     * @return status Status of the call.
218*4d7e907cSAndroid Build Coastguard Worker     * @return buffer Id of the allocated buffer, which will be needed in
219*4d7e907cSAndroid Build Coastguard Worker     * other buffer-related functions.
220*4d7e907cSAndroid Build Coastguard Worker     * @return nativeHandle Native handle of the allocated buffer.
221*4d7e907cSAndroid Build Coastguard Worker     *
222*4d7e907cSAndroid Build Coastguard Worker     * @see OMX_AllocateBuffer() in the OpenMax IL standard.
223*4d7e907cSAndroid Build Coastguard Worker     */
224*4d7e907cSAndroid Build Coastguard Worker    allocateSecureBuffer(
225*4d7e907cSAndroid Build Coastguard Worker            uint32_t portIndex,
226*4d7e907cSAndroid Build Coastguard Worker            uint64_t size
227*4d7e907cSAndroid Build Coastguard Worker        ) generates (
228*4d7e907cSAndroid Build Coastguard Worker            Status status,
229*4d7e907cSAndroid Build Coastguard Worker            BufferId buffer,
230*4d7e907cSAndroid Build Coastguard Worker            handle nativeHandle
231*4d7e907cSAndroid Build Coastguard Worker        );
232*4d7e907cSAndroid Build Coastguard Worker
233*4d7e907cSAndroid Build Coastguard Worker    /**
234*4d7e907cSAndroid Build Coastguard Worker     * Assign a buffer to a port.
235*4d7e907cSAndroid Build Coastguard Worker     *
236*4d7e907cSAndroid Build Coastguard Worker     * @param portIndex Index of the port.
237*4d7e907cSAndroid Build Coastguard Worker     * @param omxBuffer Buffer to be assigned to the port.
238*4d7e907cSAndroid Build Coastguard Worker     * @return status Status of the call.
239*4d7e907cSAndroid Build Coastguard Worker     * @return buffer Id of the assigned buffer, which will be needed in
240*4d7e907cSAndroid Build Coastguard Worker     * other buffer-related functions.
241*4d7e907cSAndroid Build Coastguard Worker     *
242*4d7e907cSAndroid Build Coastguard Worker     * @see OMX_UseBuffer() in the OpenMax IL standard.
243*4d7e907cSAndroid Build Coastguard Worker     */
244*4d7e907cSAndroid Build Coastguard Worker    useBuffer(
245*4d7e907cSAndroid Build Coastguard Worker            uint32_t portIndex,
246*4d7e907cSAndroid Build Coastguard Worker            CodecBuffer omxBuffer
247*4d7e907cSAndroid Build Coastguard Worker        ) generates (
248*4d7e907cSAndroid Build Coastguard Worker            Status status,
249*4d7e907cSAndroid Build Coastguard Worker            BufferId buffer
250*4d7e907cSAndroid Build Coastguard Worker        );
251*4d7e907cSAndroid Build Coastguard Worker
252*4d7e907cSAndroid Build Coastguard Worker    /**
253*4d7e907cSAndroid Build Coastguard Worker     * Free a buffer previously assigned to a port by allocateSecureBuffer() or
254*4d7e907cSAndroid Build Coastguard Worker     * useBuffer().
255*4d7e907cSAndroid Build Coastguard Worker     *
256*4d7e907cSAndroid Build Coastguard Worker     * @param portIndex Index of the port.
257*4d7e907cSAndroid Build Coastguard Worker     * @param buffer Id of the buffer to be freed.
258*4d7e907cSAndroid Build Coastguard Worker     * @return status Status of the call.
259*4d7e907cSAndroid Build Coastguard Worker     *
260*4d7e907cSAndroid Build Coastguard Worker     * @see OMX_FreeBuffer() in the OpenMax IL standard.
261*4d7e907cSAndroid Build Coastguard Worker     */
262*4d7e907cSAndroid Build Coastguard Worker    freeBuffer(
263*4d7e907cSAndroid Build Coastguard Worker            uint32_t portIndex,
264*4d7e907cSAndroid Build Coastguard Worker            BufferId buffer
265*4d7e907cSAndroid Build Coastguard Worker        ) generates (
266*4d7e907cSAndroid Build Coastguard Worker            Status status
267*4d7e907cSAndroid Build Coastguard Worker        );
268*4d7e907cSAndroid Build Coastguard Worker
269*4d7e907cSAndroid Build Coastguard Worker    /**
270*4d7e907cSAndroid Build Coastguard Worker     * Pass \p fence to the node if it supports fences. Otherwise, it waits on
271*4d7e907cSAndroid Build Coastguard Worker     * \p fence before calling OMX_FillThisBuffer(). The node will take
272*4d7e907cSAndroid Build Coastguard Worker     * ownership of the fence even if this call fails.
273*4d7e907cSAndroid Build Coastguard Worker     *
274*4d7e907cSAndroid Build Coastguard Worker     * If the port is in metadata mode, the buffer will be updated to point to
275*4d7e907cSAndroid Build Coastguard Worker     * the new buffer passed in via \p omxBuffer before OMX_FillThisBuffer() is
276*4d7e907cSAndroid Build Coastguard Worker     * called. Otherwise, \p omxBuffer is not used.
277*4d7e907cSAndroid Build Coastguard Worker     *
278*4d7e907cSAndroid Build Coastguard Worker     * @param buffer Id of the buffer to fill.
279*4d7e907cSAndroid Build Coastguard Worker     * @param omxBuffer New buffer information (in metadata mode).
280*4d7e907cSAndroid Build Coastguard Worker     * @param fence Fence to wait for (if not null).
281*4d7e907cSAndroid Build Coastguard Worker     * @return status Status of the call.
282*4d7e907cSAndroid Build Coastguard Worker     *
283*4d7e907cSAndroid Build Coastguard Worker     * @see OMX_FillThisBuffer() in the OpenMax IL standard.
284*4d7e907cSAndroid Build Coastguard Worker     */
285*4d7e907cSAndroid Build Coastguard Worker    fillBuffer(
286*4d7e907cSAndroid Build Coastguard Worker            BufferId buffer,
287*4d7e907cSAndroid Build Coastguard Worker            CodecBuffer omxBuffer,
288*4d7e907cSAndroid Build Coastguard Worker            Fence fence
289*4d7e907cSAndroid Build Coastguard Worker        ) generates (
290*4d7e907cSAndroid Build Coastguard Worker            Status status
291*4d7e907cSAndroid Build Coastguard Worker        );
292*4d7e907cSAndroid Build Coastguard Worker
293*4d7e907cSAndroid Build Coastguard Worker    /**
294*4d7e907cSAndroid Build Coastguard Worker     * Pass \p fence to the node if it supports fences. Otherwise, wait on
295*4d7e907cSAndroid Build Coastguard Worker     * \p fence before calling OMX_EmptyThisBuffer(). The node will take
296*4d7e907cSAndroid Build Coastguard Worker     * ownership of the fence even if this call fails.
297*4d7e907cSAndroid Build Coastguard Worker     *
298*4d7e907cSAndroid Build Coastguard Worker     * If the port is in metadata mode, the buffer will be updated to point to
299*4d7e907cSAndroid Build Coastguard Worker     * the new buffer passed in via \p omxBuffer before OMX_EmptyThisBuffer() is
300*4d7e907cSAndroid Build Coastguard Worker     * called. Otherwise, \p omxBuffer is not used.
301*4d7e907cSAndroid Build Coastguard Worker     *
302*4d7e907cSAndroid Build Coastguard Worker     * @param buffer Id of the buffer to fill.
303*4d7e907cSAndroid Build Coastguard Worker     * @param omxBuffer New buffer information (in metadata mode).
304*4d7e907cSAndroid Build Coastguard Worker     * @param flags Flags to be passed to OMX_EmptyBuffer().
305*4d7e907cSAndroid Build Coastguard Worker     * @param timestampUs Timestamp OMX_EmptyBuffer().
306*4d7e907cSAndroid Build Coastguard Worker     * @param fence Fence to wait for (if not null).
307*4d7e907cSAndroid Build Coastguard Worker     * @return status Status of the call.
308*4d7e907cSAndroid Build Coastguard Worker     *
309*4d7e907cSAndroid Build Coastguard Worker     * @see OMX_EmptyThisBuffer() in the OpenMax IL standard.
310*4d7e907cSAndroid Build Coastguard Worker     */
311*4d7e907cSAndroid Build Coastguard Worker    emptyBuffer(
312*4d7e907cSAndroid Build Coastguard Worker            BufferId buffer,
313*4d7e907cSAndroid Build Coastguard Worker            CodecBuffer omxBuffer,
314*4d7e907cSAndroid Build Coastguard Worker            uint32_t flags,
315*4d7e907cSAndroid Build Coastguard Worker            uint64_t timestampUs,
316*4d7e907cSAndroid Build Coastguard Worker            Fence fence
317*4d7e907cSAndroid Build Coastguard Worker        ) generates (
318*4d7e907cSAndroid Build Coastguard Worker            Status status
319*4d7e907cSAndroid Build Coastguard Worker        );
320*4d7e907cSAndroid Build Coastguard Worker
321*4d7e907cSAndroid Build Coastguard Worker    /**
322*4d7e907cSAndroid Build Coastguard Worker     * Request the node to translate an extension string to an index.
323*4d7e907cSAndroid Build Coastguard Worker     *
324*4d7e907cSAndroid Build Coastguard Worker     * @param parameterName Requested extension string.
325*4d7e907cSAndroid Build Coastguard Worker     * @return status Status of the call.
326*4d7e907cSAndroid Build Coastguard Worker     * @return index Translated index.
327*4d7e907cSAndroid Build Coastguard Worker     *
328*4d7e907cSAndroid Build Coastguard Worker     * @see OMX_GetExtensionIndex() in the OpenMax IL standard.
329*4d7e907cSAndroid Build Coastguard Worker     */
330*4d7e907cSAndroid Build Coastguard Worker    getExtensionIndex(
331*4d7e907cSAndroid Build Coastguard Worker            string parameterName
332*4d7e907cSAndroid Build Coastguard Worker        ) generates (
333*4d7e907cSAndroid Build Coastguard Worker            Status status,
334*4d7e907cSAndroid Build Coastguard Worker            uint32_t index
335*4d7e907cSAndroid Build Coastguard Worker        );
336*4d7e907cSAndroid Build Coastguard Worker
337*4d7e907cSAndroid Build Coastguard Worker    /**
338*4d7e907cSAndroid Build Coastguard Worker     * Add an OMX message on the node's message queue. The instance of
339*4d7e907cSAndroid Build Coastguard Worker     * IOmxObserver that was obtained during the creation of the node will
340*4d7e907cSAndroid Build Coastguard Worker     * receive the message in batches by the callback
341*4d7e907cSAndroid Build Coastguard Worker     * IOmxObserver::onMessages().
342*4d7e907cSAndroid Build Coastguard Worker     *
343*4d7e907cSAndroid Build Coastguard Worker     * @param msg Message to send.
344*4d7e907cSAndroid Build Coastguard Worker     * @return status Status of the call.
345*4d7e907cSAndroid Build Coastguard Worker     *
346*4d7e907cSAndroid Build Coastguard Worker     * @see IOmxObserver::onMessages().
347*4d7e907cSAndroid Build Coastguard Worker     */
348*4d7e907cSAndroid Build Coastguard Worker    dispatchMessage(
349*4d7e907cSAndroid Build Coastguard Worker            Message msg
350*4d7e907cSAndroid Build Coastguard Worker        ) generates (
351*4d7e907cSAndroid Build Coastguard Worker            Status status
352*4d7e907cSAndroid Build Coastguard Worker        );
353*4d7e907cSAndroid Build Coastguard Worker};
354*4d7e907cSAndroid Build Coastguard Worker
355