gstreamer: Remove auto-focus-mode property from libcamerasrc
In preparation for generic support of all libcamera controls, remove the manual handling of the auto-focus-mode property from the libcamerasrc element. Signed-off-by: Jaslo Ziska <jaslo@ziska.de> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
parent
327b0d16a1
commit
aebc8742b0
2 changed files with 0 additions and 59 deletions
|
@ -142,7 +142,6 @@ struct _GstLibcameraSrc {
|
||||||
GstTask *task;
|
GstTask *task;
|
||||||
|
|
||||||
gchar *camera_name;
|
gchar *camera_name;
|
||||||
controls::AfModeEnum auto_focus_mode = controls::AfModeManual;
|
|
||||||
|
|
||||||
std::atomic<GstEvent *> pending_eos;
|
std::atomic<GstEvent *> pending_eos;
|
||||||
|
|
||||||
|
@ -154,7 +153,6 @@ struct _GstLibcameraSrc {
|
||||||
enum {
|
enum {
|
||||||
PROP_0,
|
PROP_0,
|
||||||
PROP_CAMERA_NAME,
|
PROP_CAMERA_NAME,
|
||||||
PROP_AUTO_FOCUS_MODE,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static void gst_libcamera_src_child_proxy_init(gpointer g_iface,
|
static void gst_libcamera_src_child_proxy_init(gpointer g_iface,
|
||||||
|
@ -663,18 +661,6 @@ gst_libcamera_src_task_enter(GstTask *task, [[maybe_unused]] GThread *thread,
|
||||||
gst_pad_push_event(srcpad, gst_event_new_segment(&segment));
|
gst_pad_push_event(srcpad, gst_event_new_segment(&segment));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (self->auto_focus_mode != controls::AfModeManual) {
|
|
||||||
const ControlInfoMap &infoMap = state->cam_->controls();
|
|
||||||
if (infoMap.find(&controls::AfMode) != infoMap.end()) {
|
|
||||||
state->initControls_.set(controls::AfMode, self->auto_focus_mode);
|
|
||||||
} else {
|
|
||||||
GST_ELEMENT_ERROR(self, RESOURCE, SETTINGS,
|
|
||||||
("Failed to enable auto focus"),
|
|
||||||
("AfMode not supported by this camera, "
|
|
||||||
"please retry with 'auto-focus-mode=AfModeManual'"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = state->cam_->start(&state->initControls_);
|
ret = state->cam_->start(&state->initControls_);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
GST_ELEMENT_ERROR(self, RESOURCE, SETTINGS,
|
GST_ELEMENT_ERROR(self, RESOURCE, SETTINGS,
|
||||||
|
@ -742,9 +728,6 @@ gst_libcamera_src_set_property(GObject *object, guint prop_id,
|
||||||
g_free(self->camera_name);
|
g_free(self->camera_name);
|
||||||
self->camera_name = g_value_dup_string(value);
|
self->camera_name = g_value_dup_string(value);
|
||||||
break;
|
break;
|
||||||
case PROP_AUTO_FOCUS_MODE:
|
|
||||||
self->auto_focus_mode = static_cast<controls::AfModeEnum>(g_value_get_enum(value));
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
|
||||||
break;
|
break;
|
||||||
|
@ -762,9 +745,6 @@ gst_libcamera_src_get_property(GObject *object, guint prop_id, GValue *value,
|
||||||
case PROP_CAMERA_NAME:
|
case PROP_CAMERA_NAME:
|
||||||
g_value_set_string(value, self->camera_name);
|
g_value_set_string(value, self->camera_name);
|
||||||
break;
|
break;
|
||||||
case PROP_AUTO_FOCUS_MODE:
|
|
||||||
g_value_set_enum(value, static_cast<gint>(self->auto_focus_mode));
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
|
||||||
break;
|
break;
|
||||||
|
@ -967,14 +947,6 @@ gst_libcamera_src_class_init(GstLibcameraSrcClass *klass)
|
||||||
| G_PARAM_STATIC_STRINGS));
|
| G_PARAM_STATIC_STRINGS));
|
||||||
g_object_class_install_property(object_class, PROP_CAMERA_NAME, spec);
|
g_object_class_install_property(object_class, PROP_CAMERA_NAME, spec);
|
||||||
|
|
||||||
spec = g_param_spec_enum("auto-focus-mode",
|
|
||||||
"Set auto-focus mode",
|
|
||||||
"Available options: AfModeManual, "
|
|
||||||
"AfModeAuto or AfModeContinuous.",
|
|
||||||
gst_libcamera_auto_focus_get_type(),
|
|
||||||
static_cast<gint>(controls::AfModeManual),
|
|
||||||
G_PARAM_WRITABLE);
|
|
||||||
g_object_class_install_property(object_class, PROP_AUTO_FOCUS_MODE, spec);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* GstChildProxy implementation */
|
/* GstChildProxy implementation */
|
||||||
|
|
|
@ -8,8 +8,6 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <libcamera/control_ids.h>
|
|
||||||
|
|
||||||
#include <gst/gst.h>
|
#include <gst/gst.h>
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
@ -19,32 +17,3 @@ G_DECLARE_FINAL_TYPE(GstLibcameraSrc, gst_libcamera_src,
|
||||||
GST_LIBCAMERA, SRC, GstElement)
|
GST_LIBCAMERA, SRC, GstElement)
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
inline GType
|
|
||||||
gst_libcamera_auto_focus_get_type()
|
|
||||||
{
|
|
||||||
static GType type = 0;
|
|
||||||
static const GEnumValue values[] = {
|
|
||||||
{
|
|
||||||
static_cast<gint>(libcamera::controls::AfModeManual),
|
|
||||||
"AfModeManual",
|
|
||||||
"manual-focus",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
static_cast<gint>(libcamera::controls::AfModeAuto),
|
|
||||||
"AfModeAuto",
|
|
||||||
"automatic-auto-focus",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
static_cast<gint>(libcamera::controls::AfModeContinuous),
|
|
||||||
"AfModeContinuous",
|
|
||||||
"continuous-auto-focus",
|
|
||||||
},
|
|
||||||
{ 0, NULL, NULL }
|
|
||||||
};
|
|
||||||
|
|
||||||
if (!type)
|
|
||||||
type = g_enum_register_static("GstLibcameraAutoFocus", values);
|
|
||||||
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue