## GstPhotography GstPhotography |

## Synopsis

                        GstPhotography;
    #define             GST_PHOTOGRAPHY_AUTOFOCUS_DONE
    #define             GST_PHOTOGRAPHY_SHAKE_RISK
    enum                GstPhotographyNoiseReduction;
    enum                GstPhotographyWhiteBalanceMode;
    enum                GstPhotographyColorToneMode;
    enum                GstPhotographySceneMode;
    enum                GstPhotographyFlashMode;
    enum                GstPhotographyFlickerReductionMode;
    enum                GstPhotographyFocusMode;
    enum                GstPhotographyFocusStatus;
    enum                GstPhotographyCaps;
    enum                GstPhotographyShakeRisk;
    void                (*GstPhotographyCapturePrepared)    (gpointer data,
                                                             const GstCaps *configured_caps);
    gboolean            gst_photography_get_ev_compensation (GstPhotography *photo,
                                                             gfloat *ev_comp);
    gboolean            gst_photography_get_iso_speed       (GstPhotography *photo,
                                                             guint *iso_speed);
    gboolean            gst_photography_get_aperture        (GstPhotography *photo,
                                                             guint *aperture);
    gboolean            gst_photography_get_exposure        (GstPhotography *photo,
                                                             guint32 *exposure);
    gboolean            gst_photography_get_white_balance_mode
                                                            (GstPhotography *photo,
                                                             GstPhotographyWhiteBalanceMode *wb_mode);
    gboolean            gst_photography_get_color_tone_mode (GstPhotography *photo,
                                                             GstPhotographyColorToneMode *tone_mode);
    gboolean            gst_photography_get_scene_mode      (GstPhotography *photo,
                                                             GstPhotographySceneMode *scene_mode);
    gboolean            gst_photography_get_flash_mode      (GstPhotography *photo,
                                                             GstPhotographyFlashMode *flash_mode);
    gboolean            gst_photography_get_noise_reduction (GstPhotography *photo,
                                                             GstPhotographyNoiseReduction *noise_reduction);
    gboolean            gst_photography_get_zoom            (GstPhotography *photo,
                                                             gfloat *zoom);
    gboolean            gst_photography_set_ev_compensation (GstPhotography *photo,
                                                             gfloat ev_comp);
    gboolean            gst_photography_set_iso_speed       (GstPhotography *photo,
                                                             guint iso_speed);
    gboolean            gst_photography_set_aperture        (GstPhotography *photo,
                                                             guint aperture);
    gboolean            gst_photography_set_exposure        (GstPhotography *photo,
                                                             guint exposure);
    gboolean            gst_photography_set_white_balance_mode
                                                            (GstPhotography *photo,
                                                             GstPhotographyWhiteBalanceMode wb_mode);
    gboolean            gst_photography_set_color_tone_mode (GstPhotography *photo,
                                                             GstPhotographyColorToneMode tone_mode);
    gboolean            gst_photography_set_scene_mode      (GstPhotography *photo,
                                                             GstPhotographySceneMode scene_mode);
    gboolean            gst_photography_set_flash_mode      (GstPhotography *photo,
                                                             GstPhotographyFlashMode flash_mode);
    gboolean            gst_photography_set_noise_reduction (GstPhotography *photo,
                                                             GstPhotographyNoiseReduction noise_reduction);
    gboolean            gst_photography_set_zoom            (GstPhotography *photo,
                                                             gfloat zoom);
    GstPhotographyCaps  gst_photography_get_capabilities    (GstPhotography *photo);
    gboolean            gst_photography_prepare_for_capture (GstPhotography *photo,
                                                             GstPhotographyCapturePrepared func,
                                                             GstCaps *capture_caps,
                                                             gpointer user_data);
    void                gst_photography_set_autofocus       (GstPhotography *photo,
                                                             gboolean on);
    gboolean            gst_photography_set_config          (GstPhotography *photo,
                                                             GstPhotographySettings *config);
    gboolean            gst_photography_get_config          (GstPhotography *photo,
                                                             GstPhotographySettings *config);

## Object Hierarchy

      GInterface
       +----GstPhotography

## Prerequisites

