[-]
[+]
|
Changed |
_service:tar_git:gstreamer1.0-droid.changes
|
|
[-]
[+]
|
Changed |
_service:tar_git:gst-droid.spec
^
|
|
[-]
[+]
|
Changed |
_service
^
|
@@ -6,7 +6,7 @@
<service name="tar_git">
<param name="url">https://github.com/sailfishos/gst-droid.git</param>
<param name="branch">master</param>
- <param name="revision">8a54a1e879948373affb2ad5e490e5fd10ba6f8a</param>
+ <param name="revision">8256dde8603810e9e4cf108097deb7218db9e15a</param>
<param name="token"/>
<param name="debian">N</param>
<param name="dumb">N</param>
|
[-]
[+]
|
Changed |
_service:tar_git:gstreamer1.0-droid-0.20161123.0.tar.gz/gst/droidcamsrc/gstdroidcamsrc.c
^
|
@@ -2,7 +2,7 @@
* gst-droid
*
* Copyright (C) 2014 Mohammed Sameer <msameer@foolab.org>
- * Copyright (C) 2015 Jolla LTD.
+ * Copyright (C) 2015-2016 Jolla LTD.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -85,6 +85,7 @@
GstCaps * caps);
static gchar *gst_droidcamsrc_find_picture_resolution (GstDroidCamSrc * src,
const gchar * resolution);
+static gboolean gst_droidcamsrc_is_zsl_and_hdr_supported (GstDroidCamSrc * src);
enum
{
@@ -106,8 +107,7 @@
#define DEFAULT_FACE_DETECTION FALSE
#define DEFAULT_IMAGE_NOISE_REDUCTION TRUE
#define DEFAULT_SENSOR_ORIENTATION 0
-#define DEFAULT_FAST_CAPTURE FALSE
-#define DEFAULT_FAST_CAPTURE_SUPPORTED FALSE
+#define DEFAULT_IMAGE_MODE GST_DROIDCAMSRC_IMAGE_MODE_NORMAL
static GstDroidCamSrcPad *
gst_droidcamsrc_create_pad (GstDroidCamSrc * src, GstStaticPadTemplate * tpl,
@@ -166,7 +166,7 @@
src->video_torch = DEFAULT_VIDEO_TORCH;
src->face_detection = DEFAULT_FACE_DETECTION;
src->image_noise_reduction = DEFAULT_IMAGE_NOISE_REDUCTION;
- src->fast_capture_enabled = DEFAULT_FAST_CAPTURE;
+ src->image_mode = GST_DROIDCAMSRC_IMAGE_MODE_NORMAL;
src->min_ev_compensation = DEFAULT_MIN_EV_COMPENSATION;
src->max_ev_compensation = DEFAULT_MAX_EV_COMPENSATION;
src->ev_step = 0.0f;
@@ -203,6 +203,8 @@
GParamSpec * pspec)
{
GstDroidCamSrc *src = GST_DROIDCAMSRC (object);
+ GArray *supported_image_modes = NULL;
+ int mode = DEFAULT_IMAGE_MODE;
if (gst_droidcamsrc_photography_get_property (src, prop_id, value, pspec)) {
return;
@@ -259,13 +261,31 @@
g_value_set_int (value, src->info[src->camera_device].orientation * 90);
break;
- case PROP_FAST_CAPTURE:
- g_value_set_boolean (value, src->fast_capture_enabled);
+ case PROP_IMAGE_MODE:
+ g_value_set_flags (value, src->image_mode);
break;
- case PROP_FAST_CAPTURE_SUPPORTED:
- g_value_set_boolean (value, gst_droidcamsrc_quirks_get_quirk (src->quirks,
- "fast-capture") != NULL);
+ case PROP_SUPPORTED_IMAGE_MODES:
+ supported_image_modes = g_array_new (FALSE, FALSE, sizeof (gint));
+ g_array_append_val (supported_image_modes, mode);
+
+ if (gst_droidcamsrc_quirks_get_quirk (src->quirks, "zsl")) {
+ mode = GST_DROIDCAMSRC_IMAGE_MODE_ZSL;
+ g_array_append_val (supported_image_modes, mode);
+ }
+
+ if (gst_droidcamsrc_quirks_get_quirk (src->quirks, "hdr")) {
+ mode = GST_DROIDCAMSRC_IMAGE_MODE_HDR;
+ g_array_append_val (supported_image_modes, mode);
+ }
+
+ if (gst_droidcamsrc_is_zsl_and_hdr_supported (src)) {
+ mode = GST_DROIDCAMSRC_IMAGE_MODE_ZSL;
+ mode |= GST_DROIDCAMSRC_IMAGE_MODE_HDR;
+ g_array_append_val (supported_image_modes, mode);
+ }
+
+ g_value_set_pointer (value, supported_image_modes);
break;
default:
@@ -359,8 +379,8 @@
gst_droidcamsrc_apply_mode_settings (src, SET_AND_APPLY);
break;
- case PROP_FAST_CAPTURE:
- src->fast_capture_enabled = g_value_get_boolean (value);
+ case PROP_IMAGE_MODE:
+ src->image_mode = g_value_get_flags (value);
gst_droidcamsrc_apply_mode_settings (src, SET_AND_APPLY);
break;
@@ -562,6 +582,10 @@
/* now that we have camera parameters, we can update min and max ev-compensation */
gst_droidcamsrc_update_ev_compensation_bounds (src);
+ /* And we can also detect the supported image modes. In reality the only thing
+ we are unable to detect until this moment is _ZSL_AND_HDR */
+ g_object_notify (G_OBJECT (src), "supported-image-modes");
+
/* Now add the needed orientation tag */
gst_droidcamsrc_add_vfsrc_orientation_tag (src);
}
@@ -979,15 +1003,15 @@
"The GHash table of the GstDroidCamSrcParams struct currently used",
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_PRIVATE));
- g_object_class_install_property (gobject_class, PROP_FAST_CAPTURE,
- g_param_spec_boolean ("fast-capture", "Fast Image Capture",
- "Fast image capture mode enabled",
- DEFAULT_FAST_CAPTURE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property (gobject_class, PROP_FAST_CAPTURE_SUPPORTED,
- g_param_spec_boolean ("fast-capture-supported",
- "Fast Image Capture Supported", "Fast image capture mode supported",
- DEFAULT_FAST_CAPTURE_SUPPORTED,
+ g_object_class_install_property (gobject_class, PROP_IMAGE_MODE,
+ g_param_spec_flags ("image-mode", "Image mode",
+ "Image mode (normal, zsl, hdr)",
+ GST_TYPE_DROIDCAMSRC_IMAGE_MODE,
+ DEFAULT_IMAGE_MODE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_property (gobject_class, PROP_SUPPORTED_IMAGE_MODES,
+ g_param_spec_pointer ("supported-image-modes", "Supported image modes",
+ "Image modes supported by HAL",
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
gst_droidcamsrc_photography_add_overrides (gobject_class);
@@ -2000,8 +2024,13 @@
gst_droidcamsrc_apply_quirk (src, "image-noise-reduction",
src->image_noise_reduction);
- /* fast capture quirk */
- gst_droidcamsrc_apply_quirk (src, "fast-capture", src->fast_capture_enabled);
+ /* ZSL quirk */
+ gst_droidcamsrc_apply_quirk (src, "zsl",
+ (src->image_mode & GST_DROIDCAMSRC_IMAGE_MODE_ZSL));
+
+ /* HDR quirk */
+ gst_droidcamsrc_apply_quirk (src, "hdr",
+ (src->image_mode & GST_DROIDCAMSRC_IMAGE_MODE_HDR));
if (type == SET_AND_APPLY) {
gst_droidcamsrc_apply_params (src);
@@ -2207,3 +2236,38 @@
return ret;
}
+
+static gboolean
+gst_droidcamsrc_is_zsl_and_hdr_supported (GstDroidCamSrc * src)
+{
+ /*
+ * There is no standard way to do our detection.
+ * We will just follow some heuristics here
+ */
+
+ gboolean ret = FALSE;
+ const gchar *str = NULL;
+
+ GST_DEBUG_OBJECT (src, "is zsl and hdr supported");
+
+ g_rec_mutex_lock (&src->dev_lock);
+ if (!src->dev || !src->dev->params)
+ goto out;
+
+ str =
+ gst_droidcamsrc_params_get_string (src->dev->params, "zsl-hdr-supported");
+ if (!str)
+ goto out;
+
+ if (g_strcmp0 (str, "true") == 0)
+ goto out;
+
+out:
+ g_rec_mutex_unlock (&src->dev_lock);
+
+ if (str)
+ g_free ((gpointer) str);
+
+ GST_INFO_OBJECT (src, "zsl and hdr supported: %d", ret);
+ return ret;
+}
|
[-]
[+]
|
Changed |
_service:tar_git:gstreamer1.0-droid-0.20161123.0.tar.gz/gst/droidcamsrc/gstdroidcamsrc.h
^
|
@@ -2,6 +2,7 @@
* gst-droid
*
* Copyright (C) 2014 Mohammed Sameer <msameer@foolab.org>
+ * Copyright (C) 2016 Jolla LTD.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -111,7 +112,7 @@
gboolean video_torch;
gboolean face_detection;
gboolean image_noise_reduction;
- gboolean fast_capture_enabled;
+ GstDroidCamSrcImageMode image_mode;
GstDroidCamSrcPhotography * photo;
gfloat max_zoom;
|
[-]
[+]
|
Changed |
_service:tar_git:gstreamer1.0-droid-0.20161123.0.tar.gz/gst/droidcamsrc/gstdroidcamsrcdev.c
^
|
@@ -2,7 +2,7 @@
* gst-droid
*
* Copyright (C) 2014 Mohammed Sameer <msameer@foolab.org>
- * Copyright (C) 2015 Jolla LTD.
+ * Copyright (C) 2015-2016 Jolla LTD.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -221,7 +221,7 @@
/* we need to start restart the preview
* android demands this but GStreamer does not know about it.
*/
- if (!src->fast_capture_enabled) {
+ if (!gst_droidcamsrc_is_zsl_enabled (src)) {
g_rec_mutex_lock (dev->lock);
dev->running = FALSE;
g_rec_mutex_unlock (dev->lock);
|
[-]
[+]
|
Changed |
_service:tar_git:gstreamer1.0-droid-0.20161123.0.tar.gz/gst/droidcamsrc/gstdroidcamsrcenums.c
^
|
@@ -2,6 +2,7 @@
* gst-droid
*
* Copyright (C) 2014 Mohammed Sameer <msameer@foolab.org>
+ * Copyright (C) 2016 Jolla LTD.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -41,3 +42,22 @@
}
return gst_droidcamsrc_camera_device_type;
}
+
+GType
+gst_droidcamsrc_image_mode_get_type (void)
+{
+ static GType gst_droidcamsrc_image_mode_type = 0;
+ static GFlagsValue gst_droidcamsrc_image_modes[] = {
+ {GST_DROIDCAMSRC_IMAGE_MODE_NORMAL, "Normal image mode", "normal"},
+ {GST_DROIDCAMSRC_IMAGE_MODE_ZSL, "ZSL image mode", "zsl"},
+ {GST_DROIDCAMSRC_IMAGE_MODE_HDR, "HDR image mode", "hdr"},
+ {0, NULL, NULL},
+ };
+
+ if (G_UNLIKELY (!gst_droidcamsrc_image_mode_type)) {
+ gst_droidcamsrc_image_mode_type =
+ g_flags_register_static ("GstDroidCamSrcImageMode",
+ gst_droidcamsrc_image_modes);
+ }
+ return gst_droidcamsrc_image_mode_type;
+}
|
[-]
[+]
|
Changed |
_service:tar_git:gstreamer1.0-droid-0.20161123.0.tar.gz/gst/droidcamsrc/gstdroidcamsrcenums.h
^
|
@@ -2,7 +2,7 @@
* gst-droid
*
* Copyright (C) 2014 Mohammed Sameer <msameer@foolab.org>
- * Copyright (C) 2015 Jolla LTD.
+ * Copyright (C) 2015-2016 Jolla LTD.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -27,6 +27,7 @@
G_BEGIN_DECLS
#define GST_TYPE_DROIDCAMSRC_CAMERA_DEVICE (gst_droidcamsrc_camera_device_get_type())
+#define GST_TYPE_DROIDCAMSRC_IMAGE_MODE (gst_droidcamsrc_image_mode_get_type())
typedef enum {
GST_DROIDCAMSRC_CAMERA_DEVICE_PRIMARY = 0,
@@ -36,6 +37,15 @@
GType gst_droidcamsrc_camera_device_get_type (void);
typedef enum {
+ GST_DROIDCAMSRC_IMAGE_MODE_NORMAL = 0x0,
+ GST_DROIDCAMSRC_IMAGE_MODE_ZSL = 0x1,
+ GST_DROIDCAMSRC_IMAGE_MODE_HDR = 0x2,
+} GstDroidCamSrcImageMode;
+
+GType gst_droidcamsrc_image_mode_get_type (void);
+GType gst_droidcamsrc_supported_image_modes_get_type (void);
+
+typedef enum {
GST_DROIDCAMSRC_ROI_FOCUS_AREA = 0x1,
GST_DROIDCAMSRC_ROI_METERING_AREA = 0x2,
GST_DROIDCAMSRC_ROI_FACE_AREA = 0x4,
|
[-]
[+]
|
Changed |
_service:tar_git:gstreamer1.0-droid-0.20161123.0.tar.gz/gst/droidcamsrc/gstdroidcamsrcphotography.h
^
|
@@ -2,6 +2,7 @@
* gst-droid
*
* Copyright (C) 2014 Mohammed Sameer <msameer@foolab.org>
+ * Copyright (C) 2016 Jolla LTD.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -34,6 +35,8 @@
PROP_DEVICE_PARAMETERS,
PROP_CAMERA_DEVICE,
PROP_MODE,
+ PROP_IMAGE_MODE,
+ PROP_SUPPORTED_IMAGE_MODES,
PROP_READY_FOR_CAPTURE,
PROP_MAX_ZOOM,
PROP_VIDEO_TORCH,
@@ -43,8 +46,6 @@
PROP_IMAGE_NOISE_REDUCTION,
PROP_SENSOR_ORIENTATION,
PROP_SENSOR_MOUNT_ANGLE,
- PROP_FAST_CAPTURE,
- PROP_FAST_CAPTURE_SUPPORTED,
/* photography interface */
PROP_WB_MODE,
|