X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=plugins%2Fvideo-player%2Ftizen-video-player.cpp;h=c54a55829e4c369e6c85b87a6a1167c84c9ea17c;hb=c4852beaf3122ab08a4f76a636c00cb758851533;hp=812a274ad7058dd598523189466d5da5bd96d7cb;hpb=e83b5db9cbae03224db8e77452a3320f301b401b;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 812a274..c54a558 100644 --- a/plugins/video-player/tizen-video-player.cpp +++ b/plugins/video-player/tizen-video-player.cpp @@ -56,7 +56,7 @@ static void MediaPacketVideoDecodedCb( media_packet_h packet, void* user_data ) if( player == NULL ) { - DALI_LOG_ERROR( "Decoded callback got Null pointer as user_data." ); + DALI_LOG_ERROR( "Decoded callback got Null pointer as user_data.\n" ); return; } @@ -67,19 +67,19 @@ static void MediaPacketVideoDecodedCb( media_packet_h packet, void* user_data ) static void EmitPlaybackFinishedSignal( void* user_data ) { TizenVideoPlayer* player = static_cast< TizenVideoPlayer* >( user_data ); - DALI_LOG_ERROR( "EmitPlaybackFinishedSignal.0" ); + DALI_LOG_ERROR( "EmitPlaybackFinishedSignal.\n" ); if( player == NULL ) { - DALI_LOG_ERROR( "Decoded callback got Null pointer as user_data." ); + DALI_LOG_ERROR( "Decoded callback got Null pointer as user_data.\n" ); return; } - DALI_LOG_ERROR( "EmitPlaybackFinishedSignal." ); + DALI_LOG_ERROR( "EmitPlaybackFinishedSignal.\n" ); if( !player->mFinishedSignal.Empty() ) { - DALI_LOG_ERROR( "EmitPlaybackFinishedSignal.3" ); + DALI_LOG_ERROR( "EmitPlaybackFinishedSignal.3\n" ); player->mFinishedSignal.Emit(); } @@ -204,10 +204,12 @@ void LogPlayerError( int error ) } // unnamed namespace TizenVideoPlayer::TizenVideoPlayer() -: mPlayerState( PLAYER_STATE_NONE ), +: mPlayer( NULL ), + mPlayerState( PLAYER_STATE_NONE ), + mTbmSurface( NULL ), mPacket( NULL ), - mBackgroundColor( Dali::Stage::DEFAULT_BACKGROUND_COLOR ), - mTargetType( NativeImage ) + mTargetType( NativeImage ), + mAlphaBitChanged( false ) { } @@ -217,7 +219,7 @@ TizenVideoPlayer::~TizenVideoPlayer() void TizenVideoPlayer::GetPlayerState( player_state_e* state ) { - if( player_get_state( mPlayer, state ) != PLAYER_ERROR_NONE ) + if( mPlayer != NULL && player_get_state( mPlayer, state ) != PLAYER_ERROR_NONE ) { DALI_LOG_ERROR( "player_get_state error: Invalid parameter\n" ); *state = PLAYER_STATE_NONE; @@ -277,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 ); @@ -293,15 +292,13 @@ 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 ); } else { - DALI_LOG_ERROR( "Video rendering target is unknown" ); + DALI_LOG_ERROR( "Video rendering target is unknown\n" ); } } @@ -406,7 +403,6 @@ bool TizenVideoPlayer::IsMuted() mPlayerState == PLAYER_STATE_PAUSED ) { - bool muted = false; int error = player_is_muted( mPlayer, &muted ); LogPlayerError( error ); } @@ -491,7 +487,7 @@ Dali::VideoPlayerPlugin::DisplayRotation TizenVideoPlayer::GetDisplayRotation() } int error; - player_display_rotation_e rotation; + player_display_rotation_e rotation = PLAYER_DISPLAY_ROTATION_NONE; if( mPlayerState != PLAYER_STATE_NONE ) { error = player_get_display_rotation( mPlayer, &rotation ); @@ -511,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 ); @@ -554,6 +556,7 @@ void TizenVideoPlayer::InitializeUnderlayMode( Ecore_Wl_Window* ecoreWlWindow ) } GetPlayerState( &mPlayerState ); + mEcoreWlWindow = ecoreWlWindow; if( mPlayerState == PLAYER_STATE_IDLE ) { @@ -563,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 ); @@ -645,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;