diff options
| author | Mister Oyster <oysterized@gmail.com> | 2017-01-02 12:44:35 +0100 |
|---|---|---|
| committer | Mister Oyster <oysterized@gmail.com> | 2017-01-02 12:44:35 +0100 |
| commit | a184d985bf43d3fe6eeba971bc6b32f79ea38b37 (patch) | |
| tree | 6f6e56e090777cc149bc1ab39e5987cc2b03e867 /kernel-headers/hevcd_if.h | |
initial releasecm-13.0
Diffstat (limited to 'kernel-headers/hevcd_if.h')
| -rw-r--r-- | kernel-headers/hevcd_if.h | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/kernel-headers/hevcd_if.h b/kernel-headers/hevcd_if.h new file mode 100644 index 0000000..871e45a --- /dev/null +++ b/kernel-headers/hevcd_if.h @@ -0,0 +1,98 @@ +#ifndef _HEVC_DECODE_IF_H_ +#define _HEVC_DECODE_IF_H_ + +/* #include "hevcd.h" */ +/* #include "hevc_common_if.h" */ +#include "vcodec_if_v2.h" +#include "vcodec_dec_demuxer_if_v2.h" +#define MAX_DECODE_BUFFERS 15 +#define _FILE_IO_ +/* extern int frame_num; */ +typedef struct { + + void (*hevc_pfnMalloc)(IN HANDLE /* hDrv */, + IN unsigned int /* u4Size */, + IN unsigned int /*u4AlignSize*/, + IN VCODEC_MEMORY_TYPE_T /* fgCacheable */, + OUT VCODEC_BUFFER_T * /* prBuf */ + ); /* buffer address must cache line align */ + + void (*pfnFree)(IN HANDLE /* hDrv */, + IN VCODEC_BUFFER_T * /* prBuf */ + ); /* same memory type with malloc */ + +} hevcd_callback_t; + +typedef struct { + unsigned char *buffer_origin; + unsigned char *luma; + unsigned char *cb, *cr; + int y_stride, uv_stride; + int width, height; + int ref_count; +} decode_picture_buffer_info_t; + + +typedef struct { + unsigned char *start_address; + int length; +} HEVC_ACCESS_UNIT_T; + +#define MAX_ACCESS_UNIT_NUMBER 32 + +typedef struct { + HEVC_ACCESS_UNIT_T au_list[MAX_ACCESS_UNIT_NUMBER]; + int au_number; + +} HEVC_DECODE_INP_T; + +typedef struct { + unsigned char *y; + unsigned char *u; + unsigned char *v; + + int y_stride; + int uv_stride; + + int width; + int height; +} HEVC_DECODE_PICTURE_T; + +typedef struct { + int width; + int height; +} HEVC_PICTURE_INFO_T; + + +VCODEC_DEC_ERROR_T HEVCDecoderGetMemoryRequired( + VCODEC_DEC_INPUT_T * prInput, + VCODEC_MEMORY_SIZE_T *prMemeorySize, + VCODEC_DEC_OUTPUT_BUFFER_PARAM_T *prYUVBufferParameter, + VCODEC_MEMORY_TYPE_T * prBitStreamBufferMemType +); +VCODEC_DEC_ERROR_T HEVCDecoderGetMemoryRequiredExtend( + VCODEC_DEC_INPUT_T * prInput, + VCODEC_MEMORY_SIZE_T *prMemeorySize, + VCODEC_DEC_OUTPUT_BUFFER_PARAM_T *prYUVBufferParameter, + OUT VCODEC_DEC_INPUT_BUFFER_PARAM_T * prBitStreamParam, + INOUT void *prExtra +); +VCODEC_DEC_ERROR_T HEVCDecoderInitAdapt(IN HANDLE hCodec); +VCODEC_DEC_ERROR_T HEVCDecoderDeInitAdapt(IN HANDLE hCodec); +VCODEC_DEC_ERROR_T HEVCDecoderOpenAdapt( + IN HANDLE hDrv , + IN VCODEC_DEC_CALLBACK_T * pfnCallback, + IN void *prOpenSetting, OUT HANDLE * hCodec +); +VCODEC_DEC_ERROR_T HEVCDecoderStartAdapt(IN HANDLE hCodec, IN VCODEC_DEC_INPUT_T * prBufferHeader); +VCODEC_DEC_ERROR_T HEVCDecoderCloseAdapt(IN HANDLE hCodec); +VCODEC_DEC_ERROR_T HEVCDecoderGetNextDisplay(IN HANDLE hCodec, OUT VCODEC_DEC_PRIVATE_OUTPUT_T * prPrivateOutput); +VCODEC_DEC_ERROR_T HEVCDecoderGetParameterAdapt(IN HANDLE hCodec, IN VCODEC_DEC_PARAM_TYPE_T eCmd, INOUT void *pParam); +VCODEC_DEC_ERROR_T HEVCDecoderSetParameterAdapt(IN HANDLE hCodec, IN VCODEC_DEC_PARAM_TYPE_T eCmd, INOUT void *pParam); + +extern VCODEC_DEC_API_T *GetHEVCDecoderAPI(void); + +VCODEC_DEC_API_T *GetHEVCDecoderAPI(void); + + +#endif |
