| 1 | /* GStreamer | 
| 2 |  * | 
| 3 |  * Copyright (C) 2008 Nokia Corporation <multimedia@maemo.org> | 
| 4 |  * | 
| 5 |  * photography.h: photography interface for digital imaging | 
| 6 |  * | 
| 7 |  * This library is free software; you can redistribute it and/or | 
| 8 |  * modify it under the terms of the GNU Library General Public | 
| 9 |  * License as published by the Free Software Foundation; either | 
| 10 |  * version 2 of the License, or (at your option) any later version. | 
| 11 |  * | 
| 12 |  * This library is distributed in the hope that it will be useful, | 
| 13 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| 14 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
| 15 |  * Library General Public License for more details. | 
| 16 |  * | 
| 17 |  * You should have received a copy of the GNU Library General Public | 
| 18 |  * License along with this library; if not, write to the | 
| 19 |  * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, | 
| 20 |  * Boston, MA 02110-1301, USA. | 
| 21 |  */ | 
| 22 |  | 
| 23 | #ifndef __GST_PHOTOGRAPHY_H__ | 
| 24 | #define __GST_PHOTOGRAPHY_H__ | 
| 25 |  | 
| 26 | #ifndef GST_USE_UNSTABLE_API | 
| 27 | #warning "The GstPhotography interface is unstable API and may change in future." | 
| 28 | #warning "You can define GST_USE_UNSTABLE_API to avoid this warning."  | 
| 29 | #endif | 
| 30 |  | 
| 31 | #include <gst/gst.h> | 
| 32 | #include <gst/interfaces/photography-prelude.h> | 
| 33 | #include <gst/interfaces/photography-enumtypes.h> | 
| 34 |  | 
| 35 | G_BEGIN_DECLS | 
| 36 |  | 
| 37 | #define GST_TYPE_PHOTOGRAPHY \ | 
| 38 |   (gst_photography_get_type ()) | 
| 39 | #define GST_PHOTOGRAPHY(obj) \ | 
| 40 |   (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PHOTOGRAPHY, GstPhotography)) | 
| 41 | #define GST_IS_PHOTOGRAPHY(obj) \ | 
| 42 |   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_PHOTOGRAPHY)) | 
| 43 | #define GST_PHOTOGRAPHY_GET_INTERFACE(inst) \ | 
| 44 |   (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GST_TYPE_PHOTOGRAPHY, GstPhotographyInterface)) | 
| 45 |  | 
| 46 |  | 
| 47 | /** | 
| 48 |  * GST_PHOTOGRAPHY_AUTOFOCUS_DONE: | 
| 49 |  * | 
| 50 |  * Name of custom GstMessage that will be posted to #GstBus when autofocusing | 
| 51 |  * is complete. | 
| 52 |  * This message contains following fields: | 
| 53 |  * | 
| 54 |  * * `status` (#GstPhotographyFocusStatus): Tells if focusing succeeded or failed. | 
| 55 |  * | 
| 56 |  * * `focus-window-rows` (#G_TYPE_INT): Tells number of focus matrix rows. | 
| 57 |  * | 
| 58 |  * * `focus-window-columns` (#G_TYPE_INT): Tells number of focus matrix columns. | 
| 59 |  * | 
| 60 |  * * `focus-window-mask` (#G_TYPE_INT): Bitmask containing rows x columns bits | 
| 61 |  *   which mark the focus points in the focus matrix. Lowest bit (LSB) always | 
| 62 |  *   represents the top-left corner of the focus matrix. This field is only valid | 
| 63 |  *   when focusing status is SUCCESS. | 
| 64 |  */ | 
| 65 | #define GST_PHOTOGRAPHY_AUTOFOCUS_DONE "autofocus-done" | 
| 66 |  | 
| 67 | /** | 
| 68 |  * GST_PHOTOGRAPHY_SHAKE_RISK: | 
| 69 |  * | 
| 70 |  * Name of custom GstMessage that is posted to #GstBus during autofocusing | 
| 71 |  * process. It is posted if there is change in the risk of captured image | 
| 72 |  * becoming "shaken" due to camera movement and too long exposure time. | 
| 73 |  * | 
| 74 |  * This message contains following fields: | 
| 75 |  * | 
| 76 |  * * `status` (#GstPhotographyShakeRisk): Tells risk level of capturing shaken image. | 
| 77 |  */ | 
| 78 | #define GST_PHOTOGRAPHY_SHAKE_RISK "shake-risk" | 
| 79 |  | 
| 80 | /* Maximum white point values used in #GstPhotographySettings */ | 
| 81 | #define MAX_WHITE_POINT_VALUES 4 | 
| 82 |  | 
| 83 | /* Interface property names */ | 
| 84 | #define GST_PHOTOGRAPHY_PROP_WB_MODE            "white-balance-mode" | 
| 85 | #define GST_PHOTOGRAPHY_PROP_COLOR_TONE         "color-tone-mode" | 
| 86 | #define GST_PHOTOGRAPHY_PROP_SCENE_MODE         "scene-mode" | 
| 87 | #define GST_PHOTOGRAPHY_PROP_FLASH_MODE         "flash-mode" | 
| 88 | #define GST_PHOTOGRAPHY_PROP_NOISE_REDUCTION    "noise-reduction" | 
| 89 | #define GST_PHOTOGRAPHY_PROP_FOCUS_STATUS       "focus-status" | 
| 90 | #define GST_PHOTOGRAPHY_PROP_CAPABILITIES       "capabilities" | 
| 91 | #define GST_PHOTOGRAPHY_PROP_SHAKE_RISK         "shake-risk" | 
| 92 | #define GST_PHOTOGRAPHY_PROP_EV_COMP            "ev-compensation" | 
| 93 | #define GST_PHOTOGRAPHY_PROP_ISO_SPEED          "iso-speed" | 
| 94 | #define GST_PHOTOGRAPHY_PROP_APERTURE           "aperture" | 
| 95 | #define GST_PHOTOGRAPHY_PROP_EXPOSURE_TIME      "exposure-time" | 
| 96 | #define GST_PHOTOGRAPHY_PROP_IMAGE_CAPTURE_SUPPORTED_CAPS \ | 
| 97 |                                                 "image-capture-supported-caps" | 
| 98 | #define GST_PHOTOGRAPHY_PROP_IMAGE_PREVIEW_SUPPORTED_CAPS \ | 
| 99 |                                                 "image-preview-supported-caps" | 
| 100 | #define GST_PHOTOGRAPHY_PROP_FLICKER_MODE       "flicker-mode" | 
| 101 | #define GST_PHOTOGRAPHY_PROP_FOCUS_MODE         "focus-mode" | 
| 102 | #define GST_PHOTOGRAPHY_PROP_ZOOM               "zoom" | 
| 103 | #define GST_PHOTOGRAPHY_PROP_COLOR_TEMPERATURE  "color-temperature" | 
| 104 | #define GST_PHOTOGRAPHY_PROP_WHITE_POINT        "white-point" | 
| 105 | #define GST_PHOTOGRAPHY_PROP_ANALOG_GAIN        "analog-gain" | 
| 106 | #define GST_PHOTOGRAPHY_PROP_EXPOSURE_MODE      "exposure-mode" | 
| 107 | #define GST_PHOTOGRAPHY_PROP_LENS_FOCUS         "lens-focus" | 
| 108 | #define GST_PHOTOGRAPHY_PROP_MIN_EXPOSURE_TIME  "min-exposure-time" | 
| 109 | #define GST_PHOTOGRAPHY_PROP_MAX_EXPOSURE_TIME  "max-exposure-time" | 
| 110 |  | 
| 111 | /** | 
| 112 |  * GstPhotography: | 
| 113 |  * | 
| 114 |  * Opaque #GstPhotography data structure. | 
| 115 |  */ | 
| 116 | typedef struct _GstPhotography GstPhotography; | 
| 117 |  | 
| 118 | /** | 
| 119 |  * GstPhotographyNoiseReduction: | 
| 120 |  * @GST_PHOTOGRAPHY_NOISE_REDUCTION_BAYER: Adaptive noise reduction on Bayer | 
| 121 |  * format | 
| 122 |  * @GST_PHOTOGRAPHY_NOISE_REDUCTION_YCC: reduces the noise on Y and 2-chroma | 
| 123 |  * images. | 
| 124 |  * @GST_PHOTOGRAPHY_NOISE_REDUCTION_TEMPORAL: Multi-frame adaptive NR, | 
| 125 |  * provided for the video mode | 
| 126 |  * @GST_PHOTOGRAPHY_NOISE_REDUCTION_FIXED: Fixed Pattern Noise refers to noise | 
| 127 |  * that does not change between frames. The noise is removed from the sensor | 
| 128 |  * image, by subtracting a previously-captured black image in memory. | 
| 129 |  * @GST_PHOTOGRAPHY_NOISE_REDUCTION_EXTRA: Extra Noise Reduction. In the case | 
| 130 |  * of high-ISO capturing, some noise remains after YCC NR. XNR reduces this | 
| 131 |  * remaining noise. | 
| 132 |  * | 
| 133 |  * Noise Reduction features of a photography capture or filter element. | 
| 134 |  */ | 
| 135 | typedef enum | 
| 136 | { | 
| 137 |   GST_PHOTOGRAPHY_NOISE_REDUCTION_BAYER    = (1 << 0), | 
| 138 |   GST_PHOTOGRAPHY_NOISE_REDUCTION_YCC      = (1 << 1), | 
| 139 |   GST_PHOTOGRAPHY_NOISE_REDUCTION_TEMPORAL = (1 << 2), | 
| 140 |   GST_PHOTOGRAPHY_NOISE_REDUCTION_FIXED    = (1 << 3), | 
| 141 |       = (1 << 4) | 
| 142 | } GstPhotographyNoiseReduction; | 
| 143 |  | 
| 144 | /** | 
| 145 |  * GstPhotographyWhiteBalanceMode: | 
| 146 |  * @GST_PHOTOGRAPHY_WB_MODE_AUTO: Choose white balance mode automatically | 
| 147 |  * @GST_PHOTOGRAPHY_WB_MODE_DAYLIGHT: Mode for daylight conditions | 
| 148 |  * @GST_PHOTOGRAPHY_WB_MODE_CLOUDY: Mode for cloudy conditions | 
| 149 |  * @GST_PHOTOGRAPHY_WB_MODE_SUNSET: Mode for sunset conditions | 
| 150 |  * @GST_PHOTOGRAPHY_WB_MODE_TUNGSTEN: Mode for tungsten lighting | 
| 151 |  * @GST_PHOTOGRAPHY_WB_MODE_FLUORESCENT: Mode for fluorescent lighting | 
| 152 |  * @GST_PHOTOGRAPHY_WB_MODE_MANUAL: Disable automatic white balance adjustment | 
| 153 |  * and keep current values. | 
| 154 |  * @GST_PHOTOGRAPHY_WB_MODE_WARM_FLUORESCENT: Mode for warm fluorescent lighting (Since: 1.2) | 
| 155 |  * @GST_PHOTOGRAPHY_WB_MODE_SHADE: Mode for shade lighting (Since: 1.2) | 
| 156 |  * | 
| 157 |  * Modes for white balance control. | 
| 158 |  */ | 
| 159 | typedef enum | 
| 160 | { | 
| 161 |   GST_PHOTOGRAPHY_WB_MODE_AUTO = 0, | 
| 162 |   GST_PHOTOGRAPHY_WB_MODE_DAYLIGHT, | 
| 163 |   GST_PHOTOGRAPHY_WB_MODE_CLOUDY, | 
| 164 |   GST_PHOTOGRAPHY_WB_MODE_SUNSET, | 
| 165 |   GST_PHOTOGRAPHY_WB_MODE_TUNGSTEN, | 
| 166 |   GST_PHOTOGRAPHY_WB_MODE_FLUORESCENT, | 
| 167 |   GST_PHOTOGRAPHY_WB_MODE_MANUAL, | 
| 168 |   GST_PHOTOGRAPHY_WB_MODE_WARM_FLUORESCENT, | 
| 169 |   GST_PHOTOGRAPHY_WB_MODE_SHADE | 
| 170 | } GstPhotographyWhiteBalanceMode; | 
| 171 |  | 
| 172 | /** | 
| 173 |  * GstPhotographyColorToneMode: | 
| 174 |  * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_NORMAL: No effects | 
| 175 |  * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_SEPIA: Sepia | 
| 176 |  * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_NEGATIVE: Negative | 
| 177 |  * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_GRAYSCALE: Grayscale | 
| 178 |  * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_NATURAL: Natural | 
| 179 |  * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_VIVID: Vivid | 
| 180 |  * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_COLORSWAP: Colorswap | 
| 181 |  * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_SOLARIZE: Solarize | 
| 182 |  * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_OUT_OF_FOCUS: Out of focus | 
| 183 |  * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_SKY_BLUE: Sky blue | 
| 184 |  * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_GRASS_GREEN: Grass green | 
| 185 |  * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_SKIN_WHITEN: Skin whiten | 
| 186 |  * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_POSTERIZE: Posterize (Since: 1.2) | 
| 187 |  * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_WHITEBOARD: Whiteboard (Since: 1.2) | 
| 188 |  * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_BLACKBOARD: Blackboard (Since: 1.2) | 
| 189 |  * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_AQUA: Aqua (Since: 1.2) | 
| 190 |  * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_EMBOSS: Emboss (Since: 1.18) | 
| 191 |  * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_SKETCH: Sketch (Since: 1.18) | 
| 192 |  * @GST_PHOTOGRAPHY_COLOR_TONE_MODE_NEON: Neon (Since: 1.18) | 
| 193 |  * | 
| 194 |  * | 
| 195 |  * Modes for special color effects. | 
| 196 |  */ | 
| 197 | typedef enum | 
| 198 | { | 
| 199 |   GST_PHOTOGRAPHY_COLOR_TONE_MODE_NORMAL = 0, | 
| 200 |   GST_PHOTOGRAPHY_COLOR_TONE_MODE_SEPIA, | 
| 201 |   GST_PHOTOGRAPHY_COLOR_TONE_MODE_NEGATIVE, | 
| 202 |   GST_PHOTOGRAPHY_COLOR_TONE_MODE_GRAYSCALE, | 
| 203 |   GST_PHOTOGRAPHY_COLOR_TONE_MODE_NATURAL, | 
| 204 |   GST_PHOTOGRAPHY_COLOR_TONE_MODE_VIVID, | 
| 205 |   GST_PHOTOGRAPHY_COLOR_TONE_MODE_COLORSWAP, | 
| 206 |   GST_PHOTOGRAPHY_COLOR_TONE_MODE_SOLARIZE, | 
| 207 |   GST_PHOTOGRAPHY_COLOR_TONE_MODE_OUT_OF_FOCUS, | 
| 208 |   GST_PHOTOGRAPHY_COLOR_TONE_MODE_SKY_BLUE, | 
| 209 |   GST_PHOTOGRAPHY_COLOR_TONE_MODE_GRASS_GREEN, | 
| 210 |   GST_PHOTOGRAPHY_COLOR_TONE_MODE_SKIN_WHITEN, | 
| 211 |   GST_PHOTOGRAPHY_COLOR_TONE_MODE_POSTERIZE, | 
| 212 |   GST_PHOTOGRAPHY_COLOR_TONE_MODE_WHITEBOARD, | 
| 213 |   GST_PHOTOGRAPHY_COLOR_TONE_MODE_BLACKBOARD, | 
| 214 |   GST_PHOTOGRAPHY_COLOR_TONE_MODE_AQUA, | 
| 215 |   GST_PHOTOGRAPHY_COLOR_TONE_MODE_EMBOSS, | 
| 216 |   GST_PHOTOGRAPHY_COLOR_TONE_MODE_SKETCH, | 
| 217 |   GST_PHOTOGRAPHY_COLOR_TONE_MODE_NEON | 
| 218 | } GstPhotographyColorToneMode; | 
| 219 |  | 
| 220 | /** | 
| 221 |  * GstPhotographySceneMode: | 
| 222 |  * @GST_PHOTOGRAPHY_SCENE_MODE_MANUAL: Set individual options manually | 
| 223 |  * @GST_PHOTOGRAPHY_SCENE_MODE_CLOSEUP: Mode for close objects | 
| 224 |  * @GST_PHOTOGRAPHY_SCENE_MODE_PORTRAIT: Mode for portraits | 
| 225 |  * @GST_PHOTOGRAPHY_SCENE_MODE_LANDSCAPE: Mode for landscapes | 
| 226 |  * @GST_PHOTOGRAPHY_SCENE_MODE_SPORT: Mode for scene with fast motion | 
| 227 |  * @GST_PHOTOGRAPHY_SCENE_MODE_NIGHT: Mode for night conditions | 
| 228 |  * @GST_PHOTOGRAPHY_SCENE_MODE_AUTO: Choose scene mode automatically | 
| 229 |  * @GST_PHOTOGRAPHY_SCENE_MODE_ACTION: Take photos of fast moving | 
| 230 |  *     objects (Since: 1.2) | 
| 231 |  * @GST_PHOTOGRAPHY_SCENE_MODE_NIGHT_PORTRAIT: Take people pictures | 
| 232 |  *     at night (Since: 1.2) | 
| 233 |  * @GST_PHOTOGRAPHY_SCENE_MODE_THEATRE: Take photos in a theater (Since: 1.2) | 
| 234 |  * @GST_PHOTOGRAPHY_SCENE_MODE_BEACH: Take pictures on the beach (Since: 1.2) | 
| 235 |  * @GST_PHOTOGRAPHY_SCENE_MODE_SNOW: Take pictures on the snow (Since: 1.2) | 
| 236 |  * @GST_PHOTOGRAPHY_SCENE_MODE_SUNSET: Take sunset photos (Since: 1.2) | 
| 237 |  * @GST_PHOTOGRAPHY_SCENE_MODE_STEADY_PHOTO: Avoid blurry pictures | 
| 238 |  *     (for example, due to hand shake) (Since: 1.2) | 
| 239 |  * @GST_PHOTOGRAPHY_SCENE_MODE_FIREWORKS: For shooting firework | 
| 240 |  *     displays (Since: 1.2) | 
| 241 |  * @GST_PHOTOGRAPHY_SCENE_MODE_PARTY: Take indoor low-light shot (Since: 1.2) | 
| 242 |  * @GST_PHOTOGRAPHY_SCENE_MODE_CANDLELIGHT: Capture the naturally warm color | 
| 243 |  *     of scenes lit by candles (Since: 1.2) | 
| 244 |  * @GST_PHOTOGRAPHY_SCENE_MODE_BARCODE: Applications are looking for | 
| 245 |  *     a barcode (Since: 1.2) | 
| 246 |  * @GST_PHOTOGRAPHY_SCENE_MODE_BACKLIGHT: Backlit photos (Since: 1.18) | 
| 247 |  * @GST_PHOTOGRAPHY_SCENE_MODE_FLOWERS: For shooting flowers (Since: 1.18) | 
| 248 |  * @GST_PHOTOGRAPHY_SCENE_MODE_AR: Specific for Augmented Reality (Since: 1.18) | 
| 249 |  * @GST_PHOTOGRAPHY_SCENE_MODE_HDR: High Dynamic Range photography (Since: 1.18) | 
| 250 |  * | 
| 251 |  * Each mode contains preset #GstPhotography options in order to produce | 
| 252 |  * good capturing result in certain scene. | 
| 253 |  */ | 
| 254 | typedef enum | 
| 255 | { | 
| 256 |   GST_PHOTOGRAPHY_SCENE_MODE_MANUAL = 0, | 
| 257 |   GST_PHOTOGRAPHY_SCENE_MODE_CLOSEUP, | 
| 258 |   GST_PHOTOGRAPHY_SCENE_MODE_PORTRAIT, | 
| 259 |   GST_PHOTOGRAPHY_SCENE_MODE_LANDSCAPE, | 
| 260 |   GST_PHOTOGRAPHY_SCENE_MODE_SPORT, | 
| 261 |   GST_PHOTOGRAPHY_SCENE_MODE_NIGHT, | 
| 262 |   GST_PHOTOGRAPHY_SCENE_MODE_AUTO, | 
| 263 |   GST_PHOTOGRAPHY_SCENE_MODE_ACTION, | 
| 264 |   GST_PHOTOGRAPHY_SCENE_MODE_NIGHT_PORTRAIT, | 
| 265 |   GST_PHOTOGRAPHY_SCENE_MODE_THEATRE, | 
| 266 |   GST_PHOTOGRAPHY_SCENE_MODE_BEACH, | 
| 267 |   GST_PHOTOGRAPHY_SCENE_MODE_SNOW, | 
| 268 |   GST_PHOTOGRAPHY_SCENE_MODE_SUNSET, | 
| 269 |   GST_PHOTOGRAPHY_SCENE_MODE_STEADY_PHOTO, | 
| 270 |   GST_PHOTOGRAPHY_SCENE_MODE_FIREWORKS, | 
| 271 |   GST_PHOTOGRAPHY_SCENE_MODE_PARTY, | 
| 272 |   GST_PHOTOGRAPHY_SCENE_MODE_CANDLELIGHT, | 
| 273 |   GST_PHOTOGRAPHY_SCENE_MODE_BARCODE, | 
| 274 |   GST_PHOTOGRAPHY_SCENE_MODE_BACKLIGHT, | 
| 275 |   GST_PHOTOGRAPHY_SCENE_MODE_FLOWERS, | 
| 276 |   GST_PHOTOGRAPHY_SCENE_MODE_AR, | 
| 277 |   GST_PHOTOGRAPHY_SCENE_MODE_HDR | 
| 278 | } GstPhotographySceneMode; | 
| 279 |  | 
| 280 | /** | 
| 281 |  * GstPhotographyFlashMode: | 
| 282 |  * @GST_PHOTOGRAPHY_FLASH_MODE_AUTO: Fire flash automatically according to | 
| 283 |  * lighting conditions. | 
| 284 |  * @GST_PHOTOGRAPHY_FLASH_MODE_OFF: Never fire flash | 
| 285 |  * @GST_PHOTOGRAPHY_FLASH_MODE_ON: Always fire flash | 
| 286 |  * @GST_PHOTOGRAPHY_FLASH_MODE_FILL_IN: Fill in flash | 
| 287 |  * @GST_PHOTOGRAPHY_FLASH_MODE_RED_EYE: Flash mode for reducing chance of | 
| 288 |  * capturing red eyes | 
| 289 |  * | 
| 290 |  * Modes for flash control. | 
| 291 |  */ | 
| 292 | typedef enum | 
| 293 | { | 
| 294 |   GST_PHOTOGRAPHY_FLASH_MODE_AUTO = 0, | 
| 295 |   GST_PHOTOGRAPHY_FLASH_MODE_OFF, | 
| 296 |   GST_PHOTOGRAPHY_FLASH_MODE_ON, | 
| 297 |   GST_PHOTOGRAPHY_FLASH_MODE_FILL_IN, | 
| 298 |   GST_PHOTOGRAPHY_FLASH_MODE_RED_EYE | 
| 299 | } GstPhotographyFlashMode; | 
| 300 |  | 
| 301 | /** | 
| 302 |  * GstPhotographyFocusStatus: | 
| 303 |  * @GST_PHOTOGRAPHY_FOCUS_STATUS_NONE: No status available | 
| 304 |  * @GST_PHOTOGRAPHY_FOCUS_STATUS_RUNNING: Focusing is ongoing | 
| 305 |  * @GST_PHOTOGRAPHY_FOCUS_STATUS_FAIL: Focusing failed | 
| 306 |  * @GST_PHOTOGRAPHY_FOCUS_STATUS_SUCCESS: Focusing succeeded | 
| 307 |  * | 
| 308 |  * Status of the focusing operation, used in #GST_PHOTOGRAPHY_AUTOFOCUS_DONE | 
| 309 |  * message. | 
| 310 |  */ | 
| 311 | typedef enum | 
| 312 | { | 
| 313 |   GST_PHOTOGRAPHY_FOCUS_STATUS_NONE = 0, | 
| 314 |   GST_PHOTOGRAPHY_FOCUS_STATUS_RUNNING, | 
| 315 |   GST_PHOTOGRAPHY_FOCUS_STATUS_FAIL, | 
| 316 |   GST_PHOTOGRAPHY_FOCUS_STATUS_SUCCESS | 
| 317 | } GstPhotographyFocusStatus; | 
| 318 |  | 
| 319 | /** | 
| 320 |  * GstPhotographyCaps: | 
| 321 |  * | 
| 322 |  * Bitmask that indicates which #GstPhotography interface features an instance | 
| 323 |  * supports. | 
| 324 |  */ | 
| 325 | typedef enum | 
| 326 | { | 
| 327 |   GST_PHOTOGRAPHY_CAPS_NONE              = (0 << 0), | 
| 328 |   GST_PHOTOGRAPHY_CAPS_EV_COMP           = (1 << 0), | 
| 329 |   GST_PHOTOGRAPHY_CAPS_ISO_SPEED         = (1 << 1), | 
| 330 |   GST_PHOTOGRAPHY_CAPS_WB_MODE           = (1 << 2), | 
| 331 |   GST_PHOTOGRAPHY_CAPS_TONE              = (1 << 3), | 
| 332 |   GST_PHOTOGRAPHY_CAPS_SCENE             = (1 << 4), | 
| 333 |   GST_PHOTOGRAPHY_CAPS_FLASH             = (1 << 5), | 
| 334 |   GST_PHOTOGRAPHY_CAPS_ZOOM              = (1 << 6), | 
| 335 |   GST_PHOTOGRAPHY_CAPS_FOCUS             = (1 << 7), | 
| 336 |   GST_PHOTOGRAPHY_CAPS_APERTURE          = (1 << 8), | 
| 337 |   GST_PHOTOGRAPHY_CAPS_EXPOSURE          = (1 << 9), | 
| 338 |   GST_PHOTOGRAPHY_CAPS_SHAKE             = (1 << 10), | 
| 339 |   GST_PHOTOGRAPHY_CAPS_WHITE_BALANCE     = (1 << 11), | 
| 340 |   GST_PHOTOGRAPHY_CAPS_NOISE_REDUCTION   = (1 << 12), | 
| 341 |   GST_PHOTOGRAPHY_CAPS_FLICKER_REDUCTION = (1 << 13), | 
| 342 |   GST_PHOTOGRAPHY_CAPS_ALL               = (~0) | 
| 343 | } GstPhotographyCaps; | 
| 344 |  | 
| 345 | /** | 
| 346 |  * GstPhotographyShakeRisk: | 
| 347 |  * @GST_PHOTOGRAPHY_SHAKE_RISK_LOW: Low risk | 
| 348 |  * @GST_PHOTOGRAPHY_SHAKE_RISK_MEDIUM: Medium risk | 
| 349 |  * @GST_PHOTOGRAPHY_SHAKE_RISK_HIGH: High risk | 
| 350 |  * | 
| 351 |  * Risk level of captured image becoming "shaken" due to camera movement and | 
| 352 |  * too long exposure time. Used in #GST_PHOTOGRAPHY_SHAKE_RISK #GstMessage. | 
| 353 |  */ | 
| 354 | typedef enum | 
| 355 | { | 
| 356 |   GST_PHOTOGRAPHY_SHAKE_RISK_LOW = 0, | 
| 357 |   GST_PHOTOGRAPHY_SHAKE_RISK_MEDIUM, | 
| 358 |   GST_PHOTOGRAPHY_SHAKE_RISK_HIGH, | 
| 359 | } GstPhotographyShakeRisk; | 
| 360 |  | 
| 361 | /** | 
| 362 |  * GstPhotographyFlickerReductionMode: | 
| 363 |  * @GST_PHOTOGRAPHY_FLICKER_REDUCTION_OFF: Disable flicker reduction | 
| 364 |  * @GST_PHOTOGRAPHY_FLICKER_REDUCTION_50HZ: 50Hz flicker reduction | 
| 365 |  * @GST_PHOTOGRAPHY_FLICKER_REDUCTION_60HZ: 60Hz flicker reduction | 
| 366 |  * @GST_PHOTOGRAPHY_FLICKER_REDUCTION_AUTO: Choose mode automatically | 
| 367 |  * | 
| 368 |  * Reduce flicker in video caused by light source fluctuation. | 
| 369 |  */ | 
| 370 | typedef enum | 
| 371 | { | 
| 372 |   GST_PHOTOGRAPHY_FLICKER_REDUCTION_OFF = 0, | 
| 373 |   GST_PHOTOGRAPHY_FLICKER_REDUCTION_50HZ, | 
| 374 |   GST_PHOTOGRAPHY_FLICKER_REDUCTION_60HZ, | 
| 375 |   GST_PHOTOGRAPHY_FLICKER_REDUCTION_AUTO, | 
| 376 | } GstPhotographyFlickerReductionMode; | 
| 377 |  | 
| 378 | /** | 
| 379 |  * GstPhotographyFocusMode: | 
| 380 |  * @GST_PHOTOGRAPHY_FOCUS_MODE_AUTO: Choose focus mode automatically | 
| 381 |  * @GST_PHOTOGRAPHY_FOCUS_MODE_MACRO: Mode for focusing objects close to lens | 
| 382 |  * @GST_PHOTOGRAPHY_FOCUS_MODE_PORTRAIT: Mode for portraits | 
| 383 |  * @GST_PHOTOGRAPHY_FOCUS_MODE_INFINITY: Mode for landscapes and far away objects | 
| 384 |  * @GST_PHOTOGRAPHY_FOCUS_MODE_HYPERFOCAL: Mode for maximum depth of field, keeping | 
| 385 |  * focus acceptable both in infinify and as close objects as possible | 
| 386 |  * @GST_PHOTOGRAPHY_FOCUS_MODE_EXTENDED: Extended focus mode | 
| 387 |  * @GST_PHOTOGRAPHY_FOCUS_MODE_CONTINUOUS_NORMAL: Continuous autofocus mode | 
| 388 |  * @GST_PHOTOGRAPHY_FOCUS_MODE_CONTINUOUS_EXTENDED: Extended continuous | 
| 389 |  * autofocus mode | 
| 390 |  * @GST_PHOTOGRAPHY_FOCUS_MODE_MANUAL: Disable automatic focusing | 
| 391 |  * and keep current value. #GstPhotography:lens-focus property can | 
| 392 |  * be used to change focus manually. | 
| 393 |  * | 
| 394 |  * Choose mode for focusing algorithm. | 
| 395 |  */ | 
| 396 | typedef enum { | 
| 397 |     GST_PHOTOGRAPHY_FOCUS_MODE_AUTO = 0, | 
| 398 |     GST_PHOTOGRAPHY_FOCUS_MODE_MACRO, | 
| 399 |     GST_PHOTOGRAPHY_FOCUS_MODE_PORTRAIT, | 
| 400 |     GST_PHOTOGRAPHY_FOCUS_MODE_INFINITY, | 
| 401 |     GST_PHOTOGRAPHY_FOCUS_MODE_HYPERFOCAL, | 
| 402 |     GST_PHOTOGRAPHY_FOCUS_MODE_EXTENDED, | 
| 403 |     GST_PHOTOGRAPHY_FOCUS_MODE_CONTINUOUS_NORMAL, | 
| 404 |     GST_PHOTOGRAPHY_FOCUS_MODE_CONTINUOUS_EXTENDED, | 
| 405 |     GST_PHOTOGRAPHY_FOCUS_MODE_MANUAL | 
| 406 | } GstPhotographyFocusMode; | 
| 407 |  | 
| 408 | /** | 
| 409 |  * GstPhotographyExposureMode: | 
| 410 |  * @GST_PHOTOGRAPHY_EXPOSURE_MODE_AUTO: Adjust exposure automatically | 
| 411 |  * @GST_PHOTOGRAPHY_EXPOSURE_MODE_MANUAL: Disable automatic exposure adjustment | 
| 412 |  * and keep current values. | 
| 413 |  * | 
| 414 |  */ | 
| 415 | typedef enum { | 
| 416 |     GST_PHOTOGRAPHY_EXPOSURE_MODE_AUTO = 0, | 
| 417 |     GST_PHOTOGRAPHY_EXPOSURE_MODE_MANUAL | 
| 418 | } GstPhotographyExposureMode; | 
| 419 |  | 
| 420 | /** | 
| 421 |  * GstPhotographySettings: | 
| 422 |  * | 
| 423 |  * Structure containing all #GstPhotography settings, used to set all | 
| 424 |  * settings in one call with @gst_photography_set_config(). | 
| 425 |  */ | 
| 426 | typedef struct | 
| 427 | { | 
| 428 |   GstPhotographyWhiteBalanceMode wb_mode; | 
| 429 |   GstPhotographyColorToneMode tone_mode; | 
| 430 |   GstPhotographySceneMode scene_mode; | 
| 431 |   GstPhotographyFlashMode flash_mode; | 
| 432 |   guint32 exposure_time; | 
| 433 |   guint aperture; | 
| 434 |   gfloat ev_compensation; | 
| 435 |   guint iso_speed; | 
| 436 |   gfloat zoom; | 
| 437 |   GstPhotographyFlickerReductionMode flicker_mode; | 
| 438 |   GstPhotographyFocusMode focus_mode; | 
| 439 |   GstPhotographyNoiseReduction noise_reduction; | 
| 440 |   GstPhotographyExposureMode exposure_mode; | 
| 441 |   guint color_temperature; | 
| 442 |   guint white_point[MAX_WHITE_POINT_VALUES]; | 
| 443 |   gfloat analog_gain; | 
| 444 |   gfloat lens_focus; | 
| 445 |   guint min_exposure_time; | 
| 446 |   guint max_exposure_time; | 
| 447 |   /* FIXME: add padding? */ | 
| 448 | } GstPhotographySettings; | 
| 449 |  | 
| 450 | /** | 
| 451 |  * GstPhotographyCapturePrepared: | 
| 452 |  * @data: user data that has been given, when registering the callback | 
| 453 |  * @configured_caps: #GstCaps defining the configured capture format. | 
| 454 |  *     Ownership of these caps stays in the element. | 
| 455 |  * | 
| 456 |  * This callback will be called when the element has finished preparations | 
| 457 |  * and is ready for image capture. The next buffer that element produces | 
| 458 |  * will be of @configured_caps format, so this callback allows the application | 
| 459 |  * to e.g. reconfigure capsfilters in pipeline if any. | 
| 460 |  */ | 
| 461 | typedef void (*GstPhotographyCapturePrepared) (gpointer data, const GstCaps *configured_caps); | 
| 462 |  | 
| 463 | /** | 
| 464 |  * GstPhotographyInterface: | 
| 465 |  * @parent: parent interface type. | 
| 466 |  * @get_ev_compensation: vmethod to get ev exposure compensation value | 
| 467 |  * @get_iso_speed: vmethod to get iso speed (light sensitivity) value | 
| 468 |  * @get_aperture: vmethod to get aperture value | 
| 469 |  * @get_exposure: vmethod to get exposure time value | 
| 470 |  * @get_white_balance_mode: vmethod to get white balance mode value | 
| 471 |  * @get_color_tone_mode: vmethod to get color tone mode value | 
| 472 |  * @get_scene_mode: vmethod to get scene mode value | 
| 473 |  * @get_flash_mode: vmethod to get flash mode value | 
| 474 |  * @get_noise_reduction: vmethod to get noise reduction mode value | 
| 475 |  * @get_zoom: vmethod to get zoom factor value | 
| 476 |  * @set_ev_compensation: vmethod to set ev exposure compensation value | 
| 477 |  * @set_iso_speed: vmethod to set iso speed (light sensitivity) value | 
| 478 |  * @set_aperture: vmethod to set aperture value | 
| 479 |  * @set_exposure: vmethod to set exposure time value | 
| 480 |  * @set_white_balance_mode: vmethod to set white balance mode value | 
| 481 |  * @set_color_tone_mode: vmethod to set color tone mode value | 
| 482 |  * @set_scene_mode: vmethod to set scene mode value | 
| 483 |  * @set_flash_mode: vmethod to set flash mode value | 
| 484 |  * @set_noise_reduction: vmethod to set noise reduction mode value | 
| 485 |  * @set_zoom: vmethod to set zoom factor value | 
| 486 |  * @get_capabilities: vmethod to get supported capabilities of the interface | 
| 487 |  * @prepare_for_capture: vmethod to tell the element to prepare for capturing | 
| 488 |  * @set_autofocus: vmethod to set autofocus on/off | 
| 489 |  * @set_config: vmethod to set all configuration parameters at once | 
| 490 |  * @get_config: vmethod to get all configuration parameters at once | 
| 491 |  * @get_image_capture_supported_caps: vmethod to get caps describing supported image capture formats | 
| 492 |  * @set_exposure_mode: vmethod to set exposure mode (Since: 1.18) | 
| 493 |  * @get_exposure_mode: vmethod to get exposure mode (Since: 1.18) | 
| 494 |  * @set_analog_gain: vmethod to set analog gain (Since: 1.18) | 
| 495 |  * @get_analog_gain: vmethod to get analog gain (Since: 1.18) | 
| 496 |  * @set_lens_focus: vmethod to set lens focus (Since: 1.18) | 
| 497 |  * @get_lens_focus: vmethod to get lens focus (Since: 1.18) | 
| 498 |  * @set_color_temperature: vmethod to set color temperature (Since: 1.18) | 
| 499 |  * @get_color_temperature: vmethod to get color temperature (Since: 1.18) | 
| 500 |  * @set_min_exposure_time: vmethod to set min exposure time (Since: 1.18) | 
| 501 |  * @get_min_exposure_time: vmethod to get min exposure time (Since: 1.18) | 
| 502 |  * @set_max_exposure_time: vmethod to set max exposure time (Since: 1.18) | 
| 503 |  * @get_max_exposure_time: vmethod to get max exposure time (Since: 1.18) | 
| 504 |  * | 
| 505 |  * #GstPhotographyInterface interface. | 
| 506 |  */ | 
| 507 | typedef struct _GstPhotographyInterface | 
| 508 | { | 
| 509 |   GTypeInterface parent; | 
| 510 |  | 
| 511 |   /* virtual functions */ | 
| 512 |   gboolean (*get_ev_compensation)    (GstPhotography * photo, gfloat * ev_comp); | 
| 513 |   gboolean (*get_iso_speed)          (GstPhotography * photo, guint * iso_speed); | 
| 514 |   gboolean (*get_aperture)           (GstPhotography * photo, guint * aperture); | 
| 515 |   gboolean (*get_exposure)           (GstPhotography * photo, guint32 * exposure); | 
| 516 |   gboolean (*get_white_balance_mode) (GstPhotography * photo, GstPhotographyWhiteBalanceMode * wb_mode); | 
| 517 |   gboolean (*get_color_tone_mode)    (GstPhotography * photo, GstPhotographyColorToneMode * tone_mode); | 
| 518 |   gboolean (*get_scene_mode)         (GstPhotography * photo, GstPhotographySceneMode * scene_mode); | 
| 519 |   gboolean (*get_flash_mode)         (GstPhotography * photo, GstPhotographyFlashMode * flash_mode); | 
| 520 |   gboolean (*get_zoom)               (GstPhotography * photo, gfloat * zoom); | 
| 521 |   gboolean (*get_flicker_mode)       (GstPhotography * photo, GstPhotographyFlickerReductionMode * flicker_mode); | 
| 522 |   gboolean (*get_focus_mode)         (GstPhotography * photo, GstPhotographyFocusMode * focus_mode); | 
| 523 |  | 
| 524 |   gboolean (*set_ev_compensation)    (GstPhotography * photo, gfloat ev_comp); | 
| 525 |   gboolean (*set_iso_speed)          (GstPhotography * photo, guint iso_speed); | 
| 526 |   gboolean (*set_aperture)           (GstPhotography * photo, guint aperture); | 
| 527 |   gboolean (*set_exposure)           (GstPhotography * photo, guint32 exposure); | 
| 528 |   gboolean (*set_white_balance_mode) (GstPhotography * photo, GstPhotographyWhiteBalanceMode wb_mode); | 
| 529 |   gboolean (*set_color_tone_mode)    (GstPhotography * photo, GstPhotographyColorToneMode tone_mode); | 
| 530 |   gboolean (*set_scene_mode)         (GstPhotography * photo, GstPhotographySceneMode scene_mode); | 
| 531 |   gboolean (*set_flash_mode)         (GstPhotography * photo, GstPhotographyFlashMode flash_mode); | 
| 532 |   gboolean (*set_zoom)               (GstPhotography * photo, gfloat zoom); | 
| 533 |   gboolean (*set_flicker_mode)       (GstPhotography * photo, GstPhotographyFlickerReductionMode flicker_mode); | 
| 534 |   gboolean (*set_focus_mode)         (GstPhotography * photo, GstPhotographyFocusMode focus_mode); | 
| 535 |  | 
| 536 |   GstPhotographyCaps (*get_capabilities) (GstPhotography * photo); | 
| 537 |  | 
| 538 |   gboolean (*prepare_for_capture)    (GstPhotography * photo, GstPhotographyCapturePrepared func, GstCaps *capture_caps, gpointer user_data); | 
| 539 |  | 
| 540 |   void     (*set_autofocus)          (GstPhotography * photo, gboolean on); | 
| 541 |  | 
| 542 |   gboolean (*set_config)             (GstPhotography * photo, GstPhotographySettings * config); | 
| 543 |   gboolean (*get_config)             (GstPhotography * photo, GstPhotographySettings * config); | 
| 544 |  | 
| 545 |   gboolean (*get_noise_reduction)    (GstPhotography * photo, GstPhotographyNoiseReduction * noise_reduction); | 
| 546 |   gboolean (*set_noise_reduction)    (GstPhotography * photo, GstPhotographyNoiseReduction noise_reduction); | 
| 547 |  | 
| 548 |   gboolean (*set_exposure_mode) (GstPhotography * photo, GstPhotographyExposureMode exposure_mode); | 
| 549 |   gboolean (*get_exposure_mode) (GstPhotography * photo, GstPhotographyExposureMode * exposure_mode); | 
| 550 |   gboolean (*set_analog_gain) (GstPhotography * photo, gfloat analog_gain); | 
| 551 |   gboolean (*get_analog_gain) (GstPhotography * photo, gfloat * analog_gain); | 
| 552 |   gboolean (*set_lens_focus) (GstPhotography * photo, gfloat lens_focus); | 
| 553 |   gboolean (*get_lens_focus) (GstPhotography * photo, gfloat * lens_focus); | 
| 554 |   gboolean (*set_color_temperature) (GstPhotography * photo, guint color_temperature); | 
| 555 |   gboolean (*get_color_temperature) (GstPhotography * photo, guint * color_temperature); | 
| 556 |   gboolean (*set_min_exposure_time) (GstPhotography * photo, guint min_exposure_time); | 
| 557 |   gboolean (*get_min_exposure_time) (GstPhotography * photo, guint * min_exposure_time); | 
| 558 |   gboolean (*set_max_exposure_time) (GstPhotography * photo, guint max_exposure_time); | 
| 559 |   gboolean (*get_max_exposure_time) (GstPhotography * photo, guint * max_exposure_time); | 
| 560 |  | 
| 561 |   /* FIXME: remove padding, not needed for interfaces */ | 
| 562 |   /*< private > */ | 
| 563 |   gpointer _gst_reserved[GST_PADDING]; | 
| 564 | } GstPhotographyInterface; | 
| 565 |  | 
| 566 | GST_PHOTOGRAPHY_API | 
| 567 | GType gst_photography_get_type (void); | 
| 568 |  | 
| 569 | /* virtual class function wrappers */ | 
| 570 |  | 
| 571 | GST_PHOTOGRAPHY_API | 
| 572 | gboolean gst_photography_get_ev_compensation (GstPhotography * photo, | 
| 573 |                                               gfloat * ev_comp); | 
| 574 |  | 
| 575 | GST_PHOTOGRAPHY_API | 
| 576 | gboolean gst_photography_get_iso_speed       (GstPhotography * photo, | 
| 577 |                                               guint * iso_speed); | 
| 578 |  | 
| 579 | GST_PHOTOGRAPHY_API | 
| 580 | gboolean gst_photography_get_aperture        (GstPhotography * photo, | 
| 581 |                                               guint * aperture); | 
| 582 |  | 
| 583 | GST_PHOTOGRAPHY_API | 
| 584 | gboolean gst_photography_get_exposure        (GstPhotography * photo, | 
| 585 |                                               guint32 * exposure); | 
| 586 |  | 
| 587 | GST_PHOTOGRAPHY_API | 
| 588 | gboolean gst_photography_get_white_balance_mode (GstPhotography * photo, | 
| 589 |                                                  GstPhotographyWhiteBalanceMode * wb_mode); | 
| 590 |  | 
| 591 | GST_PHOTOGRAPHY_API | 
| 592 | gboolean gst_photography_get_color_tone_mode (GstPhotography * photo, | 
| 593 |                                               GstPhotographyColorToneMode * tone_mode); | 
| 594 |  | 
| 595 | GST_PHOTOGRAPHY_API | 
| 596 | gboolean gst_photography_get_scene_mode      (GstPhotography * photo, | 
| 597 |                                               GstPhotographySceneMode * scene_mode); | 
| 598 |  | 
| 599 | GST_PHOTOGRAPHY_API | 
| 600 | gboolean gst_photography_get_flash_mode      (GstPhotography * photo, | 
| 601 |                                               GstPhotographyFlashMode * flash_mode); | 
| 602 |  | 
| 603 | GST_PHOTOGRAPHY_API | 
| 604 | gboolean gst_photography_get_noise_reduction (GstPhotography * photo, | 
| 605 |                                               GstPhotographyNoiseReduction * noise_reduction); | 
| 606 |  | 
| 607 | GST_PHOTOGRAPHY_API | 
| 608 | gboolean gst_photography_get_zoom            (GstPhotography * photo, gfloat * zoom); | 
| 609 |  | 
| 610 | GST_PHOTOGRAPHY_API | 
| 611 | gboolean gst_photography_get_flicker_mode    (GstPhotography * photo, | 
| 612 |                                               GstPhotographyFlickerReductionMode * mode); | 
| 613 |  | 
| 614 | GST_PHOTOGRAPHY_API | 
| 615 | gboolean gst_photography_get_focus_mode      (GstPhotography * photo, | 
| 616 |                                               GstPhotographyFocusMode * mode); | 
| 617 |  | 
| 618 | GST_PHOTOGRAPHY_API | 
| 619 | gboolean gst_photography_set_ev_compensation (GstPhotography * photo, | 
| 620 |                                               gfloat ev_comp); | 
| 621 |  | 
| 622 | GST_PHOTOGRAPHY_API | 
| 623 | gboolean gst_photography_set_iso_speed       (GstPhotography * photo, | 
| 624 |                                               guint iso_speed); | 
| 625 |  | 
| 626 | GST_PHOTOGRAPHY_API | 
| 627 | gboolean gst_photography_set_aperture        (GstPhotography * photo, guint aperture); | 
| 628 |  | 
| 629 | GST_PHOTOGRAPHY_API | 
| 630 | gboolean gst_photography_set_exposure        (GstPhotography * photo, guint exposure); | 
| 631 |  | 
| 632 | GST_PHOTOGRAPHY_API | 
| 633 | gboolean gst_photography_set_white_balance_mode (GstPhotography * photo, | 
| 634 |                                                  GstPhotographyWhiteBalanceMode wb_mode); | 
| 635 |  | 
| 636 | GST_PHOTOGRAPHY_API | 
| 637 | gboolean gst_photography_set_color_tone_mode (GstPhotography * photo, | 
| 638 |                                               GstPhotographyColorToneMode tone_mode); | 
| 639 |  | 
| 640 | GST_PHOTOGRAPHY_API | 
| 641 | gboolean gst_photography_set_scene_mode      (GstPhotography * photo, | 
| 642 |                                               GstPhotographySceneMode scene_mode); | 
| 643 |  | 
| 644 | GST_PHOTOGRAPHY_API | 
| 645 | gboolean gst_photography_set_flash_mode      (GstPhotography * photo, | 
| 646 |                                               GstPhotographyFlashMode flash_mode); | 
| 647 |  | 
| 648 | GST_PHOTOGRAPHY_API | 
| 649 | gboolean gst_photography_set_noise_reduction (GstPhotography * photo, | 
| 650 |                                               GstPhotographyNoiseReduction noise_reduction); | 
| 651 |  | 
| 652 | GST_PHOTOGRAPHY_API | 
| 653 | gboolean gst_photography_set_zoom            (GstPhotography * photo, gfloat zoom); | 
| 654 |  | 
| 655 | GST_PHOTOGRAPHY_API | 
| 656 | gboolean gst_photography_set_flicker_mode    (GstPhotography * photo, | 
| 657 |                                               GstPhotographyFlickerReductionMode mode); | 
| 658 |  | 
| 659 | GST_PHOTOGRAPHY_API | 
| 660 | gboolean gst_photography_set_focus_mode      (GstPhotography * photo, | 
| 661 |                                               GstPhotographyFocusMode mode); | 
| 662 |  | 
| 663 | GST_PHOTOGRAPHY_API | 
| 664 | GstPhotographyCaps gst_photography_get_capabilities (GstPhotography * photo); | 
| 665 |  | 
| 666 | GST_PHOTOGRAPHY_API | 
| 667 | gboolean gst_photography_prepare_for_capture (GstPhotography * photo, | 
| 668 |                                               GstPhotographyCapturePrepared func, | 
| 669 |                                               GstCaps *capture_caps, | 
| 670 |                                               gpointer user_data); | 
| 671 |  | 
| 672 | GST_PHOTOGRAPHY_API | 
| 673 | gboolean gst_photography_set_config    (GstPhotography         * photo, | 
| 674 |                                         GstPhotographySettings * config); | 
| 675 |  | 
| 676 | GST_PHOTOGRAPHY_API | 
| 677 | gboolean gst_photography_get_config    (GstPhotography         * photo, | 
| 678 |                                         GstPhotographySettings * config); | 
| 679 |  | 
| 680 | GST_PHOTOGRAPHY_API | 
| 681 | void     gst_photography_set_autofocus (GstPhotography * photo, gboolean on); | 
| 682 |  | 
| 683 | G_END_DECLS | 
| 684 |  | 
| 685 | #endif /* __GST_PHOTOGRAPHY_H__ */ | 
| 686 |  |