/* * * Copyright 2010 Rockchip Electronics S.LSI Co. LTD * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /*************************************************************************************************** File: vpu_macro.h Description: Macro definition in VPU module Author: Jian Huan Date: 2010-11-23 21:45:57 **************************************************************************************************/ #ifndef _VPU_MACRO_ #define _VPU_MACRO_ #include "vpu_type.h" #define VPU_OK 0 #define VPU_ERR 1 #define VDPU_BASE 0x10104200 #define VPU_MAX_FRAME_WIDTH 1920 #define VPU_MAX_FRAME_HEIGHT 1088 #define VPU_FRAME_NULL NULL #define DEC_X170_REGISTERS 60 #define DEC_X170_LITTLE_ENDIAN 1 #define DEC_X170_BIG_ENDIAN 0 #define DEC_X170_BUS_BURST_LENGTH_UNDEFINED 0 #define DEC_X170_BUS_BURST_LENGTH_4 4 #define DEC_X170_BUS_BURST_LENGTH_8 8 #define DEC_X170_BUS_BURST_LENGTH_16 16 #define VPU_CODEC_DEC_H264 0 #define VPU_CODEC_DEC_MPEG4 1 #define VPU_CODEC_DEC_H263 2 #define VPU_CODEC_DEC_JPEG 3 #define VPU_CODEC_DEC_VC1 4 #define VPU_CODEC_DEC_MPEG2 5 #define VPU_CODEC_DEC_MPEG1 6 #define VPU_CODEC_DEC_VP6 7 #define VPU_CODEC_DEC_VP7 9 #define VPU_CODEC_DEC_VP8 10 #define VPU_CODEC_DEC_AVS 11 #define VPU_CODEC_DEC_SVC 12 #define VPU_CODEC_DEC_VC2 13 #define VPU_CODEC_DEC_MVC 14 #define VPU_CODEC_DEC_THEORA 15 #define VPU_CODEC_ENC_JPEG 16 #define VPU_CODEC_ENC_H264 17 #define VPU_CODEC_DEC_MJPEG 18 #define VPU_OUTPUT_FRAME_TYPE 0 #define VPU_OUTPUT_TOP_FIELD_FIRST_TYPE 1 #define VPU_OUTPUT_BOT_FIELD_FIRST_TYPE 2 /* * bit definition of ColorType in structure VPU_FRAME */ #define VPU_OUTPUT_FORMAT_TYPE_MASK (0x0000ffff) #define VPU_OUTPUT_FORMAT_ARGB8888 (0x00000000) #define VPU_OUTPUT_FORMAT_ABGR8888 (0x00000001) #define VPU_OUTPUT_FORMAT_RGB888 (0x00000002) #define VPU_OUTPUT_FORMAT_RGB565 (0x00000003) #define VPU_OUTPUT_FORMAT_RGB555 (0x00000004) #define VPU_OUTPUT_FORMAT_YUV420_SEMIPLANAR (0x00000005) #define VPU_OUTPUT_FORMAT_YUV420_PLANAR (0x00000006) #define VPU_OUTPUT_FORMAT_YUV422 (0x00000007) #define VPU_OUTPUT_FORMAT_YUV444 (0x00000008) #define VPU_OUTPUT_FORMAT_YCH420 (0x00000009) #define VPU_OUTPUT_FORMAT_BIT_MASK (0x000f0000) #define VPU_OUTPUT_FORMAT_BIT_8 (0x00000000) #define VPU_OUTPUT_FORMAT_BIT_10 (0x00010000) #define VPU_OUTPUT_FORMAT_BIT_12 (0x00020000) #define VPU_OUTPUT_FORMAT_BIT_14 (0x00030000) #define VPU_OUTPUT_FORMAT_BIT_16 (0x00040000) #define VPU_PP_INPUT_FORMAT_YUV420_SEMIPLANAR 0 #define VPU_PP_INPUT_FORMAT_YUV420_PLANAR 1 #define VPU_PP_INPUT_FORMAT_YUV420_INTERLACE 2 #define VPU_PP_INPUT_FORMAT_YUV422 3 #define VPU_PP_OUTPUT_FORMAT_ARGB8888 VPU_OUTPUT_FORMAT_ARGB8888 #define VPU_PP_OUTPUT_FORMAT_ABGR8888 VPU_OUTPUT_FORMAT_ABGR8888 #define VPU_PP_OUTPUT_FORMAT_RGB888 VPU_OUTPUT_FORMAT_RGB888 #define VPU_PP_OUTPUT_FORMAT_RGB565 VPU_OUTPUT_FORMAT_RGB565 #define VPU_PP_OUTPUT_FORMAT_RGB555 VPU_OUTPUT_FORMAT_RGB555 #define VPU_PP_OUTPUT_FORMAT_YUV420_SEMIPLANAR VPU_OUTPUT_FORMAT_YUV420_SEMIPLANAR #define VPU_PP_OUTPUT_FORMAT_YUV420_PLANAR VPU_OUTPUT_FORMAT_YUV420_PLANAR #define VPU_PP_OUTPUT_FORMAT_YUV422 VPU_OUTPUT_FORMAT_YUV422 #define VPU_PP_OUTPUT_FORMAT_YUV444 VPU_OUTPUT_FORMAT_YUV444 #define VPU_PP_OUTPUT_FORMAT_YCH420 VPU_OUTPUT_FORMAT_YCH420 #define VPU_PP_SCALE_DISABLE 0 #define VPU_PP_SCALE_ENABLE 1 #define VPU_PP_ROTATE_DISABLE 0 #define VPU_PP_ROTATE_ENABLE 1 #define VPU_PP_DITHER_DISABLE 0 #define VPU_PP_DITHER_ENABLE 1 #define VPU_PP_DEBLK_DISABLE 0 #define VPU_PP_DEBLK_ENABLE 1 #define VPU_PP_DEINTERLACE_DISABLE 0 #define VPU_PP_DEINTERLACE_ENABLE 1 #define VPU_BITSTREAM_START_CODE (0x524b5642) /* RKVB, rockchip video bitstream */ #define SWAP(_T_, A, B) { _T_ tmp = A; A = B; B = tmp; } #ifndef MIN #define MIN(X, Y) ((X)<(Y)?(X):(Y)) #endif #ifndef MAX #define MAX(X, Y) ((X)>(Y)?(X):(Y)) #endif #ifndef ABS #define ABS(X) (((X) < 0) ? (-(X)) : (X)) #endif #define SIGN(X) (((X)>0)?1:-1) #define BSWAP(a) \ ((((a) & 0xff) << 24) | (((a) & 0xff00) << 8) | \ (((a) >> 8) & 0xff00) | (((a) >> 24) & 0xff)) #define CLIP(X, AMIN, AMAX) (((X) < (AMIN)) ? (AMIN) : ((X) > (AMAX)) ? (AMAX) : (X)) #ifdef _VPU_TRACE_ENABLE #define LOG_TAG "VPU_TRACE" #include #ifdef AVS40 #undef ALOGV #define ALOGV LOGV #undef ALOGD #define ALOGD LOGD #undef ALOGI #define ALOGI LOGI #undef ALOGW #define ALOGW LOGW #undef ALOGE #define ALOGE LOGE #endif #define VPU_TRACE(fmt, args...) ALOGD(__FILE__ " : %d: " fmt, __LINE__, ## args) #define VPU_T(fmt, args...) #else #define VPU_TRACE(fmt, args...) #define VPU_T(fmt, args...) ALOGD(__FILE__ " : %d: " fmt, __LINE__, ## args) #endif #endif /* _VPU_MACRO_ */