[Camera] Add APIs for extra preview bitrate (#3527)
authorHaesu Gwon <haesu.gwon@samsung.com>
Mon, 13 Sep 2021 00:12:21 +0000 (09:12 +0900)
committerGitHub <noreply@github.com>
Mon, 13 Sep 2021 00:12:21 +0000 (09:12 +0900)
src/Tizen.Multimedia.Camera/Camera/CameraSettings.cs
src/Tizen.Multimedia.Camera/Interop/Interop.CameraSettings.cs

index e8eb89e..275e593 100644 (file)
@@ -1238,7 +1238,7 @@ namespace Tizen.Multimedia
         /// </summary>
         /// <param name="streamId">The stream id.</param>
         /// <since_tizen> 9 </since_tizen>
-        /// <exception cref="ObjectDisposedException">The camera already has been disposed of.</exception>
+        /// <exception cref="ObjectDisposedException">The camera already has been disposed.</exception>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public ExtraPreviewStreamInfo GetExtraPreviewStreamInfo(int streamId)
         {
@@ -1253,13 +1253,42 @@ namespace Tizen.Multimedia
         /// </summary>
         /// <param name="info">The extra preview stream information.</param>
         /// <since_tizen> 9 </since_tizen>
-        /// <exception cref="ObjectDisposedException">The camera already has been disposed of.</exception>
+        /// <exception cref="ObjectDisposedException">The camera already has been disposed.</exception>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public void SetExtraPreviewStreamInfo(ExtraPreviewStreamInfo info)
         {
             SetExtraPreviewStreamFormat(_camera.GetHandle(), info.StreamId, info.Format,
                 info.Size.Width, info.Size.Height, info.Fps).ThrowIfFailed("Failed to set extra preview stream foramt");
         }
+
+        /// <summary>
+        /// Gets the bitrate of extra preview with given stream id.
+        /// </summary>
+        /// <param name="streamId">The stream id.</param>
+        /// <since_tizen> 9 </since_tizen>
+        /// <exception cref="ObjectDisposedException">The camera already has been disposed.</exception>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public int GetExtraPreviewBitrate(int streamId)
+        {
+            Native.GetExtraPreviewBitrate(_camera.GetHandle(), streamId, out int bitrate).
+                ThrowIfFailed("Failed to get extra preview bitrate");
+
+            return bitrate;
+        }
+
+        /// <summary>
+        /// Sets the bitrate of extra preview with given stream id.
+        /// </summary>
+        /// <param name="streamId">The stream id.</param>
+        /// <param name="bitrate">The bitrate fo extra preview.</param>
+        /// <since_tizen> 9 </since_tizen>
+        /// <exception cref="ObjectDisposedException">The camera already has been disposed.</exception>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void SetExtraPreviewBitrate(int streamId, int bitrate)
+        {
+            Native.SetExtraPreviewBitrate(_camera.GetHandle(), streamId, bitrate).
+                ThrowIfFailed("Failed to set extra preview bitrate");
+        }
     }
 
     /// <summary>
index 01a7395..ec177d7 100644 (file)
@@ -240,5 +240,11 @@ internal static partial class Interop
 
         [DllImport(Libraries.Camera, EntryPoint = "camera_attr_set_ptz_type")]
         internal static extern CameraError SetPtzType(IntPtr handle, CameraPtzType type);
+
+        [DllImport(Libraries.Camera, EntryPoint = "camera_attr_set_extra_preview_bitrate")]
+        internal static extern CameraError SetExtraPreviewBitrate(IntPtr handle, int streamId, int bitrate);
+
+        [DllImport(Libraries.Camera, EntryPoint = "camera_attr_get_extra_preview_bitrate")]
+        internal static extern CameraError GetExtraPreviewBitrate(IntPtr handle, int streamId, out int bitrate);
     }
 }