You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.3 KiB
40 lines
1.3 KiB
5 years ago
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||
|
//
|
||
|
// Purpose:
|
||
|
//
|
||
|
// $NoKeywords: $
|
||
|
//=============================================================================//
|
||
|
|
||
|
#ifndef IFRAMEENCODER_H
|
||
|
#define IFRAMEENCODER_H
|
||
|
#pragma once
|
||
|
|
||
|
|
||
|
// A frame encoder is a codec that encodes and decodes data in fixed-size frames.
|
||
|
// VoiceCodec_Frame handles queuing of data and the IVoiceCodec interface.
|
||
|
abstract_class IFrameEncoder
|
||
|
{
|
||
|
public:
|
||
|
virtual ~IFrameEncoder() {}
|
||
|
|
||
|
// This is called by VoiceCodec_Frame to see if it can initialize..
|
||
|
// Fills in the uncompressed and encoded frame size (both are in BYTES).
|
||
|
virtual bool Init(int quality, int &rawFrameSize, int &encodedFrameSize) = 0;
|
||
|
|
||
|
virtual void Release() = 0;
|
||
|
|
||
|
// pUncompressed is 8-bit signed mono sound data with 'rawFrameSize' bytes.
|
||
|
// pCompressed is the size of encodedFrameSize.
|
||
|
virtual void EncodeFrame(const char *pUncompressed, char *pCompressed) = 0;
|
||
|
|
||
|
// pCompressed is encodedFrameSize.
|
||
|
// pDecompressed is where the 8-bit signed mono samples are stored and has space for 'rawFrameSize' bytes.
|
||
|
virtual void DecodeFrame(const char *pCompressed, char *pDecompressed) = 0;
|
||
|
|
||
|
// Some codecs maintain state between Compress and Decompress calls. This should clear that state.
|
||
|
virtual bool ResetState() = 0;
|
||
|
};
|
||
|
|
||
|
|
||
|
#endif // IFRAMEENCODER_H
|