summaryrefslogtreecommitdiff
path: root/include/gst/interfaces
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2022-08-03 21:02:36 +0300
committerGeorge Hazan <ghazan@miranda.im>2022-08-03 21:02:36 +0300
commit5323a782c4e8c42781f22ce2f488962a18f82554 (patch)
treef71537197b16f0f8fd0d6937f7120d018d220814 /include/gst/interfaces
parent50acf9d37183f86f6f623aad410003392b0af41f (diff)
Jabber: initial version of Jingle support
Diffstat (limited to 'include/gst/interfaces')
-rw-r--r--include/gst/interfaces/photography-enumtypes.h60
-rw-r--r--include/gst/interfaces/photography-prelude.h35
-rw-r--r--include/gst/interfaces/photography.h685
3 files changed, 780 insertions, 0 deletions
diff --git a/include/gst/interfaces/photography-enumtypes.h b/include/gst/interfaces/photography-enumtypes.h
new file mode 100644
index 0000000000..b4132877b7
--- /dev/null
+++ b/include/gst/interfaces/photography-enumtypes.h
@@ -0,0 +1,60 @@
+
+/* This file is generated by glib-mkenums, do not modify it. This code is licensed under the same license as the containing project. Note that it links to GLib, so must comply with the LGPL linking clauses. */
+
+#pragma once
+
+ #include <glib-object.h>
+ #include <gst/interfaces/photography-prelude.h>
+
+ G_BEGIN_DECLS
+
+/* enumerations from "photography.h" */
+
+GST_PHOTOGRAPHY_API
+GType gst_photography_noise_reduction_get_type (void);
+#define GST_TYPE_PHOTOGRAPHY_NOISE_REDUCTION (gst_photography_noise_reduction_get_type())
+
+GST_PHOTOGRAPHY_API
+GType gst_photography_white_balance_mode_get_type (void);
+#define GST_TYPE_PHOTOGRAPHY_WHITE_BALANCE_MODE (gst_photography_white_balance_mode_get_type())
+
+GST_PHOTOGRAPHY_API
+GType gst_photography_color_tone_mode_get_type (void);
+#define GST_TYPE_PHOTOGRAPHY_COLOR_TONE_MODE (gst_photography_color_tone_mode_get_type())
+
+GST_PHOTOGRAPHY_API
+GType gst_photography_scene_mode_get_type (void);
+#define GST_TYPE_PHOTOGRAPHY_SCENE_MODE (gst_photography_scene_mode_get_type())
+
+GST_PHOTOGRAPHY_API
+GType gst_photography_flash_mode_get_type (void);
+#define GST_TYPE_PHOTOGRAPHY_FLASH_MODE (gst_photography_flash_mode_get_type())
+
+GST_PHOTOGRAPHY_API
+GType gst_photography_focus_status_get_type (void);
+#define GST_TYPE_PHOTOGRAPHY_FOCUS_STATUS (gst_photography_focus_status_get_type())
+
+GST_PHOTOGRAPHY_API
+GType gst_photography_caps_get_type (void);
+#define GST_TYPE_PHOTOGRAPHY_CAPS (gst_photography_caps_get_type())
+
+GST_PHOTOGRAPHY_API
+GType gst_photography_shake_risk_get_type (void);
+#define GST_TYPE_PHOTOGRAPHY_SHAKE_RISK (gst_photography_shake_risk_get_type())
+
+GST_PHOTOGRAPHY_API
+GType gst_photography_flicker_reduction_mode_get_type (void);
+#define GST_TYPE_PHOTOGRAPHY_FLICKER_REDUCTION_MODE (gst_photography_flicker_reduction_mode_get_type())
+
+GST_PHOTOGRAPHY_API
+GType gst_photography_focus_mode_get_type (void);
+#define GST_TYPE_PHOTOGRAPHY_FOCUS_MODE (gst_photography_focus_mode_get_type())
+
+GST_PHOTOGRAPHY_API
+GType gst_photography_exposure_mode_get_type (void);
+#define GST_TYPE_PHOTOGRAPHY_EXPOSURE_MODE (gst_photography_exposure_mode_get_type())
+
+G_END_DECLS
+
+/* Generated data ends here */
+
diff --git a/include/gst/interfaces/photography-prelude.h b/include/gst/interfaces/photography-prelude.h
new file mode 100644
index 0000000000..dbb7f13f95
--- /dev/null
+++ b/include/gst/interfaces/photography-prelude.h
@@ -0,0 +1,35 @@
+/* GStreamer Photography Library
+ * Copyright (C) 2018 GStreamer developers
+ *
+ * photography-prelude.h: prelude include header for gst-photography library
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_PHOTOGRAPHY_PRELUDE_H__
+#define __GST_PHOTOGRAPHY_PRELUDE_H__
+
+#include <gst/gst.h>
+
+#ifndef GST_PHOTOGRAPHY_API
+# ifdef BUILDING_GST_PHOTOGRAPHY
+# define GST_PHOTOGRAPHY_API GST_API_EXPORT /* from config.h */
+# else
+# define GST_PHOTOGRAPHY_API GST_API_IMPORT
+# endif
+#endif
+
+#endif /* __GST_PHOTOGRAPHY_PRELUDE_H__ */
diff --git a/include/gst/interfaces/photography.h b/include/gst/interfaces/photography.h
new file mode 100644
index 0000000000..e9ac9e668b
--- /dev/null
+++ b/include/gst/interfaces/photography.h
@@ -0,0 +1,685 @@
+/* GStreamer
+ *
+ * Copyright (C) 2008 Nokia Corporation <multimedia@maemo.org>
+ *
+ * photography.h: photography interface for digital imaging
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_PHOTOGRAPHY_H__
+#define __GST_PHOTOGRAPHY_H__
+
+#ifndef GST_USE_UNSTABLE_API
+#warning "The GstPhotography interface is unstable API and may change in future."
+#warning "You can define GST_USE_UNSTABLE_API to avoid this warning."
+#endif
+
+#include <gst/gst.h>
+#include <gst/interfaces/photography-prelude.h>
+#include <gst/interfaces/photography-enumtypes.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_PHOTOGRAPHY \
+ (gst_photography_get_type ())
+#define GST_PHOTOGRAPHY(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PHOTOGRAPHY, GstPhotography))
+#define GST_IS_PHOTOGRAPHY(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_PHOTOGRAPHY))
+#define GST_PHOTOGRAPHY_GET_INTERFACE(inst) \
+ (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GST_TYPE_PHOTOGRAPHY, GstPhotographyInterface))
+
+
+/**
+ * GST_PHOTOGRAPHY_AUTOFOCUS_DONE:
+ *
+ * Name of custom GstMessage that will be posted to #GstBus when autofocusing
+ * is complete.
+ * This message contains following fields:
+ *
+ * * `status` (#GstPhotographyFocusStatus): Tells if focusing succeeded or failed.
+ *
+ * * `focus-window-rows` (#G_TYPE_INT): Tells number of focus matrix rows.
+ *
+ * * `focus-window-columns` (#G_TYPE_INT): Tells number of focus matrix columns.
+ *
+ * * `focus-window-mask` (#G_TYPE_INT): Bitmask containing rows x columns bits
+ * which mark the focus points in the focus matrix. Lowest bit (LSB) always
+ * represents the top-left corner of the focus matrix. This field is only valid
+ * when focusing status is SUCCESS.
+ */
+#define GST_PHOTOGRAPHY_AUTOFOCUS_DONE "autofocus-done"
+
+/**
+ * GST_PHOTOGRAPHY_SHAKE_RISK:
+ *
+ * Name of custom GstMessage that is posted to #GstBus during autofocusing
+ * process. It is posted if there is change in the risk of captured image
+ * becoming "shaken" due to camera movement and too long exposure time.
+ *
+ * This message contains following fields:
+ *
+ * * `status` (#GstPhotographyShakeRisk): Tells risk level of capturing shaken image.
+ */
+#define GST_PHOTOGRAPHY_SHAKE_RISK "shake-risk"
+
+/* Maximum white point values used in #GstPhotographySettings */
+#define MAX_WHITE_POINT_VALUES 4
+
+/* Interface property names */
+#define GST_PHOTOGRAPHY_PROP_WB_MODE "white-balance-mode"
+#define GST_PHOTOGRAPHY_PROP_COLOR_TONE "color-tone-mode"
+#define GST_PHOTOGRAPHY_PROP_SCENE_MODE "scene-mode"
+#define GST_PHOTOGRAPHY_PROP_FLASH_MODE "flash-mode"
+#define GST_PHOTOGRAPHY_PROP_NOISE_REDUCTION "noise-reduction"
+#define GST_PHOTOGRAPHY_PROP_FOCUS_STATUS "focus-status"
+#define GST_PHOTOGRAPHY_PROP_CAPABILITIES "capabilities"
+#define GST_PHOTOGRAPHY_PROP_SHAKE_RISK "shake-risk"
+#define GST_PHOTOGRAPHY_PROP_EV_COMP "ev-compensation"
+#define GST_PHOTOGRAPHY_PROP_ISO_SPEED "iso-speed"
+#define GST_PHOTOGRAPHY_PROP_APERTURE "aperture"
+#define GST_PHOTOGRAPHY_PROP_EXPOSURE_TIME "exposure-time"
+#define GST_PHOTOGRAPHY_PROP_IMAGE_CAPTURE_SUPPORTED_CAPS \
+ "image-capture-supported-caps"
+#define GST_PHOTOGRAPHY_PROP_IMAGE_PREVIEW_SUPPORTED_CAPS \
+ "image-preview-supported-caps"
+#define GST_PHOTOGRAPHY_PROP_FLICKER_MODE "flicker-mode"
+#define GST_PHOTOGRAPHY_PROP_FOCUS_MODE "focus-mode"
+#define GST_PHOTOGRAPHY_PROP_ZOOM "zoom"
+#define GST_PHOTOGRAPHY_PROP_COLOR_TEMPERATURE "color-temperature"
+#define GST_PHOTOGRAPHY_PROP_WHITE_POINT "white-point"
+#define GST_PHOTOGRAPHY_PROP_ANALOG_GAIN "analog-gain"
+#define GST_PHOTOGRAPHY_PROP_EXPOSURE_MODE "exposure-mode"
+#define GST_PHOTOGRAPHY_PROP_LENS_FOCUS "lens-focus"
+#define GST_PHOTOGRAPHY_PROP_MIN_EXPOSURE_TIME "min-exposure-time"
+#define GST_PHOTOGRAPHY_PROP_MAX_EXPOSURE_TIME "max-exposure-time"
+
+/**
+ * GstPhotography:
+ *
+ * Opaque #GstPhotography data structure.
+ */
+typedef struct _GstPhotography GstPhotography;
+
+/**
+ * GstPhotographyNoiseReduction:
+ * @GST_PHOTOGRAPHY_NOISE_REDUCTION_BAYER: Adaptive noise reduction on Bayer
+ * format
+ * @GST_PHOTOGRAPHY_NOISE_REDUCTION_YCC: reduces the noise on Y and 2-chroma
+ * images.
+ * @GST_PHOTOGRAPHY_NOISE_REDUCTION_TEMPORAL: Multi-frame adaptive NR,
+ * provided for the video mode
+ * @GST_PHOTOGRAPHY_NOISE_REDUCTION_FIXED: Fixed Pattern Noise refers to noise
+ * that does not change between frames. The noise is removed from the sensor
+ * image, by subtracting a previously-captured black image in memory.
+ * @GST_PHOTOGRAPHY_NOISE_REDUCTION_EXTRA: Extra Noise Reduction. In the case
+ * of high-ISO capturing, some noise remains after YCC NR. XNR reduces this
+ * remaining noise.
+ *
+ * Noise Reduction features of a photography capture or filter element.
+ */
+typedef enum
+{
+ GST_PHOTOGRAPHY_NOISE_REDUCTION_BAYER = (1 << 0),
+ GST_PHOTOGRAPHY_NOISE_REDUCTION_YCC = (1 << 1),
+ GST_PHOTOGRAPHY_NOISE_REDUCTION_TEMPORAL = (1 << 2),
+ GST_PHOTOGRAPHY_NOISE_REDUCTION_FIXED = (1 << 3),
+ GST_PHOTOGRAPHY_NOISE_REDUCTION_EXTRA = (1 << 4)
+} GstPhotographyNoiseReduction;
+
+/**
+ * GstPhotographyWhiteBalanceMode:
+ * @GST_PHOTOGRAPHY_WB_MODE_AUTO: Choose white balance mode automatically
+ * @GST_PHOTOGRAPHY_WB_MODE_DAYLIGHT: Mode for daylight conditions
+ * @GST_PHOTOGRAPHY_WB_MODE_CLOUDY: Mode for cloudy conditions
+ * @GST_PHOTOGRAPHY_WB_MODE_SUNSET: Mode for sunset conditions
+ * @GST_PHOTOGRAPHY_WB_MODE_TUNGSTEN: Mode for tungsten lighting
+ * @GST_PHOTOGRAPHY_WB_MODE_FLUORESCENT: Mode for fluorescent lighting
+ * @GST_PHOTOGRAPHY_WB_MODE_MANUAL: Disable automatic white balance adjustment
+ * and keep current values.
+ * @GST_PHOTOGRAPHY_WB_MODE_WARM_FLUORESCENT: Mode for warm fluorescent lighting (Since: 1.2)
+ * @GST_PHOTOGRAPHY_WB_MODE_SHADE: Mode for shade lighting (Since: 1.2)
+ *
+ * Modes for white balance control.
+ */
+typedef enum
+{
+ GST_PHOTOGRAPHY_WB_MODE_AUTO = 0,
+ GST_PHOTOGRAPHY_WB_MODE_DAYLIGHT,
+ GST_PHOTOGRAPHY_WB_MODE_CLOUDY,
+ GST_PHOTOGRAPHY_WB_MODE_SUNSET,
+ GST_PHOTOGRAPHY_WB_MODE_TUNGSTEN,
+ GST_PHOTOGRAPHY_WB_MODE_FLUORESCENT,
+ GST_PHOTOGRAPHY_WB_MODE_MANUAL,
+ GST_PHOTOGRAPHY_WB_MODE_WARM_FLUORESCENT,
+ GST_PHOTOGRAPHY_WB_MODE_SHADE
+} GstPhotographyWhiteBalanceMode;
+
+/**
+ * GstPhotographyColorToneMode:
+ * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_NORMAL: No effects
+ * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_SEPIA: Sepia
+ * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_NEGATIVE: Negative
+ * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_GRAYSCALE: Grayscale
+ * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_NATURAL: Natural
+ * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_VIVID: Vivid
+ * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_COLORSWAP: Colorswap
+ * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_SOLARIZE: Solarize
+ * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_OUT_OF_FOCUS: Out of focus
+ * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_SKY_BLUE: Sky blue
+ * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_GRASS_GREEN: Grass green
+ * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_SKIN_WHITEN: Skin whiten
+ * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_POSTERIZE: Posterize (Since: 1.2)
+ * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_WHITEBOARD: Whiteboard (Since: 1.2)
+ * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_BLACKBOARD: Blackboard (Since: 1.2)
+ * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_AQUA: Aqua (Since: 1.2)
+ * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_EMBOSS: Emboss (Since: 1.18)
+ * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_SKETCH: Sketch (Since: 1.18)
+ * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_NEON: Neon (Since: 1.18)
+ *
+ *
+ * Modes for special color effects.
+ */
+typedef enum
+{
+ GST_PHOTOGRAPHY_COLOR_TONE_MODE_NORMAL = 0,
+ GST_PHOTOGRAPHY_COLOR_TONE_MODE_SEPIA,
+ GST_PHOTOGRAPHY_COLOR_TONE_MODE_NEGATIVE,
+ GST_PHOTOGRAPHY_COLOR_TONE_MODE_GRAYSCALE,
+ GST_PHOTOGRAPHY_COLOR_TONE_MODE_NATURAL,
+ GST_PHOTOGRAPHY_COLOR_TONE_MODE_VIVID,
+ GST_PHOTOGRAPHY_COLOR_TONE_MODE_COLORSWAP,
+ GST_PHOTOGRAPHY_COLOR_TONE_MODE_SOLARIZE,
+ GST_PHOTOGRAPHY_COLOR_TONE_MODE_OUT_OF_FOCUS,
+ GST_PHOTOGRAPHY_COLOR_TONE_MODE_SKY_BLUE,
+ GST_PHOTOGRAPHY_COLOR_TONE_MODE_GRASS_GREEN,
+ GST_PHOTOGRAPHY_COLOR_TONE_MODE_SKIN_WHITEN,
+ GST_PHOTOGRAPHY_COLOR_TONE_MODE_POSTERIZE,
+ GST_PHOTOGRAPHY_COLOR_TONE_MODE_WHITEBOARD,
+ GST_PHOTOGRAPHY_COLOR_TONE_MODE_BLACKBOARD,
+ GST_PHOTOGRAPHY_COLOR_TONE_MODE_AQUA,
+ GST_PHOTOGRAPHY_COLOR_TONE_MODE_EMBOSS,
+ GST_PHOTOGRAPHY_COLOR_TONE_MODE_SKETCH,
+ GST_PHOTOGRAPHY_COLOR_TONE_MODE_NEON
+} GstPhotographyColorToneMode;
+
+/**
+ * GstPhotographySceneMode:
+ * @GST_PHOTOGRAPHY_SCENE_MODE_MANUAL: Set individual options manually
+ * @GST_PHOTOGRAPHY_SCENE_MODE_CLOSEUP: Mode for close objects
+ * @GST_PHOTOGRAPHY_SCENE_MODE_PORTRAIT: Mode for portraits
+ * @GST_PHOTOGRAPHY_SCENE_MODE_LANDSCAPE: Mode for landscapes
+ * @GST_PHOTOGRAPHY_SCENE_MODE_SPORT: Mode for scene with fast motion
+ * @GST_PHOTOGRAPHY_SCENE_MODE_NIGHT: Mode for night conditions
+ * @GST_PHOTOGRAPHY_SCENE_MODE_AUTO: Choose scene mode automatically
+ * @GST_PHOTOGRAPHY_SCENE_MODE_ACTION: Take photos of fast moving
+ * objects (Since: 1.2)
+ * @GST_PHOTOGRAPHY_SCENE_MODE_NIGHT_PORTRAIT: Take people pictures
+ * at night (Since: 1.2)
+ * @GST_PHOTOGRAPHY_SCENE_MODE_THEATRE: Take photos in a theater (Since: 1.2)
+ * @GST_PHOTOGRAPHY_SCENE_MODE_BEACH: Take pictures on the beach (Since: 1.2)
+ * @GST_PHOTOGRAPHY_SCENE_MODE_SNOW: Take pictures on the snow (Since: 1.2)
+ * @GST_PHOTOGRAPHY_SCENE_MODE_SUNSET: Take sunset photos (Since: 1.2)
+ * @GST_PHOTOGRAPHY_SCENE_MODE_STEADY_PHOTO: Avoid blurry pictures
+ * (for example, due to hand shake) (Since: 1.2)
+ * @GST_PHOTOGRAPHY_SCENE_MODE_FIREWORKS: For shooting firework
+ * displays (Since: 1.2)
+ * @GST_PHOTOGRAPHY_SCENE_MODE_PARTY: Take indoor low-light shot (Since: 1.2)
+ * @GST_PHOTOGRAPHY_SCENE_MODE_CANDLELIGHT: Capture the naturally warm color
+ * of scenes lit by candles (Since: 1.2)
+ * @GST_PHOTOGRAPHY_SCENE_MODE_BARCODE: Applications are looking for
+ * a barcode (Since: 1.2)
+ * @GST_PHOTOGRAPHY_SCENE_MODE_BACKLIGHT: Backlit photos (Since: 1.18)
+ * @GST_PHOTOGRAPHY_SCENE_MODE_FLOWERS: For shooting flowers (Since: 1.18)
+ * @GST_PHOTOGRAPHY_SCENE_MODE_AR: Specific for Augmented Reality (Since: 1.18)
+ * @GST_PHOTOGRAPHY_SCENE_MODE_HDR: High Dynamic Range photography (Since: 1.18)
+ *
+ * Each mode contains preset #GstPhotography options in order to produce
+ * good capturing result in certain scene.
+ */
+typedef enum
+{
+ GST_PHOTOGRAPHY_SCENE_MODE_MANUAL = 0,
+ GST_PHOTOGRAPHY_SCENE_MODE_CLOSEUP,
+ GST_PHOTOGRAPHY_SCENE_MODE_PORTRAIT,
+ GST_PHOTOGRAPHY_SCENE_MODE_LANDSCAPE,
+ GST_PHOTOGRAPHY_SCENE_MODE_SPORT,
+ GST_PHOTOGRAPHY_SCENE_MODE_NIGHT,
+ GST_PHOTOGRAPHY_SCENE_MODE_AUTO,
+ GST_PHOTOGRAPHY_SCENE_MODE_ACTION,
+ GST_PHOTOGRAPHY_SCENE_MODE_NIGHT_PORTRAIT,
+ GST_PHOTOGRAPHY_SCENE_MODE_THEATRE,
+ GST_PHOTOGRAPHY_SCENE_MODE_BEACH,
+ GST_PHOTOGRAPHY_SCENE_MODE_SNOW,
+ GST_PHOTOGRAPHY_SCENE_MODE_SUNSET,
+ GST_PHOTOGRAPHY_SCENE_MODE_STEADY_PHOTO,
+ GST_PHOTOGRAPHY_SCENE_MODE_FIREWORKS,
+ GST_PHOTOGRAPHY_SCENE_MODE_PARTY,
+ GST_PHOTOGRAPHY_SCENE_MODE_CANDLELIGHT,
+ GST_PHOTOGRAPHY_SCENE_MODE_BARCODE,
+ GST_PHOTOGRAPHY_SCENE_MODE_BACKLIGHT,
+ GST_PHOTOGRAPHY_SCENE_MODE_FLOWERS,
+ GST_PHOTOGRAPHY_SCENE_MODE_AR,
+ GST_PHOTOGRAPHY_SCENE_MODE_HDR
+} GstPhotographySceneMode;
+
+/**
+ * GstPhotographyFlashMode:
+ * @GST_PHOTOGRAPHY_FLASH_MODE_AUTO: Fire flash automatically according to
+ * lighting conditions.
+ * @GST_PHOTOGRAPHY_FLASH_MODE_OFF: Never fire flash
+ * @GST_PHOTOGRAPHY_FLASH_MODE_ON: Always fire flash
+ * @GST_PHOTOGRAPHY_FLASH_MODE_FILL_IN: Fill in flash
+ * @GST_PHOTOGRAPHY_FLASH_MODE_RED_EYE: Flash mode for reducing chance of
+ * capturing red eyes
+ *
+ * Modes for flash control.
+ */
+typedef enum
+{
+ GST_PHOTOGRAPHY_FLASH_MODE_AUTO = 0,
+ GST_PHOTOGRAPHY_FLASH_MODE_OFF,
+ GST_PHOTOGRAPHY_FLASH_MODE_ON,
+ GST_PHOTOGRAPHY_FLASH_MODE_FILL_IN,
+ GST_PHOTOGRAPHY_FLASH_MODE_RED_EYE
+} GstPhotographyFlashMode;
+
+/**
+ * GstPhotographyFocusStatus:
+ * @GST_PHOTOGRAPHY_FOCUS_STATUS_NONE: No status available
+ * @GST_PHOTOGRAPHY_FOCUS_STATUS_RUNNING: Focusing is ongoing
+ * @GST_PHOTOGRAPHY_FOCUS_STATUS_FAIL: Focusing failed
+ * @GST_PHOTOGRAPHY_FOCUS_STATUS_SUCCESS: Focusing succeeded
+ *
+ * Status of the focusing operation, used in #GST_PHOTOGRAPHY_AUTOFOCUS_DONE
+ * message.
+ */
+typedef enum
+{
+ GST_PHOTOGRAPHY_FOCUS_STATUS_NONE = 0,
+ GST_PHOTOGRAPHY_FOCUS_STATUS_RUNNING,
+ GST_PHOTOGRAPHY_FOCUS_STATUS_FAIL,
+ GST_PHOTOGRAPHY_FOCUS_STATUS_SUCCESS
+} GstPhotographyFocusStatus;
+
+/**
+ * GstPhotographyCaps:
+ *
+ * Bitmask that indicates which #GstPhotography interface features an instance
+ * supports.
+ */
+typedef enum
+{
+ GST_PHOTOGRAPHY_CAPS_NONE = (0 << 0),
+ GST_PHOTOGRAPHY_CAPS_EV_COMP = (1 << 0),
+ GST_PHOTOGRAPHY_CAPS_ISO_SPEED = (1 << 1),
+ GST_PHOTOGRAPHY_CAPS_WB_MODE = (1 << 2),
+ GST_PHOTOGRAPHY_CAPS_TONE = (1 << 3),
+ GST_PHOTOGRAPHY_CAPS_SCENE = (1 << 4),
+ GST_PHOTOGRAPHY_CAPS_FLASH = (1 << 5),
+ GST_PHOTOGRAPHY_CAPS_ZOOM = (1 << 6),
+ GST_PHOTOGRAPHY_CAPS_FOCUS = (1 << 7),
+ GST_PHOTOGRAPHY_CAPS_APERTURE = (1 << 8),
+ GST_PHOTOGRAPHY_CAPS_EXPOSURE = (1 << 9),
+ GST_PHOTOGRAPHY_CAPS_SHAKE = (1 << 10),
+ GST_PHOTOGRAPHY_CAPS_WHITE_BALANCE = (1 << 11),
+ GST_PHOTOGRAPHY_CAPS_NOISE_REDUCTION = (1 << 12),
+ GST_PHOTOGRAPHY_CAPS_FLICKER_REDUCTION = (1 << 13),
+ GST_PHOTOGRAPHY_CAPS_ALL = (~0)
+} GstPhotographyCaps;
+
+/**
+ * GstPhotographyShakeRisk:
+ * @GST_PHOTOGRAPHY_SHAKE_RISK_LOW: Low risk
+ * @GST_PHOTOGRAPHY_SHAKE_RISK_MEDIUM: Medium risk
+ * @GST_PHOTOGRAPHY_SHAKE_RISK_HIGH: High risk
+ *
+ * Risk level of captured image becoming "shaken" due to camera movement and
+ * too long exposure time. Used in #GST_PHOTOGRAPHY_SHAKE_RISK #GstMessage.
+ */
+typedef enum
+{
+ GST_PHOTOGRAPHY_SHAKE_RISK_LOW = 0,
+ GST_PHOTOGRAPHY_SHAKE_RISK_MEDIUM,
+ GST_PHOTOGRAPHY_SHAKE_RISK_HIGH,
+} GstPhotographyShakeRisk;
+
+/**
+ * GstPhotographyFlickerReductionMode:
+ * @GST_PHOTOGRAPHY_FLICKER_REDUCTION_OFF: Disable flicker reduction
+ * @GST_PHOTOGRAPHY_FLICKER_REDUCTION_50HZ: 50Hz flicker reduction
+ * @GST_PHOTOGRAPHY_FLICKER_REDUCTION_60HZ: 60Hz flicker reduction
+ * @GST_PHOTOGRAPHY_FLICKER_REDUCTION_AUTO: Choose mode automatically
+ *
+ * Reduce flicker in video caused by light source fluctuation.
+ */
+typedef enum
+{
+ GST_PHOTOGRAPHY_FLICKER_REDUCTION_OFF = 0,
+ GST_PHOTOGRAPHY_FLICKER_REDUCTION_50HZ,
+ GST_PHOTOGRAPHY_FLICKER_REDUCTION_60HZ,
+ GST_PHOTOGRAPHY_FLICKER_REDUCTION_AUTO,
+} GstPhotographyFlickerReductionMode;
+
+/**
+ * GstPhotographyFocusMode:
+ * @GST_PHOTOGRAPHY_FOCUS_MODE_AUTO: Choose focus mode automatically
+ * @GST_PHOTOGRAPHY_FOCUS_MODE_MACRO: Mode for focusing objects close to lens
+ * @GST_PHOTOGRAPHY_FOCUS_MODE_PORTRAIT: Mode for portraits
+ * @GST_PHOTOGRAPHY_FOCUS_MODE_INFINITY: Mode for landscapes and far away objects
+ * @GST_PHOTOGRAPHY_FOCUS_MODE_HYPERFOCAL: Mode for maximum depth of field, keeping
+ * focus acceptable both in infinify and as close objects as possible
+ * @GST_PHOTOGRAPHY_FOCUS_MODE_EXTENDED: Extended focus mode
+ * @GST_PHOTOGRAPHY_FOCUS_MODE_CONTINUOUS_NORMAL: Continuous autofocus mode
+ * @GST_PHOTOGRAPHY_FOCUS_MODE_CONTINUOUS_EXTENDED: Extended continuous
+ * autofocus mode
+ * @GST_PHOTOGRAPHY_FOCUS_MODE_MANUAL: Disable automatic focusing
+ * and keep current value. #GstPhotography:lens-focus property can
+ * be used to change focus manually.
+ *
+ * Choose mode for focusing algorithm.
+ */
+typedef enum {
+ GST_PHOTOGRAPHY_FOCUS_MODE_AUTO = 0,
+ GST_PHOTOGRAPHY_FOCUS_MODE_MACRO,
+ GST_PHOTOGRAPHY_FOCUS_MODE_PORTRAIT,
+ GST_PHOTOGRAPHY_FOCUS_MODE_INFINITY,
+ GST_PHOTOGRAPHY_FOCUS_MODE_HYPERFOCAL,
+ GST_PHOTOGRAPHY_FOCUS_MODE_EXTENDED,
+ GST_PHOTOGRAPHY_FOCUS_MODE_CONTINUOUS_NORMAL,
+ GST_PHOTOGRAPHY_FOCUS_MODE_CONTINUOUS_EXTENDED,
+ GST_PHOTOGRAPHY_FOCUS_MODE_MANUAL
+} GstPhotographyFocusMode;
+
+/**
+ * GstPhotographyExposureMode:
+ * @GST_PHOTOGRAPHY_EXPOSURE_MODE_AUTO: Adjust exposure automatically
+ * @GST_PHOTOGRAPHY_EXPOSURE_MODE_MANUAL: Disable automatic exposure adjustment
+ * and keep current values.
+ *
+ */
+typedef enum {
+ GST_PHOTOGRAPHY_EXPOSURE_MODE_AUTO = 0,
+ GST_PHOTOGRAPHY_EXPOSURE_MODE_MANUAL
+} GstPhotographyExposureMode;
+
+/**
+ * GstPhotographySettings:
+ *
+ * Structure containing all #GstPhotography settings, used to set all
+ * settings in one call with @gst_photography_set_config().
+ */
+typedef struct
+{
+ GstPhotographyWhiteBalanceMode wb_mode;
+ GstPhotographyColorToneMode tone_mode;
+ GstPhotographySceneMode scene_mode;
+ GstPhotographyFlashMode flash_mode;
+ guint32 exposure_time;
+ guint aperture;
+ gfloat ev_compensation;
+ guint iso_speed;
+ gfloat zoom;
+ GstPhotographyFlickerReductionMode flicker_mode;
+ GstPhotographyFocusMode focus_mode;
+ GstPhotographyNoiseReduction noise_reduction;
+ GstPhotographyExposureMode exposure_mode;
+ guint color_temperature;
+ guint white_point[MAX_WHITE_POINT_VALUES];
+ gfloat analog_gain;
+ gfloat lens_focus;
+ guint min_exposure_time;
+ guint max_exposure_time;
+ /* FIXME: add padding? */
+} GstPhotographySettings;
+
+/**
+ * GstPhotographyCapturePrepared:
+ * @data: user data that has been given, when registering the callback
+ * @configured_caps: #GstCaps defining the configured capture format.
+ * Ownership of these caps stays in the element.
+ *
+ * This callback will be called when the element has finished preparations
+ * and is ready for image capture. The next buffer that element produces
+ * will be of @configured_caps format, so this callback allows the application
+ * to e.g. reconfigure capsfilters in pipeline if any.
+ */
+typedef void (*GstPhotographyCapturePrepared) (gpointer data, const GstCaps *configured_caps);
+
+/**
+ * GstPhotographyInterface:
+ * @parent: parent interface type.
+ * @get_ev_compensation: vmethod to get ev exposure compensation value
+ * @get_iso_speed: vmethod to get iso speed (light sensitivity) value
+ * @get_aperture: vmethod to get aperture value
+ * @get_exposure: vmethod to get exposure time value
+ * @get_white_balance_mode: vmethod to get white balance mode value
+ * @get_color_tone_mode: vmethod to get color tone mode value
+ * @get_scene_mode: vmethod to get scene mode value
+ * @get_flash_mode: vmethod to get flash mode value
+ * @get_noise_reduction: vmethod to get noise reduction mode value
+ * @get_zoom: vmethod to get zoom factor value
+ * @set_ev_compensation: vmethod to set ev exposure compensation value
+ * @set_iso_speed: vmethod to set iso speed (light sensitivity) value
+ * @set_aperture: vmethod to set aperture value
+ * @set_exposure: vmethod to set exposure time value
+ * @set_white_balance_mode: vmethod to set white balance mode value
+ * @set_color_tone_mode: vmethod to set color tone mode value
+ * @set_scene_mode: vmethod to set scene mode value
+ * @set_flash_mode: vmethod to set flash mode value
+ * @set_noise_reduction: vmethod to set noise reduction mode value
+ * @set_zoom: vmethod to set zoom factor value
+ * @get_capabilities: vmethod to get supported capabilities of the interface
+ * @prepare_for_capture: vmethod to tell the element to prepare for capturing
+ * @set_autofocus: vmethod to set autofocus on/off
+ * @set_config: vmethod to set all configuration parameters at once
+ * @get_config: vmethod to get all configuration parameters at once
+ * @get_image_capture_supported_caps: vmethod to get caps describing supported image capture formats
+ * @set_exposure_mode: vmethod to set exposure mode (Since: 1.18)
+ * @get_exposure_mode: vmethod to get exposure mode (Since: 1.18)
+ * @set_analog_gain: vmethod to set analog gain (Since: 1.18)
+ * @get_analog_gain: vmethod to get analog gain (Since: 1.18)
+ * @set_lens_focus: vmethod to set lens focus (Since: 1.18)
+ * @get_lens_focus: vmethod to get lens focus (Since: 1.18)
+ * @set_color_temperature: vmethod to set color temperature (Since: 1.18)
+ * @get_color_temperature: vmethod to get color temperature (Since: 1.18)
+ * @set_min_exposure_time: vmethod to set min exposure time (Since: 1.18)
+ * @get_min_exposure_time: vmethod to get min exposure time (Since: 1.18)
+ * @set_max_exposure_time: vmethod to set max exposure time (Since: 1.18)
+ * @get_max_exposure_time: vmethod to get max exposure time (Since: 1.18)
+ *
+ * #GstPhotographyInterface interface.
+ */
+typedef struct _GstPhotographyInterface
+{
+ GTypeInterface parent;
+
+ /* virtual functions */
+ gboolean (*get_ev_compensation) (GstPhotography * photo, gfloat * ev_comp);
+ gboolean (*get_iso_speed) (GstPhotography * photo, guint * iso_speed);
+ gboolean (*get_aperture) (GstPhotography * photo, guint * aperture);
+ gboolean (*get_exposure) (GstPhotography * photo, guint32 * exposure);
+ gboolean (*get_white_balance_mode) (GstPhotography * photo, GstPhotographyWhiteBalanceMode * wb_mode);
+ gboolean (*get_color_tone_mode) (GstPhotography * photo, GstPhotographyColorToneMode * tone_mode);
+ gboolean (*get_scene_mode) (GstPhotography * photo, GstPhotographySceneMode * scene_mode);
+ gboolean (*get_flash_mode) (GstPhotography * photo, GstPhotographyFlashMode * flash_mode);
+ gboolean (*get_zoom) (GstPhotography * photo, gfloat * zoom);
+ gboolean (*get_flicker_mode) (GstPhotography * photo, GstPhotographyFlickerReductionMode * flicker_mode);
+ gboolean (*get_focus_mode) (GstPhotography * photo, GstPhotographyFocusMode * focus_mode);
+
+ gboolean (*set_ev_compensation) (GstPhotography * photo, gfloat ev_comp);
+ gboolean (*set_iso_speed) (GstPhotography * photo, guint iso_speed);
+ gboolean (*set_aperture) (GstPhotography * photo, guint aperture);
+ gboolean (*set_exposure) (GstPhotography * photo, guint32 exposure);
+ gboolean (*set_white_balance_mode) (GstPhotography * photo, GstPhotographyWhiteBalanceMode wb_mode);
+ gboolean (*set_color_tone_mode) (GstPhotography * photo, GstPhotographyColorToneMode tone_mode);
+ gboolean (*set_scene_mode) (GstPhotography * photo, GstPhotographySceneMode scene_mode);
+ gboolean (*set_flash_mode) (GstPhotography * photo, GstPhotographyFlashMode flash_mode);
+ gboolean (*set_zoom) (GstPhotography * photo, gfloat zoom);
+ gboolean (*set_flicker_mode) (GstPhotography * photo, GstPhotographyFlickerReductionMode flicker_mode);
+ gboolean (*set_focus_mode) (GstPhotography * photo, GstPhotographyFocusMode focus_mode);
+
+ GstPhotographyCaps (*get_capabilities) (GstPhotography * photo);
+
+ gboolean (*prepare_for_capture) (GstPhotography * photo, GstPhotographyCapturePrepared func, GstCaps *capture_caps, gpointer user_data);
+
+ void (*set_autofocus) (GstPhotography * photo, gboolean on);
+
+ gboolean (*set_config) (GstPhotography * photo, GstPhotographySettings * config);
+ gboolean (*get_config) (GstPhotography * photo, GstPhotographySettings * config);
+
+ gboolean (*get_noise_reduction) (GstPhotography * photo, GstPhotographyNoiseReduction * noise_reduction);
+ gboolean (*set_noise_reduction) (GstPhotography * photo, GstPhotographyNoiseReduction noise_reduction);
+
+ gboolean (*set_exposure_mode) (GstPhotography * photo, GstPhotographyExposureMode exposure_mode);
+ gboolean (*get_exposure_mode) (GstPhotography * photo, GstPhotographyExposureMode * exposure_mode);
+ gboolean (*set_analog_gain) (GstPhotography * photo, gfloat analog_gain);
+ gboolean (*get_analog_gain) (GstPhotography * photo, gfloat * analog_gain);
+ gboolean (*set_lens_focus) (GstPhotography * photo, gfloat lens_focus);
+ gboolean (*get_lens_focus) (GstPhotography * photo, gfloat * lens_focus);
+ gboolean (*set_color_temperature) (GstPhotography * photo, guint color_temperature);
+ gboolean (*get_color_temperature) (GstPhotography * photo, guint * color_temperature);
+ gboolean (*set_min_exposure_time) (GstPhotography * photo, guint min_exposure_time);
+ gboolean (*get_min_exposure_time) (GstPhotography * photo, guint * min_exposure_time);
+ gboolean (*set_max_exposure_time) (GstPhotography * photo, guint max_exposure_time);
+ gboolean (*get_max_exposure_time) (GstPhotography * photo, guint * max_exposure_time);
+
+ /* FIXME: remove padding, not needed for interfaces */
+ /*< private > */
+ gpointer _gst_reserved[GST_PADDING];
+} GstPhotographyInterface;
+
+GST_PHOTOGRAPHY_API
+GType gst_photography_get_type (void);
+
+/* virtual class function wrappers */
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_get_ev_compensation (GstPhotography * photo,
+ gfloat * ev_comp);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_get_iso_speed (GstPhotography * photo,
+ guint * iso_speed);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_get_aperture (GstPhotography * photo,
+ guint * aperture);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_get_exposure (GstPhotography * photo,
+ guint32 * exposure);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_get_white_balance_mode (GstPhotography * photo,
+ GstPhotographyWhiteBalanceMode * wb_mode);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_get_color_tone_mode (GstPhotography * photo,
+ GstPhotographyColorToneMode * tone_mode);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_get_scene_mode (GstPhotography * photo,
+ GstPhotographySceneMode * scene_mode);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_get_flash_mode (GstPhotography * photo,
+ GstPhotographyFlashMode * flash_mode);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_get_noise_reduction (GstPhotography * photo,
+ GstPhotographyNoiseReduction * noise_reduction);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_get_zoom (GstPhotography * photo, gfloat * zoom);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_get_flicker_mode (GstPhotography * photo,
+ GstPhotographyFlickerReductionMode * mode);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_get_focus_mode (GstPhotography * photo,
+ GstPhotographyFocusMode * mode);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_set_ev_compensation (GstPhotography * photo,
+ gfloat ev_comp);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_set_iso_speed (GstPhotography * photo,
+ guint iso_speed);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_set_aperture (GstPhotography * photo, guint aperture);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_set_exposure (GstPhotography * photo, guint exposure);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_set_white_balance_mode (GstPhotography * photo,
+ GstPhotographyWhiteBalanceMode wb_mode);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_set_color_tone_mode (GstPhotography * photo,
+ GstPhotographyColorToneMode tone_mode);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_set_scene_mode (GstPhotography * photo,
+ GstPhotographySceneMode scene_mode);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_set_flash_mode (GstPhotography * photo,
+ GstPhotographyFlashMode flash_mode);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_set_noise_reduction (GstPhotography * photo,
+ GstPhotographyNoiseReduction noise_reduction);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_set_zoom (GstPhotography * photo, gfloat zoom);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_set_flicker_mode (GstPhotography * photo,
+ GstPhotographyFlickerReductionMode mode);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_set_focus_mode (GstPhotography * photo,
+ GstPhotographyFocusMode mode);
+
+GST_PHOTOGRAPHY_API
+GstPhotographyCaps gst_photography_get_capabilities (GstPhotography * photo);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_prepare_for_capture (GstPhotography * photo,
+ GstPhotographyCapturePrepared func,
+ GstCaps *capture_caps,
+ gpointer user_data);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_set_config (GstPhotography * photo,
+ GstPhotographySettings * config);
+
+GST_PHOTOGRAPHY_API
+gboolean gst_photography_get_config (GstPhotography * photo,
+ GstPhotographySettings * config);
+
+GST_PHOTOGRAPHY_API
+void gst_photography_set_autofocus (GstPhotography * photo, gboolean on);
+
+G_END_DECLS
+
+#endif /* __GST_PHOTOGRAPHY_H__ */