[MediaPlayer] Add new API to set video codec type (#5359)
[platform/core/csapi/tizenfx.git] / src / Tizen.Multimedia.MediaPlayer / Player / PlayerEnums.cs
index 18ad88e..137fc1a 100644 (file)
@@ -14,6 +14,7 @@
  * limitations under the License.
  */
 using System;
+using System.Threading;
 using Tizen.Internals.Errors;
 
 namespace Tizen.Multimedia
@@ -23,6 +24,7 @@ namespace Tizen.Multimedia
     /// </summary>
     /// <seealso cref="Player.ErrorOccurred"/>
     /// <seealso cref="PlayerErrorOccurredEventArgs"/>
+    /// <since_tizen> 3 </since_tizen>
     public enum PlayerError
     {
         /// <summary>
@@ -40,25 +42,13 @@ namespace Tizen.Multimedia
         /// </summary>
         NoSpaceOnDevice = PlayerErrorCode.NoSpaceOnDevice,
 
-        //TODO must be removed.
-        /// <summary>
-        /// Not supported.
-        /// </summary>
-        FeatureNotSupported = ErrorCode.NotSupported,
-
-        //TODO must be removed.
-        /// <summary>
-        /// Permission denined.
-        /// </summary>
-        PermissionDenied = ErrorCode.PermissionDenied,
-
         /// <summary>
         /// Not enough buffer.
         /// </summary>
         BufferSpace = ErrorCode.BufferSpace,
 
         /// <summary>
-        /// <see cref="Player.SetPlayPositionAsync(int, bool)/> failed.
+        /// <see cref="Player.SetPlayPositionAsync(int, bool)"/> failed.
         /// </summary>
         SeekFailed = PlayerErrorCode.SeekFailed,
 
@@ -77,56 +67,32 @@ namespace Tizen.Multimedia
         /// </summary>
         InvalidUri = PlayerErrorCode.InvalidUri,
 
-        //TODO must be removed.
-        /// <summary>
-        /// Sound policy error.
-        /// </summary>
-        SoundPolicy = PlayerErrorCode.SoundPolicyError,
-
         /// <summary>
         /// Connection to service failed.
         /// </summary>
         ConnectionFailed = PlayerErrorCode.ConnectionFailed,
 
-        // TODO must be removed.
-        /// <summary>
-        /// Capture failed.
-        /// </summary>
-        VideoCaptureFailed = PlayerErrorCode.VideoCaptureFailed,
-
-        // TODO must be removed.
-        /// <summary>
-        /// DRM expired.
-        /// </summary>
-        DrmExpired = PlayerErrorCode.DrmExpired,
-
-        // TODO must be removed.
         /// <summary>
-        /// No license of DRM.
-        /// </summary>
-        DrmNoLicense = PlayerErrorCode.DrmNoLicense,
-
-        // TODO must be removed.
-        /// <summary>
-        /// Not used.
+        /// Not permitted DRM.
         /// </summary>
-        DrmFutureUse = PlayerErrorCode.DrmFutureUse,
+        DrmNotPermitted = PlayerErrorCode.DrmNotPermitted,
 
         /// <summary>
-        /// Not permitted DRM.
+        /// Service disconnected.
         /// </summary>
-        DrmNotPermitted = PlayerErrorCode.DrmNotPermitted,
+        ServiceDisconnected = PlayerErrorCode.ServiceDisconnected,
 
-        // TODO must be removed.
         /// <summary>
-        /// Not enough resource.
+        /// Not supported audio codec.
         /// </summary>
-        ResourceLimit = PlayerErrorCode.ResourceLimit,
+        /// <since_tizen> 4 </since_tizen>
+        AudioCodecNotSupported = PlayerErrorCode.NotSupportedAudioCodec,
 
         /// <summary>
-        /// Service disconnected.
+        /// Not supported video codec.
         /// </summary>
-        ServiceDisconnected = PlayerErrorCode.ServiceDisconnected,
+        /// <since_tizen> 4 </since_tizen>
+        VideoCodecNotSupported = PlayerErrorCode.NotSupportedVideoCodec,
 
         /// <summary>
         /// Not supported subtitle file.
@@ -137,6 +103,7 @@ namespace Tizen.Multimedia
     /// <summary>
     /// Specifies states that a <see cref="Player"/> can have.
     /// </summary>
+    /// <since_tizen> 3 </since_tizen>
     public enum PlayerState
     {
         /// <summary>
@@ -148,7 +115,8 @@ namespace Tizen.Multimedia
         /// <summary>
         /// Prepared.
         /// </summary>
-        /// <seealso cref="Player.PrepareAsync"/>
+        /// <seealso cref="Player.PrepareAsync()"/>
+        /// <seealso cref="Player.PrepareAsync(CancellationToken)"/>
         Ready,
 
         /// <summary>
@@ -164,9 +132,11 @@ namespace Tizen.Multimedia
         Paused,
 
         /// <summary>
-        /// Preparing in progress.
+        /// Preparation in progress.
         /// </summary>
-        /// <seealso cref="Player.PrepareAsync"/>/>
+        /// <remarks>In this state, other methods and properties cannot be set.</remarks>
+        /// <seealso cref="Player.PrepareAsync()"/>
+        /// <seealso cref="Player.PrepareAsync(CancellationToken)"/>
         Preparing,
     }
 
@@ -179,9 +149,10 @@ namespace Tizen.Multimedia
     }
 
     /// <summary>
-    /// Specifies audio latency modes for <see cref="Player"/> .
+    /// Specifies audio latency modes for <see cref="Player"/>.
     /// </summary>
     /// <seealso cref="Player.AudioLatencyMode"/>
+    /// <since_tizen> 3 </since_tizen>
     public enum AudioLatencyMode
     {
         /// <summary>
@@ -201,9 +172,10 @@ namespace Tizen.Multimedia
     }
 
     /// <summary>
-    /// Specifies display modes for <see cref="Player"/>
+    /// Specifies display modes for <see cref="Player"/>.
     /// </summary>
-    /// <seealso cref="Display.Mode"/>
+    /// <seealso cref="PlayerDisplaySettings.Mode"/>
+    /// <since_tizen> 3 </since_tizen>
     public enum PlayerDisplayMode
     {
         /// <summary>
@@ -227,31 +199,32 @@ namespace Tizen.Multimedia
         CroppedFull,
 
         /// <summary>
-        /// Origin size (if surface size is larger than video size(width/height)) or
-        /// Letter box (if video size(width/height) is larger than surface size).
+        /// Original size (if surface size is larger than video size(width/height)) or
+        /// letter box (if video size(width/height) is larger than surface size).
         /// </summary>
         OriginalOrFull,
 
         /// <summary>
-        /// Region of interest, See <see cref="Display.SetRoi(Rectangle)"/>.
+        /// Region of interest.
         /// </summary>
+        /// <seealso cref="PlayerDisplaySettings.SetRoi(Rectangle)"/>
         Roi
     }
 
     internal enum StreamType
     {
         /// <summary>
-        ///  Audio element stream type
+        ///  Audio element stream type.
         /// </summary>
         Audio = 1,
 
         /// <summary>
-        /// Video element stream type
+        /// Video element stream type.
         /// </summary>
         Video,
 
         /// <summary>
-        /// Text type
+        /// Text type.
         /// </summary>
         Text
     }
@@ -261,6 +234,7 @@ namespace Tizen.Multimedia
     /// </summary>
     /// <seealso cref="MediaStreamConfiguration.BufferStatusChanged"/>
     /// <seealso cref="MediaStreamBufferStatusChangedEventArgs"/>
+    /// <since_tizen> 3 </since_tizen>
     public enum MediaStreamBufferStatus
     {
         /// <summary>
@@ -278,10 +252,11 @@ namespace Tizen.Multimedia
     /// Specifies the reason for the playback interruption.
     /// </summary>
     /// <seealso cref="Player.PlaybackInterrupted"/>
+    /// <since_tizen> 3 </since_tizen>
     public enum PlaybackInterruptionReason
     {
         /// <summary>
-        /// Interrupted by a resource conflict and the <see cref="Player"/> will be unprepared, automatically.
+        /// Interrupted by a resource conflict and the <see cref="Player"/> will be unprepared automatically.
         /// </summary>
         ResourceConflict = 4
     }
@@ -290,6 +265,7 @@ namespace Tizen.Multimedia
     /// Specifies keys for the metadata.
     /// </summary>
     /// <seealso cref="StreamInfo.GetMetadata(StreamMetadataKey)"/>
+    /// <since_tizen> 3 </since_tizen>
     public enum StreamMetadataKey
     {
         /// <summary>
@@ -322,4 +298,50 @@ namespace Tizen.Multimedia
         /// </summary>
         Year
     }
+
+    /// <summary>
+    /// Enumeration of audio extract option.
+    /// </summary>
+    /// <seealso cref="Player.EnableExportingAudioData"/>
+    /// <since_tizen> 6 </since_tizen>
+    public enum PlayerAudioExtractOption
+    {
+        /// <summary>
+        /// Sync multi-channel audio stream with the playback clock.
+        /// </summary>
+        Default = 0x00,
+
+        /// <summary>
+        /// No sync with the playback clock.
+        /// </summary>
+        NoSyncWithClock = 0x01,
+
+        /// <summary>
+        /// Splits one interleaved multi-channel audio stream into several mono audio streams.
+        /// </summary>
+        Deinterleave = 0x02,
+
+        /// <summary>
+        /// Doesn't sync with clock and doesn't split multi-channel audio stream into several mono audio streams.
+        /// </summary>
+        NoSyncAndDeinterleave = 0x03,
+    }
+
+    /// <summary>
+    /// Specifies the types of a codec for <see cref="Player"/>.
+    /// </summary>
+    /// <seealso cref="Player.AudioCodecType"/>
+    /// <since_tizen> 6 </since_tizen>
+    public enum CodecType
+    {
+        /// <summary>
+        /// An optional flag for using the H/W codec.
+        /// </summary>
+        Hardware,
+
+        /// <summary>
+        ///  An optional flag for using the S/W codec
+        /// </summary>
+        Software,
+    }
 }