我目前正在尝试弄清楚如何通过Android 4.0中的OpenMAX访问Camera。该文档对我来说还不够,因此我目前在为下一次调用检索正确的XADataSource的过程中感到困惑。

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

并且请饶恕我使用Java-“answers”。

最佳答案

这基本上是XADataSource的定义,取自http://www.khronos.org/registry/omxal/specs/OpenMAX_AL_1_1_Specification.pdf

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

字段包括:
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

抱歉,无法更好地设置其格式,但是如果您还没有这样做,我建议无论如何都要检查该文档。

10-06 01:59