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: #ifdef SYMBIAN_BUILD_GCE sl@0: #include sl@0: #include sl@0: #include "videoframebuffer.h" sl@0: #endif // SYMBIAN_BUILD_GCE sl@0: sl@0: #include "testdevvideociuplay.h" sl@0: #include "testdevvideociuplugins/ciudecoder.h" sl@0: #include "testdevvideociuplugins/ciupostproc.h" sl@0: #include "testdevvideociuplugins/ciudevvideotestinterface.h" sl@0: sl@0: // DevVideoCiu base class sl@0: sl@0: CTestDevVideoCiuPlayStep::CTestDevVideoCiuPlayStep(const TDesC& aTestName) sl@0: { sl@0: // store the name of this test case sl@0: // this is the name that is used by the script file sl@0: // Each test step initialises it's own name sl@0: iTestStepName = aTestName; sl@0: } sl@0: sl@0: CTestDevVideoCiuPlayStep::~CTestDevVideoCiuPlayStep() sl@0: { sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayStep::DoTestStepPreambleL() sl@0: { sl@0: TVerdict ret = CTestDevVideoCiuStep::DoTestStepPreambleL(); sl@0: sl@0: __UHEAP_MARK; sl@0: TRAPD(err, iDevVideoPlay = CMMFDevVideoPlay::NewL( *this )); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF1(_L("Could not create a CMMFDevVideoPlay!")); sl@0: ret = EInconclusive; sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayStep::DoTestStepPostambleL() sl@0: { sl@0: delete iDevVideoPlay; sl@0: __MM_HEAP_MARKEND; sl@0: sl@0: return EPass; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayStep::DoTestStepL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: iDevVideoPlay->Initialize(); sl@0: sl@0: if (iError == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo Play initialisation was successful.")); sl@0: sl@0: // call the test step sl@0: ret = DoTestL(); sl@0: } sl@0: else sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("Failed to initialise the DevVideo Play")); sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: // MMMFDevVideoCiuObserver sl@0: void CTestDevVideoCiuPlayStep::MdvpoNewBuffers() sl@0: { sl@0: INFO_PRINTF1(_L("CTestDevVideoCiuPlayStep::MdvpoNewBuffers()")); sl@0: } sl@0: sl@0: void CTestDevVideoCiuPlayStep::MdvpoReturnPicture(TVideoPicture* /*aPicture*/) sl@0: { sl@0: INFO_PRINTF1(_L("CTestDevVideoCiuPlayStep::MdvpoReturnPicture()")); sl@0: } sl@0: sl@0: void CTestDevVideoCiuPlayStep::MdvpoSupplementalInformation(const TDesC8& /*aData*/, sl@0: const TTimeIntervalMicroSeconds& /*aTimestamp*/, sl@0: const TPictureId& /*aPictureId*/) sl@0: { sl@0: INFO_PRINTF1(_L("CTestDevVideoCiuPlayStep::MdvpoSupplementalInformation()")); sl@0: } sl@0: sl@0: void CTestDevVideoCiuPlayStep::MdvpoPictureLoss() sl@0: { sl@0: INFO_PRINTF1(_L("CTestDevVideoCiuPlayStep::MdvpoPictureLoss()")); sl@0: } sl@0: sl@0: void CTestDevVideoCiuPlayStep::MdvpoPictureLoss(const TArray& /*aPictures*/) sl@0: { sl@0: INFO_PRINTF1(_L("CTestDevVideoCiuPlayStep::MdvpoPictureLoss(TArray)")); sl@0: } sl@0: sl@0: void CTestDevVideoCiuPlayStep::MdvpoSliceLoss(TUint /*aFirstMacroblock*/, TUint /*aNumMacroblocks*/, const TPictureId& /*aPicture*/) sl@0: { sl@0: INFO_PRINTF1(_L("CTestDevVideoCiuPlayStep::MdvpoSliceLoss()")); sl@0: } sl@0: sl@0: void CTestDevVideoCiuPlayStep::MdvpoReferencePictureSelection(const TDesC8& /*aSelectionData*/) sl@0: { sl@0: INFO_PRINTF1(_L("CTestDevVideoCiuPlayStep::MdvpoReferencePictureSelection()")); sl@0: } sl@0: sl@0: void CTestDevVideoCiuPlayStep::MdvpoTimedSnapshotComplete(TInt /*aError*/, sl@0: TPictureData* /*aPictureData*/, sl@0: const TTimeIntervalMicroSeconds& /*aPresentationTimestamp*/, sl@0: const TPictureId& /*aPictureId*/) sl@0: { sl@0: INFO_PRINTF1(_L("CTestDevVideoCiuPlayStep::MdvpoTimedSnapshotComplete()")); sl@0: } sl@0: sl@0: void CTestDevVideoCiuPlayStep::MdvpoNewPictures() sl@0: { sl@0: INFO_PRINTF1(_L("CTestDevVideoCiuPlayStep::MdvpoNewPictures()")); sl@0: } sl@0: sl@0: void CTestDevVideoCiuPlayStep::MdvpoFatalError(TInt aError) sl@0: { sl@0: iError = aError; sl@0: INFO_PRINTF2(_L("CTestDevVideoCiuPlayStep::MdvpoFatalError(): Error = %d"), aError); sl@0: } sl@0: sl@0: void CTestDevVideoCiuPlayStep::MdvpoInitComplete(TInt aError) sl@0: { sl@0: iError = aError; sl@0: INFO_PRINTF2(_L("CTestDevVideoCiuPlayStep::MdvpoInitComplete(): Error = %d"), aError); sl@0: } sl@0: sl@0: void CTestDevVideoCiuPlayStep::MdvpoStreamEnd() sl@0: { sl@0: INFO_PRINTF1(_L("CTestDevVideoCiuPlayStep::MdvpoStreamEnd()")); sl@0: } sl@0: sl@0: // sl@0: // Video Window Control Tests sl@0: // sl@0: CTestDevVideoCiuPlayGetAndSetLogicalWindow::CTestDevVideoCiuPlayGetAndSetLogicalWindow(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlayGetAndSetLogicalWindow* CTestDevVideoCiuPlayGetAndSetLogicalWindow::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlayGetAndSetLogicalWindow* self = new(ELeave) CTestDevVideoCiuPlayGetAndSetLogicalWindow(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayGetAndSetLogicalWindow::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayGetAndSetLogicalWindow::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Window Control Interface Initialisation")); sl@0: sl@0: // Fetch the CI sl@0: MMmfVideoWindowControl* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMmfVideoWindowControl)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Window Control Interface Instantiated")); sl@0: sl@0: TRect logicalWindow(TPoint(0,0), TPoint(300,300)); sl@0: sl@0: interface->MmvwcSetLogicalVideoWindow(logicalWindow); sl@0: sl@0: MDevVideoCiuTestInterfaceVideoWindowControl* testInterface = NULL; sl@0: sl@0: testInterface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, KUidDevVideoCiuTestInterfaceVideoWindowControl)); sl@0: if (testInterface) sl@0: { sl@0: TRect logicalWindowResult = testInterface->MmvwcLogicalVideoWindow(); sl@0: if (logicalWindow == logicalWindowResult) sl@0: { sl@0: ret = EPass; sl@0: INFO_PRINTF1(_L("Set Logical Window method call performed as expected")); sl@0: } sl@0: else sl@0: { sl@0: ret = EFail; sl@0: ERR_PRINTF1(_L("Set Logical Window method call failed to set the value correctly")); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Error - no test interface retrieved")); sl@0: ret = EInconclusive; sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //------------------------------------------------------------------ sl@0: sl@0: CTestDevVideoCiuPlayGetAndSetContentOffset::CTestDevVideoCiuPlayGetAndSetContentOffset(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlayGetAndSetContentOffset* CTestDevVideoCiuPlayGetAndSetContentOffset::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlayGetAndSetContentOffset* self = new(ELeave) CTestDevVideoCiuPlayGetAndSetContentOffset(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayGetAndSetContentOffset::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayGetAndSetContentOffset::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Window Control Interface Initialisation")); sl@0: sl@0: // Fetch the CI sl@0: MMmfVideoWindowControl* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMmfVideoWindowControl)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Window Control Interface Instantiated")); sl@0: sl@0: TPoint contentOffsetInput(100, 100); sl@0: sl@0: interface->MmvwcSetContentOffsetL(contentOffsetInput); sl@0: sl@0: MDevVideoCiuTestInterfaceVideoWindowControl* testInterface = NULL; sl@0: sl@0: testInterface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, KUidDevVideoCiuTestInterfaceVideoWindowControl)); sl@0: if (testInterface) sl@0: { sl@0: TPoint contentOffsetOutput = testInterface->MmvwcContentOffset(); sl@0: if (contentOffsetInput == contentOffsetOutput) sl@0: { sl@0: ret = EPass; sl@0: INFO_PRINTF1(_L("Set Content Offset method call performed as expected")); sl@0: } sl@0: else sl@0: { sl@0: ret = EFail; sl@0: ERR_PRINTF1(_L("Set Content Offset method call failed to set the value correctly")); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Error - no test interface retrieved")); sl@0: ret = EInconclusive; sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //------------------------------------------------------------------ sl@0: sl@0: CTestDevVideoCiuPlayGetAndSetContentAlignment::CTestDevVideoCiuPlayGetAndSetContentAlignment(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlayGetAndSetContentAlignment* CTestDevVideoCiuPlayGetAndSetContentAlignment::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlayGetAndSetContentAlignment* self = new(ELeave) CTestDevVideoCiuPlayGetAndSetContentAlignment(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayGetAndSetContentAlignment::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayGetAndSetContentAlignment::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Window Control Interface Initialisation")); sl@0: sl@0: // Fetch the CI sl@0: MMmfVideoWindowControl* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMmfVideoWindowControl)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Window Control Interface Instantiated")); sl@0: sl@0: MDevVideoCiuTestInterfaceVideoWindowControl::TAlignment alignmentInput = {MMmfVideoWindowControl::EHorizAlignCenter, MMmfVideoWindowControl::EVertAlignTop}; sl@0: sl@0: interface->MmvwcSetContentAlignment(alignmentInput.iHorizAlign,alignmentInput.iVertAlign); sl@0: sl@0: MDevVideoCiuTestInterfaceVideoWindowControl* testInterface = NULL; sl@0: sl@0: testInterface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, KUidDevVideoCiuTestInterfaceVideoWindowControl)); sl@0: if (testInterface) sl@0: { sl@0: MDevVideoCiuTestInterfaceVideoWindowControl::TAlignment alignmentOutput = testInterface->MmvwcContentAlignment(); sl@0: if ((alignmentInput.iHorizAlign == alignmentOutput.iHorizAlign) && (alignmentInput.iVertAlign == alignmentOutput.iVertAlign) ) sl@0: { sl@0: ret = EPass; sl@0: INFO_PRINTF1(_L("Set Content Alignment method call performed as expected")); sl@0: } sl@0: else sl@0: { sl@0: ret = EFail; sl@0: ERR_PRINTF1(_L("Set Content Alignment method call failed to set the value correctly")); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Error - no test interface retrieved")); sl@0: ret = EInconclusive; sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //------------------------------------------------------------------ sl@0: sl@0: // sl@0: // Video Resource Management Tests sl@0: // sl@0: sl@0: CTestDevVideoCiuPlayGetAndSetResourceObserver::CTestDevVideoCiuPlayGetAndSetResourceObserver(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlayGetAndSetResourceObserver* CTestDevVideoCiuPlayGetAndSetResourceObserver::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlayGetAndSetResourceObserver* self = new(ELeave) CTestDevVideoCiuPlayGetAndSetResourceObserver(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayGetAndSetResourceObserver::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayGetAndSetResourceObserver::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Resource Management Interface Initialisation")); sl@0: sl@0: // Fetch the CI sl@0: MMmfVideoResourceHandler* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMmfVideoResourceManagement)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Resource Management Interface Instantiated")); sl@0: sl@0: MMmfVideoResourceObserver* obs = this; sl@0: interface->MmvrhSetObserver(obs); sl@0: INFO_PRINTF1(_L("SetObserver called")); sl@0: sl@0: // Verify that the observer was set sl@0: MDevVideoCiuTestInterfaceResourceManagement* testInterface = NULL; sl@0: testInterface = static_cast(iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfaceResourceManagement)); sl@0: if (!testInterface) sl@0: { sl@0: ERR_PRINTF1(_L("Failed to create the test interface.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: if (obs != testInterface->MdvrmObserver()) sl@0: { sl@0: ERR_PRINTF1(_L("Failed to set the observer.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("SetObserver successfully called")); sl@0: ret = EPass; sl@0: } sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //from MMmfVideoResourceObserver sl@0: void CTestDevVideoCiuPlayGetAndSetResourceObserver::MmvroResourcesLost(TUid /*aMediaDevice*/) sl@0: {} sl@0: sl@0: void CTestDevVideoCiuPlayGetAndSetResourceObserver::MmvroResourcesRestored(TUid /*aMediaDevice*/) sl@0: {} sl@0: sl@0: //------------------------------------------------------------------ sl@0: sl@0: CTestDevVideoCiuPlayResourceLost::CTestDevVideoCiuPlayResourceLost(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName), iCallbackReceived(EFalse) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlayResourceLost* CTestDevVideoCiuPlayResourceLost::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlayResourceLost* self = new(ELeave) CTestDevVideoCiuPlayResourceLost(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayResourceLost::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayResourceLost::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Resource Management Interface Initialisation")); sl@0: sl@0: // Fetch the CI sl@0: MMmfVideoResourceHandler* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMmfVideoResourceManagement)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Resource Management Interface Instantiated")); sl@0: sl@0: MDevVideoCiuTestInterfaceResourceManagement* testInterface = NULL; sl@0: testInterface = static_cast(iDevVideoPlay-> sl@0: CustomInterface(iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfaceResourceManagement)); sl@0: if (!testInterface) sl@0: { sl@0: ERR_PRINTF1(_L("Failed to create the test interface.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: // Set the observer to callback! sl@0: MMmfVideoResourceObserver* obs = this; sl@0: interface->MmvrhSetObserver(obs); sl@0: sl@0: INFO_PRINTF1(_L("Requesting the Resource Lost Callback...")); sl@0: testInterface->MdvrmRequestResourceLostCallback(); sl@0: sl@0: if ((iError != KErrNone) || (!iCallbackReceived)) sl@0: { sl@0: ERR_PRINTF1(_L("Error receiving the Resource Lost Callback.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("Successfully retrieved the Resource Lost Callback")); sl@0: ret = EPass; sl@0: } sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //from MMmfVideoResourceObserver sl@0: void CTestDevVideoCiuPlayResourceLost::MmvroResourcesLost(TUid /*aMediaDevice*/) sl@0: { sl@0: INFO_PRINTF1(_L("Resource Lost callback received.")); sl@0: iCallbackReceived = ETrue; sl@0: iError = KErrNone; sl@0: } sl@0: sl@0: void CTestDevVideoCiuPlayResourceLost::MmvroResourcesRestored(TUid /*aMediaDevice*/) sl@0: { sl@0: iError = KErrNotSupported; sl@0: } sl@0: sl@0: //------------------------------------------------------------------ sl@0: sl@0: CTestDevVideoCiuPlayResourceRestored::CTestDevVideoCiuPlayResourceRestored(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName), iCallbackReceived(EFalse) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlayResourceRestored* CTestDevVideoCiuPlayResourceRestored::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlayResourceRestored* self = new(ELeave) CTestDevVideoCiuPlayResourceRestored(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayResourceRestored::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayResourceRestored::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Resource Management Interface Initialisation")); sl@0: sl@0: // Fetch the CI sl@0: MMmfVideoResourceHandler* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMmfVideoResourceManagement)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Resource Management Interface Instantiated")); sl@0: sl@0: MDevVideoCiuTestInterfaceResourceManagement* testInterface = NULL; sl@0: testInterface = static_cast(iDevVideoPlay-> sl@0: CustomInterface(iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfaceResourceManagement)); sl@0: if (!testInterface) sl@0: { sl@0: ERR_PRINTF1(_L("Failed to create the test interface.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: // Set the observer to callback! sl@0: MMmfVideoResourceObserver* obs = this; sl@0: interface->MmvrhSetObserver(obs); sl@0: sl@0: INFO_PRINTF1(_L("Requesting the Resource Restored Callback...")); sl@0: testInterface->MdvrmRequestResourceRestoredCallback(); sl@0: sl@0: if ((iError != KErrNone) || (!iCallbackReceived)) sl@0: { sl@0: ERR_PRINTF1(_L("Error receiving the Resource Restored Callback.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("Successfully retrieved the Resource Restored Callback")); sl@0: ret = EPass; sl@0: } sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //from MMmfVideoResourceObserver sl@0: void CTestDevVideoCiuPlayResourceRestored::MmvroResourcesLost(TUid /*aMediaDevice*/) sl@0: { sl@0: iError = KErrNotSupported; sl@0: } sl@0: sl@0: void CTestDevVideoCiuPlayResourceRestored::MmvroResourcesRestored(TUid /*aMediaDevice*/) sl@0: { sl@0: INFO_PRINTF1(_L("Resource Restored callback received.")); sl@0: iCallbackReceived = ETrue; sl@0: iError = KErrNone; sl@0: } sl@0: sl@0: //------------------------------------------------------------------ sl@0: sl@0: CTestDevVideoCiuPlayGetAndSetResourcePriority::CTestDevVideoCiuPlayGetAndSetResourcePriority(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlayGetAndSetResourcePriority* CTestDevVideoCiuPlayGetAndSetResourcePriority::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlayGetAndSetResourcePriority* self = new(ELeave) CTestDevVideoCiuPlayGetAndSetResourcePriority(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayGetAndSetResourcePriority::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayGetAndSetResourcePriority::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Resource Priority Interface Initialisation")); sl@0: sl@0: // Fetch the CI sl@0: MMmfVideoResourcePriority* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMmfVideoResourcePriority)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Resource Priority Interface Instantiated")); sl@0: sl@0: TInt inputPriority = 100; sl@0: sl@0: interface->MmvpSetResourcePriority(inputPriority); sl@0: sl@0: MDevVideoCiuTestInterfaceResourcePriority* testInterface = NULL; sl@0: sl@0: testInterface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, KUidDevVideoCiuTestInterfaceResourcePriority)); sl@0: if (testInterface) sl@0: { sl@0: TInt outputPriority = testInterface->MdvrpResourcePriority(); sl@0: if (inputPriority == outputPriority) sl@0: { sl@0: ret = EPass; sl@0: INFO_PRINTF1(_L("Set Resource Priority method call performed as expected")); sl@0: } sl@0: else sl@0: { sl@0: ret = EFail; sl@0: ERR_PRINTF1(_L("Set Resource Priority method call failed to set the value correctly")); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Error - no test interface retrieved")); sl@0: ret = EInconclusive; sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: sl@0: // sl@0: // Video Properties Management Tests sl@0: // sl@0: sl@0: CTestDevVideoCiuPlaySetAndGetPropertiesObserver::CTestDevVideoCiuPlaySetAndGetPropertiesObserver(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlaySetAndGetPropertiesObserver* CTestDevVideoCiuPlaySetAndGetPropertiesObserver::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlaySetAndGetPropertiesObserver* self = new(ELeave) CTestDevVideoCiuPlaySetAndGetPropertiesObserver(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlaySetAndGetPropertiesObserver::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlaySetAndGetPropertiesObserver::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Properties Management Interface Initialisation")); sl@0: sl@0: // Fetch the CI sl@0: MMmfVideoPropertiesNotifier* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMmfVideoPropertiesManagement)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Properties Management Interface Instantiated")); sl@0: sl@0: MMmfVideoPropertiesObserver* obs = this; sl@0: interface->MmvpnSetObserver(obs); sl@0: INFO_PRINTF1(_L("SetObserver called")); sl@0: sl@0: // Verify that the observer was set sl@0: MDevVideoCiuTestInterfacePropertiesManagement* testInterface = NULL; sl@0: testInterface = static_cast(iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfacePropertiesManagement)); sl@0: if (!testInterface) sl@0: { sl@0: ERR_PRINTF1(_L("Failed to create the test interface.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: if (obs != testInterface->MmvpoObserver()) sl@0: { sl@0: ERR_PRINTF1(_L("Failed to set the observer.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("SetObserver successfully called.")); sl@0: ret = EPass; sl@0: } sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //from MMmfVideoPropertiesObserver sl@0: void CTestDevVideoCiuPlaySetAndGetPropertiesObserver::MmvpoUpdateVideoProperties(const TYuvFormat& /*aYuvFormat*/, const TSize& /*aPictureSize*/) sl@0: {} sl@0: sl@0: //------------------------------------------------------------------ sl@0: CTestDevVideoCiuPlayUpdateProperties::CTestDevVideoCiuPlayUpdateProperties(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName), iCallbackReceived(EFalse) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlayUpdateProperties* CTestDevVideoCiuPlayUpdateProperties::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlayUpdateProperties* self = new(ELeave) CTestDevVideoCiuPlayUpdateProperties(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayUpdateProperties::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayUpdateProperties::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Properties Management Interface Initialisation")); sl@0: sl@0: // Fetch the CI sl@0: MMmfVideoPropertiesNotifier* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMmfVideoPropertiesManagement)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Properties Management Interface Instantiated")); sl@0: sl@0: MDevVideoCiuTestInterfacePropertiesManagement* testInterface = NULL; sl@0: testInterface = static_cast(iDevVideoPlay-> sl@0: CustomInterface(iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfacePropertiesManagement)); sl@0: if (!testInterface) sl@0: { sl@0: ERR_PRINTF1(_L("Failed to create the test interface.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: // Set the observer to callback! sl@0: MMmfVideoPropertiesObserver* obs = this; sl@0: interface->MmvpnSetObserver(obs); sl@0: sl@0: INFO_PRINTF1(_L("Notifying the Properties Update Callback...")); sl@0: testInterface->MmvpoUpdateVideoPropertiesCallback(); sl@0: sl@0: if ((iError != KErrNone) || (!iCallbackReceived)) sl@0: { sl@0: ERR_PRINTF1(_L("Error receiving the RProperties Update Callback.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("Successfully retrieved the Properties Update Callback")); sl@0: ret = EPass; sl@0: } sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //from MMmfVideoPropertiesObserver sl@0: void CTestDevVideoCiuPlayUpdateProperties::MmvpoUpdateVideoProperties(const TYuvFormat& /*aYuvFormat*/, const TSize& /*aPictureSize*/) sl@0: { sl@0: INFO_PRINTF1(_L("Properties Update Callback received.")); sl@0: iCallbackReceived = ETrue; sl@0: iError = KErrNone; sl@0: } sl@0: sl@0: //------------------------------------------------------------------ sl@0: sl@0: CTestDevVideoCiuPlayCreateVideoMediaProtected::CTestDevVideoCiuPlayCreateVideoMediaProtected(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlayCreateVideoMediaProtected* CTestDevVideoCiuPlayCreateVideoMediaProtected::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlayCreateVideoMediaProtected* self = new(ELeave) CTestDevVideoCiuPlayCreateVideoMediaProtected(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayCreateVideoMediaProtected::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: sl@0: if (ret == EPass) sl@0: { sl@0: // select post-processor sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectPostProcessorL(KUidDevVideoCiuTestPostProcHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the post processor.")); sl@0: } sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayCreateVideoMediaProtected::DoTestL() sl@0: { sl@0: TVerdict ret = EPass; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Video Media Protected Initialisation")); sl@0: sl@0: // Try to fetch the CI... sl@0: MMmfVideoMediaProtected* interface = NULL; sl@0: sl@0: interface = static_cast(iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMmfVideoMediaProtected)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Video Media Protected instantiated")); sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: //------------------------------------------------------------------ sl@0: sl@0: //------------------------------------------------------------------ sl@0: sl@0: CTestDevVideoCiuPlaySetVideoMediaProtected::CTestDevVideoCiuPlaySetVideoMediaProtected(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlaySetVideoMediaProtected* CTestDevVideoCiuPlaySetVideoMediaProtected::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlaySetVideoMediaProtected* self = new(ELeave) CTestDevVideoCiuPlaySetVideoMediaProtected(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlaySetVideoMediaProtected::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: sl@0: if (ret == EPass) sl@0: { sl@0: // select post-processor sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectPostProcessorL(KUidDevVideoCiuTestPostProcHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the post processor.")); sl@0: } sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: // alternate implementation that uses the test interface to check sl@0: // that the value has been set sl@0: TVerdict CTestDevVideoCiuPlaySetVideoMediaProtected::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: // Got this far so must have successfully initialised DevVideoPlay sl@0: // Try to fetch the CI... sl@0: MMmfVideoMediaProtected* interface = NULL; sl@0: sl@0: interface = static_cast(iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMmfVideoMediaProtected)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: ret = EInconclusive; sl@0: } sl@0: else sl@0: { sl@0: // Try to call a method on the interface sl@0: TRAPD(err, interface->MmvsoMediaIsProtectedL(ETrue)); sl@0: // Method should have left as not supported sl@0: if (err != KErrNotSupported) sl@0: { sl@0: ERR_PRINTF2(_L("Error - wrong leave code from method call"), err); sl@0: } sl@0: else sl@0: { sl@0: // Now set up the test interface... sl@0: MDevVideoCiuTestInterfaceMediaProtected* testInterface = NULL; sl@0: testInterface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, KUidDevVideoCiuTestInterfaceMediaProtected)); sl@0: if (testInterface) sl@0: { sl@0: if (testInterface->MmvsoMediaIsProtected()) sl@0: { sl@0: ret = EPass; sl@0: INFO_PRINTF1(_L("Media protected method call performed as expected")); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Media protected method call failed to set the value correctly")); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Error - no test interface retrieved")); sl@0: ret = EInconclusive; sl@0: } sl@0: } sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: //------------------------------------------------------------------ sl@0: sl@0: sl@0: //------------------------------------------------------------------ sl@0: sl@0: CTestDevVideoCiuPlayCreateColourSpace::CTestDevVideoCiuPlayCreateColourSpace(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlayCreateColourSpace* CTestDevVideoCiuPlayCreateColourSpace::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlayCreateColourSpace* self = new(ELeave) CTestDevVideoCiuPlayCreateColourSpace(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayCreateColourSpace::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: sl@0: if (ret == EPass) sl@0: { sl@0: // select post-processor sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectPostProcessorL(KUidDevVideoCiuTestPostProcHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the post processor.")); sl@0: } sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayCreateColourSpace::DoTestL() sl@0: { sl@0: TVerdict ret = EPass; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Colour Space Header Interface Initialisation")); sl@0: sl@0: // Try to fetch the CI... sl@0: MMmfVideoPlayHWDeviceColourInfoCustomHeader* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMmfVideoPlayHWDeviceColourInfoCustomHeader)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Colour Space Header Interface Instantiated")); sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: //------------------------------------------------------------------ sl@0: sl@0: //------------------------------------------------------------------ sl@0: CTestDevVideoCiuPlayGetColourSpace::CTestDevVideoCiuPlayGetColourSpace(const TDesC& aTestName) sl@0: : CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlayGetColourSpace* CTestDevVideoCiuPlayGetColourSpace::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlayGetColourSpace* self = new(ELeave) CTestDevVideoCiuPlayGetColourSpace(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayGetColourSpace::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: sl@0: if (ret == EPass) sl@0: { sl@0: // select post-processor sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectPostProcessorL(KUidDevVideoCiuTestPostProcHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the post processor.")); sl@0: } sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: // Implementation that uses the test interface to set data that can be checked sl@0: // in the call to the interface's "get" method. sl@0: TVerdict CTestDevVideoCiuPlayGetColourSpace::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: // Got this far so must have successfully initialised DevVideoPlay sl@0: // Try to fetch the CI... sl@0: MMmfVideoPlayHWDeviceColourInfoCustomHeader* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMmfVideoPlayHWDeviceColourInfoCustomHeader)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: ret = EInconclusive; sl@0: } sl@0: else sl@0: { sl@0: // Setup some test values... sl@0: TVideoDataUnitType dataUnitType = EDuArbitraryStreamSection; sl@0: TVideoDataUnitEncapsulation dataUnitEncapsulation = EDuRtpPayload; sl@0: TYuvFormat yuvFormat; sl@0: yuvFormat.iCoefficients = ECustomYuvMatrix; sl@0: yuvFormat.iPattern = EYuv422Chroma2; sl@0: yuvFormat.iDataLayout = EYuvDataSemiPlanar; sl@0: yuvFormat.iYuv2RgbMatrix = NULL; sl@0: yuvFormat.iRgb2YuvMatrix = NULL; sl@0: yuvFormat.iAspectRatioNum = 666; sl@0: yuvFormat.iAspectRatioDenom = 999; sl@0: TVideoInputBuffer* dataUnit = new TVideoInputBuffer(); sl@0: sl@0: if (!dataUnit) sl@0: { sl@0: ERR_PRINTF2(_L("Failed to allocate test data."), KErrNoMemory); sl@0: } sl@0: else sl@0: { sl@0: // just set one member sl@0: dataUnit->iOptions = 444; sl@0: // Now set up the test interface... sl@0: MDevVideoCiuTestInterfaceColourSpace* testInterface = NULL; sl@0: testInterface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, KUidDevVideoCiuTestInterfaceColourSpace)); sl@0: if (testInterface) sl@0: { sl@0: testInterface->MmvpciSetColourSpaceHeaderInfoL(dataUnitType, sl@0: dataUnitEncapsulation, sl@0: dataUnit, sl@0: yuvFormat); sl@0: INFO_PRINTF1(_L("Set the colour space header info.")); sl@0: sl@0: TVideoDataUnitType testDataUnitType = TVideoDataUnitType(0); sl@0: TVideoDataUnitEncapsulation testDataUnitEncapsulation = TVideoDataUnitEncapsulation(0); sl@0: TVideoInputBuffer* testDataUnit = new TVideoInputBuffer(); sl@0: TYuvFormat testYuvFormat; sl@0: if (!testDataUnit) sl@0: { sl@0: ERR_PRINTF2(_L("Failed to allocate test data."), KErrNoMemory); sl@0: } sl@0: else sl@0: { sl@0: // Call the interface's method sl@0: TRAPD(err, interface->MmvpciGetColourSpaceHeaderInfoL( testDataUnitType, sl@0: testDataUnitEncapsulation, sl@0: testDataUnit, sl@0: testYuvFormat)); sl@0: if ((err == KErrNone) && sl@0: (dataUnitType == testDataUnitType) && sl@0: (dataUnitEncapsulation == testDataUnitEncapsulation) && sl@0: (dataUnit->iOptions == testDataUnit->iOptions) && sl@0: (yuvFormat == testYuvFormat)) sl@0: { sl@0: INFO_PRINTF1(_L("Succesfully retrieved the colour space header info.")); sl@0: ret = EPass; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Failed to retrieve the colour space header info.")); sl@0: } sl@0: } sl@0: delete testDataUnit; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Error - no test interface retrieved")); sl@0: ret = EInconclusive; sl@0: } sl@0: } sl@0: delete dataUnit; sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: //------------------------------------------------------------------ sl@0: // Resource control tests implementation sl@0: CTestDevVideoCiuPlayCreatePolicyExtension::CTestDevVideoCiuPlayCreatePolicyExtension(const TDesC& aTestName) sl@0: : CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlayCreatePolicyExtension* CTestDevVideoCiuPlayCreatePolicyExtension::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlayCreatePolicyExtension* self = new(ELeave) CTestDevVideoCiuPlayCreatePolicyExtension(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayCreatePolicyExtension::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayCreatePolicyExtension::DoTestL() sl@0: { sl@0: TVerdict ret = EPass; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Policy Extension Interface Initialisation")); sl@0: sl@0: // Try to fetch the CI... sl@0: MMmfVideoHwDeviceVideoPolicyExtension* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMmfVideoHwDevVideoPolicyExtension)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Policy Extension Interface Instantiated")); sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: //------------------------------------------------------------------------- sl@0: CTestDevVideoCiuPlaySetClientPolicyExtension::CTestDevVideoCiuPlaySetClientPolicyExtension(const TDesC& aTestName) sl@0: : CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlaySetClientPolicyExtension* CTestDevVideoCiuPlaySetClientPolicyExtension::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlaySetClientPolicyExtension* self = new(ELeave) CTestDevVideoCiuPlaySetClientPolicyExtension(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlaySetClientPolicyExtension::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: // Implementation that uses the test interface to set data that can be checked sl@0: // in the call to the interface's "get" method. sl@0: TVerdict CTestDevVideoCiuPlaySetClientPolicyExtension::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: // Got this far so must have successfully initialised DevVideoPlay sl@0: // Try to fetch the CI... sl@0: MMmfVideoHwDeviceVideoPolicyExtension* interface = NULL; sl@0: sl@0: interface = static_cast(iDevVideoPlay->CustomInterface( sl@0: iHwDeviceId, sl@0: KUidMmfVideoHwDevVideoPolicyExtension)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: ret = EInconclusive; sl@0: } sl@0: else sl@0: { sl@0: MMmfVideoHwDevClientNotifier* clientNotifier = this; sl@0: // call the interface's method sl@0: interface->MmvhvpeSetVideoClient(clientNotifier); sl@0: sl@0: // Now set up the test interface... sl@0: MDevVideoCiuTestInterfaceClientResourceNotifier* testInterface = NULL; sl@0: testInterface = static_cast sl@0: (iDevVideoPlay->CustomInterface( iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfaceClientResourceNotifier)); sl@0: if (testInterface) sl@0: { sl@0: if (testInterface->McrnVideoClient() == clientNotifier) sl@0: { sl@0: INFO_PRINTF1(_L("Succesfully set the client notifier.")); sl@0: ret = EPass; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Failed to set the client notifier.")); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Error - no test interface retrieved")); sl@0: ret = EInconclusive; sl@0: } sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: // from MMmfVideoHwDevClientNotifier sl@0: void CTestDevVideoCiuPlaySetClientPolicyExtension::MmvhcnVideoAccessRevoked() sl@0: { sl@0: } sl@0: // from MMmfVideoHwDevClientNotifier sl@0: void CTestDevVideoCiuPlaySetClientPolicyExtension::MmvhcnReleaseVideoResource() sl@0: { sl@0: } sl@0: //---------------------------------------------------------------------------- sl@0: CTestDevVideoCiuPlaySetPriorityPolicyExtension::CTestDevVideoCiuPlaySetPriorityPolicyExtension(const TDesC& aTestName) sl@0: : CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlaySetPriorityPolicyExtension* CTestDevVideoCiuPlaySetPriorityPolicyExtension::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlaySetPriorityPolicyExtension* self = new(ELeave) CTestDevVideoCiuPlaySetPriorityPolicyExtension(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlaySetPriorityPolicyExtension::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlaySetPriorityPolicyExtension::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Policy Extension Set Priority")); sl@0: sl@0: // Try to fetch the CI... sl@0: MMmfVideoHwDeviceVideoPolicyExtension* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMmfVideoHwDevVideoPolicyExtension)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: } sl@0: else sl@0: { sl@0: TInt priority = 666; sl@0: interface->MmvhvpeSetVideoPriority(priority); sl@0: sl@0: // Now set up the test interface... sl@0: MDevVideoCiuTestInterfaceClientResourceNotifier* testInterface = NULL; sl@0: testInterface = static_cast sl@0: (iDevVideoPlay->CustomInterface( iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfaceClientResourceNotifier)); sl@0: if (testInterface) sl@0: { sl@0: if (testInterface->McrnVideoPriority() == priority) sl@0: { sl@0: INFO_PRINTF1(_L("Succesfully retrieved the video priority.")); sl@0: ret = EPass; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Failed to retrieve the video priority.")); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Error - no test interface retrieved")); sl@0: ret = EInconclusive; sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //------------------------------------------------------------------------- sl@0: CTestDevVideoCiuPlayClientNotifierRevoked::CTestDevVideoCiuPlayClientNotifierRevoked(const TDesC& aTestName) sl@0: : CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlayClientNotifierRevoked* CTestDevVideoCiuPlayClientNotifierRevoked::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlayClientNotifierRevoked* self = new(ELeave) CTestDevVideoCiuPlayClientNotifierRevoked(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayClientNotifierRevoked::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: // Implementation that uses the test interface to set data that can be checked sl@0: // in the call to the interface's "get" method. sl@0: TVerdict CTestDevVideoCiuPlayClientNotifierRevoked::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: // Got this far so must have successfully initialised DevVideoPlay sl@0: // Try to fetch the CI... sl@0: MMmfVideoHwDeviceVideoPolicyExtension* interface = NULL; sl@0: sl@0: interface = static_cast(iDevVideoPlay->CustomInterface( sl@0: iHwDeviceId, sl@0: KUidMmfVideoHwDevVideoPolicyExtension)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: ret = EInconclusive; sl@0: } sl@0: else sl@0: { sl@0: MMmfVideoHwDevClientNotifier* clientNotifier = this; sl@0: // call the interface's method sl@0: interface->MmvhvpeSetVideoClient(clientNotifier); sl@0: sl@0: // Now set up the test interface... sl@0: MDevVideoCiuTestInterfaceClientResourceNotifier* testInterface = NULL; sl@0: testInterface = static_cast sl@0: (iDevVideoPlay->CustomInterface( iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfaceClientResourceNotifier)); sl@0: if (testInterface) sl@0: { sl@0: INFO_PRINTF1(_L("Requesting the revoke callback.")); sl@0: testInterface->McrnRequestRevokeCallback(); sl@0: sl@0: if (iCallback) sl@0: { sl@0: ret = EPass; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Didn't receive the revoke callback.")); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Error - no test interface retrieved")); sl@0: ret = EInconclusive; sl@0: } sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: // from MMmfVideoHwDevClientNotifier sl@0: void CTestDevVideoCiuPlayClientNotifierRevoked::MmvhcnVideoAccessRevoked() sl@0: { sl@0: INFO_PRINTF1(_L("Access revoked callback received.")); sl@0: iCallback = ETrue; sl@0: } sl@0: sl@0: // from MMmfVideoHwDevClientNotifier sl@0: void CTestDevVideoCiuPlayClientNotifierRevoked::MmvhcnReleaseVideoResource() sl@0: { sl@0: } sl@0: sl@0: //---------------------------------------------------------------------------------------- sl@0: sl@0: CTestDevVideoCiuPlayClientNotifierResource::CTestDevVideoCiuPlayClientNotifierResource(const TDesC& aTestName) sl@0: : CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlayClientNotifierResource* CTestDevVideoCiuPlayClientNotifierResource::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlayClientNotifierResource* self = new(ELeave) CTestDevVideoCiuPlayClientNotifierResource(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayClientNotifierResource::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: // Implementation that uses the test interface to set data that can be checked sl@0: // in the call to the interface's "get" method. sl@0: TVerdict CTestDevVideoCiuPlayClientNotifierResource::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: // Got this far so must have successfully initialised DevVideoPlay sl@0: // Try to fetch the CI... sl@0: MMmfVideoHwDeviceVideoPolicyExtension* interface = NULL; sl@0: sl@0: interface = static_cast(iDevVideoPlay->CustomInterface( sl@0: iHwDeviceId, sl@0: KUidMmfVideoHwDevVideoPolicyExtension)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: ret = EInconclusive; sl@0: } sl@0: else sl@0: { sl@0: MMmfVideoHwDevClientNotifier* clientNotifier = this; sl@0: // call the interface's method sl@0: interface->MmvhvpeSetVideoClient(clientNotifier); sl@0: sl@0: // Now set up the test interface... sl@0: MDevVideoCiuTestInterfaceClientResourceNotifier* testInterface = NULL; sl@0: testInterface = static_cast sl@0: (iDevVideoPlay->CustomInterface( iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfaceClientResourceNotifier)); sl@0: if (testInterface) sl@0: { sl@0: INFO_PRINTF1(_L("Requesting the resource callback.")); sl@0: testInterface->McrnRequestResourceCallback(); sl@0: sl@0: if (iCallback) sl@0: { sl@0: ret = EPass; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Didn't receive the resource callback.")); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Error - no test interface retrieved")); sl@0: ret = EInconclusive; sl@0: } sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: // from MMmfVideoHwDevClientNotifier sl@0: void CTestDevVideoCiuPlayClientNotifierResource::MmvhcnVideoAccessRevoked() sl@0: { sl@0: } sl@0: sl@0: // from MMmfVideoHwDevClientNotifier sl@0: void CTestDevVideoCiuPlayClientNotifierResource::MmvhcnReleaseVideoResource() sl@0: { sl@0: INFO_PRINTF1(_L("Release video resource callback received.")); sl@0: iCallback = ETrue; sl@0: } sl@0: //---------------------------------------------------------------------------------------- sl@0: sl@0: //------------------------------------------------------------------ sl@0: // Negative Tests sl@0: //------------------------------------------------------------------ sl@0: sl@0: CTestDevVideoCiuPlayCreateVideoMediaProtectedDecoder sl@0: ::CTestDevVideoCiuPlayCreateVideoMediaProtectedDecoder(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlayCreateVideoMediaProtectedDecoder* sl@0: CTestDevVideoCiuPlayCreateVideoMediaProtectedDecoder::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlayCreateVideoMediaProtectedDecoder* self = sl@0: new(ELeave) CTestDevVideoCiuPlayCreateVideoMediaProtectedDecoder(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayCreateVideoMediaProtectedDecoder::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: sl@0: if (ret == EPass) sl@0: { sl@0: // select the decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the Decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayCreateVideoMediaProtectedDecoder::DoTestL() sl@0: { sl@0: TVerdict ret = EPass; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Video Media Protected Creation Failure from Decoder")); sl@0: sl@0: // Got this far so must have successfully initialised DevVideoPlay sl@0: // Try to fetch the CI... sl@0: MMmfVideoMediaProtected* interface = NULL; sl@0: interface = static_cast(iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMmfVideoMediaProtected)); sl@0: if (!interface) sl@0: { sl@0: INFO_PRINTF1(_L("No interface retrieved")); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Error! An interface was retrieved")); sl@0: ret = EFail; sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: //------------------------------------------------------------------ sl@0: sl@0: sl@0: #ifdef SYMBIAN_BUILD_GCE sl@0: sl@0: // sl@0: // Video Surface Support Management Tests sl@0: // sl@0: CTestDevVideoCiuPlayGetAndSetUseSurface::CTestDevVideoCiuPlayGetAndSetUseSurface(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlayGetAndSetUseSurface* CTestDevVideoCiuPlayGetAndSetUseSurface::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlayGetAndSetUseSurface* self = new(ELeave) CTestDevVideoCiuPlayGetAndSetUseSurface(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayGetAndSetUseSurface::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayGetAndSetUseSurface::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Initialisation")); sl@0: sl@0: // Fetch the CI sl@0: MMMFVideoSurfaceSupport* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMMFVideoSurfaceSupport)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Instantiated")); sl@0: sl@0: TBool useSurface = ETrue; sl@0: interface->MmvssUseSurfaces(); sl@0: sl@0: MDevVideoCiuTestInterfaceVideoSurfaceSupport* testInterface = NULL; sl@0: sl@0: testInterface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfaceVideoSurfaceSupport)); sl@0: if (testInterface) sl@0: { sl@0: TBool useSurfaceResult = testInterface->MdvssUseSurface(); sl@0: if (useSurface == useSurfaceResult) sl@0: { sl@0: ret = EPass; sl@0: INFO_PRINTF1(_L("Use Surface call performed as expected")); sl@0: } sl@0: else sl@0: { sl@0: ret = EFail; sl@0: ERR_PRINTF2(_L("Use Surface call failed. Expected: %d"),useSurface); sl@0: ERR_PRINTF2(_L("Result: %d"),useSurfaceResult); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Error - no test interface retrieved")); sl@0: ret = EInconclusive; sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //-----------------------------------------------------------// sl@0: CTestDevVideoCiuPlayGetAndSetSurfaceParameters::CTestDevVideoCiuPlayGetAndSetSurfaceParameters(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlayGetAndSetSurfaceParameters* CTestDevVideoCiuPlayGetAndSetSurfaceParameters::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlayGetAndSetSurfaceParameters* self = new(ELeave) CTestDevVideoCiuPlayGetAndSetSurfaceParameters(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayGetAndSetSurfaceParameters::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayGetAndSetSurfaceParameters::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Initialisation")); sl@0: sl@0: // Fetch the CI sl@0: MMMFVideoSurfaceSupport* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMMFVideoSurfaceSupport)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Instantiated")); sl@0: sl@0: TSurfaceId surfaceId; sl@0: TRect getRect; sl@0: TVideoAspectRatio par; sl@0: interface->MmvssGetSurfaceParametersL(surfaceId, getRect, par); sl@0: sl@0: MDevVideoCiuTestInterfaceVideoSurfaceSupport* testInterface = NULL; sl@0: sl@0: testInterface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfaceVideoSurfaceSupport)); sl@0: if (testInterface) sl@0: { sl@0: TMMFVideoSurfaceConfig vsconfResult = testInterface->MdvssSurfaceParameters(); sl@0: sl@0: if (vsconfResult.iSurfaceId == surfaceId && vsconfResult.iCropRectangle.iTl.iX == getRect.iTl.iX && sl@0: vsconfResult.iCropRectangle.iTl.iY == getRect.iTl.iY && vsconfResult.iCropRectangle.iBr.iX == getRect.iBr.iX && sl@0: vsconfResult.iCropRectangle.iBr.iY == getRect.iBr.iY && sl@0: vsconfResult.iPixelAspectRatio.iNumerator == par.iNumerator && sl@0: vsconfResult.iPixelAspectRatio.iDenominator == par.iDenominator) sl@0: { sl@0: ret = EPass; sl@0: INFO_PRINTF1(_L("Get Surface Parameters method call performed as expected")); sl@0: } sl@0: else sl@0: { sl@0: ret = EFail; sl@0: ERR_PRINTF1(_L("Get Surface Parameters method call failed")); sl@0: INFO_PRINTF5(_L("Expected surfaceId %d %d %d %d"), sl@0: vsconfResult.iSurfaceId.iInternal[0], vsconfResult.iSurfaceId.iInternal[1], sl@0: vsconfResult.iSurfaceId.iInternal[2], vsconfResult.iSurfaceId.iInternal[3]); sl@0: INFO_PRINTF5(_L("surfaceId Available %d %d %d %d"), sl@0: surfaceId.iInternal[0], surfaceId.iInternal[1], sl@0: surfaceId.iInternal[2], surfaceId.iInternal[3]); sl@0: INFO_PRINTF2(_L("Expected Rect first %d"),vsconfResult.iCropRectangle.iTl.iX); sl@0: INFO_PRINTF2(_L("Rect first Available %d"),getRect.iTl.iX); sl@0: INFO_PRINTF2(_L("Expected Rect second %d"),vsconfResult.iCropRectangle.iTl.iY); sl@0: INFO_PRINTF2(_L("Rect second Available %d"),getRect.iTl.iY); sl@0: INFO_PRINTF2(_L("Expected Rect third %d"),vsconfResult.iCropRectangle.iBr.iX); sl@0: sl@0: INFO_PRINTF2(_L("Rect third Available %d"),getRect.iBr.iX); sl@0: INFO_PRINTF2(_L("Expected Rect fourth %d"),vsconfResult.iCropRectangle.iBr.iY); sl@0: INFO_PRINTF2(_L("Rect fourth Available %d"),getRect.iBr.iY); sl@0: INFO_PRINTF2(_L("Expected TVideoAspectRatio iNumerator %d"),vsconfResult.iPixelAspectRatio.iNumerator); sl@0: INFO_PRINTF2(_L("TVideoAspectRatio iNumerator Available %d"),par.iNumerator); sl@0: INFO_PRINTF2(_L("Expected TVideoAspectRatio iDenominator %d"),vsconfResult.iPixelAspectRatio.iDenominator); sl@0: INFO_PRINTF2(_L("TVideoAspectRatio iDenominator Available %d"),par.iDenominator); sl@0: sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Error - no test interface retrieved")); sl@0: ret = EInconclusive; sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //-----------------------------------------------------------// sl@0: CTestDevVideoCiuPlayGetAndSetSurfaceRemoved::CTestDevVideoCiuPlayGetAndSetSurfaceRemoved(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlayGetAndSetSurfaceRemoved* CTestDevVideoCiuPlayGetAndSetSurfaceRemoved::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlayGetAndSetSurfaceRemoved* self = new(ELeave) CTestDevVideoCiuPlayGetAndSetSurfaceRemoved(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayGetAndSetSurfaceRemoved::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayGetAndSetSurfaceRemoved::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Initialisation")); sl@0: sl@0: // Fetch the CI sl@0: MMMFVideoSurfaceSupport* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMMFVideoSurfaceSupport)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Instantiated")); sl@0: sl@0: // these values can be anything sl@0: TSurfaceId surfaceId; sl@0: surfaceId.iInternal[0] = 37; sl@0: surfaceId.iInternal[1] = 104; sl@0: surfaceId.iInternal[2] = 118; sl@0: surfaceId.iInternal[3] = 1045; sl@0: sl@0: interface->MmvssSurfaceRemovedL(surfaceId); sl@0: sl@0: MDevVideoCiuTestInterfaceVideoSurfaceSupport* testInterface = NULL; sl@0: sl@0: testInterface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfaceVideoSurfaceSupport)); sl@0: if (testInterface) sl@0: { sl@0: TSurfaceId surfaceIdResult = testInterface->MdvssSurfaceRemoved(); sl@0: if (surfaceId == surfaceIdResult) sl@0: { sl@0: ret = EPass; sl@0: INFO_PRINTF1(_L("Surface Removed method call performed as expected")); sl@0: } sl@0: else sl@0: { sl@0: ret = EFail; sl@0: ERR_PRINTF1(_L("Surface Removed method call failed.")); sl@0: INFO_PRINTF5(_L("Expected surfaceId %d %d %d %d"), sl@0: surfaceId.iInternal[0], surfaceId.iInternal[1], sl@0: surfaceId.iInternal[2], surfaceId.iInternal[3]); sl@0: INFO_PRINTF5(_L("surfaceId Available %d %d %d %d"), sl@0: surfaceIdResult.iInternal[0], surfaceIdResult.iInternal[1], sl@0: surfaceIdResult.iInternal[2], surfaceIdResult.iInternal[3]); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Error - no test interface retrieved")); sl@0: ret = EInconclusive; sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //-----------------------------------------------------------// sl@0: CTestDevVideoCiuPlaySetAndGetSurfaceSupportObserver::CTestDevVideoCiuPlaySetAndGetSurfaceSupportObserver(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlaySetAndGetSurfaceSupportObserver* CTestDevVideoCiuPlaySetAndGetSurfaceSupportObserver::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlaySetAndGetSurfaceSupportObserver* self = new(ELeave) CTestDevVideoCiuPlaySetAndGetSurfaceSupportObserver(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlaySetAndGetSurfaceSupportObserver::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlaySetAndGetSurfaceSupportObserver::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Initialisation")); sl@0: sl@0: // Fetch the CI sl@0: MMMFVideoSurfaceSupport* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMMFVideoSurfaceSupport)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Instantiated")); sl@0: sl@0: MMMFVideoSurfaceObserver* obs = this; sl@0: interface->MmvssSetObserver(*obs); sl@0: INFO_PRINTF1(_L("MmvssSetObserver called")); sl@0: sl@0: // Verify that the observer was set sl@0: MDevVideoCiuTestInterfaceVideoSurfaceSupport* testInterface = NULL; sl@0: testInterface = static_cast(iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfaceVideoSurfaceSupport)); sl@0: if (!testInterface) sl@0: { sl@0: ERR_PRINTF1(_L("Failed to create the test interface.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: if (obs != testInterface->MvsoObserver()) sl@0: { sl@0: ERR_PRINTF1(_L("Failed to set the observer.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("SetObserver successfully called")); sl@0: ret = EPass; sl@0: } sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //from MMMFVideoSurfaceObserver sl@0: void CTestDevVideoCiuPlaySetAndGetSurfaceSupportObserver::MmvsoSurfaceCreated() sl@0: {} sl@0: sl@0: void CTestDevVideoCiuPlaySetAndGetSurfaceSupportObserver::MmvsoSurfaceParametersChanged() sl@0: {} sl@0: sl@0: void CTestDevVideoCiuPlaySetAndGetSurfaceSupportObserver::MmvsoRemoveSurface() sl@0: {} sl@0: sl@0: //------------------------------------------------------------------ sl@0: sl@0: CTestDevVideoCiuPlaySurfaceCreated::CTestDevVideoCiuPlaySurfaceCreated(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName), iCallbackReceived(EFalse) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlaySurfaceCreated* CTestDevVideoCiuPlaySurfaceCreated::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlaySurfaceCreated* self = new(ELeave) CTestDevVideoCiuPlaySurfaceCreated(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlaySurfaceCreated::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlaySurfaceCreated::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Initialisation")); sl@0: sl@0: // Fetch the CI sl@0: MMMFVideoSurfaceSupport* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMMFVideoSurfaceSupport)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Instantiated")); sl@0: sl@0: MDevVideoCiuTestInterfaceVideoSurfaceSupport* testInterface = NULL; sl@0: testInterface = static_cast(iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfaceVideoSurfaceSupport)); sl@0: if (!testInterface) sl@0: { sl@0: ERR_PRINTF1(_L("Failed to create the test interface.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: // Set the observer to callback! sl@0: MMMFVideoSurfaceObserver* obs = this; sl@0: interface->MmvssSetObserver(*obs); sl@0: sl@0: INFO_PRINTF1(_L("Requesting the surface created Callback...")); sl@0: testInterface->MmvsoSurfaceCreatedCallback(); sl@0: sl@0: if ((iError != KErrNone) || (!iCallbackReceived)) sl@0: { sl@0: ERR_PRINTF1(_L("Error receiving the Surface Created Callback.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("Successfully retrieved the Surface Support Callback")); sl@0: ret = EPass; sl@0: } sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //from MMMFVideoSurfaceObserver sl@0: void CTestDevVideoCiuPlaySurfaceCreated::MmvsoSurfaceCreated() sl@0: { sl@0: INFO_PRINTF1(_L("Surface Support callback received.")); sl@0: iCallbackReceived = ETrue; sl@0: iError = KErrNone; sl@0: } sl@0: sl@0: void CTestDevVideoCiuPlaySurfaceCreated::MmvsoSurfaceParametersChanged() sl@0: { sl@0: iError = KErrNotSupported; sl@0: } sl@0: void CTestDevVideoCiuPlaySurfaceCreated::MmvsoRemoveSurface() sl@0: { sl@0: iError = KErrNotSupported; sl@0: } sl@0: sl@0: //------------------------------------------------------------------ sl@0: sl@0: CTestDevVideoCiuPlaySurfaceParametersChanged::CTestDevVideoCiuPlaySurfaceParametersChanged(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName), iCallbackReceived(EFalse) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlaySurfaceParametersChanged* CTestDevVideoCiuPlaySurfaceParametersChanged::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlaySurfaceParametersChanged* self = new(ELeave) CTestDevVideoCiuPlaySurfaceParametersChanged(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlaySurfaceParametersChanged::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlaySurfaceParametersChanged::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Initialisation")); sl@0: sl@0: // Fetch the CI sl@0: MMMFVideoSurfaceSupport* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMMFVideoSurfaceSupport)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Instantiated")); sl@0: sl@0: MDevVideoCiuTestInterfaceVideoSurfaceSupport* testInterface = NULL; sl@0: testInterface = static_cast(iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfaceVideoSurfaceSupport)); sl@0: if (!testInterface) sl@0: { sl@0: ERR_PRINTF1(_L("Failed to create the test interface.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: // Set the observer to callback! sl@0: MMMFVideoSurfaceObserver* obs = this; sl@0: interface->MmvssSetObserver(*obs); sl@0: sl@0: INFO_PRINTF1(_L("Requesting the Surface Parameters Changed Callback...")); sl@0: testInterface->MmvsoSurfaceParametersChangedCallback(); sl@0: sl@0: if ((iError != KErrNone) || (!iCallbackReceived)) sl@0: { sl@0: ERR_PRINTF1(_L("Error receiving Surface Parameters Changed Callback.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("Successfully retrieved Surface Parameters Changed Callback")); sl@0: ret = EPass; sl@0: } sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //from MMMFVideoSurfaceObserver sl@0: void CTestDevVideoCiuPlaySurfaceParametersChanged::MmvsoSurfaceCreated() sl@0: { sl@0: iError = KErrNotSupported; sl@0: } sl@0: sl@0: void CTestDevVideoCiuPlaySurfaceParametersChanged::MmvsoSurfaceParametersChanged() sl@0: { sl@0: INFO_PRINTF1(_L("Surface Parameters Changed callback received.")); sl@0: iCallbackReceived = ETrue; sl@0: iError = KErrNone; sl@0: } sl@0: sl@0: void CTestDevVideoCiuPlaySurfaceParametersChanged::MmvsoRemoveSurface() sl@0: { sl@0: iError = KErrNotSupported; sl@0: } sl@0: sl@0: //------------------------------------------------------------------ sl@0: sl@0: CTestDevVideoCiuRemoveSurface::CTestDevVideoCiuRemoveSurface(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName), iCallbackReceived(EFalse) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuRemoveSurface* CTestDevVideoCiuRemoveSurface::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuRemoveSurface* self = new(ELeave) CTestDevVideoCiuRemoveSurface(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuRemoveSurface::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuRemoveSurface::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Initialisation")); sl@0: sl@0: // Fetch the CI sl@0: MMMFVideoSurfaceSupport* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMMFVideoSurfaceSupport)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Instantiated")); sl@0: sl@0: MDevVideoCiuTestInterfaceVideoSurfaceSupport* testInterface = NULL; sl@0: testInterface = static_cast(iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfaceVideoSurfaceSupport)); sl@0: if (!testInterface) sl@0: { sl@0: ERR_PRINTF1(_L("Failed to create the test interface.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: // Set the observer to callback! sl@0: MMMFVideoSurfaceObserver* obs = this; sl@0: interface->MmvssSetObserver(*obs); sl@0: sl@0: INFO_PRINTF1(_L("Requesting Remove Surface Callback...")); sl@0: testInterface->MmvsoRemoveSurfaceCallback(); sl@0: sl@0: if ((iError != KErrNone) || (!iCallbackReceived)) sl@0: { sl@0: ERR_PRINTF1(_L("Error receiving Remove Surface Callback.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("Successfully retrieved Remove Surface Callback")); sl@0: ret = EPass; sl@0: } sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //from MMMFVideoSurfaceObserver sl@0: void CTestDevVideoCiuRemoveSurface::MmvsoSurfaceCreated() sl@0: { sl@0: iError = KErrNotSupported; sl@0: } sl@0: sl@0: void CTestDevVideoCiuRemoveSurface::MmvsoSurfaceParametersChanged() sl@0: { sl@0: iError = KErrNotSupported; sl@0: } sl@0: sl@0: void CTestDevVideoCiuRemoveSurface::MmvsoRemoveSurface() sl@0: { sl@0: INFO_PRINTF1(_L("Remove Surface callback received.")); sl@0: iCallbackReceived = ETrue; sl@0: iError = KErrNone; sl@0: } sl@0: sl@0: //---------------------------------------------------------------------------- sl@0: CTestDevVideoCiuPlayUseClientBuffers::CTestDevVideoCiuPlayUseClientBuffers(const TDesC& aTestName) sl@0: : CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlayUseClientBuffers* CTestDevVideoCiuPlayUseClientBuffers::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlayUseClientBuffers* self = new(ELeave) CTestDevVideoCiuPlayUseClientBuffers(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayUseClientBuffers::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayUseClientBuffers::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU use client buffer mode test")); sl@0: sl@0: // Try to fetch the CI... sl@0: MMMFVideoClientBufferSupport* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMMFVideoClientBufferSupport)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: } sl@0: else sl@0: { sl@0: TBool clientBuffers = ETrue; sl@0: interface->MvcbsUseClientBuffers(clientBuffers); sl@0: sl@0: // Now set up the test interface... sl@0: MDevVideoCiuTestInterfaceVideoClientBufferSupport* testInterface = NULL; sl@0: testInterface = static_cast sl@0: (iDevVideoPlay->CustomInterface( iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfaceVideoClientBufferSupport)); sl@0: if (testInterface) sl@0: { sl@0: if (testInterface->MdvcbsClientBuffers()) sl@0: { sl@0: INFO_PRINTF1(_L("Succesfully retrieved the video client buffer mode")); sl@0: ret = EPass; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Failed to retrieve the video client buffer mode.")); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Error - no test interface retrieved")); sl@0: ret = EInconclusive; sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //---------------------------------------------------------------------------- sl@0: CTestDevVideoCiuPlaySupplyBuffer::CTestDevVideoCiuPlaySupplyBuffer(const TDesC& aTestName) sl@0: : CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlaySupplyBuffer* CTestDevVideoCiuPlaySupplyBuffer::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlaySupplyBuffer* self = new(ELeave) CTestDevVideoCiuPlaySupplyBuffer(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlaySupplyBuffer::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlaySupplyBuffer::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU supply buffer test")); sl@0: sl@0: // Try to fetch the CI... sl@0: MMMFVideoClientBufferSupport* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMMFVideoClientBufferSupport)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: } sl@0: else sl@0: { sl@0: TUncompressedVideoFormat format; sl@0: format.iDataFormat = ERgbRawData; sl@0: format.iRgbFormat = ERgb32bit888; sl@0: RChunk aChunk; sl@0: sl@0: // Create a dummy object for testing only sl@0: TVideoFrameBuffer buffer(format, 1, 1, aChunk, 0); sl@0: interface->MvcbsSupplyBuffer(buffer); sl@0: sl@0: // Now set up the test interface... sl@0: MDevVideoCiuTestInterfaceVideoClientBufferSupport* testInterface = NULL; sl@0: testInterface = static_cast sl@0: (iDevVideoPlay->CustomInterface( iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfaceVideoClientBufferSupport)); sl@0: if (testInterface) sl@0: { sl@0: if (testInterface->MdvcbsSupplyBuffer() == &buffer) sl@0: { sl@0: INFO_PRINTF1(_L("Succesfully retrieved the video supplied buffer")); sl@0: ret = EPass; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Failed to retrieve the video supplied buffer.")); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Error - no test interface retrieved")); sl@0: ret = EInconclusive; sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //---------------------------------------------------------------------------- sl@0: CTestDevVideoCiuPlayReleaseBuffers::CTestDevVideoCiuPlayReleaseBuffers(const TDesC& aTestName) sl@0: : CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlayReleaseBuffers* CTestDevVideoCiuPlayReleaseBuffers::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlayReleaseBuffers* self = new(ELeave) CTestDevVideoCiuPlayReleaseBuffers(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayReleaseBuffers::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayReleaseBuffers::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU release buffer test")); sl@0: sl@0: // Try to fetch the CI... sl@0: MMMFVideoClientBufferSupport* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMMFVideoClientBufferSupport)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved")); sl@0: } sl@0: else sl@0: { sl@0: interface->MvcbsReleaseBuffers(); sl@0: sl@0: // Now set up the test interface... sl@0: MDevVideoCiuTestInterfaceVideoClientBufferSupport* testInterface = NULL; sl@0: testInterface = static_cast sl@0: (iDevVideoPlay->CustomInterface( iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfaceVideoClientBufferSupport)); sl@0: if (testInterface) sl@0: { sl@0: // In the test decoder, we set true when we call release buffer. Here just check it will return true. sl@0: if (testInterface->MdvcbsReleaseBuffers()) sl@0: { sl@0: INFO_PRINTF1(_L("Succesfully release buffer.")); sl@0: ret = EPass; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Failed to release buffer.")); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Error - no test interface retrieved")); sl@0: ret = EInconclusive; sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //------------------------------------------------------------------ sl@0: sl@0: CTestDevVideoCiuPlaySurfaceHandleControl::CTestDevVideoCiuPlaySurfaceHandleControl(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlaySurfaceHandleControl* CTestDevVideoCiuPlaySurfaceHandleControl::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlaySurfaceHandleControl* self = new(ELeave) CTestDevVideoCiuPlaySurfaceHandleControl(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlaySurfaceHandleControl::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlaySurfaceHandleControl::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Surface Handle Interface Initialisation")); sl@0: sl@0: // Fetch the CI sl@0: MMmfVideoSurfaceHandleControl* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMMFVideoSurfaceHandleControl)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved for SurfaceHandleControl")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU SurfaceHandle Control Interface Instantiated")); sl@0: TSurfaceId nullId = TSurfaceId::CreateNullId(); sl@0: INFO_PRINTF1(_L("DevVideo CIU SurfaceHandle Control testing both surfacehandle functions")); sl@0: interface->MmvshcSetSurfaceHandle(nullId); sl@0: sl@0: // Fetch test interface sl@0: MDevVideoCiuTestInterfaceVideoPlaySurfaceHandleControl* testInterface = NULL; sl@0: testInterface = static_cast(iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfaceVideoPlaySurfaceHandleControl)); sl@0: if (!testInterface) sl@0: { sl@0: ERR_PRINTF1(_L("Failed to create the test interface for Play rate control.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: TSurfaceId surfaceId = testInterface->MdvshcGetPlaySurfaceHandle(); sl@0: sl@0: if (surfaceId == nullId) sl@0: { sl@0: ret = EPass; sl@0: INFO_PRINTF1(_L("Get play surface handle method call performed as expected")); sl@0: } sl@0: else sl@0: { sl@0: ret = EFail; sl@0: ERR_PRINTF1(_L("Get Play surface handle method call failed")); sl@0: } sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //------------------------------------------------------------------ sl@0: sl@0: CTestDevVideoCiuPlaySurfaceRedrawBuffer::CTestDevVideoCiuPlaySurfaceRedrawBuffer(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlaySurfaceRedrawBuffer* CTestDevVideoCiuPlaySurfaceRedrawBuffer::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlaySurfaceRedrawBuffer* self = new(ELeave) CTestDevVideoCiuPlaySurfaceRedrawBuffer(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlaySurfaceRedrawBuffer::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlaySurfaceRedrawBuffer::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Surface Redraw Buffer - Start")); sl@0: sl@0: // Fetch the CI sl@0: MMmfVideoSurfaceHandleControl* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMMFVideoSurfaceHandleControl)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("DevVideo CIU Surface Redraw Buffer - No interface")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Surface Redraw Buffer - Interface Instantiated")); sl@0: HBufC8* redrawBuffer = HBufC8::NewLC(10); sl@0: _LIT8(KTestString, "TestString"); sl@0: *redrawBuffer = KTestString(); sl@0: TPtrC8 bufPtr(*redrawBuffer); sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Surface Redraw Buffer - Setting redraw buffer")); sl@0: interface->MmvshcRedrawBufferToSurface(bufPtr); sl@0: CleanupStack::PopAndDestroy(redrawBuffer); sl@0: redrawBuffer = NULL; sl@0: sl@0: // Fetch test interface sl@0: MDevVideoCiuTestInterfaceVideoPlaySurfaceHandleControl* testInterface = NULL; sl@0: testInterface = static_cast(iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfaceVideoPlaySurfaceHandleControl)); sl@0: if (!testInterface) sl@0: { sl@0: ERR_PRINTF1(_L("DevVideo CIU Surface Redraw Buffer - Failed to create test interface")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: TDesC8& retrievedBuffer = testInterface->MdvshcGetRedrawBuffer(); sl@0: sl@0: if (retrievedBuffer.Compare(KTestString()) == 0) sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Surface Redraw Buffer - Retrieved correct string")); sl@0: ret = EPass; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Surface Redraw Buffer - Retrieved incorrect string")); sl@0: ret = EFail; sl@0: } sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: #endif // SYMBIAN_BUILD_GCE sl@0: sl@0: // sl@0: // Video Play Rate Control Tests sl@0: // sl@0: sl@0: CTestDevVideoCiuPlayGetAndSetPlayRateCapabilities::CTestDevVideoCiuPlayGetAndSetPlayRateCapabilities(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlayGetAndSetPlayRateCapabilities* CTestDevVideoCiuPlayGetAndSetPlayRateCapabilities::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlayGetAndSetPlayRateCapabilities* self = new(ELeave) CTestDevVideoCiuPlayGetAndSetPlayRateCapabilities(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayGetAndSetPlayRateCapabilities::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayGetAndSetPlayRateCapabilities::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Play Rate Control Interface Initialisation")); sl@0: sl@0: // Fetch the CI sl@0: MMmfVideoPlayRateControl* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMmfVideoPlayRateControl)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved for Play Rate")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Play Rate Interface Instantiated")); sl@0: sl@0: TVideoPlayRateCapabilities videoPlayRateCapabilities; sl@0: TRAPD(err, interface->MmvprcGetPlayRateCapabilitiesL(videoPlayRateCapabilities)); sl@0: sl@0: if (err == KErrNone) sl@0: { sl@0: // Fetch test interface sl@0: MDevVideoCiuTestInterfaceVideoPlayRateControl* testInterface = NULL; sl@0: testInterface = static_cast(iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfaceVideoPlayRateControl)); sl@0: if (!testInterface) sl@0: { sl@0: ERR_PRINTF1(_L("Failed to create the test interface for Play rate control.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: TVideoPlayRateCapabilities playRateCapResult = testInterface->MdvproGetPlayRateCapabilities(); sl@0: sl@0: if (playRateCapResult.iPlayBackward == videoPlayRateCapabilities.iPlayBackward && sl@0: playRateCapResult.iPlayForward == videoPlayRateCapabilities.iPlayForward && sl@0: playRateCapResult.iStepBackward == videoPlayRateCapabilities.iStepBackward && sl@0: playRateCapResult.iStepForward == videoPlayRateCapabilities.iStepForward) sl@0: { sl@0: ret = EPass; sl@0: INFO_PRINTF1(_L("Get Play Rate Capabilities method call performed as expected")); sl@0: } sl@0: else sl@0: { sl@0: ret = EFail; sl@0: ERR_PRINTF1(_L("Get Play Rate Capabilities method call failed")); sl@0: INFO_PRINTF5(_L("Expected PlayBackward: %d, PlayForward: %d, StepBackward: %d, StepForward: %d"), sl@0: playRateCapResult.iPlayBackward, playRateCapResult.iPlayForward, sl@0: playRateCapResult.iStepBackward, playRateCapResult.iStepForward); sl@0: } sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("Failed to get the play rate capabilities: %d."),err); sl@0: } sl@0: sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //-----------------------------------------------------------// sl@0: CTestDevVideoCiuPlaySetAndGetPlayRate::CTestDevVideoCiuPlaySetAndGetPlayRate(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlaySetAndGetPlayRate* CTestDevVideoCiuPlaySetAndGetPlayRate::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlaySetAndGetPlayRate* self = new(ELeave) CTestDevVideoCiuPlaySetAndGetPlayRate(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlaySetAndGetPlayRate::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlaySetAndGetPlayRate::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Play Rate Control Interface Initialisation")); sl@0: sl@0: // Fetch the CI sl@0: MMmfVideoPlayRateControl* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMmfVideoPlayRateControl)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved for Play Rate")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Play Rate Interface Instantiated")); sl@0: sl@0: TInt playRate = 99; // The hardcoded value is for test purpose only sl@0: TRAPD(err, interface->MmvprcSetPlayRateL(playRate)); sl@0: sl@0: if (err == KErrNone) sl@0: { sl@0: TInt playRateResult = 0; sl@0: TRAP(err, playRateResult = interface->MmvprcPlayRateL()); sl@0: sl@0: if (err == KErrNone) sl@0: { sl@0: if (playRate == playRateResult) sl@0: { sl@0: ret = EPass; sl@0: INFO_PRINTF1(_L("Set and get Play Rate method calls performed as expected")); sl@0: } sl@0: else sl@0: { sl@0: ret = EFail; sl@0: ERR_PRINTF3(_L("Set and get Play Rate methods call failed. Expected playRate: %d, return is: %d"), playRate, playRateResult); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("Failed to get the play rate: %d."), err); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("Failed to set the play rate: %d."), err); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //-----------------------------------------------------------// sl@0: CTestDevVideoCiuPlayGetAndSetStepFrame::CTestDevVideoCiuPlayGetAndSetStepFrame(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlayGetAndSetStepFrame* CTestDevVideoCiuPlayGetAndSetStepFrame::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlayGetAndSetStepFrame* self = new(ELeave) CTestDevVideoCiuPlayGetAndSetStepFrame(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayGetAndSetStepFrame::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayGetAndSetStepFrame::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Play Rate Control Interface Initialisation")); sl@0: sl@0: // Fetch the CI sl@0: MMmfVideoPlayRateControl* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMmfVideoPlayRateControl)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved for Play Rate")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Play Rate Interface Instantiated")); sl@0: sl@0: TInt stepFrame = 99; // The hardcoded value is for test purpose only sl@0: TRAPD(err, interface->MmvprcStepFrameL(stepFrame)); sl@0: sl@0: if (err == KErrNone) sl@0: { sl@0: // Fetch test interface sl@0: MDevVideoCiuTestInterfaceVideoPlayRateControl* testInterface = NULL; sl@0: testInterface = static_cast(iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfaceVideoPlayRateControl)); sl@0: if (!testInterface) sl@0: { sl@0: ERR_PRINTF1(_L("Failed to create the test interface for Play rate control.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: if (stepFrame == testInterface->MdvproStepFrame()) sl@0: { sl@0: ret = EPass; sl@0: INFO_PRINTF1(_L("Step frame method call performed as expected")); sl@0: } sl@0: else sl@0: { sl@0: ret = EFail; sl@0: ERR_PRINTF2(_L("Step frame method call failed. Expected stepFrame: %d."), stepFrame); sl@0: } sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("Failed to set the step frame: %d."), err); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //------------------------------------------------------------------ sl@0: sl@0: CTestDevVideoCiuPlaySetAndGetPlayRateObserver::CTestDevVideoCiuPlaySetAndGetPlayRateObserver(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlaySetAndGetPlayRateObserver* CTestDevVideoCiuPlaySetAndGetPlayRateObserver::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlaySetAndGetPlayRateObserver* self = new(ELeave) CTestDevVideoCiuPlaySetAndGetPlayRateObserver(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlaySetAndGetPlayRateObserver::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlaySetAndGetPlayRateObserver::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Play Rate Interface Initialisation")); sl@0: sl@0: // Fetch the CI sl@0: MMmfVideoPlayRateControl* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMmfVideoPlayRateControl)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved for Play Rate")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Play Rate Interface Instantiated")); sl@0: sl@0: // Set the observer sl@0: MMmfVideoPlayRateObserver* obs = this; sl@0: interface->MmvprcSetObserver(*obs); sl@0: INFO_PRINTF1(_L("MmvprcSetObserver called")); sl@0: sl@0: // Verify that the observer was set sl@0: MDevVideoCiuTestInterfaceVideoPlayRateControl* testInterface = NULL; sl@0: testInterface = static_cast(iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfaceVideoPlayRateControl)); sl@0: if (!testInterface) sl@0: { sl@0: ERR_PRINTF1(_L("Failed to create the test interface for Play rate control.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: if (obs != testInterface->MdvproObserver()) sl@0: { sl@0: ERR_PRINTF1(_L("Failed to set the observer.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("SetObserver successfully called")); sl@0: ret = EPass; sl@0: } sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //from MMmfVideoPlayRateObserver sl@0: void CTestDevVideoCiuPlaySetAndGetPlayRateObserver::MmvproStepFrameComplete(TTimeIntervalMicroSeconds /*aTimestamp*/) sl@0: {} sl@0: sl@0: void CTestDevVideoCiuPlaySetAndGetPlayRateObserver::MmvproKeyFrameModeRequest() sl@0: {} sl@0: sl@0: //------------------------------------------------------------------ sl@0: sl@0: CTestDevVideoCiuPlayStepFrameComplete::CTestDevVideoCiuPlayStepFrameComplete(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName), iCallbackReceived(EFalse) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlayStepFrameComplete* CTestDevVideoCiuPlayStepFrameComplete::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlayStepFrameComplete* self = new(ELeave) CTestDevVideoCiuPlayStepFrameComplete(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayStepFrameComplete::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayStepFrameComplete::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Play Rate Control Interface Initialisation")); sl@0: sl@0: // Fetch the CI sl@0: MMmfVideoPlayRateControl* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMmfVideoPlayRateControl)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved for Play Rate")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Play Rate Interface Instantiated")); sl@0: sl@0: // Fetch test interface sl@0: MDevVideoCiuTestInterfaceVideoPlayRateControl* testInterface = NULL; sl@0: testInterface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfaceVideoPlayRateControl)); sl@0: if (!testInterface) sl@0: { sl@0: ERR_PRINTF1(_L("Failed to create the test interface for Play rate control.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: // Set the observer to callback! sl@0: MMmfVideoPlayRateObserver* obs = this; sl@0: interface->MmvprcSetObserver(*obs); sl@0: sl@0: INFO_PRINTF1(_L("Requesting the step frame complete Callback...")); sl@0: testInterface->MdvproStepFrameCompleteCallback(); sl@0: sl@0: if ((iError != KErrNone) && (!iCallbackReceived)) sl@0: { sl@0: ERR_PRINTF1(_L("Error receiving the step frame complete Callback.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("Successfully retrieved the step frame complete Callback")); sl@0: ret = EPass; sl@0: } sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //from MMmfVideoPlayRateObserver sl@0: void CTestDevVideoCiuPlayStepFrameComplete::MmvproStepFrameComplete(TTimeIntervalMicroSeconds aTimestamp) sl@0: { sl@0: INFO_PRINTF1(_L("Step frame complete callback received. ")); sl@0: // Test h/w sets the time stamp to 10000 sl@0: if (aTimestamp == 10000) sl@0: { sl@0: iCallbackReceived = ETrue; sl@0: iError = KErrNone; sl@0: } sl@0: else sl@0: { sl@0: iCallbackReceived = ETrue; sl@0: iError = KErrGeneral; sl@0: } sl@0: } sl@0: sl@0: void CTestDevVideoCiuPlayStepFrameComplete::MmvproKeyFrameModeRequest() sl@0: { sl@0: iError = KErrNotSupported; sl@0: } sl@0: sl@0: //------------------------------------------------------------------ sl@0: sl@0: CTestDevVideoCiuPlayKeyFrameModeRequest::CTestDevVideoCiuPlayKeyFrameModeRequest(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName), iCallbackReceived(EFalse) sl@0: { sl@0: } sl@0: sl@0: CTestDevVideoCiuPlayKeyFrameModeRequest* CTestDevVideoCiuPlayKeyFrameModeRequest::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuPlayKeyFrameModeRequest* self = new(ELeave) CTestDevVideoCiuPlayKeyFrameModeRequest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayKeyFrameModeRequest::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuPlayKeyFrameModeRequest::DoTestL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("DevVideo CIU Play Rate Control Interface Initialisation")); sl@0: sl@0: // Fetch the CI sl@0: MMmfVideoPlayRateControl* interface = NULL; sl@0: sl@0: interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidMmfVideoPlayRateControl)); sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Error - no interface retrieved for Play Rate")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU Play Rate Interface Instantiated")); sl@0: sl@0: // Fetch test interface sl@0: MDevVideoCiuTestInterfaceVideoPlayRateControl* testInterface = NULL; sl@0: testInterface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfaceVideoPlayRateControl)); sl@0: if (!testInterface) sl@0: { sl@0: ERR_PRINTF1(_L("Failed to create the test interface for Play rate control.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: // Set the observer to callback! sl@0: MMmfVideoPlayRateObserver* obs = this; sl@0: interface->MmvprcSetObserver(*obs); sl@0: sl@0: INFO_PRINTF1(_L("Requesting the key frame mode request Callback...")); sl@0: testInterface->MdvproKeyFrameModeRequestCallback(); sl@0: sl@0: if ((iError != KErrNone) && (!iCallbackReceived)) sl@0: { sl@0: ERR_PRINTF1(_L("Error receiving the key frame mode request Callback.")); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("Successfully retrieved the key frame mode request Callback")); sl@0: ret = EPass; sl@0: } sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: //from MMmfVideoPlayRateObserver sl@0: void CTestDevVideoCiuPlayKeyFrameModeRequest::MmvproStepFrameComplete(TTimeIntervalMicroSeconds /*aTimestamp*/) sl@0: { sl@0: iError = KErrNotSupported; sl@0: } sl@0: sl@0: void CTestDevVideoCiuPlayKeyFrameModeRequest::MmvproKeyFrameModeRequest() sl@0: { sl@0: INFO_PRINTF1(_L("Key frame mode request callback received.")); sl@0: iCallbackReceived = ETrue; sl@0: iError = KErrNone; sl@0: } sl@0: sl@0: sl@0: //------------------------------------------------------------------ sl@0: sl@0: CTestDevVideoCiuHwDeviceTunnel* CTestDevVideoCiuHwDeviceTunnel::NewL(const TDesC& aTestName) sl@0: { sl@0: CTestDevVideoCiuHwDeviceTunnel* self = new(ELeave) CTestDevVideoCiuHwDeviceTunnel(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: CTestDevVideoCiuHwDeviceTunnel::CTestDevVideoCiuHwDeviceTunnel(const TDesC& aTestName) sl@0: :CTestDevVideoCiuPlayStep(aTestName) sl@0: { sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuHwDeviceTunnel::DoTestStepPreambleL() sl@0: { sl@0: // Call the base class first sl@0: TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL(); sl@0: if (ret == EPass) sl@0: { sl@0: // select decoder sl@0: TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ret = EInconclusive; sl@0: ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder.")); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict CTestDevVideoCiuHwDeviceTunnel::DoTestL() sl@0: { sl@0: INFO_PRINTF1(_L("DevVideo CIU HwDeviceTunnel Initialisation")); sl@0: sl@0: // Fetch the CI sl@0: MMmfVideoHwDeviceTunnel* interface = static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, KUidMmfVideoHwDeviceTunnel)); sl@0: sl@0: if (!interface) sl@0: { sl@0: ERR_PRINTF1(_L("Failed to create interface for HwDevice Tunnel")); sl@0: return EFail; sl@0: } sl@0: sl@0: INFO_PRINTF1(_L("Created interface for HwDevice Tunnel")); sl@0: sl@0: // Fetch test interface sl@0: MDevVideoCiuTestInterfaceHwDeviceTunnel* testInterface = sl@0: static_cast sl@0: (iDevVideoPlay->CustomInterface(iHwDeviceId, sl@0: KUidDevVideoCiuTestInterfaceHwDeviceTunnel)); sl@0: if (!testInterface) sl@0: { sl@0: ERR_PRINTF1(_L("Failed to create test interface for HwDevice Tunnel")); sl@0: return EFail; sl@0: } sl@0: sl@0: INFO_PRINTF1(_L("Created test interface for HwDevice Tunnel")); sl@0: sl@0: CMMFVideoHwDevice* hwDevice = interface->MmvhdtHwDevice(); sl@0: if (hwDevice != reinterpret_cast(0x11111111)) sl@0: { sl@0: INFO_PRINTF1(_L("MmvhdtHwDevice() failed")); sl@0: return EFail; sl@0: } sl@0: sl@0: INFO_PRINTF1(_L("MmvhdtHwDevice() succeeded")); sl@0: sl@0: interface->MmvhdtSetupTunnelL(reinterpret_cast(0x22222222)); sl@0: sl@0: hwDevice = testInterface->MhdtHwDevice(); sl@0: if (hwDevice != reinterpret_cast(0x22222222)) sl@0: { sl@0: INFO_PRINTF1(_L("MmvhdtSetupTunnelL() failed")); sl@0: return EFail; sl@0: } sl@0: sl@0: INFO_PRINTF1(_L("MmvhdtSetupTunnelL() succeeded")); sl@0: sl@0: return EPass; sl@0: }