base:cameracontrol: Add new interface for switching device 51/322251/2
authorJeongmo Yang <jm80.yang@samsung.com>
Fri, 10 Jan 2025 07:15:03 +0000 (16:15 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Thu, 10 Apr 2025 09:56:56 +0000 (18:56 +0900)
[Version] 1.24.11-11
[Issue Type] New feature

Change-Id: I5bfc58601f9938421850e022959482473dd439e9
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
packaging/gstreamer.spec
subprojects/gst-plugins-base/gst-libs/gst/video/cameracontrol.c
subprojects/gst-plugins-base/gst-libs/gst/video/cameracontrol.h

index a9d391533756460129287498d70a98453f84820b..2e757fe2348bfabb8e100c3d1e1217f2a9e119bb 100644 (file)
@@ -61,7 +61,7 @@
 
 Name:           %{_name}
 Version:        1.24.11
-Release:        10
+Release:        11
 Summary:        Streaming-Media Framework Runtime
 License:        LGPL-2.0+
 Group:          Multimedia/Framework
index 62c41db594c9765a9c442a9dc2c0a8b79f6e2475..12ec5a341e2d605314450e5983d2aa0fb3b904fb 100644 (file)
@@ -796,6 +796,20 @@ gboolean gst_camera_control_get_extra_preview_gop_interval(GstCameraControl *con
        return FALSE;
 }
 
+gboolean gst_camera_control_switch_device(GstCameraControl *control, int device)
+{
+       GstCameraControlInterface *iface;
+
+       g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+       iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+       if (iface->switch_device)
+               return iface->switch_device(control, device);
+
+       return FALSE;
+}
+
 void gst_camera_control_value_changed(GstCameraControl *control, GstCameraControlChannel *control_channel, gint value)
 {
        g_signal_emit(G_OBJECT(control), gst_camera_control_signals[CONTROL_VALUE_CHANGED], 0, control_channel, value);
index b87170f97fd7bc95eae3e705a47f2027b8f5bcd5..85e7c98717b7b9907a2450b333093554e071b4c1 100644 (file)
@@ -405,6 +405,7 @@ struct _GstCameraControlInterface {
        gboolean        (*get_extra_preview_bitrate)   (GstCameraControl *control, int stream_id, int *bitrate);
        gboolean        (*set_extra_preview_gop_interval)  (GstCameraControl *control, int stream_id, int interval);
        gboolean        (*get_extra_preview_gop_interval)  (GstCameraControl *control, int stream_id, int *interval);
+       gboolean        (*switch_device)               (GstCameraControl *control, gint device);
 
        /* signals */
        void (* value_changed)                          (GstCameraControl *control, GstCameraControlChannel *channel, gint value);
@@ -551,6 +552,9 @@ gboolean    gst_camera_control_set_extra_preview_gop_interval   (GstCameraControl *
 GST_VIDEO_API
 gboolean       gst_camera_control_get_extra_preview_gop_interval   (GstCameraControl *control, int stream_id, int *interval);
 
+GST_VIDEO_API
+gboolean       gst_camera_control_switch_device        (GstCameraControl *control, int device);
+
 /* trigger signal */
 GST_VIDEO_API
 void           gst_camera_control_value_changed        (GstCameraControl *control, GstCameraControlChannel *control_channel, gint value);