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