diff -r 96612d01cf9f -r 6711b85517b7 videoplayback/videoplaybackviews/src/mpxvideobaseplaybackview.cpp --- a/videoplayback/videoplaybackviews/src/mpxvideobaseplaybackview.cpp Mon Jan 18 20:21:12 2010 +0200 +++ b/videoplayback/videoplaybackviews/src/mpxvideobaseplaybackview.cpp Tue Jan 26 12:00:59 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 56 % +// Version : %version: 57 % // Include Files @@ -1354,14 +1354,18 @@ if ( aMedia.IsSupported( KMPXMediaVideoError ) ) { TInt error = aMedia.ValueTObjectL( KMPXMediaVideoError ); + // Reset the controls iContainer->HandleCommandL( EMPXPbvCmdResetControls ); + // Set the iMediaRequested flag to false iMediaRequested = EFalse; + + // Handle the plugin error + HandlePluginErrorL( error ); + // Reset the playback state to stopped iPlaybackState = EPbStateStopped; - // Handle the plugin error - HandlePluginErrorL( error ); } else { @@ -1840,7 +1844,13 @@ { MPX_ENTER_EXIT(_L("CMPXVideoBasePlaybackView::HandleDrmErrorsL()")); - if ( IsMultiItemPlaylist() ) + // + // If we receive an error when we are initialized, let the DRM UI Handler + // process the error. If we have been playing, display the error message + // and close the playback + // + if ( IsMultiItemPlaylist() || iPlaybackState != EPbStateInitialised ) + { DisplayErrorMessageL( R_MPX_DRM_RIGHTS_MISSING ); }