xbmc
|
Public Member Functions | |
CDVDVideoCodecDRMPRIME (CProcessInfo &processInfo) | |
bool | Open (CDVDStreamInfo &hints, CDVDCodecOptions &options) override |
Open the decoder, returns true on success Decoders not capable of running multiple instances should return false in case there is already a instance open. More... | |
bool | AddData (const DemuxPacket &packet) override |
add data, decoder has to consume the entire packet returns true if the packet was consumed or if resubmitting it is useless More... | |
void | Reset () override |
Reset the decoder. More... | |
CDVDVideoCodec::VCReturn | GetPicture (VideoPicture *pVideoPicture) override |
GetPicture controls decoding. More... | |
const char * | GetName () override |
should return codecs name | |
unsigned | GetAllowedReferences () override |
Number of references to old pictures that are allowed to be retained when calling decode on the next demux packet. | |
void | SetCodecControl (int flags) override |
Codec can be informed by player with the following flags: More... | |
![]() | |
CDVDVideoCodec (CProcessInfo &processInfo) | |
virtual bool | Reconfigure (CDVDStreamInfo &hints) |
Reconfigure the decoder, returns true on success Decoders not capable of running multiple instances may be capable of reconfiguring the running instance. More... | |
virtual void | SetSpeed (int iSpeed) |
will be called by video player indicating the playback speed. More... | |
virtual unsigned | GetConvergeCount () |
How many packets should player remember, so codec can recover should something cause it to flush outside of players control. | |
virtual bool | GetCodecStats (double &pts, int &droppedFrames, int &skippedPics) |
For calculation of dropping requirements player asks for some information. More... | |
virtual void | Reopen () |
Re-open the decoder. More... | |
Static Public Member Functions | |
static std::unique_ptr< CDVDVideoCodec > | Create (CProcessInfo &processInfo) |
static void | Register () |
Protected Member Functions | |
void | Drain () |
void | SetPictureParams (VideoPicture *pVideoPicture) |
void | UpdateProcessInfo (struct AVCodecContext *avctx, const enum AVPixelFormat fmt) |
Protected Attributes | |
std::string | m_name |
int | m_codecControlFlags = 0 |
CDVDStreamInfo | m_hints |
double | m_DAR = 1.0 |
AVCodecContext * | m_pCodecContext = nullptr |
AVFrame * | m_pFrame = nullptr |
std::shared_ptr< IVideoBufferPool > | m_videoBufferPool |
![]() | |
CProcessInfo & | m_processInfo |
Additional Inherited Members | |
![]() | |
enum | VCReturn { VC_NONE = 0, VC_ERROR, VC_FATAL, VC_BUFFER, VC_PICTURE, VC_FLUSHED, VC_NOBUFFER, VC_REOPEN, VC_EOF } |
|
overridevirtual |
add data, decoder has to consume the entire packet returns true if the packet was consumed or if resubmitting it is useless
Implements CDVDVideoCodec.
|
overridevirtual |
GetPicture controls decoding.
Player calls it on every cycle it can signal a picture, request a buffer, or return none, if nothing applies the data is valid until the next GetPicture return VC_PICTURE
Implements CDVDVideoCodec.
|
overridevirtual |
Open the decoder, returns true on success Decoders not capable of running multiple instances should return false in case there is already a instance open.
Implements CDVDVideoCodec.
|
overridevirtual |
Reset the decoder.
Should be the same as calling Dispose and Open after each other
Implements CDVDVideoCodec.
|
overridevirtual |
Codec can be informed by player with the following flags:
DVD_CODEC_CTRL_NO_POSTPROC : if speed is not normal the codec can switch off postprocessing and de-interlacing
DVD_CODEC_CTRL_HURRY : codecs may do postprocessing and de-interlacing. If video buffers in RenderManager are about to run dry, this is signaled to codec. Codec can wait for post-proc to be finished instead of returning empty and getting another packet.
DVD_CODEC_CTRL_DRAIN : instruct decoder to deliver last pictures without requesting new packets
DVD_CODEC_CTRL_DROP : this packet is going to be dropped. decoder is free to use it for decoding
Reimplemented from CDVDVideoCodec.