AVBlocks for C++  3.0
Audio and Video Software Development Kit
Loading...
Searching...
No Matches
StreamInfo Class Referenceabstract

Provides properties and operations that are common for all elementary streams. More...

#include <av.h>

Inheritance diagram for StreamInfo:
Reference AudioStreamInfo VideoStreamInfo

Public Member Functions

virtual int32_t bitrate () const =0
 Returns the stream bitrate.
 
virtual int32_t bitrateMode () const =0
 Returns the stream bitrate mode.
 
virtual StreamInfoclone () const =0
 Creates a copy of this object.
 
virtual bool_t copyTo (StreamInfo *destination) const =0
 Copies the state of the current object to a destination object of the same type.
 
virtual double duration () const =0
 Returns the stream duration.
 
virtual int32_t ID () const =0
 Returns the ID of the elementary stream.
 
virtual bool_t immutable () const =0
 Returns whether the object is immutable.
 
virtual MediaType::Enum mediaType () const =0
 Returns the stream media type.
 
virtual int32_t programNumber () const =0
 Returns the number of the program to which the elementary stream belongs.
 
virtual bool_t reset ()=0
 Resets the stream information to its default state.
 
virtual bool_t setBitrate (int32_t bitrate)=0
 Sets the stream bitrate.
 
virtual bool_t setBitrateMode (int32_t bitrateMode)=0
 Sets the stream bitrate mode.
 
virtual bool_t setDuration (double duration)=0
 Sets the stream duration in seconds.
 
virtual bool_t setID (int32_t id)=0
 Sets the ID of the elementary stream.
 
virtual bool_t setProgramNumber (int32_t programNumber)=0
 Sets the program to which the elementary stream belongs.
 
virtual bool_t setStreamSubType (StreamSubType::Enum type)=0
 Sets the stream subtype.
 
virtual bool_t setStreamType (StreamType::Enum type)=0
 Sets the stream type.
 
virtual StreamSubType::Enum streamSubType () const =0
 Returns the stream subtype.
 
virtual StreamType::Enum streamType () const =0
 Returns the stream type.
 
- Public Member Functions inherited from Reference
virtual int32_t release () const =0
 Releases the instance.
 
virtual int32_t retain () const =0
 Retains the instance.
 
virtual int32_t retainCount () const =0
 Returns the current reference count.
 

Protected Member Functions

 ~StreamInfo ()
 This object can be destroyed only by its implementation.
 

Detailed Description

Provides properties and operations that are common for all elementary streams.

AudioStreamInfo and VideoStreamInfo inherit from this interface.

See also
AudioStreamInfo
VideoStreamInfo

Constructor & Destructor Documentation

◆ ~StreamInfo()

~StreamInfo ( )
protected

This object can be destroyed only by its implementation.

The caller must use Reference::release.

See also
Object Management

Member Function Documentation

◆ bitrate()

virtual int32_t bitrate ( ) const
pure virtual

Returns the stream bitrate.

Returns
bitrate in bits per second.

◆ bitrateMode()

virtual int32_t bitrateMode ( ) const
pure virtual

Returns the stream bitrate mode.

Returns
A BitrateMode::Enum constant.

◆ clone()

virtual StreamInfo * clone ( ) const
pure virtual

Creates a copy of this object.

Returns
A new StreamInfo object that has the same dynamic type as the cloned object.

When the object is cloned the full underlying object is copied.

For example if a StreamInfo object is actually an instance of AudioStreamInfo and is cloned, the new object is also an instance of AudioStreamInfo.

The caller is responsible for releasing the new object when it is not needed anymore.

Remarks
When cloned an immutable object becomes mutable.
See also
Object Management

Implemented in AudioStreamInfo, and VideoStreamInfo.

◆ copyTo()

virtual bool_t copyTo ( StreamInfo destination) const
pure virtual

Copies the state of the current object to a destination object of the same type.

The reference count of the source and the destination is not modified.

Parameters
destination[out] A pointer to the destination object
Returns
TRUE The object state is copied, FALSE otherwise.

◆ duration()

virtual double duration ( ) const
pure virtual

Returns the stream duration.

Returns
duration in seconds

◆ ID()

virtual int32_t ID ( ) const
pure virtual

Returns the ID of the elementary stream.

Returns
stream id

◆ immutable()

virtual bool_t immutable ( ) const
pure virtual

Returns whether the object is immutable.

An immmutable object cannot be modified and all modifying methods fail to produce a result.

Returns
TRUE if the object is immutable, FALSE otherwise.
Remarks
An immutable object can be modified by the AVBlocks library.
Object immutability spreads to all nested objects. Therefore it is not possible to add/set an immutable object to a mutable object.
When cloned an immutable object becomes mutable.

◆ mediaType()

virtual MediaType::Enum mediaType ( ) const
pure virtual

Returns the stream media type.

The media type of a StreamInfo object cannot be changed.

Returns
media type

If the media type is MediaType::Audio this StreamInfo object can be safely cast to AudioStreamInfo.

If the media type is MediaType::Video this StreamInfo object can be safely cast to VideoStreamInfo.

◆ programNumber()

virtual int32_t programNumber ( ) const
pure virtual

Returns the number of the program to which the elementary stream belongs.

Returns
program number
Warning
If the elementary stream is shared by 2 or more programs this property will return the last parsed program that uses this stream.

◆ reset()

virtual bool_t reset ( )
pure virtual

Resets the stream information to its default state.

The full underlying object is reset. The media type of the stream is never reset.

Returns
TRUE The object is sucessfully reset.
FALSE The object is immutable and cannot be reset.

◆ setBitrate()

virtual bool_t setBitrate ( int32_t  bitrate)
pure virtual

Sets the stream bitrate.

Parameters
bitratethe bitrate is expressed in bits per second.
Returns
TRUE if the bitrate is successfully set, otherwise FALSE.

◆ setBitrateMode()

virtual bool_t setBitrateMode ( int32_t  bitrateMode)
pure virtual

Sets the stream bitrate mode.

Parameters
bitrateModeA BitrateMode::Enum constant.
Returns
TRUE if the bitrate mode is successfully set, otherwise FALSE.

◆ setDuration()

virtual bool_t setDuration ( double  duration)
pure virtual

Sets the stream duration in seconds.

Parameters
durationin seconds
Returns
TRUE if the duration is successfully set, otherwise FALSE.

◆ setID()

virtual bool_t setID ( int32_t  id)
pure virtual

Sets the ID of the elementary stream.

Parameters
idelementary stream id
Returns
TRUE if the ID is successfully set, otherwise FALSE.

◆ setProgramNumber()

virtual bool_t setProgramNumber ( int32_t  programNumber)
pure virtual

Sets the program to which the elementary stream belongs.

Parameters
programNumberprogram number
Returns
TRUE if the program number is successfully set, otherwise FALSE.

◆ setStreamSubType()

virtual bool_t setStreamSubType ( StreamSubType::Enum  type)
pure virtual

Sets the stream subtype.

Parameters
typestream subtype.
Returns
TRUE if the stream subtype is successfully set, otherwise FALSE.

◆ setStreamType()

virtual bool_t setStreamType ( StreamType::Enum  type)
pure virtual

Sets the stream type.

Parameters
typemajor stream type.
Returns
TRUE if the stream type is successfully set, otherwise FALSE.

◆ streamSubType()

virtual StreamSubType::Enum streamSubType ( ) const
pure virtual

Returns the stream subtype.

Returns
stream subtype

◆ streamType()

virtual StreamType::Enum streamType ( ) const
pure virtual

Returns the stream type.

Returns
stream type