| /* |
| * 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 <[email protected]> |
| * Author: Wind Yuan <[email protected]> |
| */ |
| |
| #ifndef GST_XCAM_SRC_H |
| #define GST_XCAM_SRC_H |
| |
| #include "main_dev_manager.h" |
| #include <gst/base/gstpushsrc.h> |
| |
| 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<GstXCam::MainDeviceManager> device_manager; |
| }; |
| |
| struct _GstXCamSrcClass |
| { |
| GstPushSrcClass parent_class; |
| }; |
| |
| GType gst_xcam_src_get_type (void); |
| |
| XCAM_END_DECLARE |
| |
| #endif // GST_XCAM_SRC_H |