aboutsummaryrefslogtreecommitdiff
path: root/include/linux/vcodec/hevcd_if.h
diff options
context:
space:
mode:
authorMeizu OpenSource <patchwork@meizu.com>2016-08-15 10:19:42 +0800
committerMeizu OpenSource <patchwork@meizu.com>2016-08-15 10:19:42 +0800
commitd2e1446d81725c351dc73a03b397ce043fb18452 (patch)
tree4dbc616b7f92aea39cd697a9084205ddb805e344 /include/linux/vcodec/hevcd_if.h
first commit
Diffstat (limited to 'include/linux/vcodec/hevcd_if.h')
-rw-r--r--include/linux/vcodec/hevcd_if.h93
1 files changed, 93 insertions, 0 deletions
diff --git a/include/linux/vcodec/hevcd_if.h b/include/linux/vcodec/hevcd_if.h
new file mode 100644
index 000000000..fe61ad528
--- /dev/null
+++ b/include/linux/vcodec/hevcd_if.h
@@ -0,0 +1,93 @@
+#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, OUT 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