sl@0: // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: #ifndef VIDEOPLAYFILE_COV_H sl@0: #define VIDEOPPLAYFILE_COV_H sl@0: sl@0: #include "tsu_mdf_videocodecs_step.h" sl@0: #include sl@0: sl@0: sl@0: class RTestStepVideoCodecs; sl@0: class CPlayVideoFileCov; sl@0: sl@0: sl@0: // For Play tests sl@0: class CPlayVideoFileCov : public CActive, public MMMFDevVideoPlayProxy sl@0: { sl@0: public: sl@0: sl@0: enum TPlayVideoFileState sl@0: { sl@0: EHwDeviceInit, sl@0: EHwDeviceStartDecode, sl@0: EHwDeviceAllowToComplete, sl@0: EHwDeviceEncodeCheckData, sl@0: EHwDeviceDone, sl@0: EHwDeviceError sl@0: }; sl@0: sl@0: public: sl@0: static CPlayVideoFileCov* NewL(RTestStepVideoCodecs* aParent); sl@0: ~CPlayVideoFileCov(); sl@0: sl@0: void LoadCodecL(); sl@0: void SetDSA(TBool aUseDSA); sl@0: void StartPlaybackL(); sl@0: void SetState(TPlayVideoFileState aState); sl@0: void CleanupAndSetDeviceError(TPtrC16 aText); sl@0: void StartDirectScreenAccessL(); sl@0: sl@0: // From CActive sl@0: void RunL(); sl@0: void DoCancel(); sl@0: sl@0: // From MMMFDevVideoPlayProxy sl@0: virtual void MdvppNewPicture(TVideoPicture* aPicture); sl@0: virtual void MdvppNewBuffers(); sl@0: virtual void MdvppReturnPicture(TVideoPicture* aPicture); sl@0: virtual void MdvppSupplementalInformation(const TDesC8& aData, sl@0: const TTimeIntervalMicroSeconds& aTimestamp, const TPictureId& aPictureId); sl@0: virtual void MdvppPictureLoss(); sl@0: virtual void MdvppPictureLoss(const TArray& aPictures); sl@0: virtual void MdvppSliceLoss(TUint aFirstMacroblock, TUint aNumMacroblocks, const TPictureId& aPicture); sl@0: virtual void MdvppReferencePictureSelection(const TDesC8& aSelectionData); sl@0: virtual void MdvppTimedSnapshotComplete(TInt aError, TPictureData* aPictureData, sl@0: const TTimeIntervalMicroSeconds& aPresentationTimestamp, const TPictureId& aPictureId); sl@0: virtual void MdvppFatalError(CMMFVideoHwDevice* aDevice, TInt aError); sl@0: virtual void MdvppInitializeComplete(CMMFVideoHwDevice* aDevice, TInt aError); sl@0: virtual void MdvppStreamEnd(); sl@0: sl@0: //Wrappers for functions which panic sl@0: void CancelTimedSnapshot(); sl@0: void GetTimedSnapshot1(); sl@0: void GetTimedSnapshot2(); sl@0: void GetSupportedSnapshotFormats(); sl@0: sl@0: sl@0: //Function for negative tests sl@0: sl@0: void NegTests(); sl@0: void InitializeCov1(); sl@0: void InitializeCov2(); sl@0: sl@0: sl@0: sl@0: sl@0: private: sl@0: CPlayVideoFileCov(RTestStepVideoCodecs* aParent); sl@0: void ConstructL(); sl@0: void StartDecodeL(); sl@0: void StartDecodePauseResumeL(); sl@0: void InitializeL(); sl@0: void ReadNextBufferL(); sl@0: void OpenTestFileL(); sl@0: sl@0: private: sl@0: //DevVideoPlay sl@0: CMMFVideoDecodeHwDevice* iVideoHwDevice; sl@0: sl@0: TInt iError; sl@0: sl@0: // data section sl@0: RFs iFs; sl@0: RFile iFile; sl@0: TPlayVideoFileState iState; sl@0: RTestStepVideoCodecs* iParent; sl@0: TBool iStoppedReceived; sl@0: TBool iUseDSA; sl@0: sl@0: TSize iFrameSize; sl@0: CFbsScreenDevice* iScreenDevice; sl@0: }; sl@0: sl@0: #endif // VIDEOPLAYFILE_COV_H sl@0: sl@0: