Revert "[Tizen] Change Vector to list." 85/305685/1
authorjoogab.yun <joogab.yun@samsung.com>
Tue, 6 Feb 2024 08:13:02 +0000 (17:13 +0900)
committerjoogab.yun <joogab.yun@samsung.com>
Tue, 6 Feb 2024 08:13:11 +0000 (17:13 +0900)
This reverts commit c0235e1991cb394af6ba0f61fb992088ea4934ba.

Change-Id: I3609c3ea9937f1751e34e0e0924330eeea537ef3

dali-extension/video-player/ecore-wl2/tizen-video-player-ecore-wl2.cpp
dali-extension/video-player/ecore-wl2/tizen-video-player.h

index 023a78b..a96ca8d 100755 (executable)
@@ -19,7 +19,6 @@
 #include <tizen-video-player.h>
 
 // EXTERNAL INCLUDES
-#include <dali/devel-api/adaptor-framework/window-devel.h>
 #include <dali/devel-api/common/stage.h>
 #include <dali/devel-api/threading/mutex.h>
 #include <dali/integration-api/debug.h>
@@ -316,8 +315,7 @@ TizenVideoPlayer::TizenVideoPlayer(Dali::Actor actor, Dali::VideoSyncMode syncMo
   mBackgroundColor(Dali::Vector4(1.0f, 1.0f, 1.0f, 0.0f)),
   mTargetType(NATIVE_IMAGE),
   mPacketMutex(),
-  mPacketList(),
-  mDeletePacketList(),
+  mPacketVector(),
   mStreamInfo(NULL),
   mStreamType(SOUND_STREAM_TYPE_MEDIA),
   mCodecType(PLAYER_VIDEO_CODEC_TYPE_EX_DEFAULT),
@@ -326,8 +324,7 @@ TizenVideoPlayer::TizenVideoPlayer(Dali::Actor actor, Dali::VideoSyncMode syncMo
   mSyncActor(actor),
   mVideoSizePropertyIndex(Property::INVALID_INDEX),
   mSyncMode(syncMode),
-  mIsInitForSyncMode(false),
-  mFrameId(0)
+  mIsInitForSyncMode(false)
 {
 }
 
@@ -530,7 +527,6 @@ void TizenVideoPlayer::Play()
   {
     if(mNativeImageSourcePtr && mTimer)
     {
-      mFrameId = 0;
       mTimer.Start();
     }
 
@@ -540,7 +536,6 @@ void TizenVideoPlayer::Play()
     {
       DALI_LOG_ERROR("Play, player_start() is failed\n");
     }
-
   }
 }
 
@@ -560,6 +555,7 @@ void TizenVideoPlayer::Pause()
     if(mNativeImageSourcePtr && mTimer)
     {
       mTimer.Stop();
+      DestroyPackets();
     }
   }
 }
@@ -580,6 +576,7 @@ void TizenVideoPlayer::Stop()
     if(mNativeImageSourcePtr && mTimer)
     {
       mTimer.Stop();
+      DestroyPackets();
     }
   }
 }
@@ -1015,53 +1012,44 @@ void TizenVideoPlayer::InitializeUnderlayMode(Ecore_Wl2_Window* ecoreWlWindow)
   }
 }
 
-void TizenVideoPlayer::FrameCallback(int32_t frameId)
+bool TizenVideoPlayer::Update()
 {
-  Dali::Mutex::ScopedLock lock( mPacketMutex );
-  if(mFrameId == frameId)
+  Dali::Mutex::ScopedLock lock(mPacketMutex);
+
+  int error;
+
+  if(mPacket != NULL)
   {
-    if(!mPacketList.empty())
+    error = media_packet_destroy(mPacket);
+    if(error != MEDIA_PACKET_ERROR_NONE)
     {
-      mPacket = static_cast< media_packet_h >( mPacketList.front() );
-      mPacketList.pop_front();
-
-      if( mPacket == NULL )
-      {
-        return;
-      }
+      DALI_LOG_ERROR("Update, media_packet_destroy() is failed\n");
+    }
+    mPacket = NULL;
+  }
 
-      int error = media_packet_get_tbm_surface( mPacket, &mTbmSurface );
-      if( error != MEDIA_PACKET_ERROR_NONE )
-      {
-        media_packet_destroy( mPacket );
-        mPacket = NULL;
-        DALI_LOG_ERROR( " error: %d\n", error );
-        return;
-      }
-      Any source( mTbmSurface );
-      mNativeImageSourcePtr->SetSource( source );
+  if(!mPacketVector.Empty())
+  {
+    mPacket = static_cast<media_packet_h>(mPacketVector[0]);
+    mPacketVector.Remove(mPacketVector.Begin());
+  }
 
-      if(!mDeletePacketList.empty())
-      {
-        media_packet_h packet = static_cast< media_packet_h >( mDeletePacketList.front() );
-        int error = media_packet_destroy( packet );
-        if(error != MEDIA_PACKET_ERROR_NONE)
-        {
-          DALI_LOG_ERROR("Update, media_packet_destroy() is failed\n");
-        }
-        mDeletePacketList.pop_front();
-      }
-      mDeletePacketList.push_back(mPacket);
-    }
-    mFrameId = 0;
+  if(mPacket == NULL)
+  {
+    return true;
   }
