![Symbian Developer Library](../../../../a_stock/images/mainheading.gif)
![]() |
![]() |
|
class CMMFVideoDecodeHwDevice : public CMMFVideoPlayHwDevice;
CMMFVideoDecodeHwDevice is the MSL video decoder hardware device interface. All video decoders must implement this interface.
CBase
-
Base class for all classes to be instantiated on the heap.
CMMFVideoHwDevice
- CMMFVideoHwDevice is a base class for all video hardware devices.
CMMFVideoPlayHwDevice
- A base class for all video playback (decoder and post-processor) hardware device...
CMMFVideoDecodeHwDevice
- CMMFVideoDecodeHwDevice is the MSL video decoder hardware device interface. All ...
Defined in CMMFVideoDecodeHwDevice
:
CMMFVideoDecodeHwDevice()
Constructor.ConfigureDecoderL(const TVideoPictureHeader &)
Configures the Decoder using header information known by the client. DecodingPosition()
Returns the current decoding position, i.e. the timestamp for the most recently ...GetBufferL(TUint)
Retrieves an empty video input buffer from the decoder. After input data has bee...GetHeaderInformationL(TVideoDataUnitType,TVideoDataUnitEncapsulation,TVideoInputBuffer *)
Reads header information from a coded data unit. NewL(TUid,MMMFDevVideoPlayProxy &)
Creates a new video decoder hardware device object, based on the implementation ...NewPuAdapterL(const CImplementationInformation &,MMMFDevVideoPlayProxy &)
Creates a new video decoder hardware device adapter object, based on the Impleme...NumFreeBuffers()
Retrieves the number of free input buffers the decoder has available.PreDecoderBufferBytes()
Returns the current pre-decoder buffer size.ReturnHeader(TVideoPictureHeader *)
Returns a header from CMMFVideoDecodeHwDevice::GetHeaderInformationL(TVideoDataU...SetHrdVbvSpec(THrdVbvSpecification,const TDesC8 &)
Indicates which HRD/VBV specification is fulfilled in the input stream and any r...SetInputFormatL(const CCompressedVideoFormat &,TVideoDataUnitType,TVideoDataUnitEncapsulation,TBool)
Sets the device input format to a compressed video format.SetOutputDevice(CMMFVideoPostProcHwDevice *)
Sets the output post-processor device to use. If an output device is set, all de...SetProxy(MMMFDevVideoPlayProxy &)
Set the proxy implementation to be used. Called just after the object is constru...SynchronizeDecoding(TBool)
Sets whether decoding should be synchronized to the current clock source, if any...VideoDecoderInfoLC()
Retrieves decoder information about this hardware device. The device creates a C...WriteCodedDataL(TVideoInputBuffer *)
Writes a piece of coded video data to the decoder. The data buffer must be retri...~CMMFVideoDecodeHwDevice()
Destructor.Inherited from CBase
:
Delete(CBase *)
Deletes the specified object.Extension_(TUint,TAny *&,TAny *)
Extension function operator new(TUint)
Allocates the object from the heap and then initialises its contents to binary z...operator new(TUint,TAny *)
Initialises the object to binary zeroes.operator new(TUint,TLeave)
Allocates the object from the heap and then initialises its contents to binary z...operator new(TUint,TLeave,TUint)
Allocates the object from the heap and then initialises its contents to binary z...operator new(TUint,TUint)
Allocates the object from the heap and then initialises its contents to binary z...Inherited from CMMFVideoHwDevice
:
CustomInterface(TUid)
Retrieves a custom interface to the device. Inherited from CMMFVideoPlayHwDevice
:
AbortDirectScreenAccess()
Aborts Direct Screen Access completely, to be called from MAbortDirectScreenAcce...CancelTimedSnapshot()
Cancels a timed snapshot request. CommitL()
Commit all changes since the last CMMFVideoPlayHwDevice::CommitL(), CMMFVideoPla...FreezePicture(const TTimeIntervalMicroSeconds &)
Freezes a picture on the screen. After the picture has been frozen, no new pictu...GetOutputFormatListL(RArray< TUncompressedVideoFormat > &)
Retrieves the list of the output formats that the device supports. The list is o...GetSnapshotL(TPictureData &,const TUncompressedVideoFormat &)
Gets a copy of the latest picture sent to output.GetSupportedSnapshotFormatsL(RArray< TUncompressedVideoFormat > &)
Gets a list of the supported snapshot picture formats.GetTimedSnapshotL(TPictureData *,const TUncompressedVideoFormat &,const TPictureId &)
When the snapshot is available, it will be returned to the client using the Time...GetTimedSnapshotL(TPictureData *,const TUncompressedVideoFormat &,const TTimeIntervalMicroSeconds &)
When the snapshot is available, it will be returned to the client using the Time...Initialize()
Initializes the device. This method is asynchronous, the device will call MMFVid...InputEnd()
Notifies the hardware device that the end of input data has been reached and no ...IsPlaying()
Indicates whether playback is proceeding. This method can be used to check wheth...NumComplexityLevels()
Gets the number of complexity levels available.Pause()
Pauses video playback, including decoding, post-processing, and rendering. No pi...PictureBufferBytes()
Returns the total amount of memory allocated for uncompressed pictures. This fig...PlaybackPosition()
Returns the current playback position, i.e. the timestamp for the most recently ...PostProcessorInfoLC()
Retrieves post-processing information about this hardware device. The device cre...Redraw()
Re-draws the latest video picture. Only available when DSA is being used. If DSA...ReleaseFreeze(const TTimeIntervalMicroSeconds &)
Releases a picture frozen with CMMFVideoPlayHwDevice::FreezePicture(const TTimeI...Resume()
Resumes video playback after a pause. ReturnPicture(TVideoPicture *)
Returns a picture back to the device. This method is called by CMMFDevVideoPlay ...Revert()
Revert all changes since the last CMMFVideoPlayHwDevice::CommitL(), CMMFVideoPla...SetClockSource(MMMFClockSource *)
Sets the clock source to use for video timing. If no clock source is set. video ...SetComplexityLevel(TUint)
Sets the computational complexity level to use. If separate complexity levels ar...SetInputCropOptionsL(const TRect &)
Sets post-processing options for input (pan-scan) cropping.SetOutputCropOptionsL(const TRect &)
Sets post-processing options for output cropping. CMMFVideoPlayHwDevice::SetPost...SetOutputFormatL(const TUncompressedVideoFormat &)
Sets the device output format.SetPauseOnClipFail(TBool)
Sets whether the system should pause playback when it gets a clipping region it ...SetPosition(const TTimeIntervalMicroSeconds &)
Changes to a new decoding and playback position, used for randomly accessing (se...SetPostProcSpecificOptionsL(const TDesC8 &)
Sets post-processing plug-in specific options. CMMFVideoPlayHwDevice::SetPostPro...SetPostProcessTypesL(TUint32)
Sets the post-processing types to be used.SetRotateOptionsL(TRotationType)
Sets post-processing options for rotation. CMMFVideoPlayHwDevice::SetPostProcess...SetScaleOptionsL(const TSize &,TBool)
Sets post-processing options for scaling. CMMFVideoPlayHwDevice::SetPostProcessT...SetScreenClipRegion(const TRegion &)
Sets a new clipping region for Direct Screen Access. After the method returns, n...SetVideoDestScreenL(TBool)
Sets the device video output destination. The destination can be the screen (usi...SetYuvToRgbOptionsL(const TYuvToRgbOptions &)
Sets post-processing options for YUV to RGB color space conversion. Uses the dev...SetYuvToRgbOptionsL(const TYuvToRgbOptions &,const TYuvFormat &,TRgbFormat)
Sets post-processing options for YUV to RGB color space conversion. Specifies th...Start()
Starts video playback, including decoding, post-processing, and rendering. Playb...StartDirectScreenAccessL(const TRect &,CFbsScreenDevice &,const TRegion &)
Starts writing output directly to the display frame buffer using Direct Screen A...Stop()
Stops video playback. No new pictures will be decoded, post-processed, or render...IMPORT_C static CMMFVideoDecodeHwDevice* NewL(TUid aUid, MMMFDevVideoPlayProxy &aProxy);
Creates a new video decoder hardware device object, based on the implementation UID.
|
|
|
IMPORT_C static CMMFVideoDecodeHwDevice* NewPuAdapterL(const CImplementationInformation &aImplInfo, MMMFDevVideoPlayProxy
&aProxy);
Creates a new video decoder hardware device adapter object, based on the Implementation Information of a Processing Unit.
|
|
|
virtual CVideoDecoderInfo* VideoDecoderInfoLC()=0;
Retrieves decoder information about this hardware device. The device creates a CVideoDecoderInfo
structure, fills it with correct data, pushes it to the cleanup stack and returns it. The client will delete the object when
it is no longer needed.
|
|
CVideoDecoderInfo
This class contains information about a single video decoder. Although it mainly...virtual TVideoPictureHeader* GetHeaderInformationL(TVideoDataUnitType aDataUnitType, TVideoDataUnitEncapsulation aEncapsulation,
TVideoInputBuffer *aDataUnit)=0;
Reads header information from a coded data unit.
|
|
|
virtual void ReturnHeader(TVideoPictureHeader *aHeader)=0;
"This method can only be called before the hwdevice has been initialized with Initialize()."
Returns a header from CMMFVideoDecodeHwDevice::GetHeaderInformationL(TVideoDataUnitType,TVideoDataUnitEncapsulation,TVideoInputBuffer *)
back to the decoder so that the memory can be freed.
|
SetInputFormatL(const CCompressedVideoFormat &,TVideoDataUnitType,TVideoDataUnitEncapsulation,TBool)
virtual void SetInputFormatL(const CCompressedVideoFormat &aFormat, TVideoDataUnitType aDataUnitType, TVideoDataUnitEncapsulation
aEncapsulation, TBool aDataInOrder)=0;
"This method can only be called before the hwdevice has been initialized with Initialize()."
Sets the device input format to a compressed video format.
|
|
virtual void SynchronizeDecoding(TBool aSynchronize)=0;
"This method can only be called before the hwdevice has been initialized with Initialize()."
Sets whether decoding should be synchronized to the current clock source, if any, or if pictures should instead be decoded as soon as possible. If decoding is synchronized, decoding timestamps are used if available, presentation timestamps are used if not. When decoding is not synchronized, pictures are decoded as soon as source data is available for them, and the decoder has a free output buffer. If a clock source is not available, decoding will not be synchronized.
|
virtual void SetBufferOptionsL(const CMMFDevVideoPlay::TBufferOptions &aOptions)=0;
"This method can only be called before the hwdevice has been initialized with Initialize()."
Sets decoder buffering options. See [3] for a description of the options available.
|
|
virtual void GetBufferOptions(CMMFDevVideoPlay::TBufferOptions &aOptions)=0;
"This method can only be called before the hwdevice has been initialized with Initialize()."
Gets the video decoder buffer options actually in use. This can be used before calling SetBufferOptions() to determine the default options, or afterwards to check the values actually in use (if some default values were used).
|
virtual void SetHrdVbvSpec(THrdVbvSpecification aHrdVbvSpec, const TDesC8 &aHrdVbvParams)=0;
"This method can only be called before the hwdevice has been initialized with Initialize()."
Indicates which HRD/VBV specification is fulfilled in the input stream and any related parameters.
|
THrdVbvSpecification
Defines the HRD/VBV specification used in a stream. virtual void SetOutputDevice(CMMFVideoPostProcHwDevice *aDevice)=0;
"This method can only be called before the hwdevice has been initialized with Initialize()."
Sets the output post-processor device to use. If an output device is set, all decoded pictures are delivered to that device, and not drawn on screen or returned to the client. Pictures are written using CMMDVideoPostProcDevice::WritePictureL() or a custom interface after they have been decoded. The post-processor must then synchronize rendering to the clock source if necessary.
|
virtual TTimeIntervalMicroSeconds DecodingPosition()=0;
"This method can only be called after the hwdevice has been initialized with Initialize()."
Returns the current decoding position, i.e. the timestamp for the most recently decoded picture.
|
virtual TUint PreDecoderBufferBytes()=0;
"This method can only be called after the hwdevice has been initialized with Initialize()."
Returns the current pre-decoder buffer size.
|
virtual void GetBitstreamCounters(CMMFDevVideoPlay::TBitstreamCounters &aCounters)=0;
"This method can only be called after the hwdevice has been initialized with Initialize()."
Reads various counters related to the received input bitstream and coded data units. The counters are reset when CMMFVideoPlayHwDevice::Initialize()
or this method is called, and thus they only include data processed since the last call.
|
virtual TUint NumFreeBuffers()=0;
"This method can only be called after the hwdevice has been initialized with Initialize()."
Retrieves the number of free input buffers the decoder has available.
|
virtual TVideoInputBuffer* GetBufferL(TUint aBufferSize)=0;
Retrieves an empty video input buffer from the decoder. After input data has been written to the buffer, it can be written
to the decoder using CMMFVideoDecodeHwDevice::WriteCodedDataL(TVideoInputBuffer *)
. The number of buffers the decoder must be able to provide before expecting any back, and the maximum size for each buffer,
are specified in the buffer options.
The decoder maintains ownership of the buffers even while they have been retrieved by the client, and will take care of deallocating them.
|
|
|
virtual void WriteCodedDataL(TVideoInputBuffer *aBuffer)=0;
"This method can only be called after the hwdevice has been initialized with Initialize()."
Writes a piece of coded video data to the decoder. The data buffer must be retrieved from the decoder with CMMFVideoDecodeHwDevice::GetBufferL(TUint)
.
|
|
inline virtual void ConfigureDecoderL(const TVideoPictureHeader &aVideoPictureHeader);
"This method can only be called before the hwdevice has been initialized with Initialize()."
Configures the Decoder using header information known by the client.
|
|
protected: virtual void SetProxy(MMMFDevVideoPlayProxy &aProxy)=0;
Set the proxy implementation to be used. Called just after the object is constructed.
|