omxilvideocomps/omxilgraphicsink/tsrc/src/graphicsinkteststeps.cpp
changeset 0 5d29cba61097
equal deleted inserted replaced
-1:000000000000 0:5d29cba61097
       
     1 /*
       
     2 * Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: 
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 /**
       
    20  * @file
       
    21  * @internalTechnology
       
    22  */
       
    23 
       
    24 #include "graphicsinkteststeps.h"
       
    25 #include <openmax/il/shai/OMX_Symbian_ExtensionNames.h>
       
    26 #include <openmax/il/shai/OMX_Symbian_ComponentExt.h>
       
    27 
       
    28 COmxGsTest0001Step01::~COmxGsTest0001Step01()
       
    29 /**
       
    30  * Destructor
       
    31  */
       
    32 	{
       
    33 	}
       
    34 
       
    35 COmxGsTest0001Step01::COmxGsTest0001Step01()
       
    36 /**
       
    37  * Constructor
       
    38  */
       
    39 	{
       
    40 	SetTestStepName(KOmxGsTest0001Step01);
       
    41 	}
       
    42 
       
    43 TVerdict COmxGsTest0001Step01::doTestStepL()
       
    44 /**
       
    45  * @return - TVerdict code
       
    46  * Override of base class pure virtual
       
    47  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
    48  * not leave. That being the case, the current test result value will be EPass.
       
    49  */
       
    50 	{
       
    51 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
    52 	
       
    53 	// Check GetComponentVersion
       
    54 	const TInt maxComponentNameSize = 128;
       
    55 
       
    56 	char componentNameArray[maxComponentNameSize];
       
    57 	OMX_VERSIONTYPE componentVersion;
       
    58 	OMX_VERSIONTYPE specVersion;
       
    59 	OMX_UUIDTYPE componentUUID;
       
    60 	
       
    61 	// Obtain the component's version
       
    62 	iOmxErrorType = iGraphicSinkCompHandle->GetComponentVersion(iGraphicSinkCompHandle,
       
    63 			componentNameArray,&componentVersion,&specVersion,&componentUUID);
       
    64 	if (iOmxErrorType != OMX_ErrorNone)
       
    65 		{
       
    66 		SetTestStepError(KErrGeneral);
       
    67 		SetTestStepResult(EFail);
       
    68 		return TestStepResult();
       
    69 		}
       
    70 
       
    71 	// Translate component name
       
    72 	TBuf8<maxComponentNameSize> componentNameBuf8;
       
    73 	componentNameBuf8 = const_cast<const TUint8*>(reinterpret_cast<TUint8*>(componentNameArray));
       
    74 	TBuf<maxComponentNameSize> componentNameBuf16;
       
    75 	// INFO_PRINTF2(_L("Component Name length: %d"), componentNameBuf8.Length());
       
    76 	componentNameBuf16.Copy(componentNameBuf8);
       
    77 	componentNameBuf16.PtrZ();
       
    78 	const TBuf<maxComponentNameSize> componentNameConst = _L("OMX.SYMBIAN.VIDEO.GRAPHICSINK");
       
    79 	
       
    80 	INFO_PRINTF2(_L("Component Name: %S"), &componentNameBuf16);
       
    81 	INFO_PRINTF2(_L("Component Version Major: %d"), componentVersion.s.nVersionMajor);
       
    82 	INFO_PRINTF2(_L("Component Version Minor: %d"), componentVersion.s.nVersionMinor);
       
    83 	INFO_PRINTF2(_L("Component Version Revision: %d"), componentVersion.s.nRevision);
       
    84 	INFO_PRINTF2(_L("Component Version Step: %d"), componentVersion.s.nStep);
       
    85 	INFO_PRINTF2(_L("OMX Version Major: %d"), specVersion.s.nVersionMajor);
       
    86 	INFO_PRINTF2(_L("OMX Version Minor: %d"), specVersion.s.nVersionMinor);
       
    87 	INFO_PRINTF2(_L("OMX Version Revision: %d"), specVersion.s.nRevision);
       
    88 	INFO_PRINTF2(_L("OMX Version Step: %d"), specVersion.s.nStep);
       
    89 	INFO_PRINTF2(_L("Component UUID: %X"), componentUUID);
       
    90 
       
    91 	// Quick check to confirm component name
       
    92 	if (componentNameConst != componentNameBuf16)
       
    93 		{
       
    94 		ERR_PRINTF1(_L("Incorrect component name retuned"));
       
    95 		SetTestStepError(KErrGeneral);
       
    96 		SetTestStepResult(EFail);
       
    97 		return TestStepResult();
       
    98 		}
       
    99 	
       
   100 	// Simple GetParam test to display data change when using GetParam
       
   101 	OMX_PARAM_PORTDEFINITIONTYPE omxParamPortDefType;
       
   102 	// Confirm error when required paramaters not set
       
   103 	omxParamPortDefType.nPortIndex = 5;
       
   104 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortDefType,OMX_ErrorBadPortIndex);
       
   105 
       
   106 	// Set required paramaters and test GetParameter 
       
   107 	omxParamPortDefType.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
       
   108 	omxParamPortDefType.nVersion = TOmxILSpecVersion();
       
   109 	omxParamPortDefType.nPortIndex = 0;
       
   110 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortDefType);
       
   111 
       
   112 	INFO_PRINTF2(_L("PORTDEFINITIONTYPE nBufferCountActual: %X"), omxParamPortDefType.nBufferCountActual);
       
   113 	INFO_PRINTF2(_L("PORTDEFINITIONTYPE nBufferCountMin: %X"), omxParamPortDefType.nBufferCountMin);
       
   114 	INFO_PRINTF2(_L("PORTDEFINITIONTYPE nBufferSize: %X"), omxParamPortDefType.nBufferSize);
       
   115 	INFO_PRINTF2(_L("PORTDEFINITIONTYPE eCompressionFormat: %X"), omxParamPortDefType.format.video.eCompressionFormat);
       
   116 	INFO_PRINTF2(_L("PORTDEFINITIONTYPE eColorFormat: %X"), omxParamPortDefType.format.video.eColorFormat);
       
   117 	INFO_PRINTF2(_L("PORTDEFINITIONTYPE xFramerate: %X"), omxParamPortDefType.format.video.xFramerate);
       
   118 
       
   119 	omxParamPortDefType.format.video.eCompressionFormat = OMX_VIDEO_CodingAutoDetect;
       
   120 	omxParamPortDefType.format.video.eColorFormat = OMX_COLOR_FormatCbYCrY;
       
   121 	
       
   122 	// Attempt to set bad paramaters
       
   123 	SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortDefType, OMX_ErrorUnsupportedSetting);
       
   124 	
       
   125 	// Obtain the new port def params for OMX_VIDEO_PARAM_PORTFORMATTYPE
       
   126 	OMX_VIDEO_PARAM_PORTFORMATTYPE omxVideoParamPortForType;
       
   127 	
       
   128 	omxVideoParamPortForType.nSize = sizeof(OMX_VIDEO_PARAM_PORTFORMATTYPE);
       
   129 	omxVideoParamPortForType.nVersion = TOmxILSpecVersion();
       
   130 	omxVideoParamPortForType.nPortIndex = 0;
       
   131 	omxVideoParamPortForType.nIndex = 0;
       
   132 	omxVideoParamPortForType.eCompressionFormat = OMX_VIDEO_CodingUnused;
       
   133 	omxVideoParamPortForType.eColorFormat = OMX_COLOR_FormatCrYCbY;
       
   134 	omxVideoParamPortForType.xFramerate = 0;
       
   135 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamPortForType);
       
   136 
       
   137 	INFO_PRINTF2(_L("PORTFORMATTYPE nIndex: %X"), omxVideoParamPortForType.nIndex);
       
   138 	INFO_PRINTF2(_L("PORTFORMATTYPE nPortIndex: %X"), omxVideoParamPortForType.nPortIndex);
       
   139 	INFO_PRINTF2(_L("PORTFORMATTYPE nSize: %X"), omxVideoParamPortForType.nSize);
       
   140 	INFO_PRINTF2(_L("PORTFORMATTYPE nVersion: %X"), omxVideoParamPortForType.nVersion);
       
   141 	INFO_PRINTF2(_L("PORTFORMATTYPE eCompressionFormat: %X"), omxVideoParamPortForType.eCompressionFormat);
       
   142 	INFO_PRINTF2(_L("PORTFORMATTYPE eColorFormat: %X"), omxVideoParamPortForType.eColorFormat);
       
   143 	INFO_PRINTF2(_L("PORTFORMATTYPE xFramerate: %X"), omxVideoParamPortForType.xFramerate);
       
   144 	
       
   145 	omxParamPortDefType.format.video.eCompressionFormat = OMX_VIDEO_CodingAutoDetect;
       
   146 	omxParamPortDefType.format.video.eColorFormat = OMX_COLOR_FormatCbYCrY;
       
   147 	
       
   148 	 // Attempt to set bad paramaters
       
   149 	SetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamPortForType,OMX_ErrorUnsupportedSetting);
       
   150 	
       
   151 	// Obtain the new port def params for OMX_VIDEO_PARAM_PORTFORMATTYPE
       
   152 	OMX_VIDEO_PARAM_PORTFORMATTYPE omxVideoParamPortForType2;
       
   153 	
       
   154 	omxVideoParamPortForType2.nSize = sizeof(OMX_VIDEO_PARAM_PORTFORMATTYPE);
       
   155 	omxVideoParamPortForType2.nVersion = TOmxILSpecVersion();
       
   156 	omxVideoParamPortForType2.nPortIndex = 0;
       
   157 	omxVideoParamPortForType2.nIndex = 1;
       
   158 	omxVideoParamPortForType2.eCompressionFormat = OMX_VIDEO_CodingUnused;
       
   159 	omxVideoParamPortForType2.eColorFormat = OMX_COLOR_FormatCrYCbY;
       
   160 	omxVideoParamPortForType2.xFramerate = 0;
       
   161 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamPortForType2);
       
   162 
       
   163 	INFO_PRINTF2(_L("PORTFORMATTYPE nIndex: %X"), omxVideoParamPortForType2.nIndex);
       
   164 	INFO_PRINTF2(_L("PORTFORMATTYPE nPortIndex: %X"), omxVideoParamPortForType2.nPortIndex);
       
   165 	INFO_PRINTF2(_L("PORTFORMATTYPE nSize: %X"), omxVideoParamPortForType2.nSize);
       
   166 	INFO_PRINTF2(_L("PORTFORMATTYPE nVersion: %X"), omxVideoParamPortForType2.nVersion);
       
   167 	INFO_PRINTF2(_L("PORTFORMATTYPE eCompressionFormat: %X"), omxVideoParamPortForType2.eCompressionFormat);
       
   168 	INFO_PRINTF2(_L("PORTFORMATTYPE eColorFormat: %X"), omxVideoParamPortForType2.eColorFormat);
       
   169 	INFO_PRINTF2(_L("PORTFORMATTYPE xFramerate: %X"), omxVideoParamPortForType2.xFramerate);
       
   170 	
       
   171 	omxVideoParamPortForType2.eCompressionFormat = OMX_VIDEO_CodingUnused;
       
   172 	omxVideoParamPortForType2.eColorFormat = OMX_COLOR_Format12bitRGB444;
       
   173 	
       
   174 	// Attempt to set bad paramaters
       
   175 	SetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamPortForType2,OMX_ErrorUnsupportedSetting);
       
   176 	
       
   177 	OMX_INDEXTYPE videosurfaceconfigindex = OMX_IndexMax;
       
   178 	const char tempconfig [] = "OMX.BRIAN.INDEX.PARAM.VIDEO.GFX.SURFACECONFIG";
       
   179 	iError = iGraphicSinkCompHandle->GetExtensionIndex(iGraphicSinkCompHandle, const_cast<char*>(tempconfig), &videosurfaceconfigindex);
       
   180 	if(OMX_ErrorUnsupportedIndex != iError)
       
   181 		{
       
   182 		INFO_PRINTF1(_L("OMX_GetExtensionIndex Failed"));
       
   183 		SetTestStepError(PrintOmxError(iError));
       
   184 		SetTestStepResult(EFail);
       
   185 		return TestStepResult();
       
   186 		}
       
   187 	
       
   188 	SendCommand(iGraphicSinkCompHandle,OMX_CommandStateSet,OMX_StateExecuting,0,OMX_ErrorNone);
       
   189 	StartTimer();
       
   190 	return TestStepResult();
       
   191 	}
       
   192 
       
   193 COmxGsTest0001Step00::~COmxGsTest0001Step00()
       
   194 /**
       
   195  * Destructor
       
   196  */
       
   197 	{
       
   198 	}
       
   199 
       
   200 COmxGsTest0001Step00::COmxGsTest0001Step00()
       
   201 /**
       
   202  * Constructor
       
   203  */
       
   204 	{
       
   205 	SetTestStepName(KOmxGsTest0001Step00);
       
   206 	}
       
   207 
       
   208 TVerdict COmxGsTest0001Step00::doTestStepL()
       
   209 /**
       
   210  * @return - TVerdict code
       
   211  * Override of base class pure virtual
       
   212  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
   213  * not leave. That being the case, the current test result value will be EPass.
       
   214  */
       
   215 	{
       
   216 	TInt err;
       
   217 	TVerdict result = EFail;
       
   218 
       
   219 	TRAP(err, result = DoGSCompAllocTestL());
       
   220 
       
   221 	if ((err != KErrNoMemory ))
       
   222 		{
       
   223 		INFO_PRINTF1(_L("Alloc testing completed successfully"));
       
   224 		result = EPass;
       
   225 		}
       
   226 
       
   227 	SetTestStepError(err);
       
   228 	SetTestStepResult(result);
       
   229 	return TestStepResult();
       
   230 	}
       
   231 
       
   232 COmxGsTest0001Step02::~COmxGsTest0001Step02()
       
   233 /**
       
   234  * Destructor
       
   235  */
       
   236 	{
       
   237 	}
       
   238 
       
   239 COmxGsTest0001Step02::COmxGsTest0001Step02()
       
   240 /**
       
   241  * Constructor
       
   242  */
       
   243 	{
       
   244 	SetTestStepName(KOmxGsTest0001Step02);
       
   245 	}
       
   246 
       
   247 
       
   248 TVerdict COmxGsTest0001Step02::doTestStepL()
       
   249 /**
       
   250  * @return - TVerdict code
       
   251  * Override of base class pure virtual
       
   252  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
   253  * not leave. That being the case, the current test result value will be EPass.
       
   254  */
       
   255 	{
       
   256 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
   257 
       
   258 	// Set Framerate and confirm OMX error
       
   259 	// Declare the structs for Parameter tests
       
   260 	OMX_PARAM_PORTDEFINITIONTYPE omxParamPortInput;
       
   261 	OMX_PARAM_PORTDEFINITIONTYPE omxParamPortOutput; 
       
   262 	OMX_VIDEO_PARAM_PORTFORMATTYPE omxVideoParamInput;
       
   263 	OMX_VIDEO_PARAM_PORTFORMATTYPE omxVideoParamOutput;
       
   264 	// framerate is always 0 for gfx component.
       
   265 	const OMX_U32 setParam = 0;
       
   266 	
       
   267 	/*
       
   268 	* Set the Framerate with the OMX_PARAM_PORTDEFINITIONTYPE struct
       
   269 	* Then compares it against other structs to ensure Framerate is updated
       
   270 	*/
       
   271 	omxParamPortInput.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
       
   272 	omxParamPortInput.nVersion = TOmxILSpecVersion();
       
   273 	omxParamPortInput.nPortIndex = 0;
       
   274 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorNone);
       
   275 	
       
   276 	// initial settings
       
   277 	omxParamPortInput.format.video.nFrameWidth = 320;
       
   278     omxParamPortInput.format.video.nFrameHeight = 240;
       
   279     omxParamPortInput.format.video.nStride = 320*2;
       
   280     omxParamPortInput.format.video.eColorFormat = OMX_COLOR_FormatCbYCrY;
       
   281     omxParamPortInput.format.video.eCompressionFormat = OMX_VIDEO_CodingUnused;
       
   282 	
       
   283     // for test
       
   284     omxParamPortInput.format.video.xFramerate = 35;
       
   285 	
       
   286 	// Test Framerate in the OMX_PARAM_PORTDEFINITIONTYPE struct
       
   287 	SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput);
       
   288 
       
   289 	omxParamPortOutput.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
       
   290 	omxParamPortOutput.nVersion = TOmxILSpecVersion();
       
   291 	omxParamPortOutput.nPortIndex = 0;
       
   292 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortOutput,OMX_ErrorNone);
       
   293 	CompareU32Param(setParam, omxParamPortOutput.format.video.xFramerate);
       
   294 	
       
   295 	// Test Framerate in the OMX_VIDEO_PARAM_PORTFORMATTYPE struct
       
   296 	omxVideoParamOutput.nSize = sizeof(OMX_VIDEO_PARAM_PORTFORMATTYPE);
       
   297 	omxVideoParamOutput.nVersion = TOmxILSpecVersion();
       
   298 	omxVideoParamOutput.nPortIndex = 0;
       
   299 	omxVideoParamOutput.nIndex = 0;
       
   300 	omxVideoParamOutput.eCompressionFormat = OMX_VIDEO_CodingUnused;
       
   301 	omxVideoParamOutput.eColorFormat = OMX_COLOR_FormatCrYCbY;
       
   302 	omxVideoParamOutput.xFramerate = 0;
       
   303 	// by using getparameter with OMX_VIDEO_PARAM_PORTFORMATTYPE, test client specifies all fields including framerate.
       
   304 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamOutput,OMX_ErrorNone);
       
   305 	CompareU32Param(setParam, omxVideoParamOutput.xFramerate);
       
   306 	omxVideoParamOutput.xFramerate = 45;
       
   307 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamOutput,OMX_ErrorUnsupportedSetting);
       
   308 	omxVideoParamOutput.xFramerate = 0;
       
   309 
       
   310 	/*
       
   311 	* Set the Framerate with the OMX_VIDEO_PARAM_PORTFORMATTYPE struct
       
   312 	* Then compares it against other structs to ensure Framerate is updated
       
   313 	*/
       
   314 	omxVideoParamInput.nSize = sizeof(OMX_VIDEO_PARAM_PORTFORMATTYPE);
       
   315 	omxVideoParamInput.nVersion = TOmxILSpecVersion();
       
   316 	omxVideoParamInput.nPortIndex = 0;
       
   317 	omxVideoParamInput.nIndex = 0;
       
   318 	omxVideoParamInput.eCompressionFormat = OMX_VIDEO_CodingUnused;
       
   319 	omxVideoParamInput.eColorFormat = OMX_COLOR_FormatCrYCbY;
       
   320 	omxVideoParamInput.xFramerate = 0;
       
   321 	// by using getparameter with OMX_VIDEO_PARAM_PORTFORMATTYPE, test client specifies all fields including framerate.
       
   322 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamInput,OMX_ErrorNone);
       
   323 	omxVideoParamInput.xFramerate = 45;
       
   324 	// Test Framerate in the OMX_VIDEO_PARAM_PORTFORMATTYPE struct
       
   325 	SetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamInput,OMX_ErrorUnsupportedSetting);
       
   326 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamOutput,OMX_ErrorNone);
       
   327 	CompareU32Param(setParam, omxVideoParamOutput.xFramerate);
       
   328 	
       
   329 	// Test Framerate in the OMX_PARAM_PORTDEFINITIONTYPE struct
       
   330 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortOutput,OMX_ErrorNone);
       
   331 	CompareU32Param(setParam, omxParamPortOutput.format.video.xFramerate);
       
   332 	
       
   333 	// Negative SetParamater test with OMX_SymbianIndexParamVideoGFXSurfaceConfig
       
   334 	iError = OMX_SetParameter(iGraphicSinkCompHandle, iSurfaceConfigExt,&omxVideoParamInput);
       
   335 	// TBD is OMX_ErrorUnsupportedIndex really the correct error code?
       
   336 	if (OMX_ErrorUnsupportedIndex != iError)
       
   337 		{
       
   338 		SetTestStepError(PrintOmxError(iError));
       
   339 		SetTestStepResult(EFail);
       
   340 		return TestStepResult();
       
   341 		}
       
   342 	
       
   343 	SetTestStepResult(EPass);
       
   344 	return TestStepResult();
       
   345 	}
       
   346 
       
   347 COmxGsTest0001Step03::~COmxGsTest0001Step03()
       
   348 /**
       
   349  * Destructor
       
   350  */
       
   351 	{
       
   352 	}
       
   353 
       
   354 COmxGsTest0001Step03::COmxGsTest0001Step03()
       
   355 /**
       
   356  * Constructor
       
   357  */
       
   358 	{
       
   359 	SetTestStepName(KOmxGsTest0001Step03);
       
   360 	}
       
   361 
       
   362 TVerdict COmxGsTest0001Step03::doTestStepL()
       
   363 /**
       
   364  * @return - TVerdict code
       
   365  * Override of base class pure virtual
       
   366  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
   367  * not leave. That being the case, the current test result value will be EPass.
       
   368  */
       
   369 	{
       
   370 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
   371 		
       
   372 	// Set Framesize and confirm
       
   373 	// Declare the structs for Parameter tests
       
   374 	OMX_PARAM_PORTDEFINITIONTYPE omxParamPortInput;
       
   375 	OMX_PARAM_PORTDEFINITIONTYPE omxParamPortOutput;
       
   376 	OMX_U32 setParamHeight;
       
   377 	OMX_U32 setParamWidth;
       
   378 
       
   379 	for (TInt i = 1; i <= 50; i++)
       
   380 		{
       
   381 		/*
       
   382 		* Set the Framsize with the OMX_PARAM_PORTDEFINITIONTYPE struct
       
   383 		* Then compares it against other structs to ensure Framerate is updated
       
   384 		*/
       
   385 		omxParamPortInput.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
       
   386 		omxParamPortInput.nVersion = TOmxILSpecVersion();
       
   387 		omxParamPortInput.nPortIndex = 0;
       
   388 		GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorNone);
       
   389 		
       
   390 		omxParamPortInput.format.video.nFrameHeight = 10 * i;
       
   391 		omxParamPortInput.format.video.nFrameWidth = 10 * i;
       
   392 		
       
   393 		omxParamPortInput.format.video.eColorFormat = OMX_COLOR_FormatCbYCrY;
       
   394 		TInt bytesPerPixel = COmxILMMBuffer::BytesPerPixel(omxParamPortInput.format.video.eColorFormat);
       
   395 		TInt stride = bytesPerPixel * omxParamPortInput.format.video.nFrameWidth;
       
   396 		omxParamPortInput.format.video.nStride = stride;
       
   397 		
       
   398 		setParamHeight = omxParamPortInput.format.video.nFrameHeight;
       
   399 		setParamWidth = omxParamPortInput.format.video.nFrameWidth;
       
   400 		// Test Framsize in the OMX_PARAM_PORTDEFINITIONTYPE struct
       
   401 		
       
   402 		// INFO_PRINTF4(_L("i: %d, width: %d, height: %d"),i, omxParamPortInput.format.video.nFrameWidth, omxParamPortInput.format.video.nFrameHeight);	
       
   403 		
       
   404 		SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorNone);
       
   405 
       
   406 		omxParamPortOutput.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
       
   407 		omxParamPortOutput.nVersion = TOmxILSpecVersion();
       
   408 		omxParamPortOutput.nPortIndex = 0;
       
   409 		GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortOutput,OMX_ErrorNone);
       
   410 		CompareU32Param(setParamHeight, omxParamPortInput.format.video.nFrameHeight);
       
   411 		CompareU32Param(setParamWidth, omxParamPortInput.format.video.nFrameWidth);
       
   412 		CompareU32Param(setParamHeight, omxParamPortOutput.format.video.nFrameHeight);
       
   413 		CompareU32Param(setParamWidth, omxParamPortOutput.format.video.nFrameWidth);
       
   414 		}
       
   415 	
       
   416 	SetTestStepResult(EPass);
       
   417 	
       
   418 	return TestStepResult();
       
   419 	}
       
   420 
       
   421 COmxGsTest0001Step04::~COmxGsTest0001Step04()
       
   422 /**
       
   423  * Destructor
       
   424  */
       
   425 	{
       
   426 	}
       
   427 
       
   428 COmxGsTest0001Step04::COmxGsTest0001Step04()
       
   429 /**
       
   430  * Constructor
       
   431  */
       
   432 	{
       
   433 	SetTestStepName(KOmxGsTest0001Step04);
       
   434 	}
       
   435 
       
   436 TVerdict COmxGsTest0001Step04::doTestStepL()
       
   437 /**
       
   438  * @return - TVerdict code
       
   439  * Override of base class pure virtual
       
   440  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
   441  * not leave. That being the case, the current test result value will be EPass.
       
   442  */
       
   443 	{
       
   444 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
   445 
       
   446 	// Set FrameFormat and confirm
       
   447 	// Declare the structs for Parameter tests
       
   448 	OMX_PARAM_PORTDEFINITIONTYPE omxParamPortInput;
       
   449 	OMX_PARAM_PORTDEFINITIONTYPE omxParamPortOutput; 
       
   450 	OMX_VIDEO_PARAM_PORTFORMATTYPE omxVideoParamInput;
       
   451 	OMX_VIDEO_PARAM_PORTFORMATTYPE omxVideoParamOutput;
       
   452 	OMX_COLOR_FORMATTYPE setColorFormat;
       
   453 	
       
   454 	/*
       
   455 	* Set the Frameformat with the OMX_PARAM_PORTDEFINITIONTYPE struct
       
   456 	* Then compares it against other structs to ensure Framerate is updated
       
   457 	*/
       
   458 	omxParamPortInput.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
       
   459 	omxParamPortInput.nVersion = TOmxILSpecVersion();
       
   460 	omxParamPortInput.nPortIndex = 0;
       
   461 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorNone);
       
   462 	
       
   463 	   
       
   464     // initial settings
       
   465     omxParamPortInput.format.video.nFrameWidth = 320;
       
   466     omxParamPortInput.format.video.nFrameHeight = 240;
       
   467     omxParamPortInput.format.video.nStride = 320*2;
       
   468     omxParamPortInput.format.video.eColorFormat = OMX_COLOR_FormatCbYCrY;
       
   469     omxParamPortInput.format.video.eCompressionFormat = OMX_VIDEO_CodingUnused;
       
   470     
       
   471 	// Store default value should be OMX_COLOR_FormatCbYCrY
       
   472 	setColorFormat = omxParamPortInput.format.video.eColorFormat;
       
   473 	// Test Framerate in the OMX_PARAM_PORTDEFINITIONTYPE struct
       
   474 	SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorNone);
       
   475 	
       
   476 	omxParamPortOutput.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
       
   477 	omxParamPortOutput.nVersion = TOmxILSpecVersion();
       
   478 	omxParamPortOutput.nPortIndex = 0;
       
   479 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortOutput,OMX_ErrorNone);
       
   480 	CompareCFTParam(setColorFormat, omxParamPortInput.format.video.eColorFormat,OMX_IndexParamPortDefinition);
       
   481 	CompareCFTParam(setColorFormat, omxParamPortOutput.format.video.eColorFormat,OMX_IndexParamPortDefinition);
       
   482 	
       
   483 	// Test Framerate in the OMX_VIDEO_PARAM_PORTFORMATTYPE struct
       
   484 	omxVideoParamOutput.nSize = sizeof(OMX_VIDEO_PARAM_PORTFORMATTYPE);
       
   485 	omxVideoParamOutput.nVersion = TOmxILSpecVersion();
       
   486 	omxVideoParamOutput.nPortIndex = 0;
       
   487 	omxVideoParamOutput.nIndex = 0;
       
   488 	// The following 2 values should be over written by the correct ones for this index
       
   489 	omxVideoParamOutput.eCompressionFormat = OMX_VIDEO_CodingUnused;
       
   490 	omxVideoParamOutput.eColorFormat = OMX_COLOR_FormatCrYCbY;
       
   491 	omxVideoParamOutput.xFramerate = 0;
       
   492 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamOutput,OMX_ErrorNone);
       
   493 	CompareCFTParam(setColorFormat, omxVideoParamOutput.eColorFormat,OMX_IndexParamVideoPortFormat);
       
   494 	
       
   495     // Negative GetParameter test for OMX_VIDEO_PARAM_PORTFORMATTYPE
       
   496     omxVideoParamOutput.nIndex = 10;
       
   497     GetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamOutput,OMX_ErrorNoMore);
       
   498     omxVideoParamOutput.nIndex = 0;
       
   499     
       
   500 	// Because we only have one valid color format, set color format to unused before next test
       
   501 	omxParamPortInput.format.video.eColorFormat = OMX_COLOR_FormatUnused;
       
   502 	
       
   503 	//should expect OMX_ErrorUnsupportedSetting when to try changing unsupported pixelformats.
       
   504 	SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorUnsupportedSetting);
       
   505 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortOutput,OMX_ErrorNone);
       
   506 	CompareCFTParam(setColorFormat, omxParamPortOutput.format.video.eColorFormat,OMX_IndexParamPortDefinition);
       
   507 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamOutput,OMX_ErrorNone);
       
   508 	CompareCFTParam(setColorFormat, omxVideoParamOutput.eColorFormat,OMX_IndexParamVideoPortFormat);
       
   509 
       
   510 	/*
       
   511 	* Set the Frameformat with the OMX_VIDEO_PARAM_PORTFORMATTYPE struct
       
   512 	* Then compares it against other structs to ensure Framerate is updated
       
   513 	*/
       
   514 	// by using getparameter with OMX_VIDEO_PARAM_PORTFORMATTYPE, test client specifies all fields including framerate.
       
   515 	omxVideoParamInput.nSize = sizeof(OMX_VIDEO_PARAM_PORTFORMATTYPE);
       
   516 	omxVideoParamInput.nVersion = TOmxILSpecVersion();
       
   517 	omxVideoParamInput.nPortIndex = 0;
       
   518 	omxVideoParamInput.nIndex = 0;
       
   519 	// The following 2 values should be over written by the correct ones for this index
       
   520 	omxVideoParamInput.eCompressionFormat = OMX_VIDEO_CodingUnused;
       
   521 	omxVideoParamInput.eColorFormat = OMX_COLOR_FormatCrYCbY;
       
   522 	omxVideoParamInput.xFramerate = 0;
       
   523 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamInput,OMX_ErrorNone);
       
   524 	setColorFormat = omxVideoParamInput.eColorFormat;
       
   525 	
       
   526 	// Test Framerate in the OMX_VIDEO_PARAM_PORTFORMATTYPE struct
       
   527 	SetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamInput,OMX_ErrorNone);
       
   528 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamOutput,OMX_ErrorNone);
       
   529 	CompareCFTParam(setColorFormat, omxVideoParamInput.eColorFormat,OMX_IndexParamVideoPortFormat);
       
   530 	CompareCFTParam(setColorFormat, omxVideoParamOutput.eColorFormat,OMX_IndexParamVideoPortFormat);
       
   531 	
       
   532 	// Test Framerate in the OMX_PARAM_PORTDEFINITIONTYPE struct
       
   533 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortOutput,OMX_ErrorNone);
       
   534 	CompareCFTParam(setColorFormat, omxParamPortOutput.format.video.eColorFormat,OMX_IndexParamPortDefinition);
       
   535 	// Because we only have one valid color format, set color format to unused before next test
       
   536 	omxVideoParamInput.eCompressionFormat = OMX_VIDEO_CodingMPEG4;
       
   537 	omxVideoParamInput.eColorFormat = OMX_COLOR_FormatUnused;
       
   538 	// Should expect OMX_ErrorUnsupportedSetting when to try changing unsupported pixelformats.
       
   539 	SetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamInput,OMX_ErrorUnsupportedSetting);
       
   540 	// The failed set paramater should not change the colour value in the component
       
   541 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamOutput,OMX_ErrorNone);
       
   542 	CompareCFTParam(setColorFormat, omxVideoParamOutput.eColorFormat,OMX_IndexParamVideoPortFormat);
       
   543 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortOutput,OMX_ErrorNone);
       
   544 	CompareCFTParam(setColorFormat, omxParamPortOutput.format.video.eColorFormat,OMX_IndexParamPortDefinition);
       
   545 
       
   546 	SetTestStepResult(EPass);
       
   547 	return TestStepResult();
       
   548 	}
       
   549 
       
   550 COmxGsTest0001Step05::~COmxGsTest0001Step05()
       
   551 /**
       
   552  * Destructor
       
   553  */
       
   554 	{
       
   555 	}
       
   556 
       
   557 COmxGsTest0001Step05::COmxGsTest0001Step05()
       
   558 /**
       
   559  * Constructor
       
   560  */
       
   561 	{
       
   562 	SetTestStepName(KOmxGsTest0001Step05);
       
   563 	}
       
   564 
       
   565 TVerdict COmxGsTest0001Step05::doTestStepL()
       
   566 /**
       
   567  * @return - TVerdict code
       
   568  * Override of base class pure virtual
       
   569  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
   570  * not leave. That being the case, the current test result value will be EPass.
       
   571  */
       
   572 	{
       
   573 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
   574 	
       
   575 	// Declare the structs for Parameter tests
       
   576 	OMX_PARAM_PORTDEFINITIONTYPE omxParamPortInput;
       
   577 	OMX_PARAM_PORTDEFINITIONTYPE omxParamPortOutput; 
       
   578 	OMX_U32 setParam;
       
   579 	
       
   580 	/*
       
   581 	* Set the Frameformat with the OMX_PARAM_PORTDEFINITIONTYPE struct
       
   582 	* Then compares it against other structs to ensure Framerate is updated
       
   583 	*/
       
   584 	omxParamPortInput.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
       
   585 	omxParamPortInput.nVersion = TOmxILSpecVersion();
       
   586 	omxParamPortInput.nPortIndex = 0;
       
   587 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorNone);
       
   588 
       
   589 	omxParamPortOutput.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
       
   590 	omxParamPortOutput.nVersion = TOmxILSpecVersion();
       
   591 	omxParamPortOutput.nPortIndex = 0;
       
   592 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortOutput,OMX_ErrorNone);
       
   593 	
       
   594 	// Confirm default values of buffer count
       
   595 	if (omxParamPortInput.nBufferCountMin <= 0)
       
   596 		{
       
   597 		ERR_PRINTF2(_L("Default buffer count minimun is not set correctly: %d"),omxParamPortInput.nBufferCountMin);
       
   598 		SetTestStepError(KErrGeneral);
       
   599 		SetTestStepResult(EFail);
       
   600 		return TestStepResult();
       
   601 		}
       
   602 
       
   603 	if (omxParamPortInput.nBufferCountActual == 0)
       
   604 		{
       
   605 		ERR_PRINTF1(_L("Default Buffer count min is set to 0"));
       
   606 		SetTestStepError(KErrGeneral);
       
   607 		SetTestStepResult(EFail);
       
   608 		return TestStepResult();
       
   609 		}
       
   610 	
       
   611 	if (omxParamPortInput.nBufferCountActual < omxParamPortInput.nBufferCountMin)
       
   612 		{
       
   613 		ERR_PRINTF2(_L("Default buffer count minimun is not set correctly: %d"),omxParamPortInput.nBufferCountMin);
       
   614 		SetTestStepError(KErrGeneral);
       
   615 		SetTestStepResult(EFail);
       
   616 		return TestStepResult();
       
   617 		}
       
   618     
       
   619     // Set nBufferCountActual to below nBufferCountMin
       
   620 	omxParamPortInput.nBufferCountActual = omxParamPortInput.nBufferCountMin - 1;
       
   621 	SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorBadParameter);
       
   622 	
       
   623 	for (TInt i = 0; i < 5; i++)
       
   624 		{
       
   625 		// INFO_PRINTF2(_L("COmxGsTest0001Step05::doTestStepL() Increase nBufferCountActual by %d"),i);
       
   626 		omxParamPortInput.nBufferCountActual = omxParamPortInput.nBufferCountMin + i;
       
   627 		setParam = omxParamPortInput.nBufferCountActual;
       
   628 		
       
   629 		 // initial settings
       
   630         omxParamPortInput.format.video.nFrameWidth = 320;
       
   631         omxParamPortInput.format.video.nFrameHeight = 240;
       
   632         omxParamPortInput.format.video.nStride = 320*2;
       
   633         omxParamPortInput.format.video.eColorFormat = OMX_COLOR_FormatCbYCrY;
       
   634         omxParamPortInput.format.video.eCompressionFormat = OMX_VIDEO_CodingUnused;
       
   635         
       
   636 		SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorNone);
       
   637 	
       
   638 		GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortOutput,OMX_ErrorNone);
       
   639 		CompareU32Param(setParam, omxParamPortInput.nBufferCountActual);
       
   640 		CompareU32Param(setParam, omxParamPortOutput.nBufferCountActual);
       
   641 		}
       
   642 
       
   643 	SetTestStepResult(EPass);
       
   644 	return TestStepResult();
       
   645 	}
       
   646 
       
   647 COmxGsTest0001Step06::~COmxGsTest0001Step06()
       
   648 /**
       
   649  * Destructor
       
   650  */
       
   651 	{
       
   652 	}
       
   653 
       
   654 COmxGsTest0001Step06::COmxGsTest0001Step06()
       
   655 /**
       
   656  * Constructor
       
   657  */
       
   658 	{
       
   659 	SetTestStepName(KOmxGsTest0001Step06);
       
   660 	}
       
   661 
       
   662 TVerdict COmxGsTest0001Step06::doTestStepL()
       
   663 /**
       
   664  * @return - TVerdict code
       
   665  * Override of base class pure virtual
       
   666  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
   667  * not leave. That being the case, the current test result value will be EPass.
       
   668  */
       
   669 	{
       
   670 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
   671 	
       
   672 	// Declare the structs for Parameter tests
       
   673 	OMX_PARAM_PORTDEFINITIONTYPE omxParamPortInput;
       
   674 	OMX_PARAM_PORTDEFINITIONTYPE omxParamPortOutput;
       
   675 
       
   676 	/*
       
   677 	* OMX_PARAM_PORTDEFINITIONTYPE::nBufferAlignment
       
   678 	*/
       
   679 	omxParamPortInput.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
       
   680 	omxParamPortInput.nVersion = TOmxILSpecVersion();
       
   681 	omxParamPortInput.nPortIndex = 0;
       
   682 	omxParamPortOutput.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
       
   683 	omxParamPortOutput.nVersion = TOmxILSpecVersion();
       
   684 	omxParamPortOutput.nPortIndex = 0;
       
   685 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorNone);
       
   686 
       
   687 	// Set values using OMX_PARAM_PORTDEFINITIONTYPE and confirm stride
       
   688 	// stride shouldn't be equal to zero. so i=1 .
       
   689 	for (TInt i = 1; i < 50; i++)
       
   690 		{
       
   691         // initial settings
       
   692         omxParamPortInput.format.video.nFrameHeight = 240;
       
   693         omxParamPortInput.format.video.eColorFormat = OMX_COLOR_FormatCbYCrY;
       
   694         omxParamPortInput.format.video.eCompressionFormat = OMX_VIDEO_CodingUnused;
       
   695 
       
   696         // test starts
       
   697 		omxParamPortInput.format.video.nFrameWidth = 10 * i;
       
   698 		TInt bytesPerPixel = COmxILMMBuffer::BytesPerPixel(omxParamPortInput.format.video.eColorFormat);
       
   699 		TInt stride = bytesPerPixel * omxParamPortInput.format.video.nFrameWidth;
       
   700 		// The code needs to calculate the stride
       
   701 		omxParamPortInput.format.video.nStride = stride;
       
   702 
       
   703 		SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorNone);
       
   704 
       
   705 		GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortOutput,OMX_ErrorNone);
       
   706  
       
   707 		if (omxParamPortOutput.format.video.nStride < stride)
       
   708 			{
       
   709 			ERR_PRINTF2(_L("Stride value was not correct: %d"), omxParamPortOutput.format.video.nStride);
       
   710 			SetTestStepError(KErrGeneral);
       
   711 			SetTestStepResult(EFail);
       
   712 			return TestStepResult();
       
   713 			}
       
   714 		}
       
   715 
       
   716 	SetTestStepResult(EPass);
       
   717 	return TestStepResult();
       
   718 	}
       
   719 
       
   720 COmxGsTest0001Step07::~COmxGsTest0001Step07()
       
   721 /**
       
   722  * Destructor
       
   723  */
       
   724 	{
       
   725 	}
       
   726 
       
   727 COmxGsTest0001Step07::COmxGsTest0001Step07()
       
   728 /**
       
   729  * Constructor
       
   730  */
       
   731 	{
       
   732 	SetTestStepName(KOmxGsTest0001Step07);
       
   733 	}
       
   734 
       
   735 TVerdict COmxGsTest0001Step07::doTestStepL()
       
   736 /**
       
   737  * @return - TVerdict code
       
   738  * Override of base class pure virtual
       
   739  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
   740  * not leave. That being the case, the current test result value will be EPass.
       
   741  */
       
   742 	{
       
   743 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
   744 
       
   745     // Declare the structs for Parameter tests
       
   746 	OMX_PARAM_PORTDEFINITIONTYPE omxParamPortTypeInput;
       
   747 	CreateOmxParamPortDefinitionType(&omxParamPortTypeInput);
       
   748 	OMX_PARAM_PORTDEFINITIONTYPE omxParamPortDefinition;
       
   749 	CreateOmxParamPortDefinitionType(&omxParamPortDefinition);
       
   750 	
       
   751 	// The following tests attempt to set the parameter of the graphics sink component.
       
   752 	// In each case we call set, which is expected to pass through
       
   753 	// the component and return OMX_ErrorNone.  After Get is called we perform a chack that the 
       
   754 	// structs is updated.
       
   755 
       
   756 	// aren't they all read-only fields?
       
   757 	
       
   758 	/*
       
   759 	omxParamPortTypeInput.nBufferCountMin = omxParamPortTypeInput.nBufferCountMin - 1;
       
   760 	SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput);
       
   761 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput);
       
   762 	CompareU32Param(omxParamPortDefinition.nBufferCountMin, omxParamPortTypeInput.nBufferCountMin );
       
   763 	
       
   764 	// nBufferSize is read-only value
       
   765 	omxParamPortTypeInput.nBufferSize = omxParamPortDefinition.nBufferSize + omxParamPortDefinition.nBufferSize;
       
   766 	SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput);
       
   767 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput);
       
   768 	CompareU32Param(omxParamPortDefinition.nBufferSize,omxParamPortTypeInput.nBufferSize);
       
   769 	
       
   770 	omxParamPortTypeInput.nBufferAlignment = 4;
       
   771 	SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput,OMX_ErrorNone);
       
   772 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput,OMX_ErrorNone);
       
   773 	CompareU32Param(omxParamPortDefinition.nBufferAlignment,omxParamPortTypeInput.nBufferAlignment);
       
   774 	
       
   775 	// nSliceHeight is read-only value
       
   776 	omxParamPortTypeInput.format.video.nSliceHeight = 20;
       
   777 	SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput,OMX_ErrorNone);
       
   778 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput,OMX_ErrorNone);
       
   779 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortDefinition,OMX_ErrorNone);
       
   780 	CompareU32Param(omxParamPortDefinition.format.video.nSliceHeight,omxParamPortTypeInput.format.video.nSliceHeight);
       
   781 	
       
   782 	// bEnabled is read-only value
       
   783 	omxParamPortTypeInput.bEnabled = OMX_FALSE;
       
   784 	SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput);
       
   785 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput,OMX_ErrorNone);
       
   786 	CompareBoolParam(omxParamPortTypeInput.bEnabled, omxParamPortDefinition.bEnabled,OMX_IndexParamPortDefinition);
       
   787 
       
   788 	// bPopulated is read-only value
       
   789 	omxParamPortTypeInput.bPopulated = OMX_TRUE;
       
   790 	SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput);
       
   791 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput,OMX_ErrorNone);
       
   792 	CompareBoolParam(omxParamPortTypeInput.bPopulated, omxParamPortDefinition.bPopulated,OMX_IndexParamPortDefinition);
       
   793 
       
   794 	// bBuffersContiguous is read-only value
       
   795 	omxParamPortTypeInput.bBuffersContiguous = OMX_FALSE;
       
   796 	SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput,OMX_ErrorNone);
       
   797 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput,OMX_ErrorNone);
       
   798 	CompareBoolParam(omxParamPortTypeInput.bBuffersContiguous, omxParamPortDefinition.bBuffersContiguous,OMX_IndexParamPortDefinition);
       
   799 	
       
   800 	// eDomain is read-only value
       
   801 	omxParamPortTypeInput.eDomain = OMX_PortDomainOther;
       
   802 	SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput,OMX_ErrorNone);
       
   803 	GetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortTypeInput,OMX_ErrorNone);
       
   804 	CompareU32Param(omxParamPortTypeInput.eDomain, omxParamPortDefinition.eDomain);
       
   805 	*/
       
   806 	
       
   807 	SetTestStepResult(EPass);
       
   808 	return TestStepResult();
       
   809 	}
       
   810 
       
   811 COmxGsTest0001Step08::~COmxGsTest0001Step08()
       
   812 /**
       
   813  * Destructor
       
   814  */
       
   815 	{
       
   816 	}
       
   817 
       
   818 COmxGsTest0001Step08::COmxGsTest0001Step08()
       
   819 /**
       
   820  * Constructor
       
   821  */
       
   822 	{
       
   823 	SetTestStepName(KOmxGsTest0001Step08);
       
   824 	}
       
   825 
       
   826 TVerdict COmxGsTest0001Step08::doTestStepL()
       
   827 /**
       
   828  * @return - TVerdict code
       
   829  * Override of base class pure virtual
       
   830  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
   831  * not leave. That being the case, the current test result value will be EPass.
       
   832  */
       
   833 	{
       
   834 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
   835 	OMX_PARAM_PORTDEFINITIONTYPE omxParamPortInput;
       
   836 	OMX_VIDEO_PARAM_PORTFORMATTYPE omxVideoParamInput;
       
   837 	CreateOmxParamPortDefinitionType(&omxParamPortInput);
       
   838 	CreateOmxVideoParamPortFormatType(&omxVideoParamInput);
       
   839 	
       
   840 	OMX_COLOR_FORMATTYPE defaultColorFormat = omxParamPortInput.format.video.eColorFormat;
       
   841 	if (omxVideoParamInput.eColorFormat != omxParamPortInput.format.video.eColorFormat)
       
   842 		{
       
   843 		SetTestStepError(KErrGeneral);
       
   844 		return TestStepResult();
       
   845 		}
       
   846 	
       
   847 	// Traverse the array of colour format to confirm support.
       
   848 	// The enumeration OMX_COLOR_FORMATTYPE starts at 1 and currently finishes at 43
       
   849 	for (TInt i = 1; i < 44; i++)
       
   850 		{
       
   851 		//INFO_PRINTF2(_L("COmxGsTest0001Step08::doTestStepL(): Set OMX_COLOR_FORMATTYPE(%d)"),i);
       
   852 		omxParamPortInput.format.video.eColorFormat = OMX_COLOR_FORMATTYPE(i);
       
   853 		omxVideoParamInput.eColorFormat = OMX_COLOR_FORMATTYPE(i);
       
   854 		omxVideoParamInput.eCompressionFormat = OMX_VIDEO_CodingUnused;
       
   855 		
       
   856         // initial settings
       
   857         omxParamPortInput.format.video.nFrameWidth = 320;
       
   858         omxParamPortInput.format.video.nFrameHeight = 240;
       
   859         omxParamPortInput.format.video.eCompressionFormat = OMX_VIDEO_CodingUnused;
       
   860 
       
   861         
       
   862 		TInt check = OMX_COLOR_FORMATTYPE(i);
       
   863 		if(check == OMX_COLOR_Format16bitRGB565 ||			
       
   864 			check == OMX_COLOR_FormatYCrYCb ||
       
   865 			check == OMX_COLOR_FormatCbYCrY ||
       
   866 			check == OMX_COLOR_Format32bitARGB8888)
       
   867 			{
       
   868 			TInt bytesPerPixel = COmxILMMBuffer::BytesPerPixel(omxParamPortInput.format.video.eColorFormat);
       
   869 			TInt stride = bytesPerPixel * omxParamPortInput.format.video.nFrameWidth;
       
   870 			omxParamPortInput.format.video.nStride = stride;
       
   871 			
       
   872 			SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput);
       
   873 			SetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamInput);
       
   874 			}
       
   875 		else
       
   876 			{
       
   877 			SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorUnsupportedSetting);
       
   878 			SetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamInput,OMX_ErrorUnsupportedSetting);
       
   879 			}
       
   880 		
       
   881 		omxParamPortInput.format.video.eColorFormat = defaultColorFormat;
       
   882 		omxVideoParamInput.eColorFormat = defaultColorFormat;
       
   883 		}
       
   884 	
       
   885 	// Set CompressionFormat and confirm
       
   886 	OMX_VIDEO_CODINGTYPE defaultCompressionFormat = omxParamPortInput.format.video.eCompressionFormat;
       
   887 	if (omxVideoParamInput.eCompressionFormat != omxParamPortInput.format.video.eCompressionFormat)
       
   888 		{
       
   889 		SetTestStepError(KErrGeneral);
       
   890 		return TestStepResult();
       
   891 		}
       
   892 
       
   893 	for (TInt i = 1; i < 9; i++)
       
   894 		{
       
   895 		//INFO_PRINTF2(_L("COmxGsTest0001Step08::doTestStepL(): Set OMX_VIDEO_CODINGTYPE(%d)"),i);
       
   896 		omxParamPortInput.format.video.eCompressionFormat = OMX_VIDEO_CODINGTYPE(i);
       
   897 		SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorUnsupportedSetting);
       
   898 		omxParamPortInput.format.video.eCompressionFormat = defaultCompressionFormat;
       
   899 		
       
   900 		omxVideoParamInput.eCompressionFormat = OMX_VIDEO_CODINGTYPE(i);
       
   901 		SetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamInput,OMX_ErrorUnsupportedSetting);
       
   902 		omxVideoParamInput.eCompressionFormat = defaultCompressionFormat;
       
   903 		}
       
   904 	
       
   905 	//INFO_PRINTF1(_L("COmxGsTest0001Step08::doTestStepL(): Set ColorFormat and CompressionFormat"));
       
   906 	for (TInt i = 0; i < 47; i++)
       
   907 		{
       
   908 		//INFO_PRINTF2(_L("COmxGsTest0001Step08::doTestStepL(): Set OMX_COLOR_FORMATTYPE(%d) using OMX_PARAM_PORTDEFINITIONTYPE"),i);
       
   909 		omxParamPortInput.format.video.eColorFormat = OMX_COLOR_FORMATTYPE(i);
       
   910 		for (TInt j = 0; j < 9; j++)
       
   911 			{
       
   912 			//INFO_PRINTF2(_L("COmxGsTest0001Step08::doTestStepL(): Set OMX_VIDEO_CODINGTYPE(%d) using OMX_PARAM_PORTDEFINITIONTYPE"),j);
       
   913 			omxParamPortInput.format.video.eCompressionFormat = OMX_VIDEO_CODINGTYPE(j);
       
   914 
       
   915 			if ((i == OMX_COLOR_Format16bitRGB565 || i == OMX_COLOR_FormatYCrYCb || i == OMX_COLOR_FormatCbYCrY || i == OMX_COLOR_Format32bitARGB8888) && j == 0)
       
   916 				{
       
   917 				TInt bytesPerPixel = COmxILMMBuffer::BytesPerPixel(omxParamPortInput.format.video.eColorFormat);
       
   918 				TInt stride = bytesPerPixel * omxParamPortInput.format.video.nFrameWidth;
       
   919 				omxParamPortInput.format.video.nStride = stride;
       
   920 				SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput);
       
   921 				}
       
   922 			else
       
   923 				{
       
   924 				if ((i == 0 && j != 0) || (i != 0 && j == 0)) // If OMX_COLOR_FORMATTYPE set to OMX_VIDEO_CodingUnused error is OMX_ErrorUnsupportedSetting
       
   925 					{
       
   926 					SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorUnsupportedSetting);
       
   927 					}
       
   928 				else
       
   929 					{
       
   930 					SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorUnsupportedSetting);
       
   931 					}
       
   932 				}
       
   933 			}
       
   934 
       
   935 		INFO_PRINTF2(_L("COmxGsTest0001Step08::doTestStepL(): Set OMX_COLOR_FORMATTYPE(%d) using OMX_VIDEO_PARAM_PORTFORMATTYPE"),i);
       
   936 		omxVideoParamInput.eColorFormat = OMX_COLOR_FORMATTYPE(i);
       
   937 		for (TInt j = 0; j < 9; j++)
       
   938 			{
       
   939             //INFO_PRINTF2(_L("COmxGsTest0001Step08::doTestStepL(): Set OMX_VIDEO_CODINGTYPE(%d) using OMX_VIDEO_PARAM_PORTFORMATTYPE"),j);
       
   940 			omxVideoParamInput.eCompressionFormat = OMX_VIDEO_CODINGTYPE(j);
       
   941 			// OMX_COLOR_Format16bitRGB565,OMX_COLOR_FormatYCrYCb, OMX_COLOR_FormatCbYCrY
       
   942 			if ((i == OMX_COLOR_Format16bitRGB565 || i == OMX_COLOR_FormatYCrYCb || i == OMX_COLOR_FormatCbYCrY || i == OMX_COLOR_Format32bitARGB8888) && j == 0)  
       
   943 				{
       
   944 				SetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamInput);
       
   945 				}
       
   946 			else
       
   947 				{
       
   948 				if ((i == 0 && j != 0) || (i != 0 && j == 0)) // If OMX_COLOR_FORMATTYPE set to OMX_VIDEO_CodingUnused error is OMX_ErrorUnsupportedSetting
       
   949 					{
       
   950 					SetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamInput,OMX_ErrorUnsupportedSetting);
       
   951 					}
       
   952 				else
       
   953 					{
       
   954 					SetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamInput,OMX_ErrorUnsupportedSetting);
       
   955 					}
       
   956 				}
       
   957 			}
       
   958 		
       
   959 		// Set values back to default
       
   960 		omxParamPortInput.format.video.eColorFormat = OMX_COLOR_FormatCbYCrY;
       
   961 		omxVideoParamInput.eColorFormat = OMX_COLOR_FormatCbYCrY;
       
   962 		omxParamPortInput.format.video.eCompressionFormat = OMX_VIDEO_CodingUnused;
       
   963 		omxVideoParamInput.eCompressionFormat = OMX_VIDEO_CodingUnused;
       
   964 		}
       
   965 	
       
   966 	// Set color format and compression format to Unused
       
   967 	omxParamPortInput.format.video.eColorFormat = OMX_COLOR_FormatUnused;
       
   968 	omxVideoParamInput.eColorFormat = OMX_COLOR_FormatUnused;
       
   969 	omxParamPortInput.format.video.eCompressionFormat = OMX_VIDEO_CodingUnused;
       
   970 	omxVideoParamInput.eCompressionFormat = OMX_VIDEO_CodingUnused;
       
   971 	SetParameter(iGraphicSinkCompHandle,OMX_IndexParamPortDefinition,&omxParamPortInput,OMX_ErrorUnsupportedSetting);
       
   972 	SetParameter(iGraphicSinkCompHandle,OMX_IndexParamVideoPortFormat,&omxVideoParamInput,OMX_ErrorUnsupportedSetting);
       
   973 
       
   974 	SetTestStepResult(EPass);
       
   975 	return TestStepResult();
       
   976 	}
       
   977 
       
   978 COmxGsTest0001Step09::~COmxGsTest0001Step09()
       
   979 /**
       
   980  * Destructor
       
   981  */
       
   982 	{
       
   983 	}
       
   984 
       
   985 COmxGsTest0001Step09::COmxGsTest0001Step09()
       
   986 /**
       
   987  * Constructor
       
   988  */
       
   989 	{
       
   990 	SetTestStepName(KOmxGsTest0001Step09);
       
   991 	}
       
   992 
       
   993 TVerdict COmxGsTest0001Step09::doTestStepL()
       
   994 /**
       
   995  * @return - TVerdict code
       
   996  * Override of base class pure virtual
       
   997  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
   998  * not leave. That being the case, the current test result value will be EPass.
       
   999  */
       
  1000 	{
       
  1001 	// COmxILMMBuffer::BytesPerPixel(OMX_COLOR_FORMATTYPE)
       
  1002 	for (TInt i = 0; i < 47; i++)
       
  1003 		{
       
  1004 		TInt bytesPerPixel = 15;
       
  1005 		bytesPerPixel =  COmxILMMBuffer::BytesPerPixel(OMX_COLOR_FORMATTYPE(i));
       
  1006 		if (bytesPerPixel == 15)
       
  1007 			{
       
  1008 			SetTestStepError(KErrGeneral);
       
  1009 			return TestStepResult();
       
  1010 			}
       
  1011 		}
       
  1012 	
       
  1013 	// COmxILMMBuffer::BytesPerPixel(TUidPixelFormat)
       
  1014 	for (TInt i = 0; i < 50; i++)
       
  1015 		{
       
  1016 		TInt bytesPerPixel = 15;
       
  1017 		bytesPerPixel =  COmxILMMBuffer::BytesPerPixel(TUidPixelFormat(i));
       
  1018 		if (bytesPerPixel == 15)
       
  1019 			{
       
  1020 			SetTestStepError(KErrGeneral);
       
  1021 			return TestStepResult();
       
  1022 			}
       
  1023 		}
       
  1024 	
       
  1025 	SetTestStepResult(EPass);
       
  1026 	return TestStepResult();
       
  1027 	}
       
  1028 
       
  1029 
       
  1030 COmxGsTest0002Step01::~COmxGsTest0002Step01()
       
  1031 /**
       
  1032  * Destructor
       
  1033  */
       
  1034 	{
       
  1035 	}
       
  1036 
       
  1037 COmxGsTest0002Step01::COmxGsTest0002Step01()
       
  1038 /**
       
  1039  * Constructor
       
  1040  */
       
  1041 	{
       
  1042 	SetTestStepName(KOmxGsTest0002Step01);
       
  1043 	}
       
  1044 
       
  1045 TVerdict COmxGsTest0002Step01::doTestStepL()
       
  1046 /**
       
  1047  * @return - TVerdict code
       
  1048  * Override of base class pure virtual
       
  1049  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1050  * not leave. That being the case, the current test result value will be EPass.
       
  1051  */
       
  1052 	{
       
  1053 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1054 	CGraphicsSinkTestBase::DoROmxGsTestSetup();
       
  1055 	AllocateBufferTask();
       
  1056 	StartTimer();
       
  1057 	return TestStepResult();
       
  1058 	}
       
  1059 
       
  1060 COmxGsTest0002Step02::~COmxGsTest0002Step02()
       
  1061 /**
       
  1062  * Destructor
       
  1063  */
       
  1064 	{
       
  1065 	}
       
  1066 
       
  1067 COmxGsTest0002Step02::COmxGsTest0002Step02()
       
  1068 /**
       
  1069  * Constructor
       
  1070  */
       
  1071 	{
       
  1072 	SetTestStepName(KOmxGsTest0002Step02);
       
  1073 	}
       
  1074 
       
  1075 TVerdict COmxGsTest0002Step02::doTestStepL()
       
  1076 /**
       
  1077  * @return - TVerdict code
       
  1078  * Override of base class pure virtual
       
  1079  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1080  * not leave. That being the case, the current test result value will be EPass.
       
  1081  */
       
  1082 	{
       
  1083 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1084 	CGraphicsSinkTestBase::DoROmxGsTestSetup();
       
  1085 	AllocateBufferTask();
       
  1086 	StartTimer();
       
  1087  	return TestStepResult();
       
  1088 	}
       
  1089 
       
  1090 COmxGsTest0002Step03::~COmxGsTest0002Step03()
       
  1091 /**
       
  1092  * Destructor
       
  1093  */
       
  1094 	{
       
  1095 	}
       
  1096 
       
  1097 COmxGsTest0002Step03::COmxGsTest0002Step03()
       
  1098 /**
       
  1099  * Constructor
       
  1100  */
       
  1101 	{
       
  1102 	SetTestStepName(KOmxGsTest0002Step03);
       
  1103 	}
       
  1104 
       
  1105 TVerdict COmxGsTest0002Step03::doTestStepL()
       
  1106 /**
       
  1107  * @return - TVerdict code
       
  1108  * Override of base class pure virtual
       
  1109  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1110  * not leave. That being the case, the current test result value will be EPass.
       
  1111  */
       
  1112 	{
       
  1113 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1114 	DoROmxGsTestSetup();
       
  1115 	AllocateBufferTask();
       
  1116 	StartTimer();
       
  1117 	return TestStepResult();
       
  1118 	}
       
  1119 
       
  1120 COmxGsTest0002Step04::~COmxGsTest0002Step04()
       
  1121 /**
       
  1122  * Destructor
       
  1123  */
       
  1124 	{
       
  1125 	}
       
  1126 
       
  1127 COmxGsTest0002Step04::COmxGsTest0002Step04()
       
  1128 /**
       
  1129  * Constructor
       
  1130  */
       
  1131 	{
       
  1132 	SetTestStepName(KOmxGsTest0002Step04);
       
  1133 	}
       
  1134 
       
  1135 TVerdict COmxGsTest0002Step04::doTestStepL()
       
  1136 /**
       
  1137  * @return - TVerdict code
       
  1138  * Override of base class pure virtual
       
  1139  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1140  * not leave. That being the case, the current test result value will be EPass.
       
  1141  */
       
  1142 	{
       
  1143 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1144 	DoROmxGsTestSetup();
       
  1145 	
       
  1146 	// Needed by Allocate buffer
       
  1147 	TInt bytesPerPixel = COmxILMMBuffer::BytesPerPixel(iOmxParamPortInput.format.video.eColorFormat);
       
  1148 	TInt bufferSize = bytesPerPixel * iOmxParamPortInput.format.video.nFrameWidth * iOmxParamPortInput.format.video.nFrameHeight;
       
  1149 	
       
  1150 	AllocateBuffer(iGraphicSinkCompHandle,&iInputBufferHeader,0,NULL,bufferSize,&iInputBufferHeaders,1,OMX_ErrorIncorrectStateOperation);
       
  1151 	iInputBufferHeaders.Reset();
       
  1152 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1153 	SetTestStepResult(EPass);
       
  1154  	return TestStepResult();
       
  1155 	}
       
  1156 
       
  1157 COmxGsTest0003Step01::~COmxGsTest0003Step01()
       
  1158 /**
       
  1159  * Destructor
       
  1160  */
       
  1161 	{
       
  1162 	}
       
  1163 
       
  1164 COmxGsTest0003Step01::COmxGsTest0003Step01()
       
  1165 /**
       
  1166  * Constructor
       
  1167  */
       
  1168 	{
       
  1169 	SetTestStepName(KOmxGsTest0003Step01);
       
  1170 	}
       
  1171 
       
  1172 TVerdict COmxGsTest0003Step01::doTestStepL()
       
  1173 /**
       
  1174  * @return - TVerdict code
       
  1175  * Override of base class pure virtual
       
  1176  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1177  * not leave. That being the case, the current test result value will be EPass.
       
  1178  */
       
  1179 	{
       
  1180 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1181 	DoROmxGsTestSetup();
       
  1182 	AllocateCCameraBuf();
       
  1183 	UseBufferTask();
       
  1184 	if( iError == OMX_ErrorNone ){
       
  1185 	    StartTimer();
       
  1186 	}
       
  1187 	return TestStepResult();
       
  1188 	}
       
  1189 
       
  1190 COmxGsTest0003Step02::~COmxGsTest0003Step02()
       
  1191 /**
       
  1192  * Destructor
       
  1193  */
       
  1194 	{
       
  1195 	}
       
  1196 
       
  1197 COmxGsTest0003Step02::COmxGsTest0003Step02()
       
  1198 /**
       
  1199  * Constructor
       
  1200  */
       
  1201 	{
       
  1202 	SetTestStepName(KOmxGsTest0003Step02);
       
  1203 	}
       
  1204 
       
  1205 TVerdict COmxGsTest0003Step02::doTestStepL()
       
  1206 /**
       
  1207  * @return - TVerdict code
       
  1208  * Override of base class pure virtual
       
  1209  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1210  * not leave. That being the case, the current test result value will be EPass.
       
  1211  */
       
  1212 	{
       
  1213 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1214 	DoROmxGsTestSetup();
       
  1215 	AllocateCCameraBuf();
       
  1216 	UseBufferTask();
       
  1217 	StartTimer();
       
  1218 	return TestStepResult();
       
  1219 	}
       
  1220 
       
  1221 COmxGsTest0003Step03::~COmxGsTest0003Step03()
       
  1222 /**
       
  1223  * Destructor
       
  1224  */
       
  1225 	{
       
  1226 	}
       
  1227 
       
  1228 COmxGsTest0003Step03::COmxGsTest0003Step03()
       
  1229 /**
       
  1230  * Constructor
       
  1231  */
       
  1232 	{
       
  1233 	SetTestStepName(KOmxGsTest0003Step03);
       
  1234 	}
       
  1235 
       
  1236 TVerdict COmxGsTest0003Step03::doTestStepL()
       
  1237 /**
       
  1238  * @return - TVerdict code
       
  1239  * Override of base class pure virtual
       
  1240  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1241  * not leave. That being the case, the current test result value will be EPass.
       
  1242  */
       
  1243 	{
       
  1244 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1245 	DoROmxGsTestSetup();
       
  1246 	AllocateCCameraBuf();
       
  1247 	UseBufferTask();
       
  1248 	StartTimer();
       
  1249 	return TestStepResult();
       
  1250 	}
       
  1251 
       
  1252 COmxGsTest0003Step04::~COmxGsTest0003Step04()
       
  1253 /**
       
  1254  * Destructor
       
  1255  */
       
  1256 	{
       
  1257 	}
       
  1258 
       
  1259 COmxGsTest0003Step04::COmxGsTest0003Step04()
       
  1260 /**
       
  1261  * Constructor
       
  1262  */
       
  1263 	{
       
  1264 	SetTestStepName(KOmxGsTest0003Step04);
       
  1265 	}
       
  1266 
       
  1267 
       
  1268 TVerdict COmxGsTest0003Step04::doTestStepL()
       
  1269 /**
       
  1270  * @return - TVerdict code
       
  1271  * Override of base class pure virtual
       
  1272  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1273  * not leave. That being the case, the current test result value will be EPass.
       
  1274  */
       
  1275 	{
       
  1276 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1277 	DoROmxGsTestSetup();
       
  1278 
       
  1279 	TInt bytesperpixel = COmxILMMBuffer::BytesPerPixel(iOmxParamPortInput.format.video.eColorFormat);
       
  1280 	// Not a true declaration, just used to test UseBuffer
       
  1281 	iTestChunk.CreateLocal(1024,1024);
       
  1282 	
       
  1283 	
       
  1284 	// Create local buffer then create iCamBuf from it. Used for coverage
       
  1285 	COmxILMMBuffer* cameraBuffer = NULL;
       
  1286 	TRAPD(err, cameraBuffer = COmxILMMBuffer::NewL(iTestChunk));
       
  1287 	if(err)
       
  1288 		{
       
  1289 		ERR_PRINTF1(_L("OOM ERROR"));
       
  1290 		SetTestStepError(err);
       
  1291 		return TestStepResult();
       
  1292 		}
       
  1293 	
       
  1294 	/*
       
  1295     TRAP(err, iCamBuf = COmxILMMBuffer::CreateL(*cameraBuffer));
       
  1296     delete cameraBuffer;
       
  1297     if(err != KErrNone)
       
  1298         {
       
  1299         ERR_PRINTF1(_L("Failed to produce COmxILMMBuffer using COmxILMMBuffer::CreateL()"));
       
  1300         SetTestStepError(err);
       
  1301         return TestStepResult();
       
  1302         }
       
  1303     */
       
  1304 	
       
  1305 	
       
  1306     OMX_INDEXTYPE sharedChunkMetadataExtensionIndex;
       
  1307     // due to chunk extension support in gfx
       
  1308     if (OMX_ErrorNone == OMX_GetExtensionIndex(
       
  1309             iGraphicSinkCompHandle,
       
  1310          OMX_SYMBIAN_INDEX_CONFIG_SHAREDCHUNKMETADATA_NAME,
       
  1311          &sharedChunkMetadataExtensionIndex))
       
  1312         {
       
  1313         // Communicate the shared chunk metadata to the tunnelled
       
  1314         // component
       
  1315         OMX_SYMBIAN_CONFIG_SHAREDCHUNKMETADATATYPE configSharedChunkMetadata;
       
  1316         configSharedChunkMetadata.nSize = sizeof(OMX_SYMBIAN_CONFIG_SHAREDCHUNKMETADATATYPE);
       
  1317         configSharedChunkMetadata.nVersion = TOmxILSpecVersion();            
       
  1318         configSharedChunkMetadata.nPortIndex = 0;
       
  1319         configSharedChunkMetadata.nHandleId = iTestChunk.Handle();
       
  1320         configSharedChunkMetadata.nOwnerThreadId = RThread().Id().Id();            
       
  1321         
       
  1322         (void) OMX_SetConfig(iGraphicSinkCompHandle,
       
  1323                           sharedChunkMetadataExtensionIndex,
       
  1324                           &configSharedChunkMetadata);
       
  1325         }
       
  1326     else
       
  1327         {
       
  1328         ERR_PRINTF1(_L("Failed to set shared chunk meta-data config."));
       
  1329         SetTestStepError(err);
       
  1330         return TestStepResult();
       
  1331         }
       
  1332 	
       
  1333 	
       
  1334 	iPreviousState = OMX_StateLoaded;
       
  1335 
       
  1336 	// UseBuffer with illegal pointer to the memory buffer area to be used
       
  1337 	iOmxErrorType = iGraphicSinkCompHandle->UseBuffer(iGraphicSinkCompHandle,&iOutputBufferHeader,0,cameraBuffer,cameraBuffer->Chunk().Size(),0);
       
  1338 	if (OMX_ErrorBadParameter != iOmxErrorType)
       
  1339 		{
       
  1340 		ERR_PRINTF1(_L("UseBuffer un-expectantly did not return an error"));
       
  1341 		SetTestStepError(PrintOmxError(iOmxErrorType));
       
  1342 		return TestStepResult();
       
  1343 		}
       
  1344 	
       
  1345 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1346 	// UseBuffer with illegal buffer size in bytes
       
  1347 	iOmxErrorType = iGraphicSinkCompHandle->UseBuffer(iGraphicSinkCompHandle,
       
  1348 			//&iOutputBufferHeader,0,iCamBuf,0,iCamBuf->Chunk().Base());
       
  1349 	        &iOutputBufferHeader,0,NULL,0,iTestChunk.Base());
       
  1350 	if (OMX_ErrorBadParameter != iOmxErrorType)
       
  1351 		{
       
  1352 		ERR_PRINTF1(_L("UseBuffer un-expectantly did not return an error"));
       
  1353 		SetTestStepError(PrintOmxError(iOmxErrorType));
       
  1354 		return TestStepResult();
       
  1355 		}
       
  1356 	
       
  1357 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1358 	// UseBuffer with illegal pointer to memory buffer and size
       
  1359 	iOmxErrorType = iGraphicSinkCompHandle->UseBuffer(iGraphicSinkCompHandle,
       
  1360 			//&iOutputBufferHeader,0,iCamBuf,0,0);
       
  1361 	        &iOutputBufferHeader,0,NULL,0,NULL);
       
  1362 	if (OMX_ErrorBadParameter != iOmxErrorType)
       
  1363 		{
       
  1364 		ERR_PRINTF1(_L("UseBuffer un-expectantly did not return an error"));
       
  1365 		SetTestStepError(PrintOmxError(iOmxErrorType));
       
  1366 		return TestStepResult();
       
  1367 		}
       
  1368 	
       
  1369 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1370 	// UseBuffer without calling SendCommand
       
  1371 	iOmxErrorType = iGraphicSinkCompHandle->UseBuffer(iGraphicSinkCompHandle,
       
  1372 			//&iOutputBufferHeader,0,iCamBuf,iCamBuf->Chunk().Size(),iCamBuf->Chunk().Base());
       
  1373 	        &iOutputBufferHeader,0,NULL,iTestChunk.Size(),iTestChunk.Base());
       
  1374 	if (OMX_ErrorIncorrectStateOperation != iOmxErrorType)
       
  1375 		{
       
  1376 		ERR_PRINTF1(_L("UseBuffer un-expectantly did not return an error"));
       
  1377 		SetTestStepError(PrintOmxError(iOmxErrorType));
       
  1378 		return TestStepResult();
       
  1379 		}
       
  1380 
       
  1381 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1382 	// UseBuffer with correct parameters
       
  1383 	SendCommand(iGraphicSinkCompHandle,OMX_CommandStateSet,OMX_StateIdle,0);
       
  1384 /*	
       
  1385 	// change made due to OMXILBufferClass
       
  1386 	iCamBuf->OffsetInfoArray().Append(0);
       
  1387 
       
  1388 	iOmxErrorType = iGraphicSinkCompHandle->UseBuffer(iGraphicSinkCompHandle,&iInputBufferHeader,
       
  1389 			0,iCamBuf,iCamBuf->Chunk().Size(),iCamBuf->Chunk().Base() + iCamBuf->OffsetInfoArray()[0]);
       
  1390 	// Confirm UseBuffer returns OMX_ErrorBadParameter
       
  1391 	if (OMX_ErrorBadParameter != iOmxErrorType)
       
  1392 		{
       
  1393 		ERR_PRINTF1(_L("UseBuffer returned incorrect error"));
       
  1394 		SetTestStepError(PrintOmxError(iOmxErrorType));
       
  1395 		return TestStepResult();
       
  1396 		}
       
  1397 		
       
  1398 	// Confirm state unaltered
       
  1399 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1400 */
       
  1401 	
       
  1402 	delete cameraBuffer;
       
  1403 	
       
  1404 	//iTestChunk.Close();
       
  1405 	SetTestStepResult(EPass);
       
  1406 	return TestStepResult();
       
  1407 	}
       
  1408 
       
  1409 COmxGsTest0004Step01::~COmxGsTest0004Step01()
       
  1410 /**
       
  1411  * Destructor
       
  1412  */
       
  1413 	{
       
  1414 	}
       
  1415 
       
  1416 COmxGsTest0004Step01::COmxGsTest0004Step01()
       
  1417 /**
       
  1418  * Constructor
       
  1419  */
       
  1420 	{
       
  1421 	SetTestStepName(KOmxGsTest0004Step01);
       
  1422 	}
       
  1423 
       
  1424 TVerdict COmxGsTest0004Step01::doTestStepL()
       
  1425 /**
       
  1426  * @return - TVerdict code
       
  1427  * Override of base class pure virtual
       
  1428  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1429  * not leave. That being the case, the current test result value will be EPass.
       
  1430  */
       
  1431 	{
       
  1432 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1433 	DoROmxGsTestSetup();
       
  1434 	AllocateBufferTask();
       
  1435 	StartTimer();
       
  1436 	return TestStepResult();
       
  1437 	}
       
  1438 
       
  1439 COmxGsTest0004Step02::~COmxGsTest0004Step02()
       
  1440 /**
       
  1441  * Destructor
       
  1442  */
       
  1443 	{
       
  1444 	}
       
  1445 
       
  1446 COmxGsTest0004Step02::COmxGsTest0004Step02()
       
  1447 /**
       
  1448  * Constructor
       
  1449  */
       
  1450 	{
       
  1451 	SetTestStepName(KOmxGsTest0004Step02);
       
  1452 	}
       
  1453 
       
  1454 
       
  1455 TVerdict COmxGsTest0004Step02::doTestStepL()
       
  1456 /**
       
  1457  * @return - TVerdict code
       
  1458  * Override of base class pure virtual
       
  1459  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1460  * not leave. That being the case, the current test result value will be EPass.
       
  1461  */
       
  1462 	{
       
  1463 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1464 	DoROmxGsTestSetup();
       
  1465 	AllocateBufferTask();
       
  1466 	StartTimer();
       
  1467 	return TestStepResult();
       
  1468 	}
       
  1469 
       
  1470 COmxGsTest0004Step03::~COmxGsTest0004Step03()
       
  1471 /**
       
  1472  * Destructor
       
  1473  */
       
  1474 	{
       
  1475 	}
       
  1476 
       
  1477 COmxGsTest0004Step03::COmxGsTest0004Step03()
       
  1478 /**
       
  1479  * Constructor
       
  1480  */
       
  1481 	{
       
  1482 	SetTestStepName(KOmxGsTest0004Step03);
       
  1483 	}
       
  1484 
       
  1485 TVerdict COmxGsTest0004Step03::doTestStepL()
       
  1486 /**
       
  1487  * @return - TVerdict code
       
  1488  * Override of base class pure virtual
       
  1489  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1490  * not leave. That being the case, the current test result value will be EPass.
       
  1491  */
       
  1492 	{
       
  1493 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1494 	DoROmxGsTestSetup();
       
  1495 	AllocateBufferTask();
       
  1496 	StartTimer();
       
  1497 	return TestStepResult();
       
  1498 	}
       
  1499 
       
  1500 COmxGsTest0004Step04::~COmxGsTest0004Step04()
       
  1501 /**
       
  1502  * Destructor
       
  1503  */
       
  1504 	{
       
  1505 	}
       
  1506 
       
  1507 COmxGsTest0004Step04::COmxGsTest0004Step04()
       
  1508 /**
       
  1509  * Constructor
       
  1510  */
       
  1511 	{
       
  1512 	SetTestStepName(KOmxGsTest0004Step04);
       
  1513 	}
       
  1514 
       
  1515 TVerdict COmxGsTest0004Step04::doTestStepL()
       
  1516 /**
       
  1517  * @return - TVerdict code
       
  1518  * Override of base class pure virtual
       
  1519  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1520  * not leave. That being the case, the current test result value will be EPass.
       
  1521  */
       
  1522 	{
       
  1523 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1524 	DoROmxGsTestSetup();
       
  1525 	AllocateBufferTask();
       
  1526 	StartTimer();
       
  1527 	return TestStepResult();
       
  1528 	}
       
  1529 
       
  1530 COmxGsTest0004Step05::~COmxGsTest0004Step05()
       
  1531 /**
       
  1532  * Destructor
       
  1533  */
       
  1534 	{
       
  1535 	}
       
  1536 
       
  1537 COmxGsTest0004Step05::COmxGsTest0004Step05()
       
  1538 /**
       
  1539  * Constructor
       
  1540  */
       
  1541 	{
       
  1542 	SetTestStepName(KOmxGsTest0004Step05);
       
  1543 	}
       
  1544 
       
  1545 TVerdict COmxGsTest0004Step05::doTestStepL()
       
  1546 /**
       
  1547  * @return - TVerdict code
       
  1548  * Override of base class pure virtual
       
  1549  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1550  * not leave. That being the case, the current test result value will be EPass.
       
  1551  */
       
  1552 	{
       
  1553 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1554 	DoROmxGsTestSetup();
       
  1555 	AllocateBufferTask();
       
  1556 	StartTimer();
       
  1557 	return TestStepResult();
       
  1558 	}
       
  1559 
       
  1560 
       
  1561 COmxGsTest0004Step06::~COmxGsTest0004Step06()
       
  1562 /**
       
  1563  * Destructor
       
  1564  */
       
  1565 	{
       
  1566 	}
       
  1567 
       
  1568 COmxGsTest0004Step06::COmxGsTest0004Step06()
       
  1569 /**
       
  1570  * Constructor
       
  1571  */
       
  1572 	{
       
  1573 	SetTestStepName(KOmxGsTest0004Step06);
       
  1574 	}
       
  1575 
       
  1576 TVerdict COmxGsTest0004Step06::doTestStepL()
       
  1577 /**
       
  1578  * @return - TVerdict code
       
  1579  * Override of base class pure virtual
       
  1580  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1581  * not leave. That being the case, the current test result value will be EPass.
       
  1582  */
       
  1583 	{
       
  1584 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1585 	DoROmxGsTestSetup();
       
  1586 	AllocateBufferTask();
       
  1587 	StartTimer();
       
  1588 	return TestStepResult();
       
  1589 	}
       
  1590 
       
  1591 COmxGsTest0005Step01::~COmxGsTest0005Step01()
       
  1592 /**
       
  1593  * Destructor
       
  1594  */
       
  1595 	{
       
  1596 	}
       
  1597 
       
  1598 COmxGsTest0005Step01::COmxGsTest0005Step01()
       
  1599 /**
       
  1600  * Constructor
       
  1601  */
       
  1602 	{
       
  1603 	SetTestStepName(KOmxGsTest0005Step01);
       
  1604 	}
       
  1605 
       
  1606 TVerdict COmxGsTest0005Step01::doTestStepL()
       
  1607 /**
       
  1608  * @return - TVerdict code
       
  1609  * Override of base class pure virtual
       
  1610  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1611  * not leave. That being the case, the current test result value will be EPass.
       
  1612  */
       
  1613 	{
       
  1614 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1615 	DoROmxGsTestSetup();
       
  1616 	iDoEmptyBufferDoneLimit = 10;
       
  1617 	AllocateBufferTask();
       
  1618 	StartTimer();
       
  1619 	return TestStepResult();
       
  1620 	}
       
  1621 
       
  1622 COmxGsTest0005Step02::~COmxGsTest0005Step02()
       
  1623 /**
       
  1624  * Destructor
       
  1625  */
       
  1626 	{
       
  1627 	}
       
  1628 
       
  1629 COmxGsTest0005Step02::COmxGsTest0005Step02()
       
  1630 /**
       
  1631  * Constructor
       
  1632  */
       
  1633 	{
       
  1634 	SetTestStepName(KOmxGsTest0005Step02);
       
  1635 	}
       
  1636 
       
  1637 TVerdict COmxGsTest0005Step02::doTestStepL()
       
  1638 /**
       
  1639  * @return - TVerdict code
       
  1640  * Override of base class pure virtual
       
  1641  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1642  * not leave. That being the case, the current test result value will be EPass.
       
  1643  */
       
  1644 	{
       
  1645 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1646 	DoROmxGsTestSetup();
       
  1647 	iDoEmptyBufferDoneLimit = 10;
       
  1648 	AllocateBufferTask();
       
  1649 	StartTimer();
       
  1650 	return TestStepResult();
       
  1651 	}
       
  1652 
       
  1653 COmxGsTest0005Step03::~COmxGsTest0005Step03()
       
  1654 /**
       
  1655  * Destructor
       
  1656  */
       
  1657 	{
       
  1658 	}
       
  1659 
       
  1660 COmxGsTest0005Step03::COmxGsTest0005Step03()
       
  1661 /**
       
  1662  * Constructor
       
  1663  */
       
  1664 	{
       
  1665 	SetTestStepName(KOmxGsTest0005Step03);
       
  1666 	}
       
  1667 
       
  1668 TVerdict COmxGsTest0005Step03::doTestStepL()
       
  1669 /**
       
  1670  * @return - TVerdict code
       
  1671  * Override of base class pure virtual
       
  1672  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1673  * not leave. That being the case, the current test result value will be EPass.
       
  1674  */
       
  1675 	{
       
  1676 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1677 	DoROmxGsTestSetup();
       
  1678 	iDoEmptyBufferDoneLimit = 10;
       
  1679 	AllocateBufferTask();
       
  1680 	StartTimer();
       
  1681 	return TestStepResult();
       
  1682 	}
       
  1683 
       
  1684 
       
  1685 COmxGsTest0005Step04::~COmxGsTest0005Step04()
       
  1686 /**
       
  1687  * Destructor
       
  1688  */
       
  1689 	{
       
  1690 	}
       
  1691 
       
  1692 COmxGsTest0005Step04::COmxGsTest0005Step04()
       
  1693 /**
       
  1694  * Constructor
       
  1695  */
       
  1696 	{
       
  1697 	SetTestStepName(KOmxGsTest0005Step04);
       
  1698 	}
       
  1699 
       
  1700 TVerdict COmxGsTest0005Step04::doTestStepL()
       
  1701 /**
       
  1702  * @return - TVerdict code
       
  1703  * Override of base class pure virtual
       
  1704  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1705  * not leave. That being the case, the current test result value will be EPass.
       
  1706  */
       
  1707 	{
       
  1708 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1709 	DoROmxGsTestSetup();
       
  1710 	iDoEmptyBufferDoneLimit = 10;
       
  1711 	AllocateBufferTask();
       
  1712 	StartTimer();
       
  1713 	return TestStepResult();
       
  1714 	}
       
  1715 
       
  1716 COmxGsTest0005Step05::~COmxGsTest0005Step05()
       
  1717 /**
       
  1718  * Destructor
       
  1719  */
       
  1720 	{
       
  1721 	}
       
  1722 
       
  1723 COmxGsTest0005Step05::COmxGsTest0005Step05()
       
  1724 /**
       
  1725  * Constructor
       
  1726  */
       
  1727 	{
       
  1728 	SetTestStepName(KOmxGsTest0005Step05);
       
  1729 	}
       
  1730 
       
  1731 TVerdict COmxGsTest0005Step05::doTestStepL()
       
  1732 /**
       
  1733  * @return - TVerdict code
       
  1734  * Override of base class pure virtual
       
  1735  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1736  * not leave. That being the case, the current test result value will be EPass.
       
  1737  */
       
  1738 	{
       
  1739 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1740 	DoROmxGsTestSetup();
       
  1741 	iDoEmptyBufferDoneLimit = 10;
       
  1742 	AllocateBufferTask();
       
  1743 	StartTimer();
       
  1744 	return TestStepResult();
       
  1745 	}
       
  1746 
       
  1747 COmxGsTest0006Step01::~COmxGsTest0006Step01()
       
  1748 /**
       
  1749  * Destructor
       
  1750  */
       
  1751 	{
       
  1752 	}
       
  1753 
       
  1754 COmxGsTest0006Step01::COmxGsTest0006Step01()
       
  1755 /**
       
  1756  * Constructor
       
  1757  */
       
  1758 	{
       
  1759 	SetTestStepName(KOmxGsTest0006Step01);
       
  1760 	}
       
  1761 
       
  1762 TVerdict COmxGsTest0006Step01::doTestStepL()
       
  1763 /**
       
  1764  * @return - TVerdict code
       
  1765  * Override of base class pure virtual
       
  1766  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1767  * not leave. That being the case, the current test result value will be EPass.
       
  1768  */
       
  1769 	{
       
  1770 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1771 	DoROmxGsTestSetup();
       
  1772 	AllocateBufferTask();
       
  1773 	StartTimer();
       
  1774 	return TestStepResult();
       
  1775 	}
       
  1776 
       
  1777 COmxGsTest0006Step02::~COmxGsTest0006Step02()
       
  1778 /**
       
  1779  * Destructor
       
  1780  */
       
  1781 	{
       
  1782 	}
       
  1783 
       
  1784 COmxGsTest0006Step02::COmxGsTest0006Step02()
       
  1785 /**
       
  1786  * Constructor
       
  1787  */
       
  1788 	{
       
  1789 	SetTestStepName(KOmxGsTest0006Step02);
       
  1790 	}
       
  1791 
       
  1792 TVerdict COmxGsTest0006Step02::doTestStepL()
       
  1793 /**
       
  1794  * @return - TVerdict code
       
  1795  * Override of base class pure virtual
       
  1796  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1797  * not leave. That being the case, the current test result value will be EPass.
       
  1798  */
       
  1799 	{
       
  1800 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1801 	DoROmxGsTestSetup();
       
  1802 	AllocateBufferTask();
       
  1803 	StartTimer();
       
  1804 	return TestStepResult();
       
  1805 	}
       
  1806 
       
  1807 COmxGsTest0007Step01::~COmxGsTest0007Step01()
       
  1808 /**
       
  1809  * Destructor
       
  1810  */
       
  1811 	{
       
  1812 	}
       
  1813 
       
  1814 COmxGsTest0007Step01::COmxGsTest0007Step01()
       
  1815 /**
       
  1816  * Constructor
       
  1817  */
       
  1818 	{
       
  1819 	SetTestStepName(KOmxGsTest0007Step01);
       
  1820 	}
       
  1821 
       
  1822 
       
  1823 TVerdict COmxGsTest0007Step01::doTestStepL()
       
  1824 /**
       
  1825  * @return - TVerdict code
       
  1826  * Override of base class pure virtual
       
  1827  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1828  * not leave. That being the case, the current test result value will be EPass.
       
  1829  */
       
  1830 	{
       
  1831 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1832 	iDoEmptyBufferDoneLimit = 8;
       
  1833 	iExecutingToIdle = EFalse;
       
  1834 	
       
  1835 	DoROmxGsTestSetup();
       
  1836 	AllocateBufferTask();
       
  1837 	StartTimer();
       
  1838 	return TestStepResult();
       
  1839 	}
       
  1840 
       
  1841 COmxGsTest0007Step02::~COmxGsTest0007Step02()
       
  1842 /**
       
  1843  * Destructor
       
  1844  */
       
  1845 	{
       
  1846 	}
       
  1847 
       
  1848 COmxGsTest0007Step02::COmxGsTest0007Step02()
       
  1849 /**
       
  1850  * Constructor
       
  1851  */
       
  1852 	{
       
  1853 	SetTestStepName(KOmxGsTest0007Step02);
       
  1854 	}
       
  1855 
       
  1856 TVerdict COmxGsTest0007Step02::doTestStepL()
       
  1857 /**
       
  1858  * @return - TVerdict code
       
  1859  * Override of base class pure virtual
       
  1860  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1861  * not leave. That being the case, the current test result value will be EPass.
       
  1862  */
       
  1863 	{
       
  1864 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1865 	iDoEmptyBufferDoneLimit = 8;
       
  1866 	iExecutingToIdle = EFalse;
       
  1867 	
       
  1868 	DoROmxGsTestSetup();
       
  1869 	AllocateBufferTask();
       
  1870 	StartTimer();
       
  1871 	return TestStepResult();
       
  1872 	}
       
  1873 
       
  1874 
       
  1875 COmxGsTest0007Step03::~COmxGsTest0007Step03()
       
  1876 /**
       
  1877  * Destructor
       
  1878  */
       
  1879 	{
       
  1880 	}
       
  1881 
       
  1882 COmxGsTest0007Step03::COmxGsTest0007Step03()
       
  1883 /**
       
  1884  * Constructor
       
  1885  */
       
  1886 	{
       
  1887 	SetTestStepName(KOmxGsTest0007Step03);
       
  1888 	}
       
  1889 
       
  1890 TVerdict COmxGsTest0007Step03::doTestStepL()
       
  1891 /**
       
  1892  * @return - TVerdict code
       
  1893  * Override of base class pure virtual
       
  1894  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1895  * not leave. That being the case, the current test result value will be EPass.
       
  1896  */
       
  1897 	{
       
  1898 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1899 	iDoEmptyBufferDoneLimit = 8;
       
  1900 	iExecutingToIdle = EFalse;
       
  1901 	
       
  1902 	DoROmxGsTestSetup();
       
  1903 	AllocateBufferTask();
       
  1904 	StartTimer();
       
  1905 	return TestStepResult();
       
  1906 	}
       
  1907 
       
  1908 COmxGsTest0007Step04::~COmxGsTest0007Step04()
       
  1909 /**
       
  1910  * Destructor
       
  1911  */
       
  1912 	{
       
  1913 	}
       
  1914 
       
  1915 COmxGsTest0007Step04::COmxGsTest0007Step04()
       
  1916 /**
       
  1917  * Constructor
       
  1918  */
       
  1919 	{
       
  1920 	SetTestStepName(KOmxGsTest0007Step04);
       
  1921 	}
       
  1922 
       
  1923 TVerdict COmxGsTest0007Step04::doTestStepL()
       
  1924 /**
       
  1925  * @return - TVerdict code
       
  1926  * Override of base class pure virtual
       
  1927  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1928  * not leave. That being the case, the current test result value will be EPass.
       
  1929  */
       
  1930 	{
       
  1931 	GetState(iGraphicSinkCompHandle,&iOmxStateType,OMX_StateLoaded);
       
  1932 	iDoEmptyBufferDoneLimit = 8;
       
  1933 	iExecutingToIdle = EFalse;
       
  1934 	
       
  1935 	DoROmxGsTestSetup();
       
  1936 	AllocateBufferTask();
       
  1937 	StartTimer();
       
  1938 	return TestStepResult();
       
  1939 	}
       
  1940 
       
  1941 COmxGsTest0008Step01::~COmxGsTest0008Step01()
       
  1942 /**
       
  1943  * Destructor
       
  1944  */
       
  1945 	{
       
  1946 	}
       
  1947 
       
  1948 COmxGsTest0008Step01::COmxGsTest0008Step01()
       
  1949 /**
       
  1950  * Constructor
       
  1951  */
       
  1952 	{
       
  1953 	SetTestStepName(KOmxGsTest0008Step01);
       
  1954 	}
       
  1955 
       
  1956 TVerdict COmxGsTest0008Step01::doTestStepL()
       
  1957 /**
       
  1958  * @return - TVerdict code
       
  1959  * Override of base class pure virtual
       
  1960  * Our implementation only gets called if the base class doTestStepPreambleL() did
       
  1961  * not leave. That being the case, the current test result value will be EPass.
       
  1962  */
       
  1963 	{
       
  1964 	// Use set and get config for all different relevant dynamic configurations including negative tests
       
  1965 	OMX_FRAMESIZETYPE setFrameSize;
       
  1966 	OMX_CONFIG_SCALEFACTORTYPE setScaleFactor;
       
  1967 	OMX_CONFIG_RECTTYPE setRecType;
       
  1968 	
       
  1969 	OMX_FRAMESIZETYPE getFrameSize;
       
  1970 	OMX_CONFIG_SCALEFACTORTYPE getScaleFactor;
       
  1971 	OMX_CONFIG_RECTTYPE getRecType;
       
  1972 	
       
  1973 		
       
  1974 	//Testing OMX_IndexConfigCommonScale
       
  1975 	setScaleFactor.nSize = sizeof(OMX_CONFIG_SCALEFACTORTYPE);
       
  1976 	setScaleFactor.nVersion = TOmxILSpecVersion();
       
  1977 	setScaleFactor.nPortIndex = 0;
       
  1978 	GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonScale,&setScaleFactor);
       
  1979 	setScaleFactor.xWidth = 0x10000;
       
  1980 	setScaleFactor.xHeight = 0x10000;
       
  1981 	SetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonScale,&setScaleFactor);
       
  1982 	getScaleFactor.nSize = sizeof(OMX_CONFIG_SCALEFACTORTYPE);
       
  1983 	getScaleFactor.nVersion = TOmxILSpecVersion();
       
  1984 	getScaleFactor.nPortIndex = 0;
       
  1985 	GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonScale,&getScaleFactor);
       
  1986 	if(setScaleFactor.xWidth != getScaleFactor.xWidth || setScaleFactor.xHeight != getScaleFactor.xHeight)
       
  1987 		{
       
  1988 		ERR_PRINTF1(_L("COmxGsTest0008Step01::doTestStepL(): OMX_IndexConfigCommonScale 1 error"));	
       
  1989 		SetTestStepError(KErrGeneral);
       
  1990 		return TestStepResult();
       
  1991 		}
       
  1992 		
       
  1993 	//Code coverage negative testing
       
  1994 	setScaleFactor.nPortIndex = 1;
       
  1995 	GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonScale,&setScaleFactor,OMX_ErrorBadPortIndex);
       
  1996 	SetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonScale,&setScaleFactor,OMX_ErrorBadPortIndex);
       
  1997 	
       
  1998 		
       
  1999 	//Testing OMX_IndexConfigCommonScale
       
  2000 	setScaleFactor.nSize = sizeof(OMX_CONFIG_SCALEFACTORTYPE);
       
  2001 	setScaleFactor.nVersion = TOmxILSpecVersion();
       
  2002 	setScaleFactor.nPortIndex = 0;
       
  2003 	GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonScale,&setScaleFactor);
       
  2004 	setScaleFactor.xWidth = 0x20000;
       
  2005 	setScaleFactor.xHeight = 0x20000;
       
  2006 	SetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonScale,&setScaleFactor);
       
  2007 	SetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonScale,&setScaleFactor);
       
  2008 	getScaleFactor.nSize = sizeof(OMX_CONFIG_SCALEFACTORTYPE);
       
  2009 	getScaleFactor.nVersion = TOmxILSpecVersion();
       
  2010 	getScaleFactor.nPortIndex = 0;
       
  2011 	GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonScale,&getScaleFactor);
       
  2012 	if(setScaleFactor.xWidth != getScaleFactor.xWidth || setScaleFactor.xHeight != getScaleFactor.xHeight)
       
  2013 		{
       
  2014 		ERR_PRINTF1(_L("COmxGsTest0008Step01::doTestStepL(): OMX_IndexConfigCommonScale 2 error"));	
       
  2015 		SetTestStepError(KErrGeneral);
       
  2016 		return TestStepResult();
       
  2017 		}		
       
  2018 		
       
  2019 	//Testing OMX_IndexConfigCommonOutputSize
       
  2020 	setFrameSize.nSize = sizeof(OMX_FRAMESIZETYPE);
       
  2021 	setFrameSize.nVersion = TOmxILSpecVersion();
       
  2022 	setFrameSize.nPortIndex = 0;
       
  2023 	GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonOutputSize,&setFrameSize);
       
  2024 	setFrameSize.nWidth = 320;
       
  2025 	setFrameSize.nHeight = 240;
       
  2026 	SetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonOutputSize,&setFrameSize);
       
  2027 	getFrameSize.nSize = sizeof(OMX_FRAMESIZETYPE);
       
  2028 	getFrameSize.nVersion = TOmxILSpecVersion();
       
  2029 	getFrameSize.nPortIndex = 0;
       
  2030 	GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonOutputSize,&getFrameSize);
       
  2031 	if(setFrameSize.nWidth != getFrameSize.nWidth || setFrameSize.nHeight != getFrameSize.nHeight)
       
  2032 		{
       
  2033 		ERR_PRINTF1(_L("COmxGsTest0008Step01::doTestStepL(): OMX_IndexConfigCommonOutputSize 1 error"));	
       
  2034 		SetTestStepError(KErrGeneral);
       
  2035 		return TestStepResult();
       
  2036 		}
       
  2037 		
       
  2038 	//Code coverage negative testing
       
  2039 	setFrameSize.nPortIndex = 1;
       
  2040 	GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonOutputSize,&setFrameSize,OMX_ErrorBadPortIndex);
       
  2041 	SetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonOutputSize,&setFrameSize,OMX_ErrorBadPortIndex);
       
  2042 	
       
  2043 		
       
  2044 	//Testing OMX_IndexConfigCommonOutputSize
       
  2045 	setFrameSize.nSize = sizeof(OMX_FRAMESIZETYPE);
       
  2046 	setFrameSize.nVersion = TOmxILSpecVersion();
       
  2047 	setFrameSize.nPortIndex = 0;
       
  2048 	GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonOutputSize,&setFrameSize);
       
  2049 	setFrameSize.nWidth = 160;
       
  2050 	setFrameSize.nHeight = 120;
       
  2051 	SetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonOutputSize,&setFrameSize);
       
  2052 	getFrameSize.nSize = sizeof(OMX_FRAMESIZETYPE);
       
  2053 	getFrameSize.nVersion = TOmxILSpecVersion();
       
  2054 	getFrameSize.nPortIndex = 0;
       
  2055 	GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonOutputSize,&getFrameSize);
       
  2056 	if(setFrameSize.nWidth != getFrameSize.nWidth || setFrameSize.nHeight != getFrameSize.nHeight)
       
  2057 		{
       
  2058 		ERR_PRINTF1(_L("COmxGsTest0008Step01::doTestStepL(): OMX_IndexConfigCommonOutputSize 2 error"));	
       
  2059 		SetTestStepError(KErrGeneral);
       
  2060 		return TestStepResult();
       
  2061 		}	
       
  2062 	
       
  2063 	//Testing OMX_IndexConfigCommonInputCrop
       
  2064 	setRecType.nSize = sizeof(OMX_CONFIG_RECTTYPE);
       
  2065 	setRecType.nVersion = TOmxILSpecVersion();
       
  2066 	setRecType.nPortIndex = 0;
       
  2067 	GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonInputCrop,&setRecType);
       
  2068 	setRecType.nLeft = 0x10000;
       
  2069 	setRecType.nTop = 0x10000;
       
  2070 	setRecType.nWidth = 320;
       
  2071 	setRecType.nHeight = 240;
       
  2072 	SetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonInputCrop,&setRecType);
       
  2073 	getRecType.nSize = sizeof(OMX_CONFIG_RECTTYPE);
       
  2074 	getRecType.nVersion = TOmxILSpecVersion();
       
  2075 	getRecType.nPortIndex = 0;
       
  2076 	GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonInputCrop,&getRecType);
       
  2077 	if( setRecType.nLeft != getRecType.nLeft 
       
  2078 		|| setRecType.nTop != getRecType.nTop 
       
  2079 		|| setRecType.nWidth != getRecType.nWidth
       
  2080 		|| setRecType.nHeight != getRecType.nHeight )
       
  2081 		{
       
  2082 		ERR_PRINTF1(_L("COmxGsTest0008Step01::doTestStepL(): OMX_IndexConfigCommonInputCrop 1 error"));	
       
  2083 		SetTestStepError(KErrGeneral);
       
  2084 		return TestStepResult();
       
  2085 		}
       
  2086 	
       
  2087 	//Testing OMX_IndexConfigCommonOutputCrop
       
  2088 	setRecType.nSize = sizeof(OMX_CONFIG_RECTTYPE);
       
  2089 	setRecType.nVersion = TOmxILSpecVersion();
       
  2090 	setRecType.nPortIndex = 0;
       
  2091 	GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonOutputCrop,&setRecType);
       
  2092 	setRecType.nLeft = 0x20000;
       
  2093 	setRecType.nTop = 0x20000;
       
  2094 	setRecType.nWidth = 160;
       
  2095 	setRecType.nHeight = 120;
       
  2096 	SetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonOutputCrop,&setRecType);
       
  2097 	getRecType.nSize = sizeof(OMX_CONFIG_RECTTYPE);
       
  2098 	getRecType.nVersion = TOmxILSpecVersion();
       
  2099 	getRecType.nPortIndex = 0;
       
  2100 	GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonOutputCrop,&getRecType);
       
  2101 	if( setRecType.nLeft != getRecType.nLeft 
       
  2102 		|| setRecType.nTop != getRecType.nTop 
       
  2103 		|| setRecType.nWidth != getRecType.nWidth
       
  2104 		|| setRecType.nHeight != getRecType.nHeight )
       
  2105 		{
       
  2106 		ERR_PRINTF1(_L("COmxGsTest0008Step01::doTestStepL(): OMX_IndexConfigCommonOutputCrop 1 error"));	
       
  2107 		SetTestStepError(KErrGeneral);
       
  2108 		return TestStepResult();
       
  2109 		}
       
  2110 		
       
  2111 	//Testing OMX_IndexConfigCommonExclusionRect
       
  2112 	setRecType.nSize = sizeof(OMX_CONFIG_RECTTYPE);
       
  2113 	setRecType.nVersion = TOmxILSpecVersion();
       
  2114 	setRecType.nPortIndex = 0;
       
  2115 	GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonExclusionRect,&setRecType);
       
  2116 	setRecType.nLeft = 0x20000;
       
  2117 	setRecType.nTop = 0x20000;
       
  2118 	setRecType.nWidth = 320;
       
  2119 	setRecType.nHeight = 240;
       
  2120 	SetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonExclusionRect,&setRecType);
       
  2121 	getRecType.nSize = sizeof(OMX_CONFIG_RECTTYPE);
       
  2122 	getRecType.nVersion = TOmxILSpecVersion();
       
  2123 	getRecType.nPortIndex = 0;
       
  2124 	GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonExclusionRect,&getRecType);
       
  2125 	if( setRecType.nLeft != getRecType.nLeft 
       
  2126 		|| setRecType.nTop != getRecType.nTop 
       
  2127 		|| setRecType.nWidth != getRecType.nWidth
       
  2128 		|| setRecType.nHeight != getRecType.nHeight )
       
  2129 		{
       
  2130 		ERR_PRINTF1(_L("COmxGsTest0008Step01::doTestStepL(): OMX_IndexConfigCommonExclusionRect 1 error"));	
       
  2131 		SetTestStepError(KErrGeneral);
       
  2132 		return TestStepResult();
       
  2133 		}
       
  2134 	
       
  2135 	//Negative GetConfig test
       
  2136 	OMX_CONFIG_CONTRASTTYPE conContrastType;
       
  2137 	conContrastType.nSize = sizeof(OMX_CONFIG_CONTRASTTYPE);
       
  2138 	conContrastType.nVersion = TOmxILSpecVersion();
       
  2139 	conContrastType.nPortIndex = 0;
       
  2140 	GetConfig(iGraphicSinkCompHandle,OMX_IndexConfigCommonContrast,&conContrastType,OMX_ErrorUnsupportedIndex);
       
  2141 	
       
  2142 	SetTestStepResult(EPass);
       
  2143 	return TestStepResult();
       
  2144 	}
       
  2145 
       
  2146 COmxGsTest0009Step00::~COmxGsTest0009Step00()
       
  2147 	{
       
  2148 	}
       
  2149  
       
  2150 COmxGsTest0009Step00::COmxGsTest0009Step00()
       
  2151 	{
       
  2152 	SetTestStepName(KOmxGsTest0009Step00);
       
  2153 	}
       
  2154 
       
  2155 TVerdict COmxGsTest0009Step00::doTestStepL()
       
  2156 	{
       
  2157 	GetIntFromConfig(ConfigSection(),KMMTestCase,iTestCase);
       
  2158 	GetIntFromConfig(ConfigSection(),KMMTestStep,iTestStep);
       
  2159 	INFO_PRINTF3(_L("COmxGsTest000%dStep0%d::doTestStepL: State Loaded to Executing transition using AllocateBuffer"),iTestCase,iTestStep);
       
  2160 	DoROmxGsTestSetup();
       
  2161 	StartStateTransitionTask();
       
  2162 	
       
  2163 	StartTimer();
       
  2164 	return TestStepResult();
       
  2165 	}
       
  2166 
       
  2167 COmxGsTest0010Step00::~COmxGsTest0010Step00()
       
  2168 	{
       
  2169 	}
       
  2170  
       
  2171 COmxGsTest0010Step00::COmxGsTest0010Step00()
       
  2172 	{
       
  2173 	SetTestStepName(KOmxGsTest0010Step00);
       
  2174 	}
       
  2175 
       
  2176 TVerdict COmxGsTest0010Step00::doTestStepL()
       
  2177 	{
       
  2178 	GetIntFromConfig(ConfigSection(),KMMTestCase,iTestCase);
       
  2179 	GetIntFromConfig(ConfigSection(),KMMTestStep,iTestStep);
       
  2180 	GetIntFromConfig(ConfigSection(),_L("REmptyBufferLimit"),iDoEmptyBufferDoneLimit);
       
  2181 	INFO_PRINTF3(_L("COmxGsTest000%dStep0%d::doTestStepL: Empty Buffer Done using AllocateBuffer"),iTestCase,iTestStep);
       
  2182 	DoROmxGsTestSetup();
       
  2183 	StartBufferDoneTask();
       
  2184 	
       
  2185 	StartTimer();
       
  2186 	return TestStepResult();
       
  2187 	}