| /* |
| * gstxcamfilter.h -gst xcamfilter plugin |
| * |
| * Copyright (c) 2016 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: Yinhang Liu <yinhangx.liu@intel.com> |
| */ |
| |
| #ifndef GST_XCAM_FILTER_H |
| #define GST_XCAM_FILTER_H |
| |
| #include <gst/gst.h> |
| #include <gst/video/video.h> |
| |
| #include "main_pipe_manager.h" |
| #include "gst_xcam_utils.h" |
| |
| XCAM_BEGIN_DECLARE |
| |
| #define GST_TYPE_XCAM_FILTER (gst_xcam_filter_get_type()) |
| #define GST_XCAM_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_XCAM_FILTER,GstXCamFilter)) |
| #define GST_XCAM_FILTER_CAST(obj) ((GstXCamFilter *) obj) |
| |
| |
| typedef enum { |
| COPY_MODE_CPU = 0, |
| COPY_MODE_DMA |
| } CopyMode; |
| |
| typedef enum { |
| DEFOG_NONE = 0, |
| DEFOG_RETINEX, |
| DEFOG_DCP |
| } DefogModeType; |
| |
| 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 { |
| DENOISE_3D_NONE = 0, |
| DENOISE_3D_YUV, |
| DENOISE_3D_UV |
| } Denoise3DModeType; |
| |
| enum StitchResMode { |
| StitchRes1080P = 0, |
| StitchRes4K = 2 |
| }; |
| |
| typedef struct _GstXCamFilter GstXCamFilter; |
| typedef struct _GstXCamFilterClass GstXCamFilterClass; |
| |
| struct _GstXCamFilter |
| { |
| GstBaseTransform transform; |
| |
| uint32_t buf_count; |
| CopyMode copy_mode; |
| DefogModeType defog_mode; |
| WaveletModeType wavelet_mode; |
| Denoise3DModeType denoise_3d_mode; |
| uint8_t denoise_3d_ref_count; |
| gboolean enable_wireframe; |
| gboolean enable_image_warp; |
| gboolean enable_stitch; |
| gboolean stitch_enable_seam; |
| gboolean stitch_fisheye_map; |
| gboolean stitch_fm_ocl; |
| gboolean stitch_lsc; |
| XCam::CLBlenderScaleMode stitch_scale_mode; |
| StitchResMode stitch_res_mode; |
| |
| uint32_t delay_buf_num; |
| uint32_t cached_buf_num; |
| GstAllocator *allocator; |
| GstVideoInfo gst_sink_video_info; |
| GstVideoInfo gst_src_video_info; |
| XCam::SmartPtr<XCam::BufferPool> buf_pool; |
| XCam::SmartPtr<GstXCam::MainPipeManager> pipe_manager; |
| }; |
| |
| struct _GstXCamFilterClass |
| { |
| GstBaseTransformClass parent_class; |
| }; |
| |
| GType gst_xcam_filter_get_type (void); |
| |
| XCAM_END_DECLARE |
| |
| #endif // GST_XCAM_FILTER_H |