#include <h261codec.h>
Inheritance diagram for H323_H261Codec:
Public Member Functions | |
H323_H261Codec (Direction direction, BOOL isqCIF) | |
~H323_H261Codec () | |
virtual BOOL | Read (BYTE *buffer, unsigned &length, RTP_DataFrame &rtpFrame) |
virtual BOOL | Write (const BYTE *buffer, unsigned length, const RTP_DataFrame &rtp, unsigned &written) |
virtual unsigned | GetFrameRate () const |
void | SetTxQualityLevel (int qLevel) |
void | SetTxMinQuality (int qlevel) |
void | SetTxMaxQuality (int qlevel) |
void | SetBackgroundFill (int fillLevel) |
virtual void | OnFastUpdatePicture () |
virtual void | OnLostPartialPicture () |
virtual void | OnLostPicture () |
Protected Member Functions | |
BOOL | Resize (int width, int height) |
BOOL | Redraw () |
BOOL | RenderFrame () |
Protected Attributes | |
BOOL | doFastUpdate |
PMutex | fastUpdateMutex |
P64Decoder * | videoDecoder |
P64Encoder * | videoEncoder |
int | now |
BYTE * | rvts |
int | ndblk |
int | nblk |
unsigned | timestampDelta |
|
Create a new H261 video codec
|
|
|
|
Get the frame rate in RTP timestamp units. Reimplemented from H323Codec. |
|
Process a FastUpdatePicture command from remote endpoint. The default behaviour does nothing. Reimplemented from H323VideoCodec. |
|
Process a request for a new frame, as part of the picture has been lost. Reimplemented from H323VideoCodec. |
|
Process a request for a new frame, as all of the picture has been lost. Reimplemented from H323VideoCodec. |
|
Encode the data from the appropriate device. This will encode a frame of data for transmission. The exact size and description of the data placed in the buffer is codec dependent but should be less than H323Capability::GetTxFramesInPacket() * OpalMediaFormat::GetFrameSize() in length. The length parameter is filled with the actual length of the encoded data, often this will be the same as the size parameter. This function is called every GetFrameRate() timestamp units, so MUST take less than (or equal to) that amount of time to complete! Note that a returned length of zero indicates that time has passed but there is no data encoded. This is typically used for silence detection in an audio codec.
Implements H323Codec. |
|
|
|
|
|
|
|
Set the number of blocks in the background that need to be transmitted with each frame Reimplemented from H323VideoCodec. |
|
Maximum quality limit for the transmitted video. Default is 24. Encode quality will not be set above this value. Reimplemented from H323VideoCodec. |
|
Minimum quality limit for the transmitted video. Default is 1. Encode quality will not be set below this value. Reimplemented from H323VideoCodec. |
|
Set the quality level of transmitted video data. Is irrelevant when this codec is used to receive video data. Has a value of 1 (good quality) to 31 (poor quality). Quality is improved at the expense of bit rate. Reimplemented from H323VideoCodec. |
|
Decode the data and output it to appropriate device. This will decode a single frame of received data. The exact size and description of the data required in the buffer is codec dependent but should be less than H323Capability::GetRxFramesInPacket() * OpalMediaFormat::GetFrameSize() in length. It is expected this function anunciates the data. That is, for example with audio data, the sound is output on a speaker. This function is called every GetFrameRate() timestamp units, so MUST take less than that amount of time to complete!
Implements H323Codec. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|