Fixed a bug what video plugin doesn't show the video if only video file is changed 95/168995/3
authortaeyoon0.lee <taeyoon0.lee@samsung.com>
Thu, 1 Feb 2018 14:01:34 +0000 (23:01 +0900)
committerTaeyoon Lee <taeyoon0.lee@samsung.com>
Fri, 2 Feb 2018 10:27:42 +0000 (10:27 +0000)
Change-Id: I4d174569ae703967cac8750507d31bb08e6bf797

dali-extension/video-player/tizen-video-player.cpp

index e544fe8..26396bd 100644 (file)
@@ -241,20 +241,46 @@ void TizenVideoPlayer::SetUrl( const std::string& url )
 {
   if( mUrl != url )
   {
+    int error = PLAYER_ERROR_NONE;
+
     mUrl = url;
 
     GetPlayerState( &mPlayerState );
 
     if( mPlayerState != PLAYER_STATE_NONE && mPlayerState != PLAYER_STATE_IDLE )
     {
+
+      if( mNativeImageSourcePtr )
+      {
+        error = player_unset_media_packet_video_frame_decoded_cb( mPlayer );
+        LogPlayerError( error );
+      }
+
       Stop();
-      int error = player_unprepare( mPlayer );
+
+      error = player_unprepare( mPlayer );
+      LogPlayerError( error );
+
+      if( mNativeImageSourcePtr )
+      {
+        error = player_set_media_packet_video_frame_decoded_cb( mPlayer, MediaPacketVideoDecodedCb, this );
+        LogPlayerError( error );
+      }
+      else
+      {
+        int width, height;
+        ecore_wl_screen_size_get( &width, &height );
+        error = player_set_ecore_wl_display( mPlayer, PLAYER_DISPLAY_TYPE_OVERLAY, mEcoreWlWindow, 0, 0, width, height );
+        LogPlayerError( error );
+      }
+
+      GetPlayerState( &mPlayerState );
       LogPlayerError( error );
     }
 
     if( mPlayerState == PLAYER_STATE_IDLE )
     {
-      int error = player_set_uri( mPlayer, mUrl.c_str() );
+      error = player_set_uri( mPlayer, mUrl.c_str() );
       LogPlayerError( error );
 
       error = player_prepare( mPlayer );