GST_TAG_CAPTURING_WHITE_BALANCE
GST_TAG_CAPTURING_CONTRAST
GST_TAG_CAPTURING_SATURATION
+GST_TAG_CAPTURING_SHARPNESS
GST_TAG_CAPTURING_FLASH_FIRED
GST_TAG_CAPTURING_FLASH_MODE
GST_TAG_IMAGE_HORIZONTAL_PPI
EXIF_SERIALIZATION_DESERIALIZATION_FUNC (saturation);
EXIF_SERIALIZATION_DESERIALIZATION_FUNC (scene_capture_type);
EXIF_SERIALIZATION_DESERIALIZATION_FUNC (sensitivity_type);
+EXIF_SERIALIZATION_DESERIALIZATION_FUNC (sharpness);
EXIF_SERIALIZATION_DESERIALIZATION_FUNC (shutter_speed);
EXIF_SERIALIZATION_DESERIALIZATION_FUNC (speed);
EXIF_SERIALIZATION_DESERIALIZATION_FUNC (white_balance);
#define EXIF_TAG_GAIN_CONTROL 0xA407
#define EXIF_TAG_CONTRAST 0xA408
#define EXIF_TAG_SATURATION 0xA409
+#define EXIF_TAG_SHARPNESS 0xA40A
/* IFD pointer tags */
#define EXIF_IFD_TAG 0x8769
serialize_contrast, deserialize_contrast},
{GST_TAG_CAPTURING_SATURATION, EXIF_TAG_SATURATION, EXIF_TYPE_SHORT, 0,
serialize_saturation, deserialize_saturation},
+ {GST_TAG_CAPTURING_SHARPNESS, EXIF_TAG_SHARPNESS, EXIF_TYPE_SHORT, 0,
+ serialize_sharpness, deserialize_sharpness},
{NULL, 0, 0, 0, NULL, NULL}
};
capturing_saturation);
EXIF_SERIALIZATION_DESERIALIZATION_MAP_STRING_TO_INT_FUNC (scene_capture_type,
capturing_scene_capture_type);
+EXIF_SERIALIZATION_DESERIALIZATION_MAP_STRING_TO_INT_FUNC (sharpness,
+ capturing_sharpness);
EXIF_SERIALIZATION_DESERIALIZATION_MAP_STRING_TO_INT_FUNC (white_balance,
capturing_white_balance);
}
}
-gint
-__exif_tag_capturing_contrast_to_exif_value (const gchar * str)
+static gint
+__exif_tag_capturing_contrast_sharpness_to_exif_value (const gchar * str,
+ const gchar * tag_name)
{
if (str == NULL)
goto end;
return 2;
end:
- GST_WARNING ("Invalid contrast type: %s", str);
+ GST_WARNING ("Invalid %s type: %s", tag_name, str);
return -1;
}
-const gchar *
-__exif_tag_capturing_contrast_from_exif_value (gint value)
+static const gchar *
+__exif_tag_capturing_contrast_sharpness_from_exif_value (gint value,
+ const gchar * tag_name)
{
switch (value) {
case 0:
case 2:
return "hard";
default:
- GST_WARNING ("Invalid contrast type: %d", value);
+ GST_WARNING ("Invalid %s type: %d", tag_name, value);
return NULL;
}
}
gint
+__exif_tag_capturing_contrast_to_exif_value (const gchar * str)
+{
+ return __exif_tag_capturing_contrast_sharpness_to_exif_value (str,
+ "contrast");
+}
+
+const gchar *
+__exif_tag_capturing_contrast_from_exif_value (gint value)
+{
+ return __exif_tag_capturing_contrast_sharpness_from_exif_value (value,
+ "contrast");
+}
+
+gint
__exif_tag_capturing_saturation_to_exif_value (const gchar * str)
{
if (str == NULL)
return NULL;
}
}
+
+gint
+__exif_tag_capturing_sharpness_to_exif_value (const gchar * str)
+{
+ return __exif_tag_capturing_contrast_sharpness_to_exif_value (str,
+ "sharpness");
+}
+
+const gchar *
+__exif_tag_capturing_sharpness_from_exif_value (gint value)
+{
+ return __exif_tag_capturing_contrast_sharpness_from_exif_value (value,
+ "sharpness");
+}
gint __exif_tag_capturing_saturation_to_exif_value (const gchar * str);
const gchar * __exif_tag_capturing_saturation_from_exif_value (gint value);
+gint __exif_tag_capturing_sharpness_to_exif_value (const gchar * str);
+const gchar * __exif_tag_capturing_sharpness_from_exif_value (gint value);
+
G_END_DECLS
#endif /* __GST_TAG_EDIT_PRIVATE_H__ */
#define GST_TAG_CAPTURING_SATURATION "capturing-saturation"
/**
+ * GST_TAG_CAPTURING_SHARPNESS:
+ *
+ * Direction of sharpness processing applied when capturing an image. (string)
+ *
+ * The allowed values are:
+ * "normal"
+ * "soft"
+ * "hard"
+ *
+ * Since: 0.10.31
+ */
+#define GST_TAG_CAPTURING_SHARPNESS "capturing-sharpness"
+
+/**
* GST_TAG_CAPTURING_FLASH_FIRED:
*
* If flash was fired during the capture of an image. (boolean)
_("The direction of saturation processing applied when "
"capturing an image"), NULL);
+ gst_tag_register (GST_TAG_CAPTURING_SHARPNESS, GST_TAG_FLAG_META,
+ G_TYPE_STRING, _("capturing sharpness"),
+ _("The direction of sharpness processing applied "
+ "when capturing an image"), NULL);
+
gst_tag_register (GST_TAG_CAPTURING_FLASH_FIRED, GST_TAG_FLAG_META,
G_TYPE_BOOLEAN, _("capturing flash fired"),
_("If the flash fired while capturing and image"), NULL);
g_value_set_static_string (&value, "high-saturation");
do_simple_exif_tag_serialization_deserialization
(GST_TAG_CAPTURING_SATURATION, &value);
+
+ g_value_set_static_string (&value, "normal");
+ do_simple_exif_tag_serialization_deserialization (GST_TAG_CAPTURING_SHARPNESS,
+ &value);
+ g_value_set_static_string (&value, "hard");
+ do_simple_exif_tag_serialization_deserialization (GST_TAG_CAPTURING_SHARPNESS,
+ &value);
+ g_value_set_static_string (&value, "soft");
+ do_simple_exif_tag_serialization_deserialization (GST_TAG_CAPTURING_SHARPNESS,
+ &value);
g_value_unset (&value);
g_value_init (&value, G_TYPE_DOUBLE);