Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Access camera via OpenMAX in Android

I currently try to figure out how to access the Camera via OpenMAX in Android 4.0. The documentation is not sufficient for me so I currently struggle with how I can retrieve the correct XADataSource for the following call.

(*_engine)->CreateMediaRecorder(_engine,
                                &_mediaRecorder, //pRecorder
                                nullptr, //pAudioSrc
                                XADataSource *, //pImageVideoSrc
                                XADataSink *, //pDataSnk
                                XAuint32, // numInterfaces
                                const XAInterfaceID *, //pInterfaceIds
                                const XAboolean *, //pInterfaceRequired
);

And please spare me the just use Java-"answers".

like image 774
abergmeier Avatar asked Mar 29 '12 18:03

abergmeier


1 Answers

This is basically a definition of XADataSource, taken from http://www.khronos.org/registry/omxal/specs/OpenMAX_AL_1_1_Specification.pdf

typedef struct XADataSource_ {     void * pLocator;     void * pFormat; } XADataSource; 

Fields include:

Field        Description pLocator Pointer to the specified data locator structure. This may point to any of the       following structures.      XADataLocator_Address     XADataLocator_IODevice     XADataLocator_URI     XADataLocator_MediaObject     XADataLocator_Null     XADataLocator_ContentPipe The first field of each of these structures includes the 32 bit locatorType field,   which identifies  the locator type (see XA_DATALOCATOR definitions) and hence the structure pointed to. Note: The available XA_DATALOCATOR definitions may be extended through an API   extension.  pFormat A pointer to the specified format structure. This may point to any of the following structures.      XADataFormat_PCM (Deprecated)     XADataFormat_PCM_EX     XADataFormat_MIME     XADataFormat_RawImage The first field of each of these structures includes the 32 bit formatType field, which identifies the  format type (XA_DATAFORMAT definitions) and hence the structure pointed to. pFormat is ignored  if pLocator is XADataLocator_IODevice 

Sorry couldn't format it better, but I suggest to check that document anyway if you haven't already done that.

like image 126
Ivan Avatar answered Sep 21 '22 11:09

Ivan