[MediaPlayer] add API to export video frames (#983)
[platform/core/csapi/tizenfx.git] / src / Tizen.Multimedia.MediaPlayer / Player / Player.Events.cs
index 5d2f5f1..158fa46 100644 (file)
@@ -74,6 +74,8 @@ namespace Tizen.Multimedia
         public event EventHandler<BufferingProgressChangedEventArgs> BufferingProgressChanged;
         private NativePlayer.BufferingProgressCallback _bufferingProgressCallback;
 
+        private NativePlayer.PrepareCallback _prepareCallback;
+
         internal event EventHandler<MediaStreamBufferStatusChangedEventArgs> MediaStreamAudioBufferStatusChanged;
         private NativePlayer.MediaStreamBufferStatusCallback _mediaStreamAudioBufferStatusChangedCallback;
 
@@ -169,11 +171,6 @@ namespace Tizen.Multimedia
         }
 
         #region VideoFrameDecoded event
-
-        private EventHandler<VideoFrameDecodedEventArgs> _videoFrameDecoded;
-
-        private NativePlayer.VideoFrameDecodedCallback _videoFrameDecodedCallback;
-
         /// <summary>
         /// Occurs when a video frame is decoded.
         /// </summary>
@@ -185,42 +182,23 @@ namespace Tizen.Multimedia
         /// <exception cref="NotSupportedException">The required feature is not supported.</exception>
         /// <seealso cref="VideoFrameDecodedEventArgs.Packet"/>
         /// <since_tizen> 3 </since_tizen>
-        public event EventHandler<VideoFrameDecodedEventArgs> VideoFrameDecoded
-        {
-            add
-            {
-                ValidationUtil.ValidateFeatureSupported(PlayerFeatures.RawVideo);
-
-                _videoFrameDecoded += value;
-            }
-            remove
-            {
-                ValidationUtil.ValidateFeatureSupported(PlayerFeatures.RawVideo);
-
-                _videoFrameDecoded -= value;
-            }
-        }
+        public event EventHandler<VideoFrameDecodedEventArgs> VideoFrameDecoded;
+        private NativePlayer.VideoFrameDecodedCallback _videoFrameDecodedCallback;
+        #endregion
 
-        private void RegisterVideoFrameDecodedCallback()
-        {
-            _videoFrameDecodedCallback = (packetHandle, _) =>
-            {
-                var handler = _videoFrameDecoded;
-                if (handler != null)
-                {
-                    Log.Debug(PlayerLog.Tag, "packet : " + packetHandle);
-                    handler.Invoke(this,
-                        new VideoFrameDecodedEventArgs(MediaPacket.From(packetHandle)));
-                }
-                else
-                {
-                    MediaPacket.From(packetHandle).Dispose();
-                }
-            };
+        #region AudioFrameDecoded event
+        /// <summary>
+        /// Occurs when a audio frame is decoded.
+        /// </summary>
+        /// <remarks>
+        ///     <para>The event handler will be executed on an internal thread.</para>
+        ///     <para>The <see cref="AudioDataDecodedEventArgs.Packet"/> in event args should be disposed after use.</para>
+        /// </remarks>
+        /// <seealso cref="AudioDataDecodedEventArgs.Packet"/>
+        /// <since_tizen> 6 </since_tizen>
+        public event EventHandler<AudioDataDecodedEventArgs> AudioDataDecoded;
 
-            NativePlayer.SetVideoFrameDecodedCb(Handle, _videoFrameDecodedCallback).
-                ThrowIfFailed(this, "Failed to register the VideoFrameDecoded");
-        }
+        private NativePlayer.AudioFrameDecodedCallback _audioFrameDecodedCallback;
         #endregion
 
         private void RegisterVideoStreamChangedCallback()