AAFA Developer Support

Main Page | Class List | File List | Class Members

IAAFEssenceStream Interface Reference

List of all members.

Detailed Description

The IAAFEssenceStream interface is an internal interface used by AAFEssenceAccess and essence codecs to read the low-level representation of the essence.

There are multiple classes implementing this interface, each representing a different underlying container holding the essence data. The idea of "container" is separate from any formatting such as WAVE or JPEG. Examples of containers (and therefore streams), are essence embedded in AAF files, and essence in a file all by itself (ex. a WAVE file).

Objects which support this interface must be created by methods in IAAFContainerDef, since the container definition is what is used to differentiate between the different streams. If the stream needs a reference to data other than a file pointer (ex. the AAFContainer makes a stream which needs a reference to a structureed storage stream) will have another interface to support the additional behaviour. For an AAF container, the additional interface is IAAFEssenceDataStream.

NOTE: The SDK will init the representation of this object with the correct path and open the underlying file before handing out an interface pointer. Hence, there is no Open method on the stream.

Definition at line 358 of file AAFPlugin.idl.

Public Member Functions

HRESULT Write ([in] aafUInt32 bytes,[out, size_is(bytes)] aafDataBuffer_t buffer,[out, ref] aafUInt32 *bytesWritten)
HRESULT Read ([in] aafUInt32 buflen,[out, size_is(buflen), length_is(*pBytesRead)] aafDataBuffer_t pBuffer,[out, ref] aafUInt32 *pBytesRead)
HRESULT Seek ([in] aafPosition_t byteOffset)
 Seek to the absolute byte offset into the stream.
HRESULT SeekRelative ([in] aafInt32 byteOffset)
HRESULT GetPosition ([out] aafPosition_t *pPosition)
HRESULT GetLength ([out] aafLength_t *pLength)
HRESULT FlushCache ()
HRESULT SetCacheSize ([in] aafUInt32 itsSize)


Member Function Documentation

HRESULT IAAFEssenceStream::FlushCache  ) 
 

This method should return only the following codes. If more than one of the listed errors is in effect\, it should return the first one encountered in the order given below:

AAFRESULT_SUCCESS

  • succeeded. \(This is the only code indicating success.\)

AAFRESULT_STREAM_FULL

  • The essence can not be written because of a fault such as a disk full error in the underlying operating system.

HRESULT IAAFEssenceStream::GetLength [out] aafLength_t *  pLength  ) 
 

Parameters:
pLength [out] The length of the stream.

HRESULT IAAFEssenceStream::GetPosition [out] aafPosition_t *  pPosition  ) 
 

Parameters:
pPosition [out] The position within the stream.

HRESULT IAAFEssenceStream::Read [in] aafUInt32  buflen,
[out, size_is(buflen), length_is(*pBytesRead)] aafDataBuffer_t  pBuffer,
[out, ref] aafUInt32 *  pBytesRead
 

Parameters:
buflen [in] to a buffer of this size
pBuffer [out, size_is(buflen), length_is(*pBytesRead)] here is the buffer
pBytesRead [out,ref] Return bytes actually read

HRESULT IAAFEssenceStream::Seek [in] aafPosition_t  byteOffset  ) 
 

Seek to the absolute byte offset into the stream.

Parameters:
byteOffset [in] The absolute byte offset into the stream.

HRESULT IAAFEssenceStream::SeekRelative [in] aafInt32  byteOffset  ) 
 

Parameters:
byteOffset [in] The relative byte offset into the stream.

HRESULT IAAFEssenceStream::SetCacheSize [in] aafUInt32  itsSize  ) 
 

Parameters:
itsSize [in] The size of the cache buffer. Zero is a valid size, and means to turn caching off

HRESULT IAAFEssenceStream::Write [in] aafUInt32  bytes,
[out, size_is(bytes)] aafDataBuffer_t  buffer,
[out, ref] aafUInt32 *  bytesWritten
 

Parameters:
bytes [in] the number of bytes to write
buffer [out, size_is(bytes)] the buffer that contains at least bytes
bytesWritten [out,ref] the number of bytes actually written from the buffer


Generated on Thu Feb 17 09:34:31 2005 for by doxygen 1.4.1