mmapitest/devvideohaitest/inc/H264DecTestEngine.h
author hgs
Wed, 29 Sep 2010 13:59:21 +0100
changeset 60 9ea4d0cbd540
parent 26 c36d67f77f75
permissions -rw-r--r--
2010wk40
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     1
/*
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     2
* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     3
* All rights reserved.
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     8
*
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     9
* Initial Contributors:
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    11
*
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    12
* Contributors:
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    13
*
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    14
* Description:  
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    15
*
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    16
*/
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    17
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    18
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    19
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    20
#ifndef __H264DecTestEngine_H
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    21
#define __H264DecTestEngine_H
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    22
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    23
#include <e32base.h>
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    24
#include <e32std.h>
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    25
#include <f32file.h>
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    26
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    27
#include "T_DevVideoConstants.h"
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    28
#include <Videoplayhwdevice.h>
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    29
#include <Devvideoplay.h>
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    30
#include <Devvideobase.h> 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    31
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    32
//#define __CI_HEADERS__
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    33
//#define __SECUREOUTPUTCI__
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    34
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    35
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    36
#ifdef __CI_HEADERS__
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    37
#include <buffermanagementci.h>  // Custom interface buffre management
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    38
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    39
#endif
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    40
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    41
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    42
#ifdef __SECUREOUTPUTCI__
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    43
#include <secureoutputci.h>
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    44
#endif
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    45
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    46
#include <Bitdev.h>   // for display device 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    47
#include <Fbs.h>      // for display device
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    48
#include <math.h> //pow
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    49
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    50
#ifdef __RESOURCENOTIFICATION__
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    51
#include <devvideostandardcustominterfaces.h>
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    52
#endif
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    53
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    54
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    55
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    56
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    57
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    58
//////////////////
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    59
// Utility function
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    60
//////////////////
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    61
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    62
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    63
// MACROS
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    64
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    65
// DATA TYPES
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    66
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    67
// FORWARD DECLARATIONS
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    68
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    69
// CLASS DECLARATION
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    70
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    71
const TUint KMaxNumberOfNals = 100;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    72
//const TUint KDataChunkSize = 500000;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    73
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    74
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    75
//#ifdef _DEBUG
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    76
#define DEBUGPRINT
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    77
//#endif
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    78
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    79
// Debug print macro
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    80
#ifdef DEBUGPRINT
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    81
#include <e32svr.h>
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    82
#define PRINT(x) RDebug::Print x;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    83
#else
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    84
#define PRINT(x)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    85
#endif
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    86
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    87
// ENumerations
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    88
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    89
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    90
enum TEngineState
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    91
     {
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    92
     EStateNone,
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    93
     ECreated,
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    94
     EInitialized,
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    95
     ERunning,	
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    96
     EPaused,	
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    97
     EStopped,	
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    98
     };
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    99
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   100
enum TYuvDataOptions
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   101
     {
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   102
     EYuv420Planner,
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   103
     EYuv422Interleaved
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   104
     };
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   105
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   106
enum THWDevice 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   107
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   108
	EPostProcessor,
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   109
	EDecoder
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   110
	};
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   111
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   112
enum TFLVFileType
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   113
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   114
	EFLVNotSet,
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   115
	EFLVContainer,
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   116
	EFLVRaw
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   117
	};
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   118
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   119
// CLASS DECLARATION
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   120
class CVDecTestAO;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   121
class CVDecTestEngine;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   122
class MVDecEngineObserver;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   123
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   124
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   125
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   126
*  Video Decoder Test Engine Observer
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   127
*  
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   128
*  @lib 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   129
*  @since 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   130
*/
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   131
class MVDecEngineObserver
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   132
{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   133
public:
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   134
	
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   135
	virtual void MvdeStreamEndReached() = 0;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   136
	virtual void MvdeSetError(TInt aError) = 0;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   137
};
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   138
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   139
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   140
*  Video Decoder Test Engine 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   141
*  implements common test execution block
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   142
*  @lib 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   143
*  @since 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   144
*/
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   145
class CVDecTestEngine : public CBase , public MMMFDevVideoPlayObserver 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   146
#ifdef __CI_HEADERS__
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   147
,public MMmfVideoBufferManagementObserver
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   148
#endif
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   149
#ifdef __RESOURCENOTIFICATION__
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   150
,public MMmfVideoResourceObserver
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   151
#endif
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   152
    {
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   153
public:
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   154
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   155
     
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   156
     TEngineState iState;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   157
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   158
public:
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   159
    CVDecTestEngine () { }
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   160
    ~CVDecTestEngine ();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   161
    static CVDecTestEngine* NewL(MVDecEngineObserver& aTestClass);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   162
    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   163
    //info test method
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   164
    void SetCodecType(TVideoCodec aCodec);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   165
    //void GetDecoderInfoL(const TDesC8& aMimeType, TBool aExactMatch);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   166
    //void GetPostProcessorInfoL(TInt aCombination);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   167
    void GetHeaderInformationL();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   168
    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   169
	void GetHeaderInformationL(TVideoDataUnitType aDataUnitType, TVideoDataUnitEncapsulation aDataUnitEncapsulation);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   170
    //void GetHeaderInfoL(const TUid& aDecUid, TVideoDataUnitType aDataUnitType, TVideoDataUnitEncapsulation aDataUnitEncapsulation);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   171
	void GetBitstreamCountersL();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   172
	void PreDecoderBufferBytes();	
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   173
    void PictureBufferBytes();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   174
    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   175
    // Video test control methods
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   176
    //void SetUpL(TBool aScreenAcces);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   177
    void SetUpL(TSize aSize, TBool aScreenAccess, TBool aCIBuffMgmt);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   178
    void CreateDecoderL(const TUid& aDecUid, TVideoCodec aCodec, const TDesC8& aMimeType, TYuvDataOptions aOutFormat);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   179
    void CreatePostProcessorL(const TUid& aPostprocUid, const TYuvFormat& aInputFormat, const TUncompressedVideoFormat& aOutputFormat, TUint32 aCombination);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   180
    void CreateDecPostprocL(const TUid& aDecUid, TVideoCodec aCodec, const TUid& aPostprocUid, TUint32 aCombination);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   181
    TInt Initialize();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   182
    TInt InitializeAndDelete();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   183
    TInt Start(TBool aInputEnd);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   184
    TInt Stop();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   185
    TInt Resume();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   186
    TInt Pause();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   187
    void FreezePicture(TTimeIntervalMicroSeconds aTimeStamp);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   188
    void ReleaseFreeze(TTimeIntervalMicroSeconds aTimeStamp);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   189
    void TearDown();    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   190
    void SetFrameMatch(TBool aMatch);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   191
    TInt FrameJump(TInt aNumToJump );
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   192
    void SetFrameDrop(TInt aFrameInterval, TInt aFrameNum, TBool aFrameDropMarker );
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   193
    void SetFLVPassword(TDesC8& aPassword); 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   194
    void EnableInstantFpsL(TFileName& aOutFileName);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   195
    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   196
    // Select and set Postprocessing  
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   197
    void SetPostProcessTypesL(TInt aHWDevice, TUint32 aCombination);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   198
    void SetInputCropOptionsL(TInt aHWDevice, TRect aCrop);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   199
    void SetYuvToRgbOptionsL(TInt aHWDevice, TYuvToRgbOptions aOptions);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   200
    void SetRotateOptionsL(TInt aHWDevice, TRotationType aRotation);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   201
    void SetScaleOptionsL(TInt aHWDevice, TSize aSize, TBool aAntiAliasFiltering);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   202
    void SetScaleOptionsL(TInt aNumFactor,TInt aDenoFactor, TBool aAntiAliasFiltering);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   203
    void SetOutputCropOptionsL(TInt aHWDevice, TRect aCrop);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   204
    void CommitL();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   205
    void Revert();    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   206
    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   207
    void SetClockSource();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   208
    void SetInputBufferSize(TInt aSize);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   209
    void SetHrdVbvSpec(THrdVbvSpecification aHrdVbvSpec, const TDesC8& aHrdVbvParams);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   210
    void SetPostProcSpecificOptionsL(TInt aHWDevice, const TDesC8& aOptions);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   211
    void SetScreenClipRegion(TRegion& aRegion);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   212
    void SetPauseOnClipFail(TBool aPause);    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   213
    void IsPlaying();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   214
    void GetPictureCounters();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   215
    void NumFreeBuffers();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   216
    void NumComplexityLevels(TInt aHWDevice);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   217
    void InputEnd();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   218
    void GetNewPictureInfo(TTimeIntervalMicroSeconds& aEarliestTimestamp, 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   219
						   TTimeIntervalMicroSeconds& aLatestTimestamp);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   220
    void GetTimedSnapshotL(const TUncompressedVideoFormat& aFormat, 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   221
							const TTimeIntervalMicroSeconds& aPresentationTimestamp); 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   222
	void GetTimedSnapshotL(const TUncompressedVideoFormat& aFormat, const TPictureId& aPictureId);						
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   223
    void CancelTimedSnapshot();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   224
    void GetSupportedSnapshotFormatsL();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   225
    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   226
    // Complexity level
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   227
    void SetComplexityLevel(TInt aHWDevice, TInt aLevel);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   228
    void GetComplexityLevelInfo(TInt aHWDevice, TInt aLevel);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   229
    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   230
    //DSA
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   231
    void StartDirectScreenAccessL();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   232
    void StartDirectScreenAccessL(TRect aVideoRect, TRect aClipRegion);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   233
    void AbortDirectScreenAccess();    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   234
    void Redraw();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   235
    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   236
    void SetWindowRect(TInt aX, TInt aY, TSize aSize);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   237
    void SetSecondScreenAccess(TBool aStatus);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   238
    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   239
    // snap shot methods
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   240
    void GetSnapshotL(TUncompressedVideoFormat& aFormat);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   241
    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   242
    void EnableSynchronization(TInt aFrameRate);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   243
    void EnableFrameMeasurementTest(TBool aEnable);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   244
    void SetSecureOutputL(TBool aSecure);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   245
    void SetPosition(const TTimeIntervalMicroSeconds& aPlaybackPosition);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   246
    void ResetPosition();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   247
    TTimeIntervalMicroSeconds PlaybackPosition();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   248
    void DecodingPosition();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   249
    void ListFrameSizeL(RArray<TInt> aFramesizes);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   250
    TInt GetFrameSizeCount();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   251
    //void GetPictureCounter();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   252
    void SetLandscapeMode();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   253
    void SelectDecoderL(const TUid& aUid);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   254
    void SelectPostProcessorL(const TUid& aUid);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   255
    void SetInputFormatL(TInt aHwDev, const TUncompressedVideoFormat& aFormat);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   256
    void SetInputFormatL(TInt aHwDev, const CCompressedVideoFormat& aFormat, 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   257
						 TVideoDataUnitType aDataUnitType, TVideoDataUnitEncapsulation aEncapsulation,
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   258
						 TBool aDataInOrder);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   259
	void SetOutputFormatL(TInt aHwDev, const TUncompressedVideoFormat& aFormat);						 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   260
    void SetBufferOptionsL(const CMMFDevVideoPlay::TBufferOptions& aOptions);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   261
    void GetBufferOptions();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   262
    void SynchronizeDecoding(TBool aSynch);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   263
    void SetVideoDestScreenL(TBool aDest);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   264
    void SetYuvToRgbOptionsL(TInt aHWDevice, const TYuvToRgbOptions& aOptions, const TYuvFormat& aYuvFormat, TRgbFormat aRgbFormat);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   265
    void FindCommonFormatsL();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   266
    TInt FindDecodersL(const TDesC8& aMimeType, TUint32 aPostProcType, TBool aExactMatch, TUid& aUid);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   267
    TInt FindPostProcessorsL(TUid& aUid, TUint32 aPostProcType);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   268
    void GetDecoderListL();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   269
    void ConfigureDecoderL(TVideoPictureHeader& aVideoPictureHeader);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   270
    void ConfigureDecoderL();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   271
    void GetOutputFormatListL(TInt aHWDevice);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   272
    void GetPostProcessorListL();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   273
    void VideoDecoderInfoL(TUid aVideoDecoder);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   274
    void PostProcessorInfoL(TUid aPostProcessor);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   275
    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   276
    TReal ConvertToRealL(const TDesC& aPtr);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   277
    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   278
    //File operations
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   279
    void OpenFileL(TFileName& aInFileName);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   280
    void OpenFileL(TFileName& aOutFileName, TFileName& aInFileName);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   281
    void CloseFile();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   282
    void CorruptInput(TInt aFilter, TInt aInterval, TInt aFrameNum, TInt aPct);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   283
    void CorruptEngineL();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   284
    void CorruptEngineL( TVideoInputBuffer* aCodedInBuffer ); 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   285
    TInt CreateCorruptedFileL(); 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   286
    void OpenFileToWriteL(TFileName& aInFileName);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   287
    TInt ReadVC1FrameL(TVideoInputBuffer* aCodedInBuffer);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   288
    TInt ReadMPEG4FrameL(TVideoInputBuffer* aCodedInBuffer); 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   289
    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   290
    TInt SupportsFormatL(const TUid& aUid, const CCompressedVideoFormat& aFormat);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   291
	TInt SupportsFormatInfoL(const TUid& aUid, const CCompressedVideoFormat& aFormat);		
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   292
	TInt SupportsAccelerationL(TInt aHwDev, const TUid& aUid);		
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   293
	TInt SupportsDirectDisplayL(TInt aHwDev, const TUid& aUid);		
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   294
	TInt SupportsMaxBitrateL(const TUid& aUid, TInt aBitrate);		
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   295
	TInt SupportsMaxPictureSizeL(const TUid& aUid, TSize aSize);		
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   296
	TInt SupportsMaxPictureRateL(const TUid& aUid, TPictureRateAndSize& aRateAndSize);			
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   297
	TInt SupportsPictureLossL(const TUid& aUid);		
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   298
	TInt SupportsSliceLossL(const TUid& aUid);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   299
 	TInt SupportsOutputFormatL(TInt aHwdev, const TUncompressedVideoFormat& aFormat);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   300
 	void SetSlowClient(TBool aOption);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   301
 	void SetFastClient(TBool aOption);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   302
 	TInt SetAUFormat();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   303
 	TInt MoveFileL(const TDesC &anOld, const TDesC &aNew);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   304
 	TInt CopyFileL(const TDesC &anOld, const TDesC &aNew); 	
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   305
 	
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   306
    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   307
    // For Active objects
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   308
    void HandleNewBufferL();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   309
        
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   310
    // From DevVideo Play observer 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   311
    void MdvpoNewBuffers();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   312
    void MdvpoReturnPicture(TVideoPicture* aPicture);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   313
    void MdvpoSupplementalInformation(const TDesC8& aData, const TTimeIntervalMicroSeconds& aTimestamp, const TPictureId& aPictureId);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   314
    void MdvpoPictureLoss();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   315
    void MdvpoPictureLoss(const TArray<TPictureId>& aPictures);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   316
    void MdvpoSliceLoss(TUint aFirstMacroblock, TUint aNumMacroblocks, const TPictureId& aPicture);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   317
    void MdvpoReferencePictureSelection(const TDesC8& aSelectionData);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   318
    void MdvpoTimedSnapshotComplete(TInt aError, TPictureData* aPictureData, const TTimeIntervalMicroSeconds& aPresentationTimestamp, const TPictureId& aPictureId);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   319
    void MdvpoNewPictures();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   320
    void MdvpoFatalError(TInt aError);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   321
    void MdvpoInitComplete(TInt aError);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   322
    void MdvpoStreamEnd();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   323
   
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   324
    // Buffer Management Custom Interface observer 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   325
#ifdef __CI_HEADERS__    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   326
    void MmvbmoNewBuffers();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   327
    void MmvbmoReleaseBuffers();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   328
#endif
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   329
#ifdef __RESOURCENOTIFICATION__
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   330
	void MmvroResourcesLost(TUid aMediaDevice);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   331
    void MmvroResourcesRestored(TUid aMediaDevice);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   332
#endif
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   333
 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   334
protected:
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   335
    // Own test functions
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   336
    void GetInputBufferL();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   337
    void FillAndSendBufferL();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   338
    void GetReturnedPictureL();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   339
    void SaveAndReturnPicture();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   340
    TInt ReadOneCodedPicture(TVideoInputBuffer* aCodedInBuffer);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   341
    TInt ReadOneCodedPicture(TVideoInputBuffer* aCodedInBuffer, TInt aSize);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   342
    TInt ReadRawPicture();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   343
     
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   344
private:
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   345
	TUint8 ReadByteFromFile();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   346
	void GoBackInFile(TUint aBytes);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   347
	void ReadDataToBuffer(TVideoInputBuffer* aCodedInBuffer, TInt aSize, TBool aDiscard = EFalse);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   348
	TBool CheckAndFillDataChunk();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   349
	TBool ReadItemLE(unsigned char *readBuffer, int Size, unsigned char* pItem);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   350
	TInt LoadNextFrameL(TVideoInputBuffer* aCodedInBuffer);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   351
    void ConstructL(MVDecEngineObserver& aTestClass);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   352
    void AssertTIntEqualL(TInt aExpected, TInt aActual);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   353
    void PrintUncompressedFormat(const TUncompressedVideoFormat& aFormat);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   354
    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   355
private:
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   356
    CMMFDevVideoPlay* iDevvp;			  //points to DevVideo Play
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   357
    THwDeviceId iDecHWDevId;              //Hwdevise ID of selected Decoder
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   358
    THwDeviceId iPostProcId;              //Hwdevise ID of selected postprocessor
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   359
    TUid iPostProcessorUid;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   360
    TUid iDecoderUid;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   361
    CVDecTestAO* iDecTestAO;              
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   362
    TBool iRunning;                       //State of scheduler
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   363
    TYuvFormat iRawFormat;                //Used for Decoder output, postprocessor input 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   364
    TRgbFormat iDispFormat;               // Display Options
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   365
    TRect iDispRect;                        
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   366
    TInt iError;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   367
    TVideoInputBuffer* iCodedInBuffer;     // Pointer to Decoder input buffer
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   368
    TVideoInputBuffer* iCorruptedInBuffer;   //Pointer to corrupted input for decoder
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   369
    TInt iInBuffSize;                 // Size of decoder input buffer
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   370
    TVideoPicture* iOutBuffer;             // Pointer to picuture class for output data in memory buffer output 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   371
    TVideoPicture* iOutBufferTemp;             // Pointer to picuture class for output data in memory buffer output 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   372
    TVideoPicture* iRawInBuffer;            // Used for postprocessor input
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   373
    HBufC8* iRawDataArea;                  // Pointer to Heap buffer, filled with input data to postprocessor
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   374
    TInt64 iTimeStamp; 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   375
    TInt64 iFrameTimeInterval;              
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   376
    TInt iSentBuffCount;                    //Number of frames sent to target HwDevice    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   377
    TInt iReturnedBuffCount;                //Number of frames returned from target HwDevice
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   378
    TInt iPictureLoss;                      // number of picture loss
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   379
    TBool iInputEnd;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   380
    TBool iStreamEnd; 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   381
    TVideoCodec iCodecType;                
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   382
    TSize iPictureSize; 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   383
    CSystemClockSource* iClock;            //Clock source, based on System clock
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   384
    TBool iSynchronized;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   385
    TBool iDirectScreenAccess;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   386
    TBool iCIBuffMgmtOn;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   387
    TBool iDisableInputEnd;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   388
    TBool iFrameMatch;              // input frame number should match output frame number
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   389
    TInt  iFrameJump;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   390
    TInt  iFrameJumpCounter;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   391
    TInt iFrameWriteLength;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   392
    TInt iCurrentFilePos;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   393
#ifdef __CI_HEADERS__     	   
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   394
    MMmfVideoBufferManagement* iCIBuffMgmt;  
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   395
#endif    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   396
    MVDecEngineObserver* iTestClass;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   397
    TBool iFrameMeasurement;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   398
    TBool iDsaStarted;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   399
    TBool iLandscapeMode;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   400
    TInt iNoBuffAvailable;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   401
    RArray<TInt> iFrameSizeList;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   402
    TPictureData iPictureDataSnapshot;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   403
    TBuf8<128> iInFileName;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   404
    TBool iSetSlowClient;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   405
    TBool iSetFastClient;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   406
    TBool iSetAUFormat;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   407
    TBool iOutFileOpen;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   408
    TUint8* iAUBuffer;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   409
    TUint32* iNalOffsetArray;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   410
    TUint32* iNalLengthArray;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   411
    TReal32 iFrameTime;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   412
    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   413
    TUint8* iDataChunk;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   414
    TUint8* iReadDataChunk;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   415
    TUint8* iWriteDataChunk;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   416
    TUint iDataReadFromFile;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   417
    TUint iDataThreshold;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   418
    TBool iEndOfData;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   419
    TBool iLastFrame;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   420
    TBool iUseSecondScreen;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   421
    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   422
    //File IO
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   423
    RFs   iFs;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   424
    RFile iInFile;                         // Input data file
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   425
    RFile iOutFile;                        // Output data file
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   426
    RFile iOutCorruptedFile;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   427
    RFile iLogFile;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   428
	TBool iDeleteDecoderFromInitComp;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   429
	
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   430
	TInt iFlvCounter;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   431
	TBool iCorruptMarker;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   432
	TInt iFilter;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   433
	TInt iInterval;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   434
	TInt iFrameNum;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   435
	TInt iPercentage;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   436
	TInt iFrameCounter;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   437
	TInt iCorruptCounter;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   438
	TInt iFrameDropCounter;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   439
	TInt iFrameDropInterval;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   440
	TInt iFrameDropNum;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   441
	TInt iFrameDropNumCounter;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   442
	TBool iFrameDropMarker;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   443
	TFileName iOutFileName;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   444
	TFileName iOutCorruptedFileName;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   445
	TBool iOutCorruptedFileOpen;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   446
	TBuf8<128> iPasswordForFLV;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   447
	TBool iSetPassword;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   448
    TBool iInstantFpsEnabled;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   449
    RArray<TTimeIntervalMicroSeconds> iInstantFpsList;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   450
    RFile iFpsFile;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   451
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   452
	
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   453
	// Memory check
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   454
	TInt iMemAlloc;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   455
	TInt iMemDelete;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   456
	
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   457
    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   458
    TInt32 iDataChunkSize;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   459
    //Fbs
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   460
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   461
    CFbsScreenDevice* iScreenDevice;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   462
    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   463
    CActiveSchedulerWait* iScheduler;      //Nested scheduler
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   464
    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   465
    TTime							iTime;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   466
	TDateTime						iTimeBeforeDecoding;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   467
	TDateTime						iTimeAfterDecoding;	
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   468
	//TInt							iNumFramesDecoded;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   469
	//TUint64							iTotalTime;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   470
	//TBool 							iIsBeforeTimeUsed;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   471
	TUint64							iBeforeDecodingTime;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   472
	RArray<TUint64>					iBeforeDecoingTimesQueue;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   473
    TUint							iFrame;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   474
    //	TInt							iLength;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   475
	//TBool							iFirstTime;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   476
	TBool                           iNumFreeBufsFirstTime;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   477
	TTimeIntervalMicroSeconds		iTimeToPlay;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   478
    TTimeIntervalMicroSeconds		iPresentationTimestamp;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   479
	TBool							iNoOfFreeBuffFlag;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   480
	
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   481
	
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   482
	TInt tempFrame;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   483
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   484
	TFLVFileType                    iFLVFileType;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   485
    };
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   486
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   487
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   488
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   489
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   490
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   491
*  Video Decoder Test Engine AO
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   492
*  Provides async services
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   493
*  @lib 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   494
*  @since 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   495
*/
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   496
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   497
class CVDecTestAO : public CActive
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   498
{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   499
	public:
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   500
		CVDecTestAO(CVDecTestEngine* aTestEngine);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   501
  		~CVDecTestAO();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   502
  		void RequestData();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   503
	private:
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   504
		void RunL();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   505
  		void DoCancel();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   506
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   507
	private:
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   508
  		CVDecTestEngine* iTestEngine;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   509
  	    
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   510
};
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   511
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   512
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   513
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   514
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   515
#endif