50 lines
1.2 KiB
C
Executable File
50 lines
1.2 KiB
C
Executable File
|
|
#ifndef X_METADATA_RETRIEVER
|
|
#define X_METADATA_RETRIEVER
|
|
|
|
#ifdef __cplusplus
|
|
extern 'C' {
|
|
#endif
|
|
|
|
#include "vdecoder.h" //* video decode library in "LIBRARY/CODEC/VIDEO/DECODER"
|
|
#include "CdxParser.h" //* parser library in "LIBRARY/DEMUX/PARSER/include/"
|
|
#include "CdxStream.h" //* parser library in "LIBRARY/DEMUX/STREAM/include/"
|
|
|
|
typedef struct VideoFrame
|
|
{
|
|
// Intentional public access modifier:
|
|
uint32_t mWidth;
|
|
uint32_t mHeight;
|
|
uint32_t mDisplayWidth;
|
|
uint32_t mDisplayHeight;
|
|
uint32_t mSize; // Number of bytes in mData
|
|
uint8_t* mData; // Actual binary data
|
|
int32_t mRotationAngle; // rotation angle, clockwise
|
|
}VideoFrame;
|
|
|
|
enum MetaDataType
|
|
{
|
|
METADATA_VIDEO_WIDTH = 0,
|
|
METADATA_VIDEO_HEIGHT = 1,
|
|
METADATA_DURATION = 2, // file duration (ms)
|
|
};
|
|
|
|
#define MediaScanDedug (0)
|
|
|
|
typedef void* AwRetriever;
|
|
|
|
AwRetriever* AwRetrieverCreate();
|
|
|
|
int AwRetrieverDestory(AwRetriever* p);
|
|
|
|
int AwRetrieverSetDataSource(AwRetriever* p, const char* pUrl);
|
|
VideoFrame* AwRetrieverGetFrameAtTime(AwRetriever* p, int64_t timeUs);
|
|
int AwRetrieverGetMetaData(AwRetriever* p, int type, void* pVal);
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|