diff options
Diffstat (limited to 'include/VendorVideoAPI.h')
-rw-r--r-- | include/VendorVideoAPI.h | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/include/VendorVideoAPI.h b/include/VendorVideoAPI.h new file mode 100644 index 0000000..02135cf --- /dev/null +++ b/include/VendorVideoAPI.h @@ -0,0 +1,129 @@ +/* + * + * Copyright 2017 Samsung 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 VendorVideoAPI.h + * @author TaeHwan Kim (t_h_kim@samsung.com) + * ByungGwan Kang (bk0917.kang@samsung.com) + * @version 1.0 + * @history + * 2017.06.02 : Create + */ + +#ifndef VENDOR_VIDEO_API_H_ +#define VENDOR_VIDEO_API_H_ + +#include <stdio.h> + +typedef enum _ExynosVideoInfoType { + VIDEO_INFO_TYPE_INVALID = 0, + VIDEO_INFO_TYPE_HDR_STATIC = 0x1 << 0, + VIDEO_INFO_TYPE_COLOR_ASPECTS = 0x1 << 1, + VIDEO_INFO_TYPE_INTERLACED = 0x1 << 2, + VIDEO_INFO_TYPE_YSUM_DATA = 0x1 << 3, + VIDEO_INFO_TYPE_HDR_DYNAMIC = 0x1 << 4, +} ExynosVideoInfoType; + +typedef struct _ExynosVideoYSUMData { + unsigned int high; + unsigned int low; +} ExynosVideoYSUMData; + +typedef struct _ExynosColorAspects { + int mRange; + int mPrimaries; + int mTransfer; + int mMatrixCoeffs; +} ExynosColorAspects; + +typedef struct _ExynosPrimaries { + unsigned int x; + unsigned int y; +} ExynosPrimaries; + +typedef struct _ExynosType1 { + ExynosPrimaries mR; + ExynosPrimaries mG; + ExynosPrimaries mB; + ExynosPrimaries mW; + unsigned int mMaxDisplayLuminance; + unsigned int mMinDisplayLuminance; + unsigned int mMaxContentLightLevel; + unsigned int mMaxFrameAverageLightLevel; +} ExynosType1; + +typedef struct _ExynosHdrStaticInfo { + int mID; + union { + ExynosType1 sType1; + }; +} ExynosHdrStaticInfo; + +typedef struct _ExynosHdrDynamicInfo { + unsigned int valid; + + struct { + unsigned char country_code; + unsigned short provider_code; + unsigned short provider_oriented_code; + + unsigned char application_identifier; + unsigned short application_version; + + unsigned int display_maximum_luminance; + + unsigned int maxscl[3]; + + unsigned char num_maxrgb_percentiles; + unsigned char maxrgb_percentages[15]; + unsigned int maxrgb_percentiles[15]; + + struct { + unsigned short tone_mapping_flag; + unsigned short knee_point_x; + unsigned short knee_point_y; + unsigned short num_bezier_curve_anchors; + unsigned short bezier_curve_anchors[15]; + } tone_mapping; + } data; + + unsigned int reserved[42]; +} ExynosHdrDynamicInfo; + +typedef struct _ExynosVideoDecData { + int nInterlacedType; +} ExynosVideoDecData; + +typedef struct _ExynosVideoEncData { + ExynosVideoYSUMData sYsumData; +} ExynosVideoEncData; + +typedef struct _ExynosVideoMeta { + ExynosVideoInfoType eType; + + ExynosHdrStaticInfo sHdrStaticInfo; + ExynosColorAspects sColorAspects; + + union { + ExynosVideoDecData dec; + ExynosVideoEncData enc; + } data; + + ExynosHdrDynamicInfo sHdrDynamicInfo; +} ExynosVideoMeta; + +#endif /* VENDOR_VIDEO_API_H_ */ |