GstPhotography requires GstImplementsInterface and GstElement.

## Properties

      "aperture"                 guint                 : Read / Write
      "capabilities"             gulong                : Read
      "colour-tone-mode"         GstColourToneMode     : Read / Write
      "ev-compensation"          gfloat                : Read / Write
      "exposure"                 guint                 : Read / Write
      "flash-mode"               GstPhotographyFlashMode  : Read / Write
      "flicker-mode"             GstPhotographyFlickerReductionMode  : Read / Write
      "focus-mode"               GstPhotographyFocusMode  : Read / Write
      "image-capture-supported-caps" GstCaps*              : Read
      "iso-speed"                guint                 : Read / Write
      "scene-mode"               GstPhotographySceneMode  : Read / Write
      "white-balance-mode"       GstPhotographyWhiteBalanceMode  : Read / Write
      "image-preview-supported-caps" GstCaps*              : Read
      "noise-reduction"          GstPhotographyNoiseReduction  : Read / Write
      "zoom"                     gfloat                : Read / Write
      "analog-gain"              gfloat                : Read / Write
      "color-temperature"        guint                 : Read / Write
      "color-tone-mode"          GstPhotographyColorToneMode  : Read / Write
      "exposure-time"            guint                 : Read / Write
      "lens-focus"               gfloat                : Read / Write
      "max-exposure-time"        guint                 : Read / Write
      "min-exposure-time"        guint                 : Read / Write
      "white-point"              GValueArray*          : Read / Write

## Description

## Details

### GstPhotography

    typedef struct _GstPhotography GstPhotography;

### GST_PHOTOGRAPHY_AUTOFOCUS_DONE

    #define GST_PHOTOGRAPHY_AUTOFOCUS_DONE "autofocus-done"

### GST_PHOTOGRAPHY_SHAKE_RISK

    #define GST_PHOTOGRAPHY_SHAKE_RISK "shake-risk"

### enum GstPhotographyNoiseReduction

    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;

### enum GstPhotographyWhiteBalanceMode

    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
    } GstPhotographyWhiteBalanceMode;

### enum GstPhotographyColorToneMode

    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
    } GstPhotographyColorToneMode;

### enum GstPhotographySceneMode

    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
    } GstPhotographySceneMode;

### enum GstPhotographyFlashMode

    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;

### enum GstPhotographyFlickerReductionMode

    typedef enum {
      GST_PHOTOGRAPHY_FLICKER_REDUCTION_OFF = 0,
      GST_PHOTOGRAPHY_FLICKER_REDUCTION_50HZ,
      GST_PHOTOGRAPHY_FLICKER_REDUCTION_60HZ,
      GST_PHOTOGRAPHY_FLICKER_REDUCTION_AUTO,
    } GstPhotographyFlickerReductionMode;

### enum GstPhotographyFocusMode

    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;

### enum GstPhotographyFocusStatus

    typedef enum {
      GST_PHOTOGRAPHY_FOCUS_STATUS_NONE = 0,
      GST_PHOTOGRAPHY_FOCUS_STATUS_RUNNING,
      GST_PHOTOGRAPHY_FOCUS_STATUS_FAIL,
      GST_PHOTOGRAPHY_FOCUS_STATUS_SUCCESS
    } GstPhotographyFocusStatus;

### enum GstPhotographyCaps

    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;

### enum GstPhotographyShakeRisk

    typedef enum {
      GST_PHOTOGRAPHY_SHAKE_RISK_LOW = 0,
      GST_PHOTOGRAPHY_SHAKE_RISK_MEDIUM,
      GST_PHOTOGRAPHY_SHAKE_RISK_HIGH,
    } GstPhotographyShakeRisk;

### GstPhotographyCapturePrepared ()

    void                (*GstPhotographyCapturePrepared)    (gpointer data,
                                                             const GstCaps *configured_caps);

### gst_photography_get_ev_compensation ()

    gboolean            gst_photography_get_ev_compensation (GstPhotography *photo,
                                                             gfloat *ev_comp);

### gst_photography_get_iso_speed ()

    gboolean            gst_photography_get_iso_speed       (GstPhotography *photo,
                                                             guint *iso_speed);

