cameracontrol: Add new interface for switching device 66/317966/1 accepted/tizen/7.0/unified/20250120.160727
authorJeongmo Yang <jm80.yang@samsung.com>
Fri, 10 Jan 2025 07:15:03 +0000 (16:15 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Fri, 10 Jan 2025 07:15:03 +0000 (16:15 +0900)
[Version] 1.20.0-61
[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 190a7f1624685f053235ff8dca28f48b159c35eb..8d235bb1d89cfe0b27d994d97f4218eab434d710 100644 (file)
@@ -62,7 +62,7 @@
 
 Name:           %{_name}
 Version:        1.20.0
-Release:        60
+Release:        61
 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 29fe2a9f0fb91ac1b3dccfe37a6167635eddbfa2..0332aa69f7f95afdb430b5ad01391e578f7f04f0 100644 (file)
@@ -404,6 +404,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);
@@ -550,6 +551,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);