git-svn-id: http://webrtc.googlecode.com/svn/trunk@4 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
122
modules/video_coding/codecs/test_framework/video_buffer.h
Normal file
122
modules/video_coding/codecs/test_framework/video_buffer.h
Normal file
@@ -0,0 +1,122 @@
|
||||
/*
|
||||
* 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_CODECS_TEST_FRAMEWORK_VIDEO_BUFFER_H_
|
||||
#define WEBRTC_MODULES_VIDEO_CODING_CODECS_TEST_FRAMEWORK_VIDEO_BUFFER_H_
|
||||
|
||||
#include "typedefs.h"
|
||||
#include "video_image.h"
|
||||
|
||||
class TestVideoBuffer
|
||||
{
|
||||
public:
|
||||
TestVideoBuffer();
|
||||
|
||||
virtual ~TestVideoBuffer();
|
||||
|
||||
TestVideoBuffer(const TestVideoBuffer& rhs);
|
||||
|
||||
/**
|
||||
* Verifies that current allocated buffer size is larger than or equal to the input size.
|
||||
* If the current buffer size is smaller, a new allocation is made and the old buffer data is copied to the new buffer.
|
||||
*/
|
||||
void VerifyAndAllocate(unsigned int minimumSize);
|
||||
|
||||
void UpdateLength(unsigned int newLength);
|
||||
|
||||
void SwapBuffers(TestVideoBuffer& videoBuffer);
|
||||
|
||||
void CopyBuffer(unsigned int length, const unsigned char* fromBuffer);
|
||||
|
||||
void CopyBuffer(TestVideoBuffer& fromVideoBuffer);
|
||||
|
||||
// Use with care, and remember to call ClearPointer() when done.
|
||||
void CopyPointer(const TestVideoBuffer& fromVideoBuffer);
|
||||
|
||||
void ClearPointer();
|
||||
|
||||
int SetOffset(unsigned int length); // Sets offset to beginning of frame in buffer
|
||||
|
||||
void Free(); // Deletes frame buffer and resets members to zero
|
||||
|
||||
void SetTimeStamp(unsigned int timeStamp); // Sets timestamp of frame (90kHz)
|
||||
|
||||
/**
|
||||
* Gets pointer to frame buffer
|
||||
*/
|
||||
unsigned char* GetBuffer() const;
|
||||
|
||||
/**
|
||||
* Gets allocated buffer size
|
||||
*/
|
||||
unsigned int GetSize() const;
|
||||
|
||||
/**
|
||||
* Gets length of frame
|
||||
*/
|
||||
unsigned int GetLength() const;
|
||||
|
||||
/**
|
||||
* Gets timestamp of frame (90kHz)
|
||||
*/
|
||||
unsigned int GetTimeStamp() const;
|
||||
|
||||
unsigned int GetWidth() const;
|
||||
unsigned int GetHeight() const;
|
||||
|
||||
void SetWidth(unsigned int width);
|
||||
void SetHeight(unsigned int height);
|
||||
|
||||
private:
|
||||
TestVideoBuffer& operator=(const TestVideoBuffer& inBuffer);
|
||||
|
||||
private:
|
||||
void Set(unsigned char* buffer,unsigned int size,unsigned int length,unsigned int offset, unsigned int timeStamp);
|
||||
unsigned int GetStartOffset() const;
|
||||
|
||||
unsigned char* _buffer; // Pointer to frame buffer
|
||||
unsigned int _bufferSize; // Allocated buffer size
|
||||
unsigned int _bufferLength; // Length (in bytes) of frame
|
||||
unsigned int _startOffset; // Offset (in bytes) to beginning of frame in buffer
|
||||
unsigned int _timeStamp; // Timestamp of frame (90kHz)
|
||||
unsigned int _width;
|
||||
unsigned int _height;
|
||||
};
|
||||
|
||||
class TestVideoEncodedBuffer: public TestVideoBuffer
|
||||
{
|
||||
public:
|
||||
TestVideoEncodedBuffer();
|
||||
~TestVideoEncodedBuffer();
|
||||
|
||||
void SetCaptureWidth(unsigned short width);
|
||||
void SetCaptureHeight(unsigned short height);
|
||||
unsigned short GetCaptureWidth();
|
||||
unsigned short GetCaptureHeight();
|
||||
|
||||
webrtc::VideoFrameType GetFrameType();
|
||||
void SetFrameType(webrtc::VideoFrameType frametype);
|
||||
|
||||
void Reset();
|
||||
|
||||
void SetFrameRate(float frameRate);
|
||||
float GetFrameRate();
|
||||
|
||||
private:
|
||||
TestVideoEncodedBuffer& operator=(const TestVideoEncodedBuffer& inBuffer);
|
||||
|
||||
private:
|
||||
unsigned short _captureWidth;
|
||||
unsigned short _captureHeight;
|
||||
webrtc::VideoFrameType _frameType;
|
||||
float _frameRate;
|
||||
};
|
||||
|
||||
#endif // WEBRTC_MODULES_VIDEO_CODING_CODECS_TEST_FRAMEWORK_VIDEO_BUFFER_H_
|
Reference in New Issue
Block a user