/*
* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:
*
*/
/**
* @file
* @internalTechnology
*/
#include "graphicsinkteststeps.h"
#include <openmax/il/shai/OMX_Symbian_ExtensionNames.h>
#include <openmax/il/shai/OMX_Symbian_ComponentExt.h>
COmxGsTest0001Step01::~COmxGsTest0001Step01()
/**
* Destructor
*/
{
}
COmxGsTest0001Step01::COmxGsTest0001Step01()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0001Step01);
}
TVerdict COmxGsTest0001Step01::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
// Check GetComponentVersion
const TInt maxComponentNameSize = 128;
char componentNameArray[maxComponentNameSize];
OMX_VERSIONTYPE componentVersion;
OMX_VERSIONTYPE specVersion;
OMX_UUIDTYPE componentUUID;
// Obtain the component's version
iOmxErrorType = iGraphicSinkCompHandle->GetComponentVersion(iGraphicSinkCompHandle,
componentNameArray,&componentVersion,&specVersion,&componentUUID);
if (iOmxErrorType != OMX_ErrorNone)
{
SetTestStepError(KErrGeneral);
SetTestStepResult(EFail);
return TestStepResult();
}
// Translate component name
TBuf8<maxComponentNameSize> componentNameBuf8;
componentNameBuf8 = const_cast<const TUint8*>(reinterpret_cast<TUint8*>(componentNameArray));
TBuf<maxComponentNameSize> componentNameBuf16;
// INFO_PRINTF2(_L("Component Name length: %d"), componentNameBuf8.Length());
componentNameBuf16.Copy(componentNameBuf8);
componentNameBuf16.PtrZ();
const TBuf<maxComponentNameSize> componentNameConst = _L("OMX.SYMBIAN.VIDEO.GRAPHICSINK");
INFO_PRINTF2(_L("Component Name: %S"), &componentNameBuf16);
INFO_PRINTF2(_L("Component Version Major: %d"), componentVersion.s.nVersionMajor);
INFO_PRINTF2(_L("Component Version Minor: %d"), componentVersion.s.nVersionMinor);
INFO_PRINTF2(_L("Component Version Revision: %d"), componentVersion.s.nRevision);
INFO_PRINTF2(_L("Component Version Step: %d"), componentVersion.s.nStep);
INFO_PRINTF2(_L("OMX Version Major: %d"), specVersion.s.nVersionMajor);
INFO_PRINTF2(_L("OMX Version Minor: %d"), specVersion.s.nVersionMinor);
INFO_PRINTF2(_L("OMX Version Revision: %d"), specVersion.s.nRevision);
INFO_PRINTF2(_L("OMX Version Step: %d"), specVersion.s.nStep);
INFO_PRINTF2(_L("Component UUID: %X"), componentUUID);
// Quick check to confirm component name
if (componentNameConst != componentNameBuf16)
{
ERR_PRINTF1(_L("Incorrect component name retuned"));
SetTestStepError(KErrGeneral);
SetTestStepResult(EFail);
return TestStepResult();
}
// Simple GetParam test to display data change when using GetParam
OMX_PARAM_PORTDEFINITIONTYPE omxParamPortDefType;
// Confirm error when required paramaters not set
omxParamPortDefType.nPortIndex = 5;
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortDefType,OMX_ErrorBadPortIndex);
// Set required paramaters and test GetParameter
omxParamPortDefType.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
omxParamPortDefType.nVersion = TOmxILSpecVersion();
omxParamPortDefType.nPortIndex = 0;
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortDefType);
INFO_PRINTF2(_L("PORTDEFINITIONTYPE nBufferCountActual: %X"), omxParamPortDefType.nBufferCountActual);
INFO_PRINTF2(_L("PORTDEFINITIONTYPE nBufferCountMin: %X"), omxParamPortDefType.nBufferCountMin);
INFO_PRINTF2(_L("PORTDEFINITIONTYPE nBufferSize: %X"), omxParamPortDefType.nBufferSize);
INFO_PRINTF2(_L("PORTDEFINITIONTYPE eCompressionFormat: %X"), omxParamPortDefType.format.video.eCompressionFormat);
INFO_PRINTF2(_L("PORTDEFINITIONTYPE eColorFormat: %X"), omxParamPortDefType.format.video.eColorFormat);
INFO_PRINTF2(_L("PORTDEFINITIONTYPE xFramerate: %X"), omxParamPortDefType.format.video.xFramerate);
omxParamPortDefType.format.video.eCompressionFormat = OMX_VIDEO_CodingAutoDetect;
omxParamPortDefType.format.video.eColorFormat = OMX_COLOR_FormatCbYCrY;
// Attempt to set bad paramaters
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortDefType, OMX_ErrorUnsupportedSetting);
// Obtain the new port def params for OMX_VIDEO_PARAM_PORTFORMATTYPE
OMX_VIDEO_PARAM_PORTFORMATTYPE omxVideoParamPortForType;
omxVideoParamPortForType.nSize = sizeof(OMX_VIDEO_PARAM_PORTFORMATTYPE);
omxVideoParamPortForType.nVersion = TOmxILSpecVersion();
omxVideoParamPortForType.nPortIndex = 0;
omxVideoParamPortForType.nIndex = 0;
omxVideoParamPortForType.eCompressionFormat = OMX_VIDEO_CodingUnused;
omxVideoParamPortForType.eColorFormat = OMX_COLOR_FormatCrYCbY;
omxVideoParamPortForType.xFramerate = 0;
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamPortForType);
INFO_PRINTF2(_L("PORTFORMATTYPE nIndex: %X"), omxVideoParamPortForType.nIndex);
INFO_PRINTF2(_L("PORTFORMATTYPE nPortIndex: %X"), omxVideoParamPortForType.nPortIndex);
INFO_PRINTF2(_L("PORTFORMATTYPE nSize: %X"), omxVideoParamPortForType.nSize);
INFO_PRINTF2(_L("PORTFORMATTYPE nVersion: %X"), omxVideoParamPortForType.nVersion);
INFO_PRINTF2(_L("PORTFORMATTYPE eCompressionFormat: %X"), omxVideoParamPortForType.eCompressionFormat);
INFO_PRINTF2(_L("PORTFORMATTYPE eColorFormat: %X"), omxVideoParamPortForType.eColorFormat);
INFO_PRINTF2(_L("PORTFORMATTYPE xFramerate: %X"), omxVideoParamPortForType.xFramerate);
omxParamPortDefType.format.video.eCompressionFormat = OMX_VIDEO_CodingAutoDetect;
omxParamPortDefType.format.video.eColorFormat = OMX_COLOR_FormatCbYCrY;
// Attempt to set bad paramaters
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamPortForType,OMX_ErrorUnsupportedSetting);
// Obtain the new port def params for OMX_VIDEO_PARAM_PORTFORMATTYPE
OMX_VIDEO_PARAM_PORTFORMATTYPE omxVideoParamPortForType2;
omxVideoParamPortForType2.nSize = sizeof(OMX_VIDEO_PARAM_PORTFORMATTYPE);
omxVideoParamPortForType2.nVersion = TOmxILSpecVersion();
omxVideoParamPortForType2.nPortIndex = 0;
omxVideoParamPortForType2.nIndex = 1;
omxVideoParamPortForType2.eCompressionFormat = OMX_VIDEO_CodingUnused;
omxVideoParamPortForType2.eColorFormat = OMX_COLOR_FormatCrYCbY;
omxVideoParamPortForType2.xFramerate = 0;
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamPortForType2);
INFO_PRINTF2(_L("PORTFORMATTYPE nIndex: %X"), omxVideoParamPortForType2.nIndex);
INFO_PRINTF2(_L("PORTFORMATTYPE nPortIndex: %X"), omxVideoParamPortForType2.nPortIndex);
INFO_PRINTF2(_L("PORTFORMATTYPE nSize: %X"), omxVideoParamPortForType2.nSize);
INFO_PRINTF2(_L("PORTFORMATTYPE nVersion: %X"), omxVideoParamPortForType2.nVersion);
INFO_PRINTF2(_L("PORTFORMATTYPE eCompressionFormat: %X"), omxVideoParamPortForType2.eCompressionFormat);
INFO_PRINTF2(_L("PORTFORMATTYPE eColorFormat: %X"), omxVideoParamPortForType2.eColorFormat);
INFO_PRINTF2(_L("PORTFORMATTYPE xFramerate: %X"), omxVideoParamPortForType2.xFramerate);
omxVideoParamPortForType2.eCompressionFormat = OMX_VIDEO_CodingUnused;
omxVideoParamPortForType2.eColorFormat = OMX_COLOR_Format12bitRGB444;
// Attempt to set bad paramaters
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamPortForType2,OMX_ErrorUnsupportedSetting);
OMX_INDEXTYPE videosurfaceconfigindex = OMX_IndexMax;
const char tempconfig [] = "OMX.BRIAN.INDEX.PARAM.VIDEO.GFX.SURFACECONFIG";
iError = iGraphicSinkCompHandle->GetExtensionIndex(iGraphicSinkCompHandle, const_cast<char*>(tempconfig), &videosurfaceconfigindex);
if(OMX_ErrorUnsupportedIndex != iError)
{
INFO_PRINTF1(_L("OMX_GetExtensionIndex Failed"));
SetTestStepError(PrintOmxError(iError));
SetTestStepResult(EFail);
return TestStepResult();
}
SendCommand(iGraphicSinkCompHandle,OMX_CommandStateSet,OMX_StateExecuting,0,OMX_ErrorNone);
StartTimer();
return TestStepResult();
}
COmxGsTest0001Step00::~COmxGsTest0001Step00()
/**
* Destructor
*/
{
}
COmxGsTest0001Step00::COmxGsTest0001Step00()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0001Step00);
}
TVerdict COmxGsTest0001Step00::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
TInt err;
TVerdict result = EFail;
TRAP(err, result = DoGSCompAllocTestL());
if ((err != KErrNoMemory ))
{
INFO_PRINTF1(_L("Alloc testing completed successfully"));
result = EPass;
}
SetTestStepError(err);
SetTestStepResult(result);
return TestStepResult();
}
COmxGsTest0001Step02::~COmxGsTest0001Step02()
/**
* Destructor
*/
{
}
COmxGsTest0001Step02::COmxGsTest0001Step02()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0001Step02);
}
TVerdict COmxGsTest0001Step02::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
// Set Framerate and confirm OMX error
// Declare the structs for Parameter tests
OMX_PARAM_PORTDEFINITIONTYPE omxParamPortInput;
OMX_PARAM_PORTDEFINITIONTYPE omxParamPortOutput;
OMX_VIDEO_PARAM_PORTFORMATTYPE omxVideoParamInput;
OMX_VIDEO_PARAM_PORTFORMATTYPE omxVideoParamOutput;
// framerate is always 0 for gfx component.
const OMX_U32 setParam = 0;
/*
* Set the Framerate with the OMX_PARAM_PORTDEFINITIONTYPE struct
* Then compares it against other structs to ensure Framerate is updated
*/
omxParamPortInput.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
omxParamPortInput.nVersion = TOmxILSpecVersion();
omxParamPortInput.nPortIndex = 0;
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorNone);
// initial settings
omxParamPortInput.format.video.nFrameWidth = 320;
omxParamPortInput.format.video.nFrameHeight = 240;
omxParamPortInput.format.video.nStride = 320*2;
omxParamPortInput.format.video.eColorFormat = OMX_COLOR_FormatCbYCrY;
omxParamPortInput.format.video.eCompressionFormat = OMX_VIDEO_CodingUnused;
// for test
omxParamPortInput.format.video.xFramerate = 35;
// Test Framerate in the OMX_PARAM_PORTDEFINITIONTYPE struct
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput);
omxParamPortOutput.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
omxParamPortOutput.nVersion = TOmxILSpecVersion();
omxParamPortOutput.nPortIndex = 0;
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortOutput,OMX_ErrorNone);
CompareU32Param(setParam, omxParamPortOutput.format.video.xFramerate);
// Test Framerate in the OMX_VIDEO_PARAM_PORTFORMATTYPE struct
omxVideoParamOutput.nSize = sizeof(OMX_VIDEO_PARAM_PORTFORMATTYPE);
omxVideoParamOutput.nVersion = TOmxILSpecVersion();
omxVideoParamOutput.nPortIndex = 0;
omxVideoParamOutput.nIndex = 0;
omxVideoParamOutput.eCompressionFormat = OMX_VIDEO_CodingUnused;
omxVideoParamOutput.eColorFormat = OMX_COLOR_FormatCrYCbY;
omxVideoParamOutput.xFramerate = 0;
// by using getparameter with OMX_VIDEO_PARAM_PORTFORMATTYPE, test client specifies all fields including framerate.
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamOutput,OMX_ErrorNone);
CompareU32Param(setParam, omxVideoParamOutput.xFramerate);
omxVideoParamOutput.xFramerate = 45;
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamOutput,OMX_ErrorUnsupportedSetting);
omxVideoParamOutput.xFramerate = 0;
/*
* Set the Framerate with the OMX_VIDEO_PARAM_PORTFORMATTYPE struct
* Then compares it against other structs to ensure Framerate is updated
*/
omxVideoParamInput.nSize = sizeof(OMX_VIDEO_PARAM_PORTFORMATTYPE);
omxVideoParamInput.nVersion = TOmxILSpecVersion();
omxVideoParamInput.nPortIndex = 0;
omxVideoParamInput.nIndex = 0;
omxVideoParamInput.eCompressionFormat = OMX_VIDEO_CodingUnused;
omxVideoParamInput.eColorFormat = OMX_COLOR_FormatCrYCbY;
omxVideoParamInput.xFramerate = 0;
// by using getparameter with OMX_VIDEO_PARAM_PORTFORMATTYPE, test client specifies all fields including framerate.
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamInput,OMX_ErrorNone);
omxVideoParamInput.xFramerate = 45;
// Test Framerate in the OMX_VIDEO_PARAM_PORTFORMATTYPE struct
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamInput,OMX_ErrorUnsupportedSetting);
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamOutput,OMX_ErrorNone);
CompareU32Param(setParam, omxVideoParamOutput.xFramerate);
// Test Framerate in the OMX_PARAM_PORTDEFINITIONTYPE struct
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortOutput,OMX_ErrorNone);
CompareU32Param(setParam, omxParamPortOutput.format.video.xFramerate);
// Negative SetParamater test with OMX_SymbianIndexParamVideoGFXSurfaceConfig
iError = OMX_SetParameter(iGraphicSinkCompHandle, iSurfaceConfigExt,&omxVideoParamInput);
// TBD is OMX_ErrorUnsupportedIndex really the correct error code?
if (OMX_ErrorUnsupportedIndex != iError)
{
SetTestStepError(PrintOmxError(iError));
SetTestStepResult(EFail);
return TestStepResult();
}
SetTestStepResult(EPass);
return TestStepResult();
}
COmxGsTest0001Step03::~COmxGsTest0001Step03()
/**
* Destructor
*/
{
}
COmxGsTest0001Step03::COmxGsTest0001Step03()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0001Step03);
}
TVerdict COmxGsTest0001Step03::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
// Set Framesize and confirm
// Declare the structs for Parameter tests
OMX_PARAM_PORTDEFINITIONTYPE omxParamPortInput;
OMX_PARAM_PORTDEFINITIONTYPE omxParamPortOutput;
OMX_U32 setParamHeight;
OMX_U32 setParamWidth;
for (TInt i = 1; i <= 50; i++)
{
/*
* Set the Framsize with the OMX_PARAM_PORTDEFINITIONTYPE struct
* Then compares it against other structs to ensure Framerate is updated
*/
omxParamPortInput.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
omxParamPortInput.nVersion = TOmxILSpecVersion();
omxParamPortInput.nPortIndex = 0;
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorNone);
omxParamPortInput.format.video.nFrameHeight = 10 * i;
omxParamPortInput.format.video.nFrameWidth = 10 * i;
omxParamPortInput.format.video.eColorFormat = OMX_COLOR_FormatCbYCrY;
TInt bytesPerPixel = COmxILMMBuffer::BytesPerPixel(omxParamPortInput.format.video.eColorFormat);
TInt stride = bytesPerPixel * omxParamPortInput.format.video.nFrameWidth;
omxParamPortInput.format.video.nStride = stride;
setParamHeight = omxParamPortInput.format.video.nFrameHeight;
setParamWidth = omxParamPortInput.format.video.nFrameWidth;
// Test Framsize in the OMX_PARAM_PORTDEFINITIONTYPE struct
// INFO_PRINTF4(_L("i: %d, width: %d, height: %d"),i, omxParamPortInput.format.video.nFrameWidth, omxParamPortInput.format.video.nFrameHeight);
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorNone);
omxParamPortOutput.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
omxParamPortOutput.nVersion = TOmxILSpecVersion();
omxParamPortOutput.nPortIndex = 0;
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortOutput,OMX_ErrorNone);
CompareU32Param(setParamHeight, omxParamPortInput.format.video.nFrameHeight);
CompareU32Param(setParamWidth, omxParamPortInput.format.video.nFrameWidth);
CompareU32Param(setParamHeight, omxParamPortOutput.format.video.nFrameHeight);
CompareU32Param(setParamWidth, omxParamPortOutput.format.video.nFrameWidth);
}
SetTestStepResult(EPass);
return TestStepResult();
}
COmxGsTest0001Step04::~COmxGsTest0001Step04()
/**
* Destructor
*/
{
}
COmxGsTest0001Step04::COmxGsTest0001Step04()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0001Step04);
}
TVerdict COmxGsTest0001Step04::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
// Set FrameFormat and confirm
// Declare the structs for Parameter tests
OMX_PARAM_PORTDEFINITIONTYPE omxParamPortInput;
OMX_PARAM_PORTDEFINITIONTYPE omxParamPortOutput;
OMX_VIDEO_PARAM_PORTFORMATTYPE omxVideoParamInput;
OMX_VIDEO_PARAM_PORTFORMATTYPE omxVideoParamOutput;
OMX_COLOR_FORMATTYPE setColorFormat;
/*
* Set the Frameformat with the OMX_PARAM_PORTDEFINITIONTYPE struct
* Then compares it against other structs to ensure Framerate is updated
*/
omxParamPortInput.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
omxParamPortInput.nVersion = TOmxILSpecVersion();
omxParamPortInput.nPortIndex = 0;
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorNone);
// initial settings
omxParamPortInput.format.video.nFrameWidth = 320;
omxParamPortInput.format.video.nFrameHeight = 240;
omxParamPortInput.format.video.nStride = 320*2;
omxParamPortInput.format.video.eColorFormat = OMX_COLOR_FormatCbYCrY;
omxParamPortInput.format.video.eCompressionFormat = OMX_VIDEO_CodingUnused;
// Store default value should be OMX_COLOR_FormatCbYCrY
setColorFormat = omxParamPortInput.format.video.eColorFormat;
// Test Framerate in the OMX_PARAM_PORTDEFINITIONTYPE struct
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorNone);
omxParamPortOutput.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
omxParamPortOutput.nVersion = TOmxILSpecVersion();
omxParamPortOutput.nPortIndex = 0;
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortOutput,OMX_ErrorNone);
CompareCFTParam(setColorFormat, omxParamPortInput.format.video.eColorFormat,OMX_IndexParamPortDefinition);
CompareCFTParam(setColorFormat, omxParamPortOutput.format.video.eColorFormat,OMX_IndexParamPortDefinition);
// Test Framerate in the OMX_VIDEO_PARAM_PORTFORMATTYPE struct
omxVideoParamOutput.nSize = sizeof(OMX_VIDEO_PARAM_PORTFORMATTYPE);
omxVideoParamOutput.nVersion = TOmxILSpecVersion();
omxVideoParamOutput.nPortIndex = 0;
omxVideoParamOutput.nIndex = 0;
// The following 2 values should be over written by the correct ones for this index
omxVideoParamOutput.eCompressionFormat = OMX_VIDEO_CodingUnused;
omxVideoParamOutput.eColorFormat = OMX_COLOR_FormatCrYCbY;
omxVideoParamOutput.xFramerate = 0;
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamOutput,OMX_ErrorNone);
CompareCFTParam(setColorFormat, omxVideoParamOutput.eColorFormat,OMX_IndexParamVideoPortFormat);
// Negative GetParameter test for OMX_VIDEO_PARAM_PORTFORMATTYPE
omxVideoParamOutput.nIndex = 10;
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamOutput,OMX_ErrorNoMore);
omxVideoParamOutput.nIndex = 0;
// Because we only have one valid color format, set color format to unused before next test
omxParamPortInput.format.video.eColorFormat = OMX_COLOR_FormatUnused;
//should expect OMX_ErrorUnsupportedSetting when to try changing unsupported pixelformats.
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorUnsupportedSetting);
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortOutput,OMX_ErrorNone);
CompareCFTParam(setColorFormat, omxParamPortOutput.format.video.eColorFormat,OMX_IndexParamPortDefinition);
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamOutput,OMX_ErrorNone);
CompareCFTParam(setColorFormat, omxVideoParamOutput.eColorFormat,OMX_IndexParamVideoPortFormat);
/*
* Set the Frameformat with the OMX_VIDEO_PARAM_PORTFORMATTYPE struct
* Then compares it against other structs to ensure Framerate is updated
*/
// by using getparameter with OMX_VIDEO_PARAM_PORTFORMATTYPE, test client specifies all fields including framerate.
omxVideoParamInput.nSize = sizeof(OMX_VIDEO_PARAM_PORTFORMATTYPE);
omxVideoParamInput.nVersion = TOmxILSpecVersion();
omxVideoParamInput.nPortIndex = 0;
omxVideoParamInput.nIndex = 0;
// The following 2 values should be over written by the correct ones for this index
omxVideoParamInput.eCompressionFormat = OMX_VIDEO_CodingUnused;
omxVideoParamInput.eColorFormat = OMX_COLOR_FormatCrYCbY;
omxVideoParamInput.xFramerate = 0;
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamInput,OMX_ErrorNone);
setColorFormat = omxVideoParamInput.eColorFormat;
// Test Framerate in the OMX_VIDEO_PARAM_PORTFORMATTYPE struct
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamInput,OMX_ErrorNone);
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamOutput,OMX_ErrorNone);
CompareCFTParam(setColorFormat, omxVideoParamInput.eColorFormat,OMX_IndexParamVideoPortFormat);
CompareCFTParam(setColorFormat, omxVideoParamOutput.eColorFormat,OMX_IndexParamVideoPortFormat);
// Test Framerate in the OMX_PARAM_PORTDEFINITIONTYPE struct
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortOutput,OMX_ErrorNone);
CompareCFTParam(setColorFormat, omxParamPortOutput.format.video.eColorFormat,OMX_IndexParamPortDefinition);
// Because we only have one valid color format, set color format to unused before next test
omxVideoParamInput.eCompressionFormat = OMX_VIDEO_CodingMPEG4;
omxVideoParamInput.eColorFormat = OMX_COLOR_FormatUnused;
// Should expect OMX_ErrorUnsupportedSetting when to try changing unsupported pixelformats.
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamInput,OMX_ErrorUnsupportedSetting);
// The failed set paramater should not change the colour value in the component
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamOutput,OMX_ErrorNone);
CompareCFTParam(setColorFormat, omxVideoParamOutput.eColorFormat,OMX_IndexParamVideoPortFormat);
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortOutput,OMX_ErrorNone);
CompareCFTParam(setColorFormat, omxParamPortOutput.format.video.eColorFormat,OMX_IndexParamPortDefinition);
SetTestStepResult(EPass);
return TestStepResult();
}
COmxGsTest0001Step05::~COmxGsTest0001Step05()
/**
* Destructor
*/
{
}
COmxGsTest0001Step05::COmxGsTest0001Step05()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0001Step05);
}
TVerdict COmxGsTest0001Step05::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
// Declare the structs for Parameter tests
OMX_PARAM_PORTDEFINITIONTYPE omxParamPortInput;
OMX_PARAM_PORTDEFINITIONTYPE omxParamPortOutput;
OMX_U32 setParam;
/*
* Set the Frameformat with the OMX_PARAM_PORTDEFINITIONTYPE struct
* Then compares it against other structs to ensure Framerate is updated
*/
omxParamPortInput.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
omxParamPortInput.nVersion = TOmxILSpecVersion();
omxParamPortInput.nPortIndex = 0;
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorNone);
omxParamPortOutput.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
omxParamPortOutput.nVersion = TOmxILSpecVersion();
omxParamPortOutput.nPortIndex = 0;
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortOutput,OMX_ErrorNone);
// Confirm default values of buffer count
if (omxParamPortInput.nBufferCountMin <= 0)
{
ERR_PRINTF2(_L("Default buffer count minimun is not set correctly: %d"),omxParamPortInput.nBufferCountMin);
SetTestStepError(KErrGeneral);
SetTestStepResult(EFail);
return TestStepResult();
}
if (omxParamPortInput.nBufferCountActual == 0)
{
ERR_PRINTF1(_L("Default Buffer count min is set to 0"));
SetTestStepError(KErrGeneral);
SetTestStepResult(EFail);
return TestStepResult();
}
if (omxParamPortInput.nBufferCountActual < omxParamPortInput.nBufferCountMin)
{
ERR_PRINTF2(_L("Default buffer count minimun is not set correctly: %d"),omxParamPortInput.nBufferCountMin);
SetTestStepError(KErrGeneral);
SetTestStepResult(EFail);
return TestStepResult();
}
// Set nBufferCountActual to below nBufferCountMin
omxParamPortInput.nBufferCountActual = omxParamPortInput.nBufferCountMin - 1;
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorBadParameter);
for (TInt i = 0; i < 5; i++)
{
// INFO_PRINTF2(_L("COmxGsTest0001Step05::doTestStepL() Increase nBufferCountActual by %d"),i);
omxParamPortInput.nBufferCountActual = omxParamPortInput.nBufferCountMin + i;
setParam = omxParamPortInput.nBufferCountActual;
// initial settings
omxParamPortInput.format.video.nFrameWidth = 320;
omxParamPortInput.format.video.nFrameHeight = 240;
omxParamPortInput.format.video.nStride = 320*2;
omxParamPortInput.format.video.eColorFormat = OMX_COLOR_FormatCbYCrY;
omxParamPortInput.format.video.eCompressionFormat = OMX_VIDEO_CodingUnused;
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorNone);
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortOutput,OMX_ErrorNone);
CompareU32Param(setParam, omxParamPortInput.nBufferCountActual);
CompareU32Param(setParam, omxParamPortOutput.nBufferCountActual);
}
SetTestStepResult(EPass);
return TestStepResult();
}
COmxGsTest0001Step06::~COmxGsTest0001Step06()
/**
* Destructor
*/
{
}
COmxGsTest0001Step06::COmxGsTest0001Step06()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0001Step06);
}
TVerdict COmxGsTest0001Step06::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
// Declare the structs for Parameter tests
OMX_PARAM_PORTDEFINITIONTYPE omxParamPortInput;
OMX_PARAM_PORTDEFINITIONTYPE omxParamPortOutput;
/*
* OMX_PARAM_PORTDEFINITIONTYPE::nBufferAlignment
*/
omxParamPortInput.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
omxParamPortInput.nVersion = TOmxILSpecVersion();
omxParamPortInput.nPortIndex = 0;
omxParamPortOutput.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
omxParamPortOutput.nVersion = TOmxILSpecVersion();
omxParamPortOutput.nPortIndex = 0;
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorNone);
// Set values using OMX_PARAM_PORTDEFINITIONTYPE and confirm stride
// stride shouldn't be equal to zero. so i=1 .
for (TInt i = 1; i < 50; i++)
{
// initial settings
omxParamPortInput.format.video.nFrameHeight = 240;
omxParamPortInput.format.video.eColorFormat = OMX_COLOR_FormatCbYCrY;
omxParamPortInput.format.video.eCompressionFormat = OMX_VIDEO_CodingUnused;
// test starts
omxParamPortInput.format.video.nFrameWidth = 10 * i;
TInt bytesPerPixel = COmxILMMBuffer::BytesPerPixel(omxParamPortInput.format.video.eColorFormat);
TInt stride = bytesPerPixel * omxParamPortInput.format.video.nFrameWidth;
// The code needs to calculate the stride
omxParamPortInput.format.video.nStride = stride;
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorNone);
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortOutput,OMX_ErrorNone);
if (omxParamPortOutput.format.video.nStride < stride)
{
ERR_PRINTF2(_L("Stride value was not correct: %d"), omxParamPortOutput.format.video.nStride);
SetTestStepError(KErrGeneral);
SetTestStepResult(EFail);
return TestStepResult();
}
}
SetTestStepResult(EPass);
return TestStepResult();
}
COmxGsTest0001Step07::~COmxGsTest0001Step07()
/**
* Destructor
*/
{
}
COmxGsTest0001Step07::COmxGsTest0001Step07()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0001Step07);
}
TVerdict COmxGsTest0001Step07::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
// Declare the structs for Parameter tests
OMX_PARAM_PORTDEFINITIONTYPE omxParamPortTypeInput;
CreateOmxParamPortDefinitionType(&omxParamPortTypeInput);
OMX_PARAM_PORTDEFINITIONTYPE omxParamPortDefinition;
CreateOmxParamPortDefinitionType(&omxParamPortDefinition);
// The following tests attempt to set the parameter of the graphics sink component.
// In each case we call set, which is expected to pass through
// the component and return OMX_ErrorNone. After Get is called we perform a chack that the
// structs is updated.
// aren't they all read-only fields?
/*
omxParamPortTypeInput.nBufferCountMin = omxParamPortTypeInput.nBufferCountMin - 1;
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput);
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput);
CompareU32Param(omxParamPortDefinition.nBufferCountMin, omxParamPortTypeInput.nBufferCountMin );
// nBufferSize is read-only value
omxParamPortTypeInput.nBufferSize = omxParamPortDefinition.nBufferSize + omxParamPortDefinition.nBufferSize;
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput);
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput);
CompareU32Param(omxParamPortDefinition.nBufferSize,omxParamPortTypeInput.nBufferSize);
omxParamPortTypeInput.nBufferAlignment = 4;
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput,OMX_ErrorNone);
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput,OMX_ErrorNone);
CompareU32Param(omxParamPortDefinition.nBufferAlignment,omxParamPortTypeInput.nBufferAlignment);
// nSliceHeight is read-only value
omxParamPortTypeInput.format.video.nSliceHeight = 20;
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput,OMX_ErrorNone);
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput,OMX_ErrorNone);
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortDefinition,OMX_ErrorNone);
CompareU32Param(omxParamPortDefinition.format.video.nSliceHeight,omxParamPortTypeInput.format.video.nSliceHeight);
// bEnabled is read-only value
omxParamPortTypeInput.bEnabled = OMX_FALSE;
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput);
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput,OMX_ErrorNone);
CompareBoolParam(omxParamPortTypeInput.bEnabled, omxParamPortDefinition.bEnabled,OMX_IndexParamPortDefinition);
// bPopulated is read-only value
omxParamPortTypeInput.bPopulated = OMX_TRUE;
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput);
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput,OMX_ErrorNone);
CompareBoolParam(omxParamPortTypeInput.bPopulated, omxParamPortDefinition.bPopulated,OMX_IndexParamPortDefinition);
// bBuffersContiguous is read-only value
omxParamPortTypeInput.bBuffersContiguous = OMX_FALSE;
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput,OMX_ErrorNone);
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput,OMX_ErrorNone);
CompareBoolParam(omxParamPortTypeInput.bBuffersContiguous, omxParamPortDefinition.bBuffersContiguous,OMX_IndexParamPortDefinition);
// eDomain is read-only value
omxParamPortTypeInput.eDomain = OMX_PortDomainOther;
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput,OMX_ErrorNone);
GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput,OMX_ErrorNone);
CompareU32Param(omxParamPortTypeInput.eDomain, omxParamPortDefinition.eDomain);
*/
SetTestStepResult(EPass);
return TestStepResult();
}
COmxGsTest0001Step08::~COmxGsTest0001Step08()
/**
* Destructor
*/
{
}
COmxGsTest0001Step08::COmxGsTest0001Step08()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0001Step08);
}
TVerdict COmxGsTest0001Step08::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
OMX_PARAM_PORTDEFINITIONTYPE omxParamPortInput;
OMX_VIDEO_PARAM_PORTFORMATTYPE omxVideoParamInput;
CreateOmxParamPortDefinitionType(&omxParamPortInput);
CreateOmxVideoParamPortFormatType(&omxVideoParamInput);
OMX_COLOR_FORMATTYPE defaultColorFormat = omxParamPortInput.format.video.eColorFormat;
if (omxVideoParamInput.eColorFormat != omxParamPortInput.format.video.eColorFormat)
{
SetTestStepError(KErrGeneral);
return TestStepResult();
}
// Traverse the array of colour format to confirm support.
// The enumeration OMX_COLOR_FORMATTYPE starts at 1 and currently finishes at 43
for (TInt i = 1; i < 44; i++)
{
//INFO_PRINTF2(_L("COmxGsTest0001Step08::doTestStepL(): Set OMX_COLOR_FORMATTYPE(%d)"),i);
omxParamPortInput.format.video.eColorFormat = OMX_COLOR_FORMATTYPE(i);
omxVideoParamInput.eColorFormat = OMX_COLOR_FORMATTYPE(i);
omxVideoParamInput.eCompressionFormat = OMX_VIDEO_CodingUnused;
// initial settings
omxParamPortInput.format.video.nFrameWidth = 320;
omxParamPortInput.format.video.nFrameHeight = 240;
omxParamPortInput.format.video.eCompressionFormat = OMX_VIDEO_CodingUnused;
TInt check = OMX_COLOR_FORMATTYPE(i);
if(check == OMX_COLOR_Format16bitRGB565 ||
check == OMX_COLOR_FormatYCrYCb ||
check == OMX_COLOR_FormatCbYCrY ||
check == OMX_COLOR_Format32bitARGB8888)
{
TInt bytesPerPixel = COmxILMMBuffer::BytesPerPixel(omxParamPortInput.format.video.eColorFormat);
TInt stride = bytesPerPixel * omxParamPortInput.format.video.nFrameWidth;
omxParamPortInput.format.video.nStride = stride;
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput);
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamInput);
}
else
{
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorUnsupportedSetting);
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamInput,OMX_ErrorUnsupportedSetting);
}
omxParamPortInput.format.video.eColorFormat = defaultColorFormat;
omxVideoParamInput.eColorFormat = defaultColorFormat;
}
// Set CompressionFormat and confirm
OMX_VIDEO_CODINGTYPE defaultCompressionFormat = omxParamPortInput.format.video.eCompressionFormat;
if (omxVideoParamInput.eCompressionFormat != omxParamPortInput.format.video.eCompressionFormat)
{
SetTestStepError(KErrGeneral);
return TestStepResult();
}
for (TInt i = 1; i < 9; i++)
{
//INFO_PRINTF2(_L("COmxGsTest0001Step08::doTestStepL(): Set OMX_VIDEO_CODINGTYPE(%d)"),i);
omxParamPortInput.format.video.eCompressionFormat = OMX_VIDEO_CODINGTYPE(i);
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorUnsupportedSetting);
omxParamPortInput.format.video.eCompressionFormat = defaultCompressionFormat;
omxVideoParamInput.eCompressionFormat = OMX_VIDEO_CODINGTYPE(i);
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamInput,OMX_ErrorUnsupportedSetting);
omxVideoParamInput.eCompressionFormat = defaultCompressionFormat;
}
//INFO_PRINTF1(_L("COmxGsTest0001Step08::doTestStepL(): Set ColorFormat and CompressionFormat"));
for (TInt i = 0; i < 47; i++)
{
//INFO_PRINTF2(_L("COmxGsTest0001Step08::doTestStepL(): Set OMX_COLOR_FORMATTYPE(%d) using OMX_PARAM_PORTDEFINITIONTYPE"),i);
omxParamPortInput.format.video.eColorFormat = OMX_COLOR_FORMATTYPE(i);
for (TInt j = 0; j < 9; j++)
{
//INFO_PRINTF2(_L("COmxGsTest0001Step08::doTestStepL(): Set OMX_VIDEO_CODINGTYPE(%d) using OMX_PARAM_PORTDEFINITIONTYPE"),j);
omxParamPortInput.format.video.eCompressionFormat = OMX_VIDEO_CODINGTYPE(j);
if ((i == OMX_COLOR_Format16bitRGB565 || i == OMX_COLOR_FormatYCrYCb || i == OMX_COLOR_FormatCbYCrY || i == OMX_COLOR_Format32bitARGB8888) && j == 0)
{
TInt bytesPerPixel = COmxILMMBuffer::BytesPerPixel(omxParamPortInput.format.video.eColorFormat);
TInt stride = bytesPerPixel * omxParamPortInput.format.video.nFrameWidth;
omxParamPortInput.format.video.nStride = stride;
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput);
}
else
{
if ((i == 0 && j != 0) || (i != 0 && j == 0)) // If OMX_COLOR_FORMATTYPE set to OMX_VIDEO_CodingUnused error is OMX_ErrorUnsupportedSetting
{
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorUnsupportedSetting);
}
else
{
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorUnsupportedSetting);
}
}
}
INFO_PRINTF2(_L("COmxGsTest0001Step08::doTestStepL(): Set OMX_COLOR_FORMATTYPE(%d) using OMX_VIDEO_PARAM_PORTFORMATTYPE"),i);
omxVideoParamInput.eColorFormat = OMX_COLOR_FORMATTYPE(i);
for (TInt j = 0; j < 9; j++)
{
//INFO_PRINTF2(_L("COmxGsTest0001Step08::doTestStepL(): Set OMX_VIDEO_CODINGTYPE(%d) using OMX_VIDEO_PARAM_PORTFORMATTYPE"),j);
omxVideoParamInput.eCompressionFormat = OMX_VIDEO_CODINGTYPE(j);
// OMX_COLOR_Format16bitRGB565,OMX_COLOR_FormatYCrYCb, OMX_COLOR_FormatCbYCrY
if ((i == OMX_COLOR_Format16bitRGB565 || i == OMX_COLOR_FormatYCrYCb || i == OMX_COLOR_FormatCbYCrY || i == OMX_COLOR_Format32bitARGB8888) && j == 0)
{
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamInput);
}
else
{
if ((i == 0 && j != 0) || (i != 0 && j == 0)) // If OMX_COLOR_FORMATTYPE set to OMX_VIDEO_CodingUnused error is OMX_ErrorUnsupportedSetting
{
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamInput,OMX_ErrorUnsupportedSetting);
}
else
{
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamInput,OMX_ErrorUnsupportedSetting);
}
}
}
// Set values back to default
omxParamPortInput.format.video.eColorFormat = OMX_COLOR_FormatCbYCrY;
omxVideoParamInput.eColorFormat = OMX_COLOR_FormatCbYCrY;
omxParamPortInput.format.video.eCompressionFormat = OMX_VIDEO_CodingUnused;
omxVideoParamInput.eCompressionFormat = OMX_VIDEO_CodingUnused;
}
// Set color format and compression format to Unused
omxParamPortInput.format.video.eColorFormat = OMX_COLOR_FormatUnused;
omxVideoParamInput.eColorFormat = OMX_COLOR_FormatUnused;
omxParamPortInput.format.video.eCompressionFormat = OMX_VIDEO_CodingUnused;
omxVideoParamInput.eCompressionFormat = OMX_VIDEO_CodingUnused;
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorUnsupportedSetting);
SetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamInput,OMX_ErrorUnsupportedSetting);
SetTestStepResult(EPass);
return TestStepResult();
}
COmxGsTest0001Step09::~COmxGsTest0001Step09()
/**
* Destructor
*/
{
}
COmxGsTest0001Step09::COmxGsTest0001Step09()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0001Step09);
}
TVerdict COmxGsTest0001Step09::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
// COmxILMMBuffer::BytesPerPixel(OMX_COLOR_FORMATTYPE)
for (TInt i = 0; i < 47; i++)
{
TInt bytesPerPixel = 15;
bytesPerPixel = COmxILMMBuffer::BytesPerPixel(OMX_COLOR_FORMATTYPE(i));
if (bytesPerPixel == 15)
{
SetTestStepError(KErrGeneral);
return TestStepResult();
}
}
// COmxILMMBuffer::BytesPerPixel(TUidPixelFormat)
for (TInt i = 0; i < 50; i++)
{
TInt bytesPerPixel = 15;
bytesPerPixel = COmxILMMBuffer::BytesPerPixel(TUidPixelFormat(i));
if (bytesPerPixel == 15)
{
SetTestStepError(KErrGeneral);
return TestStepResult();
}
}
SetTestStepResult(EPass);
return TestStepResult();
}
COmxGsTest0002Step01::~COmxGsTest0002Step01()
/**
* Destructor
*/
{
}
COmxGsTest0002Step01::COmxGsTest0002Step01()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0002Step01);
}
TVerdict COmxGsTest0002Step01::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
CGraphicsSinkTestBase::DoROmxGsTestSetup();
AllocateBufferTask();
StartTimer();
return TestStepResult();
}
COmxGsTest0002Step02::~COmxGsTest0002Step02()
/**
* Destructor
*/
{
}
COmxGsTest0002Step02::COmxGsTest0002Step02()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0002Step02);
}
TVerdict COmxGsTest0002Step02::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
CGraphicsSinkTestBase::DoROmxGsTestSetup();
AllocateBufferTask();
StartTimer();
return TestStepResult();
}
COmxGsTest0002Step03::~COmxGsTest0002Step03()
/**
* Destructor
*/
{
}
COmxGsTest0002Step03::COmxGsTest0002Step03()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0002Step03);
}
TVerdict COmxGsTest0002Step03::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
DoROmxGsTestSetup();
AllocateBufferTask();
StartTimer();
return TestStepResult();
}
COmxGsTest0002Step04::~COmxGsTest0002Step04()
/**
* Destructor
*/
{
}
COmxGsTest0002Step04::COmxGsTest0002Step04()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0002Step04);
}
TVerdict COmxGsTest0002Step04::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
DoROmxGsTestSetup();
// Needed by Allocate buffer
TInt bytesPerPixel = COmxILMMBuffer::BytesPerPixel(iOmxParamPortInput.format.video.eColorFormat);
TInt bufferSize = bytesPerPixel * iOmxParamPortInput.format.video.nFrameWidth * iOmxParamPortInput.format.video.nFrameHeight;
AllocateBuffer(iGraphicSinkCompHandle,&iInputBufferHeader,0,NULL,bufferSize,&iInputBufferHeaders,1,OMX_ErrorIncorrectStateOperation);
iInputBufferHeaders.Reset();
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
SetTestStepResult(EPass);
return TestStepResult();
}
COmxGsTest0003Step01::~COmxGsTest0003Step01()
/**
* Destructor
*/
{
}
COmxGsTest0003Step01::COmxGsTest0003Step01()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0003Step01);
}
TVerdict COmxGsTest0003Step01::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
DoROmxGsTestSetup();
AllocateCCameraBuf();
UseBufferTask();
if( iError == OMX_ErrorNone ){
StartTimer();
}
return TestStepResult();
}
COmxGsTest0003Step02::~COmxGsTest0003Step02()
/**
* Destructor
*/
{
}
COmxGsTest0003Step02::COmxGsTest0003Step02()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0003Step02);
}
TVerdict COmxGsTest0003Step02::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
DoROmxGsTestSetup();
AllocateCCameraBuf();
UseBufferTask();
StartTimer();
return TestStepResult();
}
COmxGsTest0003Step03::~COmxGsTest0003Step03()
/**
* Destructor
*/
{
}
COmxGsTest0003Step03::COmxGsTest0003Step03()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0003Step03);
}
TVerdict COmxGsTest0003Step03::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
DoROmxGsTestSetup();
AllocateCCameraBuf();
UseBufferTask();
StartTimer();
return TestStepResult();
}
COmxGsTest0003Step04::~COmxGsTest0003Step04()
/**
* Destructor
*/
{
}
COmxGsTest0003Step04::COmxGsTest0003Step04()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0003Step04);
}
TVerdict COmxGsTest0003Step04::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
DoROmxGsTestSetup();
TInt bytesperpixel = COmxILMMBuffer::BytesPerPixel(iOmxParamPortInput.format.video.eColorFormat);
// Not a true declaration, just used to test UseBuffer
iTestChunk.CreateLocal(1024,1024);
// Create local buffer then create iCamBuf from it. Used for coverage
COmxILMMBuffer* cameraBuffer = NULL;
TRAPD(err, cameraBuffer = COmxILMMBuffer::NewL(iTestChunk));
if(err)
{
ERR_PRINTF1(_L("OOM ERROR"));
SetTestStepError(err);
return TestStepResult();
}
/*
TRAP(err, iCamBuf = COmxILMMBuffer::CreateL(*cameraBuffer));
delete cameraBuffer;
if(err != KErrNone)
{
ERR_PRINTF1(_L("Failed to produce COmxILMMBuffer using COmxILMMBuffer::CreateL()"));
SetTestStepError(err);
return TestStepResult();
}
*/
OMX_INDEXTYPE sharedChunkMetadataExtensionIndex;
// due to chunk extension support in gfx
if (OMX_ErrorNone == OMX_GetExtensionIndex(
iGraphicSinkCompHandle,
OMX_SYMBIAN_INDEX_CONFIG_SHAREDCHUNKMETADATA_NAME,
&sharedChunkMetadataExtensionIndex))
{
// Communicate the shared chunk metadata to the tunnelled
// component
OMX_SYMBIAN_CONFIG_SHAREDCHUNKMETADATATYPE configSharedChunkMetadata;
configSharedChunkMetadata.nSize = sizeof(OMX_SYMBIAN_CONFIG_SHAREDCHUNKMETADATATYPE);
configSharedChunkMetadata.nVersion = TOmxILSpecVersion();
configSharedChunkMetadata.nPortIndex = 0;
configSharedChunkMetadata.nHandleId = iTestChunk.Handle();
configSharedChunkMetadata.nOwnerThreadId = RThread().Id().Id();
(void) OMX_SetConfig(iGraphicSinkCompHandle,
sharedChunkMetadataExtensionIndex,
&configSharedChunkMetadata);
}
else
{
ERR_PRINTF1(_L("Failed to set shared chunk meta-data config."));
SetTestStepError(err);
return TestStepResult();
}
iPreviousState = OMX_StateLoaded;
// UseBuffer with illegal pointer to the memory buffer area to be used
iOmxErrorType = iGraphicSinkCompHandle->UseBuffer(iGraphicSinkCompHandle,&iOutputBufferHeader,0,cameraBuffer,cameraBuffer->Chunk().Size(),0);
if (OMX_ErrorBadParameter != iOmxErrorType)
{
ERR_PRINTF1(_L("UseBuffer un-expectantly did not return an error"));
SetTestStepError(PrintOmxError(iOmxErrorType));
return TestStepResult();
}
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
// UseBuffer with illegal buffer size in bytes
iOmxErrorType = iGraphicSinkCompHandle->UseBuffer(iGraphicSinkCompHandle,
//&iOutputBufferHeader,0,iCamBuf,0,iCamBuf->Chunk().Base());
&iOutputBufferHeader,0,NULL,0,iTestChunk.Base());
if (OMX_ErrorBadParameter != iOmxErrorType)
{
ERR_PRINTF1(_L("UseBuffer un-expectantly did not return an error"));
SetTestStepError(PrintOmxError(iOmxErrorType));
return TestStepResult();
}
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
// UseBuffer with illegal pointer to memory buffer and size
iOmxErrorType = iGraphicSinkCompHandle->UseBuffer(iGraphicSinkCompHandle,
//&iOutputBufferHeader,0,iCamBuf,0,0);
&iOutputBufferHeader,0,NULL,0,NULL);
if (OMX_ErrorBadParameter != iOmxErrorType)
{
ERR_PRINTF1(_L("UseBuffer un-expectantly did not return an error"));
SetTestStepError(PrintOmxError(iOmxErrorType));
return TestStepResult();
}
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
// UseBuffer without calling SendCommand
iOmxErrorType = iGraphicSinkCompHandle->UseBuffer(iGraphicSinkCompHandle,
//&iOutputBufferHeader,0,iCamBuf,iCamBuf->Chunk().Size(),iCamBuf->Chunk().Base());
&iOutputBufferHeader,0,NULL,iTestChunk.Size(),iTestChunk.Base());
if (OMX_ErrorIncorrectStateOperation != iOmxErrorType)
{
ERR_PRINTF1(_L("UseBuffer un-expectantly did not return an error"));
SetTestStepError(PrintOmxError(iOmxErrorType));
return TestStepResult();
}
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
// UseBuffer with correct parameters
SendCommand(iGraphicSinkCompHandle,OMX_CommandStateSet,OMX_StateIdle,0);
/*
// change made due to OMXILBufferClass
iCamBuf->OffsetInfoArray().Append(0);
iOmxErrorType = iGraphicSinkCompHandle->UseBuffer(iGraphicSinkCompHandle,&iInputBufferHeader,
0,iCamBuf,iCamBuf->Chunk().Size(),iCamBuf->Chunk().Base() + iCamBuf->OffsetInfoArray()[0]);
// Confirm UseBuffer returns OMX_ErrorBadParameter
if (OMX_ErrorBadParameter != iOmxErrorType)
{
ERR_PRINTF1(_L("UseBuffer returned incorrect error"));
SetTestStepError(PrintOmxError(iOmxErrorType));
return TestStepResult();
}
// Confirm state unaltered
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
*/
delete cameraBuffer;
//iTestChunk.Close();
SetTestStepResult(EPass);
return TestStepResult();
}
COmxGsTest0004Step01::~COmxGsTest0004Step01()
/**
* Destructor
*/
{
}
COmxGsTest0004Step01::COmxGsTest0004Step01()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0004Step01);
}
TVerdict COmxGsTest0004Step01::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
DoROmxGsTestSetup();
AllocateBufferTask();
StartTimer();
return TestStepResult();
}
COmxGsTest0004Step02::~COmxGsTest0004Step02()
/**
* Destructor
*/
{
}
COmxGsTest0004Step02::COmxGsTest0004Step02()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0004Step02);
}
TVerdict COmxGsTest0004Step02::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
DoROmxGsTestSetup();
AllocateBufferTask();
StartTimer();
return TestStepResult();
}
COmxGsTest0004Step03::~COmxGsTest0004Step03()
/**
* Destructor
*/
{
}
COmxGsTest0004Step03::COmxGsTest0004Step03()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0004Step03);
}
TVerdict COmxGsTest0004Step03::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
DoROmxGsTestSetup();
AllocateBufferTask();
StartTimer();
return TestStepResult();
}
COmxGsTest0004Step04::~COmxGsTest0004Step04()
/**
* Destructor
*/
{
}
COmxGsTest0004Step04::COmxGsTest0004Step04()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0004Step04);
}
TVerdict COmxGsTest0004Step04::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
DoROmxGsTestSetup();
AllocateBufferTask();
StartTimer();
return TestStepResult();
}
COmxGsTest0004Step05::~COmxGsTest0004Step05()
/**
* Destructor
*/
{
}
COmxGsTest0004Step05::COmxGsTest0004Step05()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0004Step05);
}
TVerdict COmxGsTest0004Step05::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
DoROmxGsTestSetup();
AllocateBufferTask();
StartTimer();
return TestStepResult();
}
COmxGsTest0004Step06::~COmxGsTest0004Step06()
/**
* Destructor
*/
{
}
COmxGsTest0004Step06::COmxGsTest0004Step06()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0004Step06);
}
TVerdict COmxGsTest0004Step06::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
DoROmxGsTestSetup();
AllocateBufferTask();
StartTimer();
return TestStepResult();
}
COmxGsTest0005Step01::~COmxGsTest0005Step01()
/**
* Destructor
*/
{
}
COmxGsTest0005Step01::COmxGsTest0005Step01()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0005Step01);
}
TVerdict COmxGsTest0005Step01::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
DoROmxGsTestSetup();
iDoEmptyBufferDoneLimit = 10;
AllocateBufferTask();
StartTimer();
return TestStepResult();
}
COmxGsTest0005Step02::~COmxGsTest0005Step02()
/**
* Destructor
*/
{
}
COmxGsTest0005Step02::COmxGsTest0005Step02()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0005Step02);
}
TVerdict COmxGsTest0005Step02::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
DoROmxGsTestSetup();
iDoEmptyBufferDoneLimit = 10;
AllocateBufferTask();
StartTimer();
return TestStepResult();
}
COmxGsTest0005Step03::~COmxGsTest0005Step03()
/**
* Destructor
*/
{
}
COmxGsTest0005Step03::COmxGsTest0005Step03()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0005Step03);
}
TVerdict COmxGsTest0005Step03::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
DoROmxGsTestSetup();
iDoEmptyBufferDoneLimit = 10;
AllocateBufferTask();
StartTimer();
return TestStepResult();
}
COmxGsTest0005Step04::~COmxGsTest0005Step04()
/**
* Destructor
*/
{
}
COmxGsTest0005Step04::COmxGsTest0005Step04()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0005Step04);
}
TVerdict COmxGsTest0005Step04::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
DoROmxGsTestSetup();
iDoEmptyBufferDoneLimit = 10;
AllocateBufferTask();
StartTimer();
return TestStepResult();
}
COmxGsTest0005Step05::~COmxGsTest0005Step05()
/**
* Destructor
*/
{
}
COmxGsTest0005Step05::COmxGsTest0005Step05()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0005Step05);
}
TVerdict COmxGsTest0005Step05::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
DoROmxGsTestSetup();
iDoEmptyBufferDoneLimit = 10;
AllocateBufferTask();
StartTimer();
return TestStepResult();
}
COmxGsTest0006Step01::~COmxGsTest0006Step01()
/**
* Destructor
*/
{
}
COmxGsTest0006Step01::COmxGsTest0006Step01()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0006Step01);
}
TVerdict COmxGsTest0006Step01::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
DoROmxGsTestSetup();
AllocateBufferTask();
StartTimer();
return TestStepResult();
}
COmxGsTest0006Step02::~COmxGsTest0006Step02()
/**
* Destructor
*/
{
}
COmxGsTest0006Step02::COmxGsTest0006Step02()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0006Step02);
}
TVerdict COmxGsTest0006Step02::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
DoROmxGsTestSetup();
AllocateBufferTask();
StartTimer();
return TestStepResult();
}
COmxGsTest0007Step01::~COmxGsTest0007Step01()
/**
* Destructor
*/
{
}
COmxGsTest0007Step01::COmxGsTest0007Step01()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0007Step01);
}
TVerdict COmxGsTest0007Step01::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
iDoEmptyBufferDoneLimit = 8;
iExecutingToIdle = EFalse;
DoROmxGsTestSetup();
AllocateBufferTask();
StartTimer();
return TestStepResult();
}
COmxGsTest0007Step02::~COmxGsTest0007Step02()
/**
* Destructor
*/
{
}
COmxGsTest0007Step02::COmxGsTest0007Step02()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0007Step02);
}
TVerdict COmxGsTest0007Step02::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
iDoEmptyBufferDoneLimit = 8;
iExecutingToIdle = EFalse;
DoROmxGsTestSetup();
AllocateBufferTask();
StartTimer();
return TestStepResult();
}
COmxGsTest0007Step03::~COmxGsTest0007Step03()
/**
* Destructor
*/
{
}
COmxGsTest0007Step03::COmxGsTest0007Step03()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0007Step03);
}
TVerdict COmxGsTest0007Step03::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
iDoEmptyBufferDoneLimit = 8;
iExecutingToIdle = EFalse;
DoROmxGsTestSetup();
AllocateBufferTask();
StartTimer();
return TestStepResult();
}
COmxGsTest0007Step04::~COmxGsTest0007Step04()
/**
* Destructor
*/
{
}
COmxGsTest0007Step04::COmxGsTest0007Step04()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0007Step04);
}
TVerdict COmxGsTest0007Step04::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
iDoEmptyBufferDoneLimit = 8;
iExecutingToIdle = EFalse;
DoROmxGsTestSetup();
AllocateBufferTask();
StartTimer();
return TestStepResult();
}
COmxGsTest0008Step01::~COmxGsTest0008Step01()
/**
* Destructor
*/
{
}
COmxGsTest0008Step01::COmxGsTest0008Step01()
/**
* Constructor
*/
{
SetTestStepName(KOmxGsTest0008Step01);
}
TVerdict COmxGsTest0008Step01::doTestStepL()
/**
* @return - TVerdict code
* Override of base class pure virtual
* Our implementation only gets called if the base class doTestStepPreambleL() did
* not leave. That being the case, the current test result value will be EPass.
*/
{
// Use set and get config for all different relevant dynamic configurations including negative tests
OMX_FRAMESIZETYPE setFrameSize;
OMX_CONFIG_SCALEFACTORTYPE setScaleFactor;
OMX_CONFIG_RECTTYPE setRecType;
OMX_FRAMESIZETYPE getFrameSize;
OMX_CONFIG_SCALEFACTORTYPE getScaleFactor;
OMX_CONFIG_RECTTYPE getRecType;
//Testing OMX_IndexConfigCommonScale
setScaleFactor.nSize = sizeof(OMX_CONFIG_SCALEFACTORTYPE);
setScaleFactor.nVersion = TOmxILSpecVersion();
setScaleFactor.nPortIndex = 0;
GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonScale,&setScaleFactor);
setScaleFactor.xWidth = 0x10000;
setScaleFactor.xHeight = 0x10000;
SetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonScale,&setScaleFactor);
getScaleFactor.nSize = sizeof(OMX_CONFIG_SCALEFACTORTYPE);
getScaleFactor.nVersion = TOmxILSpecVersion();
getScaleFactor.nPortIndex = 0;
GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonScale,&getScaleFactor);
if(setScaleFactor.xWidth != getScaleFactor.xWidth || setScaleFactor.xHeight != getScaleFactor.xHeight)
{
ERR_PRINTF1(_L("COmxGsTest0008Step01::doTestStepL(): OMX_IndexConfigCommonScale 1 error"));
SetTestStepError(KErrGeneral);
return TestStepResult();
}
//Code coverage negative testing
setScaleFactor.nPortIndex = 1;
GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonScale,&setScaleFactor,OMX_ErrorBadPortIndex);
SetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonScale,&setScaleFactor,OMX_ErrorBadPortIndex);
//Testing OMX_IndexConfigCommonScale
setScaleFactor.nSize = sizeof(OMX_CONFIG_SCALEFACTORTYPE);
setScaleFactor.nVersion = TOmxILSpecVersion();
setScaleFactor.nPortIndex = 0;
GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonScale,&setScaleFactor);
setScaleFactor.xWidth = 0x20000;
setScaleFactor.xHeight = 0x20000;
SetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonScale,&setScaleFactor);
SetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonScale,&setScaleFactor);
getScaleFactor.nSize = sizeof(OMX_CONFIG_SCALEFACTORTYPE);
getScaleFactor.nVersion = TOmxILSpecVersion();
getScaleFactor.nPortIndex = 0;
GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonScale,&getScaleFactor);
if(setScaleFactor.xWidth != getScaleFactor.xWidth || setScaleFactor.xHeight != getScaleFactor.xHeight)
{
ERR_PRINTF1(_L("COmxGsTest0008Step01::doTestStepL(): OMX_IndexConfigCommonScale 2 error"));
SetTestStepError(KErrGeneral);
return TestStepResult();
}
//Testing OMX_IndexConfigCommonOutputSize
setFrameSize.nSize = sizeof(OMX_FRAMESIZETYPE);
setFrameSize.nVersion = TOmxILSpecVersion();
setFrameSize.nPortIndex = 0;
GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonOutputSize,&setFrameSize);
setFrameSize.nWidth = 320;
setFrameSize.nHeight = 240;
SetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonOutputSize,&setFrameSize);
getFrameSize.nSize = sizeof(OMX_FRAMESIZETYPE);
getFrameSize.nVersion = TOmxILSpecVersion();
getFrameSize.nPortIndex = 0;
GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonOutputSize,&getFrameSize);
if(setFrameSize.nWidth != getFrameSize.nWidth || setFrameSize.nHeight != getFrameSize.nHeight)
{
ERR_PRINTF1(_L("COmxGsTest0008Step01::doTestStepL(): OMX_IndexConfigCommonOutputSize 1 error"));
SetTestStepError(KErrGeneral);
return TestStepResult();
}
//Code coverage negative testing
setFrameSize.nPortIndex = 1;
GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonOutputSize,&setFrameSize,OMX_ErrorBadPortIndex);
SetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonOutputSize,&setFrameSize,OMX_ErrorBadPortIndex);
//Testing OMX_IndexConfigCommonOutputSize
setFrameSize.nSize = sizeof(OMX_FRAMESIZETYPE);
setFrameSize.nVersion = TOmxILSpecVersion();
setFrameSize.nPortIndex = 0;
GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonOutputSize,&setFrameSize);
setFrameSize.nWidth = 160;
setFrameSize.nHeight = 120;
SetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonOutputSize,&setFrameSize);
getFrameSize.nSize = sizeof(OMX_FRAMESIZETYPE);
getFrameSize.nVersion = TOmxILSpecVersion();
getFrameSize.nPortIndex = 0;
GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonOutputSize,&getFrameSize);
if(setFrameSize.nWidth != getFrameSize.nWidth || setFrameSize.nHeight != getFrameSize.nHeight)
{
ERR_PRINTF1(_L("COmxGsTest0008Step01::doTestStepL(): OMX_IndexConfigCommonOutputSize 2 error"));
SetTestStepError(KErrGeneral);
return TestStepResult();
}
//Testing OMX_IndexConfigCommonInputCrop
setRecType.nSize = sizeof(OMX_CONFIG_RECTTYPE);
setRecType.nVersion = TOmxILSpecVersion();
setRecType.nPortIndex = 0;
GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonInputCrop,&setRecType);
setRecType.nLeft = 0x10000;
setRecType.nTop = 0x10000;
setRecType.nWidth = 320;
setRecType.nHeight = 240;
SetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonInputCrop,&setRecType);
getRecType.nSize = sizeof(OMX_CONFIG_RECTTYPE);
getRecType.nVersion = TOmxILSpecVersion();
getRecType.nPortIndex = 0;
GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonInputCrop,&getRecType);
if( setRecType.nLeft != getRecType.nLeft
|| setRecType.nTop != getRecType.nTop
|| setRecType.nWidth != getRecType.nWidth
|| setRecType.nHeight != getRecType.nHeight )
{
ERR_PRINTF1(_L("COmxGsTest0008Step01::doTestStepL(): OMX_IndexConfigCommonInputCrop 1 error"));
SetTestStepError(KErrGeneral);
return TestStepResult();
}
//Testing OMX_IndexConfigCommonOutputCrop
setRecType.nSize = sizeof(OMX_CONFIG_RECTTYPE);
setRecType.nVersion = TOmxILSpecVersion();
setRecType.nPortIndex = 0;
GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonOutputCrop,&setRecType);
setRecType.nLeft = 0x20000;
setRecType.nTop = 0x20000;
setRecType.nWidth = 160;
setRecType.nHeight = 120;
SetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonOutputCrop,&setRecType);
getRecType.nSize = sizeof(OMX_CONFIG_RECTTYPE);
getRecType.nVersion = TOmxILSpecVersion();
getRecType.nPortIndex = 0;
GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonOutputCrop,&getRecType);
if( setRecType.nLeft != getRecType.nLeft
|| setRecType.nTop != getRecType.nTop
|| setRecType.nWidth != getRecType.nWidth
|| setRecType.nHeight != getRecType.nHeight )
{
ERR_PRINTF1(_L("COmxGsTest0008Step01::doTestStepL(): OMX_IndexConfigCommonOutputCrop 1 error"));
SetTestStepError(KErrGeneral);
return TestStepResult();
}
//Testing OMX_IndexConfigCommonExclusionRect
setRecType.nSize = sizeof(OMX_CONFIG_RECTTYPE);
setRecType.nVersion = TOmxILSpecVersion();
setRecType.nPortIndex = 0;
GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonExclusionRect,&setRecType);
setRecType.nLeft = 0x20000;
setRecType.nTop = 0x20000;
setRecType.nWidth = 320;
setRecType.nHeight = 240;
SetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonExclusionRect,&setRecType);
getRecType.nSize = sizeof(OMX_CONFIG_RECTTYPE);
getRecType.nVersion = TOmxILSpecVersion();
getRecType.nPortIndex = 0;
GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonExclusionRect,&getRecType);
if( setRecType.nLeft != getRecType.nLeft
|| setRecType.nTop != getRecType.nTop
|| setRecType.nWidth != getRecType.nWidth
|| setRecType.nHeight != getRecType.nHeight )
{
ERR_PRINTF1(_L("COmxGsTest0008Step01::doTestStepL(): OMX_IndexConfigCommonExclusionRect 1 error"));
SetTestStepError(KErrGeneral);
return TestStepResult();
}
//Negative GetConfig test
OMX_CONFIG_CONTRASTTYPE conContrastType;
conContrastType.nSize = sizeof(OMX_CONFIG_CONTRASTTYPE);
conContrastType.nVersion = TOmxILSpecVersion();
conContrastType.nPortIndex = 0;
GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonContrast,&conContrastType,OMX_ErrorUnsupportedIndex);
SetTestStepResult(EPass);
return TestStepResult();
}
COmxGsTest0009Step00::~COmxGsTest0009Step00()
{
}
COmxGsTest0009Step00::COmxGsTest0009Step00()
{
SetTestStepName(KOmxGsTest0009Step00);
}
TVerdict COmxGsTest0009Step00::doTestStepL()
{
GetIntFromConfig(ConfigSection(),KMMTestCase,iTestCase);
GetIntFromConfig(ConfigSection(),KMMTestStep,iTestStep);
INFO_PRINTF3(_L("COmxGsTest000%dStep0%d::doTestStepL: State Loaded to Executing transition using AllocateBuffer"),iTestCase,iTestStep);
DoROmxGsTestSetup();
StartStateTransitionTask();
StartTimer();
return TestStepResult();
}
COmxGsTest0010Step00::~COmxGsTest0010Step00()
{
}
COmxGsTest0010Step00::COmxGsTest0010Step00()
{
SetTestStepName(KOmxGsTest0010Step00);
}
TVerdict COmxGsTest0010Step00::doTestStepL()
{
GetIntFromConfig(ConfigSection(),KMMTestCase,iTestCase);
GetIntFromConfig(ConfigSection(),KMMTestStep,iTestStep);
GetIntFromConfig(ConfigSection(),_L("REmptyBufferLimit"),iDoEmptyBufferDoneLimit);
INFO_PRINTF3(_L("COmxGsTest000%dStep0%d::doTestStepL: Empty Buffer Done using AllocateBuffer"),iTestCase,iTestStep);
DoROmxGsTestSetup();
StartBufferDoneTask();
StartTimer();
return TestStepResult();
}