Kodi Documentation 22.0
Kodi is an open source media player and entertainment hub.
Loading...
Searching...
No Matches

PVR stream demuxing
Read TV streams with own demux within addon. More...

Functions

virtual PVR_ERROR kodi::addon::CInstancePVRClient::GetStreamProperties (std::vector< kodi::addon::PVRStreamProperties > &properties)
 Get the stream properties of the stream that's currently being read.
 
virtual DEMUX_PACKETkodi::addon::CInstancePVRClient::DemuxRead ()
 Read the next packet from the demultiplexer, if there is one.
 
virtual void kodi::addon::CInstancePVRClient::DemuxReset ()
 Reset the demultiplexer in the add-on.
 
virtual void kodi::addon::CInstancePVRClient::DemuxAbort ()
 Abort the demultiplexer thread in the add-on.
 
virtual void kodi::addon::CInstancePVRClient::DemuxFlush ()
 Flush all data that's currently in the demultiplexer buffer in the add-on.
 
virtual void kodi::addon::CInstancePVRClient::SetSpeed (int speed)
 Notify the pvr addon/demuxer that Kodi wishes to change playback speed.
 
virtual void kodi::addon::CInstancePVRClient::FillBuffer (bool mode)
 Notify the pvr addon/demuxer that Kodi wishes to fill demux queue.
 
virtual bool kodi::addon::CInstancePVRClient::SeekTime (double time, bool backwards, double &startpts)
 Notify the pvr addon/demuxer that Kodi wishes to seek the stream by time.
 
PVRCodec kodi::addon::CInstancePVRClient::GetCodecByName (const std::string &codecName) const
 Callback to Kodi Function
Get the codec id used by Kodi.
 
DEMUX_PACKETkodi::addon::CInstancePVRClient::AllocateDemuxPacket (int iDataSize)
 Callback to Kodi Function
Allocate a demux packet. Free with FreeDemuxPacket().
 
void kodi::addon::CInstancePVRClient::FreeDemuxPacket (DEMUX_PACKET *pPacket)
 Callback to Kodi Function
Free a packet that was allocated with AllocateDemuxPacket().
 

Detailed Description

PVR stream demuxing
Read TV streams with own demux within addon.

This is only on Live TV streams and only if PVRCapabilities::SetHandlesDemuxing() has been set to "true".


Stream demuxing parts in interface:
Copy this to your project and extend with your parts or leave functions complete away where not used or supported.

Function Documentation

◆ AllocateDemuxPacket()

DEMUX_PACKET * kodi::addon::CInstancePVRClient::AllocateDemuxPacket ( int iDataSize)
inline

Callback to Kodi Function
Allocate a demux packet. Free with FreeDemuxPacket().

Parameters
[in]iDataSizeThe size of the data that will go into the packet
Returns
The allocated packet
Remarks
Only called from addon itself

◆ DemuxAbort()

virtual void kodi::addon::CInstancePVRClient::DemuxAbort ( )
inlinevirtual

Abort the demultiplexer thread in the add-on.

Remarks
Required, and only used if addon has its own demuxer.

◆ DemuxFlush()

virtual void kodi::addon::CInstancePVRClient::DemuxFlush ( )
inlinevirtual

Flush all data that's currently in the demultiplexer buffer in the add-on.

Remarks
Required, and only used if addon has its own demuxer.

◆ DemuxRead()

virtual DEMUX_PACKET * kodi::addon::CInstancePVRClient::DemuxRead ( )
inlinevirtual

Read the next packet from the demultiplexer, if there is one.

Returns
The next packet. If there is no next packet, then the add-on should return the packet created by calling AllocateDemuxPacket(0) on the callback. If the stream changed and Kodi's player needs to be reinitialised, then, the add-on should call AllocateDemuxPacket(0) on the callback, and set the streamid to DMX_SPECIALID_STREAMCHANGE and return the value. The add-on should return nullptr if an error occurred.
Remarks
Required, and only used if addon has its own demuxer. Return nullptr if this add-on won't provide this function.

◆ DemuxReset()

virtual void kodi::addon::CInstancePVRClient::DemuxReset ( )
inlinevirtual

Reset the demultiplexer in the add-on.

Remarks
Required, and only used if addon has its own demuxer.

◆ FillBuffer()

virtual void kodi::addon::CInstancePVRClient::FillBuffer ( bool mode)
inlinevirtual

Notify the pvr addon/demuxer that Kodi wishes to fill demux queue.

Parameters
[in]modeThe requested filling mode
Remarks
Optional, and only used if addon has its own demuxer.

◆ FreeDemuxPacket()

void kodi::addon::CInstancePVRClient::FreeDemuxPacket ( DEMUX_PACKET * pPacket)
inline

Callback to Kodi Function
Free a packet that was allocated with AllocateDemuxPacket().

Parameters
[in]pPacketThe packet to free
Remarks
Only called from addon itself.

◆ GetCodecByName()

PVRCodec kodi::addon::CInstancePVRClient::GetCodecByName ( const std::string & codecName) const
inline

Callback to Kodi Function
Get the codec id used by Kodi.

Parameters
[in]codecNameThe name of the codec
Returns
The codec_id, or a codec_id with 0 values when not supported
Remarks
Only called from addon itself

◆ GetStreamProperties()

virtual PVR_ERROR kodi::addon::CInstancePVRClient::GetStreamProperties ( std::vector< kodi::addon::PVRStreamProperties > & properties)
inlinevirtual

Get the stream properties of the stream that's currently being read.

Parameters
[in]propertiesThe properties of the currently playing stream.
Returns
PVR_ERROR_NO_ERROR if the properties have been fetched successfully.
Remarks
Required, and only used if addon has its own demuxer.

◆ SeekTime()

virtual bool kodi::addon::CInstancePVRClient::SeekTime ( double time,
bool backwards,
double & startpts )
inlinevirtual

Notify the pvr addon/demuxer that Kodi wishes to seek the stream by time.

Parameters
[in]timeThe absolute time since stream start
[in]backwardsTrue to seek to keyframe BEFORE time, else AFTER
[in]startptscan be updated to point to where display should start
Returns
True if the seek operation was possible
Remarks
Optional, and only used if addon has its own demuxer. Return False if this add-on won't provide this function.

◆ SetSpeed()

virtual void kodi::addon::CInstancePVRClient::SetSpeed ( int speed)
inlinevirtual

Notify the pvr addon/demuxer that Kodi wishes to change playback speed.

Parameters
[in]speedThe requested playback speed
Remarks
Optional, and only used if addon has its own demuxer.