git-svn-id: http://webrtc.googlecode.com/svn/trunk@4 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
94
modules/video_coding/main/test/quality_modes_test.h
Normal file
94
modules/video_coding/main/test/quality_modes_test.h
Normal file
@@ -0,0 +1,94 @@
|
||||
/*
|
||||
* Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#ifndef WEBRTC_MODULES_VIDEO_CODING_TEST_QUALITY_MODSE_TEST_H_
|
||||
#define WEBRTC_MODULES_VIDEO_CODING_TEST_QUALITY_MODSE_TEST_H_
|
||||
|
||||
#include "video_processing.h"
|
||||
#include "normal_test.h"
|
||||
#include "video_coding_defines.h"
|
||||
|
||||
int qualityModeTest();
|
||||
|
||||
class QualityModesTest : public NormalTest
|
||||
{
|
||||
public:
|
||||
QualityModesTest(webrtc::VideoCodingModule* vcm);
|
||||
virtual ~QualityModesTest();
|
||||
WebRtc_Word32 Perform();
|
||||
|
||||
private:
|
||||
|
||||
void Setup();
|
||||
void Print();
|
||||
void Teardown();
|
||||
void SsimComp();
|
||||
|
||||
webrtc::VideoProcessingModule* _vpm;
|
||||
|
||||
WebRtc_UWord32 _width;
|
||||
WebRtc_UWord32 _height;
|
||||
float _frameRate;
|
||||
WebRtc_UWord32 _nativeWidth;
|
||||
WebRtc_UWord32 _nativeHeight;
|
||||
float _nativeFrameRate;
|
||||
|
||||
WebRtc_UWord32 _numFramesDroppedVPM;
|
||||
bool _flagSSIM;
|
||||
|
||||
}; // end of QualityModesTest class
|
||||
|
||||
|
||||
class VCMQMDecodeCompleCallback: public webrtc::VCMReceiveCallback
|
||||
{
|
||||
public:
|
||||
VCMQMDecodeCompleCallback(FILE* decodedFile);
|
||||
virtual ~VCMQMDecodeCompleCallback();
|
||||
void SetUserReceiveCallback(webrtc::VCMReceiveCallback* receiveCallback);
|
||||
// will write decoded frame into file
|
||||
WebRtc_Word32 FrameToRender(webrtc::VideoFrame& videoFrame);
|
||||
WebRtc_Word32 DecodedBytes();
|
||||
void SetOriginalFrameDimensions(WebRtc_Word32 width, WebRtc_Word32 height);
|
||||
WebRtc_Word32 buildInterpolator();
|
||||
private:
|
||||
FILE* _decodedFile;
|
||||
WebRtc_UWord32 _decodedBytes;
|
||||
// QualityModesTest& _test;
|
||||
WebRtc_Word32 _origWidth;
|
||||
WebRtc_Word32 _origHeight;
|
||||
WebRtc_Word32 _decWidth;
|
||||
WebRtc_Word32 _decHeight;
|
||||
// VideoInterpolator* _interpolator;
|
||||
WebRtc_UWord8* _decBuffer;
|
||||
WebRtc_UWord32 _frameCnt; // debug
|
||||
|
||||
}; // end of VCMQMDecodeCompleCallback class
|
||||
|
||||
class QMTestVideoSettingsCallback : public webrtc::VCMQMSettingsCallback
|
||||
{
|
||||
public:
|
||||
QMTestVideoSettingsCallback();
|
||||
// update VPM with QM settings
|
||||
WebRtc_Word32 SetVideoQMSettings(const WebRtc_UWord32 frameRate,
|
||||
const WebRtc_UWord32 width,
|
||||
const WebRtc_UWord32 height);
|
||||
// register VPM used by test
|
||||
void RegisterVPM(webrtc::VideoProcessingModule* vpm);
|
||||
void RegisterVCM(webrtc::VideoCodingModule* vcm);
|
||||
bool Updated();
|
||||
|
||||
private:
|
||||
webrtc::VideoProcessingModule* _vpm;
|
||||
webrtc::VideoCodingModule* _vcm;
|
||||
bool _updated;
|
||||
};
|
||||
|
||||
|
||||
#endif // WEBRTC_MODULES_VIDEO_CODING_TEST_QUALITY_MODSE_TEST_H_
|
||||
Reference in New Issue
Block a user