### gst_photography_get_aperture ()

    gboolean            gst_photography_get_aperture        (GstPhotography *photo,
                                                             guint *aperture);

### gst_photography_get_exposure ()

    gboolean            gst_photography_get_exposure        (GstPhotography *photo,
                                                             guint32 *exposure);

### gst_photography_get_white_balance_mode ()

    gboolean            gst_photography_get_white_balance_mode
                                                            (GstPhotography *photo,
                                                             GstPhotographyWhiteBalanceMode *wb_mode);

### gst_photography_get_color_tone_mode ()

    gboolean            gst_photography_get_color_tone_mode (GstPhotography *photo,
                                                             GstPhotographyColorToneMode *tone_mode);

### gst_photography_get_scene_mode ()

    gboolean            gst_photography_get_scene_mode      (GstPhotography *photo,
                                                             GstPhotographySceneMode *scene_mode);

### gst_photography_get_flash_mode ()

    gboolean            gst_photography_get_flash_mode      (GstPhotography *photo,
                                                             GstPhotographyFlashMode *flash_mode);

### gst_photography_get_noise_reduction ()

    gboolean            gst_photography_get_noise_reduction (GstPhotography *photo,
                                                             GstPhotographyNoiseReduction *noise_reduction);

### gst_photography_get_zoom ()

    gboolean            gst_photography_get_zoom            (GstPhotography *photo,
                                                             gfloat *zoom);

### gst_photography_set_ev_compensation ()

    gboolean            gst_photography_set_ev_compensation (GstPhotography *photo,
                                                             gfloat ev_comp);

### gst_photography_set_iso_speed ()

    gboolean            gst_photography_set_iso_speed       (GstPhotography *photo,
                                                             guint iso_speed);

### gst_photography_set_aperture ()

    gboolean            gst_photography_set_aperture        (GstPhotography *photo,
                                                             guint aperture);

### gst_photography_set_exposure ()

    gboolean            gst_photography_set_exposure        (GstPhotography *photo,
                                                             guint exposure);

### gst_photography_set_white_balance_mode ()

    gboolean            gst_photography_set_white_balance_mode
                                                            (GstPhotography *photo,
                                                             GstPhotographyWhiteBalanceMode wb_mode);

### gst_photography_set_color_tone_mode ()

    gboolean            gst_photography_set_color_tone_mode (GstPhotography *photo,
                                                             GstPhotographyColorToneMode tone_mode);

### gst_photography_set_scene_mode ()

    gboolean            gst_photography_set_scene_mode      (GstPhotography *photo,
                                                             GstPhotographySceneMode scene_mode);

### gst_photography_set_flash_mode ()

    gboolean            gst_photography_set_flash_mode      (GstPhotography *photo,
                                                             GstPhotographyFlashMode flash_mode);

### gst_photography_set_noise_reduction ()

    gboolean            gst_photography_set_noise_reduction (GstPhotography *photo,
                                                             GstPhotographyNoiseReduction noise_reduction);

### gst_photography_set_zoom ()

    gboolean            gst_photography_set_zoom            (GstPhotography *photo,
                                                             gfloat zoom);

### gst_photography_get_capabilities ()

    GstPhotographyCaps  gst_photography_get_capabilities    (GstPhotography *photo);

### gst_photography_prepare_for_capture ()

    gboolean            gst_photography_prepare_for_capture (GstPhotography *photo,
                                                             GstPhotographyCapturePrepared func,
                                                             GstCaps *capture_caps,
                                                             gpointer user_data);

### gst_photography_set_autofocus ()

    void                gst_photography_set_autofocus       (GstPhotography *photo,
                                                             gboolean on);

### gst_photography_set_config ()

    gboolean            gst_photography_set_config          (GstPhotography *photo,
                                                             GstPhotographySettings *config);

### gst_photography_get_config ()

    gboolean            gst_photography_get_config          (GstPhotography *photo,
                                                             GstPhotographySettings *config);

## Property Details

### The `"aperture"` property

      "aperture"                 guint                 : Read / Write

Aperture defines the size of lens opening (0 = auto).

