X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=plugins%2Fvideo-player%2Ftizen-video-player.cpp;h=c54a55829e4c369e6c85b87a6a1167c84c9ea17c;hb=1a1bce6a5a8ff8ecd1f84deea5aab842af234549;hp=d33e2347d5f3cbe916e7eb62aa1a165b4aef1dea;hpb=b196412e7ae90cf5b609232c2ec56513835d9c82;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/plugins/video-player/tizen-video-player.cpp b/plugins/video-player/tizen-video-player.cpp index d33e234..c54a558 100644 --- a/plugins/video-player/tizen-video-player.cpp +++ b/plugins/video-player/tizen-video-player.cpp @@ -208,8 +208,8 @@ TizenVideoPlayer::TizenVideoPlayer() mPlayerState( PLAYER_STATE_NONE ), mTbmSurface( NULL ), mPacket( NULL ), - mBackgroundColor( Dali::Stage::DEFAULT_BACKGROUND_COLOR ), - mTargetType( NativeImage ) + mTargetType( NativeImage ), + mAlphaBitChanged( false ) { } @@ -279,13 +279,10 @@ void TizenVideoPlayer::SetRenderingTarget( Any target ) } mNativeImageSourcePtr = NULL; + mEcoreWlWindow = NULL; if( target.GetType() == typeid( Dali::NativeImageSourcePtr ) ) { - if( mTargetType == TizenVideoPlayer::WindowSurface ) - { - Stage::GetCurrent().SetBackgroundColor( mBackgroundColor ); - } mTargetType = TizenVideoPlayer::NativeImage; Dali::NativeImageSourcePtr nativeImageSourcePtr = AnyCast< Dali::NativeImageSourcePtr >( target ); @@ -295,8 +292,6 @@ void TizenVideoPlayer::SetRenderingTarget( Any target ) else if( target.GetType() == typeid( Ecore_Wl_Window* ) ) { mTargetType = TizenVideoPlayer::WindowSurface; - mBackgroundColor = Stage::GetCurrent().GetBackgroundColor(); - Stage::GetCurrent().SetBackgroundColor( Color::TRANSPARENT ); Ecore_Wl_Window* nativeWindow = Dali::AnyCast< Ecore_Wl_Window* >( target ); InitializeUnderlayMode( nativeWindow ); @@ -512,6 +507,12 @@ void TizenVideoPlayer::InitializeTextureStreamMode( Dali::NativeImageSourcePtr n mNativeImageSourcePtr = nativeImageSourcePtr; + if( mAlphaBitChanged ) + { + ecore_wl_window_alpha_set( mEcoreWlWindow, false ); + mAlphaBitChanged = false; + } + if( mPlayerState == PLAYER_STATE_NONE ) { error = player_create( &mPlayer ); @@ -555,6 +556,7 @@ void TizenVideoPlayer::InitializeUnderlayMode( Ecore_Wl_Window* ecoreWlWindow ) } GetPlayerState( &mPlayerState ); + mEcoreWlWindow = ecoreWlWindow; if( mPlayerState == PLAYER_STATE_IDLE ) { @@ -564,12 +566,20 @@ void TizenVideoPlayer::InitializeUnderlayMode( Ecore_Wl_Window* ecoreWlWindow ) error = player_set_sound_type( mPlayer, SOUND_TYPE_MEDIA ); LogPlayerError( error ); - error = player_set_display_mode( mPlayer, PLAYER_DISPLAY_MODE_FULL_SCREEN ); + error = player_set_display_mode( mPlayer, PLAYER_DISPLAY_MODE_DST_ROI ); LogPlayerError( error ); + error = player_set_display_roi_area( mPlayer, 0, 0, 1, 1 ); + int width, height; + mAlphaBitChanged = ( ecore_wl_window_alpha_get( mEcoreWlWindow ) )? false: true; ecore_wl_screen_size_get( &width, &height ); - error = player_set_ecore_wl_display( mPlayer, PLAYER_DISPLAY_TYPE_OVERLAY, ecoreWlWindow, 0, 0, width, height ); + + if( mAlphaBitChanged ) + { + ecore_wl_window_alpha_set( mEcoreWlWindow, true ); + } + error = player_set_ecore_wl_display( mPlayer, PLAYER_DISPLAY_TYPE_OVERLAY, mEcoreWlWindow, 0, 0, width, height ); LogPlayerError( error ); error = player_set_display_visible( mPlayer, true ); @@ -646,5 +656,76 @@ void TizenVideoPlayer::PushPacket( media_packet_h packet ) mPacketVector.PushBack( packet ); } +void TizenVideoPlayer::SetDisplayArea( DisplayArea area ) +{ + GetPlayerState( &mPlayerState ); + + if( mNativeImageSourcePtr != NULL ) + { + DALI_LOG_ERROR( "SetDisplayArea is only for window surface target.\n" ); + return; + } + + if( mPlayerState == PLAYER_STATE_IDLE || + mPlayerState == PLAYER_STATE_READY || + mPlayerState == PLAYER_STATE_PLAYING || + mPlayerState == PLAYER_STATE_PAUSED + + ) + { + int error = player_set_display_roi_area( mPlayer, area.x, area.y, area.width, area.height ); + LogPlayerError( error ); + } +} + +void TizenVideoPlayer::Forward( int millisecond ) +{ + int error; + + GetPlayerState( &mPlayerState ); + + if( mPlayerState == PLAYER_STATE_READY || + mPlayerState == PLAYER_STATE_PLAYING || + mPlayerState == PLAYER_STATE_PAUSED + ) + { + int currentPosition = 0; + int nextPosition = 0; + + error = player_get_play_position( mPlayer, ¤tPosition ); + LogPlayerError( error ); + + nextPosition = currentPosition + millisecond; + + error = player_set_play_position( mPlayer, nextPosition, true, NULL, NULL ); + LogPlayerError( error ); + } +} + +void TizenVideoPlayer::Backward( int millisecond ) +{ + int error; + + GetPlayerState( &mPlayerState ); + + if( mPlayerState == PLAYER_STATE_READY || + mPlayerState == PLAYER_STATE_PLAYING || + mPlayerState == PLAYER_STATE_PAUSED + ) + { + int currentPosition = 0; + int nextPosition = 0; + + error = player_get_play_position( mPlayer, ¤tPosition ); + LogPlayerError( error ); + + nextPosition = currentPosition - millisecond; + nextPosition = ( nextPosition < 0 )? 0 : nextPosition; + + error = player_set_play_position( mPlayer, nextPosition, true, NULL, NULL ); + LogPlayerError( error ); + } +} + } // namespace Plugin } // namespace Dali;