-}
 
-bool TizenVideoPlayer::Update()
-{
-  Dali::Mutex::ScopedLock lock(mPacketMutex);
+  error = media_packet_get_tbm_surface(mPacket, &mTbmSurface);
+  if(error != MEDIA_PACKET_ERROR_NONE)
+  {
+    media_packet_destroy(mPacket);
+    mPacket = NULL;
+    DALI_LOG_ERROR(" error: %d\n", error);
+    return true;
+  }
 
-  DevelWindow::AddFrameRenderedCallback(DevelWindow::Get(mSyncActor), std::unique_ptr<CallbackBase>(MakeCallback(this, &TizenVideoPlayer::FrameCallback)), ++mFrameId);
+  Any source(mTbmSurface);
+  mNativeImageSourcePtr->SetSource(source);
   Dali::Stage::GetCurrent().KeepRendering(0.0f);
 
   return true;
@@ -1069,42 +1057,28 @@ bool TizenVideoPlayer::Update()
 
 void TizenVideoPlayer::DestroyPackets()
 {
-  Dali::Mutex::ScopedLock lock( mPacketMutex );
   int error;
-
-  if(mNativeImageSourcePtr)
-  {
-    Any source( NULL );
-    mNativeImageSourcePtr->SetSource( source );
-  }
-
-  std::list<media_packet_h>::iterator dIter = mDeletePacketList.begin();
-  for (; dIter != mDeletePacketList.end(); ++dIter)
+  if(mPacket != NULL)
   {
-    mPacket = *dIter;
-    error = media_packet_destroy( mPacket );
-    DALI_LOG_ERROR( "Media packet destroy error: %d\n", error );
+    error = media_packet_destroy(mPacket);
+    DALI_LOG_ERROR("Media packet destroy error: %d\n", error);
     mPacket = NULL;
   }
 
-  std::list<media_packet_h>::iterator iter = mPacketList.begin();
-  for (; iter != mPacketList.end(); ++iter)
+  for(unsigned int i = 0; i < mPacketVector.Size(); ++i)
   {
-    mPacket = *iter;
-    error = media_packet_destroy( mPacket );
-    DALI_LOG_ERROR( "Media packet destroy error: %d\n", error );
+    mPacket = static_cast<media_packet_h>(mPacketVector[i]);
+    error   = media_packet_destroy(mPacket);
+    DALI_LOG_ERROR("Media packet destroy error: %d\n", error);
     mPacket = NULL;
   }
-
-  mPacketList.clear();
-  mDeletePacketList.clear();
-
+  mPacketVector.Clear();
 }
 
 void TizenVideoPlayer::PushPacket(media_packet_h packet)
 {
   Dali::Mutex::ScopedLock lock(mPacketMutex);
-  mPacketList.push_back(packet);
+  mPacketVector.PushBack(packet);
 }
 
 void TizenVideoPlayer::SetDisplayArea(DisplayArea area)
@@ -1231,7 +1205,6 @@ void TizenVideoPlayer::DestroyPlayer()
   int ret = 0;
 
   int error;
-
   if(mPlayerState != PLAYER_STATE_NONE)
   {
     GetPlayerState(&mPlayerState);
@@ -1264,8 +1237,6 @@ void TizenVideoPlayer::DestroyPlayer()
     mPlayerState = PLAYER_STATE_NONE;
     mPlayer      = NULL;
   }
-
-  DestroyPackets();
 }
 
 void TizenVideoPlayer::SetCodecType(Dali::VideoPlayerPlugin::CodecType type)
index 45e0ac2..fde2a7e 100755 (executable)
@@ -27,7 +27,6 @@
 #include <dali/public-api/animation/constraints.h>
 #include <player.h>
 #include <string>
-#include <list>
 
 #ifndef HAVE_WAYLAND
 #define HAVE_WAYLAND
@@ -238,13 +237,6 @@ public:
   Any GetVideoPlayerSurface();
 
 private:
-
-  /**
-   * @brief
-   *
-   */
-  void FrameCallback(int32_t frameId);
-
   /**
    * @brief Updates video frame image by timer if rendering targe is native image source
    */
@@ -303,9 +295,8 @@ private:
   Dali::Vector4              mBackgroundColor;      ///< Current background color, which texturestream mode needs.
   RenderingTargetType        mTargetType;           ///< Current rendering target type
 
-  Dali::Mutex                mPacketMutex;
-  std::list<media_packet_h>  mPacketList;           ///< Container for media packet handle from Tizen player callback
-  std::list<media_packet_h>  mDeletePacketList;     ///< Container for media packet handle from Tizen player callback
+  Dali::Mutex                  mPacketMutex;
+  Dali::Vector<media_packet_h> mPacketVector; ///< Container for media packet handle from Tizen player callback
 
   sound_stream_info_h mStreamInfo;
   sound_stream_type_e mStreamType;
@@ -320,7 +311,6 @@ private:
   Dali::VideoSyncMode   mSyncMode;
 
   bool mIsInitForSyncMode; ///< the flag for synchronization with video player
-  int32_t mFrameId;
 
 public:
   Dali::VideoPlayerPlugin::VideoPlayerSignalType mFinishedSignal;