/* * gstxcamsrc.h - gst xcamsrc plugin * * Copyright (c) 2015 Intel Corporation * * 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. * * Author: John Ye * Author: Wind Yuan */ #ifndef GST_XCAM_SRC_H #define GST_XCAM_SRC_H #include "main_dev_manager.h" #include XCAM_BEGIN_DECLARE #define GST_TYPE_XCAM_SRC \ (gst_xcam_src_get_type ()) #define GST_XCAM_SRC(obj) \ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_XCAM_SRC,GstXCamSrc)) #define GST_XCAM_SRC_CAST(obj) ((GstXCamSrc *) obj) #define GST_XCAM_SRC_MEM_MODE(src) ((GST_XCAM_SRC_CAST(src))->mem_type) #define GST_XCAM_SRC_FRMAE_DURATION(src) ((GST_XCAM_SRC_CAST(src))->duration) #define GST_XCAM_SRC_BUF_COUNT(src) ((GST_XCAM_SRC_CAST(src))->buf_count) #define GST_XCAM_SRC_OUT_VIDEO_INFO(src) (&(GST_XCAM_SRC_CAST(src))->gst_video_info) typedef enum { ISP_IMAGE_PROCESSOR = 0, CL_IMAGE_PROCESSOR, } ImageProcessorType; typedef enum { NONE_WDR = 0, GAUSSIAN_WDR, HALEQ_WDR, } WDRModeType; typedef enum { NONE_WAVELET = 0, HAT_WAVELET_Y, HAT_WAVELET_UV, HARR_WAVELET_Y, HARR_WAVELET_UV, HARR_WAVELET_YUV, HARR_WAVELET_BAYES, } WaveletModeType; typedef enum { DEFOG_NONE = 0, DEFOG_RETINEX, DEFOG_DCP } DefogModeType; typedef enum { DENOISE_3D_NONE = 0, DENOISE_3D_YUV, DENOISE_3D_UV } Denoise3DModeType; typedef enum { SIMPLE_ANALYZER = 0, AIQ_TUNER_ANALYZER, DYNAMIC_ANALYZER, HYBRID_ANALYZER, } AnalyzerType; typedef struct _GstXCamSrc GstXCamSrc; typedef struct _GstXCamSrcClass GstXCamSrcClass; struct _GstXCamSrc { GstPushSrc pushsrc; GstBufferPool *pool; uint32_t buf_count; uint32_t sensor_id; uint32_t capture_mode; char *device; char *path_to_cpf; char *path_to_3alib; gboolean enable_3a; gboolean enable_usb; DefogModeType defog_mode; Denoise3DModeType denoise_3d_mode; uint8_t denoise_3d_ref_count; gboolean enable_wireframe; gboolean enable_image_warp; char *path_to_fake; gboolean time_offset_ready; int64_t time_offset; int64_t buf_mark; GstClockTime duration; enum v4l2_memory mem_type; enum v4l2_field field; uint32_t in_format; uint32_t out_format; GstVideoInfo gst_video_info; XCam::VideoBufferInfo xcam_video_info; ImageProcessorType image_processor_type; WDRModeType wdr_mode_type; AnalyzerType analyzer_type; int32_t cl_pipe_profile; WaveletModeType wavelet_mode; XCam::SmartPtr device_manager; }; struct _GstXCamSrcClass { GstPushSrcClass parent_class; }; GType gst_xcam_src_get_type (void); XCAM_END_DECLARE #endif // GST_XCAM_SRC_H