cameracontrol: Add new interface for extra preview GOP interval
authorJeongmo Yang <jm80.yang@samsung.com>
Mon, 13 Sep 2021 11:16:35 +0000 (20:16 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Mon, 13 Sep 2021 11:16:35 +0000 (20:16 +0900)
[Version] 1.16.2-18
[Issue Type] New feature

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

index 2991b42..62c41db 100644 (file)
@@ -768,6 +768,34 @@ gboolean gst_camera_control_get_extra_preview_bitrate(GstCameraControl *control,
        return FALSE;
 }
 
+gboolean gst_camera_control_set_extra_preview_gop_interval(GstCameraControl *control, int stream_id, int interval)
+{
+       GstCameraControlInterface *iface;
+
+       g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+       iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+       if (iface->set_extra_preview_gop_interval)
+               return iface->set_extra_preview_gop_interval(control, stream_id, interval);
+
+       return FALSE;
+}
+
+gboolean gst_camera_control_get_extra_preview_gop_interval(GstCameraControl *control, int stream_id, int *interval)
+{
+       GstCameraControlInterface *iface;
+
+       g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+       iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+       if (iface->get_extra_preview_gop_interval)
+               return iface->get_extra_preview_gop_interval(control, stream_id, interval);
+
+       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 c9d364c..29fe2a9 100644 (file)
@@ -402,6 +402,8 @@ struct _GstCameraControlInterface {
        gboolean        (*get_extra_preview_stream_format) (GstCameraControl *control, int stream_id, GstCameraControlImageFormat *img_fmt, int *width, int *height, int *fps);
        gboolean        (*set_extra_preview_bitrate)   (GstCameraControl *control, int stream_id, int bitrate);
        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);
 
        /* signals */
        void (* value_changed)                          (GstCameraControl *control, GstCameraControlChannel *channel, gint value);
@@ -542,6 +544,12 @@ gboolean   gst_camera_control_set_extra_preview_bitrate  (GstCameraControl *contro
 GST_VIDEO_API
 gboolean       gst_camera_control_get_extra_preview_bitrate  (GstCameraControl *control, int stream_id, int *bitrate);
 
+GST_VIDEO_API
+gboolean       gst_camera_control_set_extra_preview_gop_interval   (GstCameraControl *control, int stream_id, int interval);
+
+GST_VIDEO_API
+gboolean       gst_camera_control_get_extra_preview_gop_interval   (GstCameraControl *control, int stream_id, int *interval);
+
 /* trigger signal */
 GST_VIDEO_API
 void           gst_camera_control_value_changed        (GstCameraControl *control, GstCameraControlChannel *control_channel, gint value);
index ef6a135..ce6cbf1 100644 (file)
@@ -5,7 +5,7 @@
 
 Name:           gst-plugins-base
 Version:        1.16.2
-Release:        17
+Release:        18
 License:        LGPL-2.0+
 Summary:        GStreamer Streaming-Media Framework Plug-Ins
 Url:            http://gstreamer.freedesktop.org/