OpalRecordManager Class Reference

#include <recording.h>


Public Types

typedef PFactory< OpalRecordManager,
PCaselessString > 
Factory
 eSideBySideLetterbox
 eSideBySideScaled
 eStackedPillarbox
 eStackedScaled
 eSeparateStreams
 Unsupported.
 NumVideoMixingModes
enum  VideoMode {
  eSideBySideLetterbox, eSideBySideScaled, eStackedPillarbox, eStackedScaled,
  eSeparateStreams, NumVideoMixingModes
}

Public Member Functions

virtual ~OpalRecordManager ()
bool Open (const PFilePath &fn)
bool Open (const PFilePath &fn, bool mono)
bool Open (const PFilePath &fn, const Options &options)
virtual bool IsOpen () const =0
virtual bool Close ()=0
virtual bool OpenStream (const PString &strmId, const OpalMediaFormat &format)=0
virtual bool CloseStream (const PString &strmId)=0
virtual bool WriteAudio (const PString &strmId, const RTP_DataFrame &rtp)=0
virtual bool WriteVideo (const PString &strmId, const RTP_DataFrame &rtp)=0
const OptionsGetOptions () const
void SetOptions (const Options &options)

Protected Member Functions

virtual bool OpenFile (const PFilePath &fn)=0

Protected Attributes

Options m_options

Data Structures

struct  Options


Detailed Description

This is an abstract class for recording OPAL calls. A factory is used to created concrete classes based on the file extension supported by the individual record manager.


Member Typedef Documentation

typedef PFactory<OpalRecordManager, PCaselessString> OpalRecordManager::Factory


Member Enumeration Documentation

enum OpalRecordManager::VideoMode

Enumerator:
eSideBySideLetterbox  Two images side by side with black bars top and bottom. It is expected that the input frames and output are all the same aspect ratio, e.g. 4:3. Works well if inputs are QCIF and output is CIF for example.
eSideBySideScaled  Two images side by side, scaled to fit halves of output frame. It is expected that the output frame be double the width of the input data to maintain aspect ratio. e.g. for CIF inputs, output would be 704x288.
eStackedPillarbox  Two images, one on top of the other with black bars down the sides. It is expected that the input frames and output are all the same aspect ratio, e.g. 4:3. Works well if inputs are QCIF and output is CIF for example.
eStackedScaled  Two images, one on top of the other, scaled to fit halves of output frame. It is expected that the output frame be double the height of the input data to maintain aspect ratio. e.g. for CIF inputs, output would be 352x576.
eSeparateStreams  Unsupported.
NumVideoMixingModes 


Constructor & Destructor Documentation

virtual OpalRecordManager::~OpalRecordManager (  )  [inline, virtual]


Member Function Documentation

virtual bool OpalRecordManager::Close (  )  [pure virtual]

Close the recording file. Note this may block until various sub-threads are termianted so care may be needed to avoid deadlocks.

virtual bool OpalRecordManager::CloseStream ( const PString &  strmId  )  [pure virtual]

Close the media stream based on the identifier provided.

Parameters:
strmId  Identifier for media stream.

const Options& OpalRecordManager::GetOptions (  )  const [inline]

Get the options for this recording.

virtual bool OpalRecordManager::IsOpen (  )  const [pure virtual]

Indicate if the recording file is open.

bool OpalRecordManager::Open ( const PFilePath &  fn,
const Options options 
) [inline]

Open the recording file indicating the options to be used.

bool OpalRecordManager::Open ( const PFilePath &  fn,
bool  mono 
) [inline]

Open the recoding file indicating audio mode.

bool OpalRecordManager::Open ( const PFilePath &  fn  )  [inline]

Open the recording file.

virtual bool OpalRecordManager::OpenFile ( const PFilePath &  fn  )  [protected, pure virtual]

virtual bool OpalRecordManager::OpenStream ( const PString &  strmId,
const OpalMediaFormat format 
) [pure virtual]

Open an individual media stream using the provided identifier and format.

Parameters:
strmId  Identifier for media stream.
format  Media format for new stream

void OpalRecordManager::SetOptions ( const Options options  )  [inline]

Set the options for this recording.

virtual bool OpalRecordManager::WriteAudio ( const PString &  strmId,
const RTP_DataFrame rtp 
) [pure virtual]

Write audio to the recording file.

Parameters:
strmId  Identifier for media stream.
rtp  RTP data containing PCM-16 data

virtual bool OpalRecordManager::WriteVideo ( const PString &  strmId,
const RTP_DataFrame rtp 
) [pure virtual]

Write video to the recording file.

Parameters:
strmId  Identifier for media stream.
rtp  RTP data containing a YUV420P frame


Field Documentation

Options OpalRecordManager::m_options [protected]


The documentation for this class was generated from the following file:
Generated on Mon Feb 21 20:19:24 2011 for OPAL by  doxygen 1.4.7