Allowed values: <= 255

Default value: 0

### The `"capabilities"` property

      "capabilities"             gulong                : Read

Tells the photo capabilities of the device.

### The `"colour-tone-mode"` property

      "colour-tone-mode"         GstColourToneMode     : Read / Write

Colour tone setting changes colour shading in the photo.

Default value: GST_PHOTOGRAPHY_COLOUR_TONE_MODE_NORMAL

### The `"ev-compensation"` property

      "ev-compensation"          gfloat                : Read / Write

EV compensation affects the brightness of the image.

Allowed values: [-2.5,2.5]

Default value: 0

### The `"exposure"` property

      "exposure"                 guint                 : Read / Write

Exposure time defines how long the shutter will stay open (0 = auto).

Default value: 0

### The `"flash-mode"` property

      "flash-mode"               GstPhotographyFlashMode  : Read / Write

Flash mode defines how the flash light should be used.

Default value: GST_PHOTOGRAPHY_FLASH_MODE_AUTO

### The `"flicker-mode"` property

      "flicker-mode"             GstPhotographyFlickerReductionMode  : Read / Write

Flicker reduction mode defines a line frequency for flickering prevention.

Default value: GST_PHOTOGRAPHY_FLICKER_REDUCTION_OFF

### The `"focus-mode"` property

      "focus-mode"               GstPhotographyFocusMode  : Read / Write

Focus mode defines the range of focal lengths to use in autofocus search.

Default value: GST_PHOTOGRAPHY_FOCUS_MODE_AUTO

### The `"image-capture-supported-caps"` property

      "image-capture-supported-caps" GstCaps*              : Read

Caps describing supported image capture formats.

### The `"iso-speed"` property

      "iso-speed"                guint                 : Read / Write

ISO speed defines the light sensitivity (0 = auto).

Allowed values: <= 6400

Default value: 0

### The `"scene-mode"` property

      "scene-mode"               GstPhotographySceneMode  : Read / Write

Scene mode works as a preset for different photo shooting mode settings.

Default value: GST_PHOTOGRAPHY_SCENE_MODE_AUTO

### The `"white-balance-mode"` property

      "white-balance-mode"       GstPhotographyWhiteBalanceMode  : Read / Write

White balance affects the color temperature of the photo.

Default value: GST_PHOTOGRAPHY_WB_MODE_AUTO

### The `"image-preview-supported-caps"` property

      "image-preview-supported-caps" GstCaps*              : Read

Caps describing supported image preview formats.

### The `"noise-reduction"` property

      "noise-reduction"          GstPhotographyNoiseReduction  : Read / Write

Which noise reduction modes are enabled (0 = disabled).

### The `"zoom"` property

      "zoom"                     gfloat                : Read / Write

How much the resulted image will be zoomed.

Allowed values: [1,10]

Default value: 1

### The `"analog-gain"` property

      "analog-gain"              gfloat                : Read / Write

Analog gain applied to the sensor.

Allowed values: >= 1

Default value: 1

### The `"color-temperature"` property

      "color-temperature"        guint                 : Read / Write

Color temperature in Kelvin units for manual white balance.

Default value: 0

### The `"color-tone-mode"` property

      "color-tone-mode"          GstPhotographyColorToneMode  : Read / Write

Color tone setting changes color shading in the photo.

Default value: GST_PHOTOGRAPHY_COLOR_TONE_MODE_NORMAL

### The `"exposure-time"` property

      "exposure-time"            guint                 : Read / Write

Exposure time defines how long the shutter will stay open (0 = auto).

Default value: 0

### The `"lens-focus"` property

      "lens-focus"               gfloat                : Read / Write

Focus point in diopter units.

Allowed values: >= 0

Default value: 0

### The `"max-exposure-time"` property

      "max-exposure-time"        guint                 : Read / Write

Maximum exposure time for automatic exposure mode.

Default value: 0

### The `"min-exposure-time"` property

      "min-exposure-time"        guint                 : Read / Write

Minimum exposure time for automatic exposure mode.

Default value: 0

### The `"white-point"` property

      "white-point"              GValueArray*          : Read / Write

Describe color white as raw values.