PVR stream demuxing
Read TV streams with own demux within addon.
This is only on Live TV streams and only if 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.
◆ GetStreamProperties()
Get the stream properties of the stream that's currently being read.
- Parameters
-
[in] | properties | The properties of the currently playing stream. |
- Returns
- PVR_ERROR_NO_ERROR if the properties have been fetched successfully.
◆ StreamClosed()
The currently playing stream has been closed.
- Returns
- PVR_ERROR_NO_ERROR if the properties have been fetched successfully.
◆ DemuxRead()
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.
◆ DemuxReset()
virtual void DemuxReset |
( |
| ) |
|
|
inlinevirtual |
Reset the demultiplexer in the add-on.
◆ DemuxAbort()
virtual void DemuxAbort |
( |
| ) |
|
|
inlinevirtual |
Abort the demultiplexer thread in the add-on.
◆ DemuxFlush()
virtual void DemuxFlush |
( |
| ) |
|
|
inlinevirtual |
Flush all data that's currently in the demultiplexer buffer in the add-on.
◆ SetSpeed()
virtual void SetSpeed |
( |
int | speed | ) |
|
|
inlinevirtual |
Notify the pvr addon/demuxer that Kodi wishes to change playback speed.
- Parameters
-
[in] | speed | The requested playback speed |
◆ FillBuffer()
virtual void FillBuffer |
( |
bool | mode | ) |
|
|
inlinevirtual |
Notify the pvr addon/demuxer that Kodi wishes to fill demux queue.
- Parameters
-
[in] | mode | The requested filling mode |
◆ SeekTime()
virtual bool SeekTime |
( |
double | time, |
|
|
bool | backwards, |
|
|
double & | startpts ) |
|
inlinevirtual |
Notify the pvr addon/demuxer that Kodi wishes to seek the stream by time.
- Parameters
-
[in] | time | The absolute time since stream start |
[in] | backwards | True to seek to keyframe BEFORE time, else AFTER |
[in] | startpts | can be updated to point to where display should start |
- Returns
- True if the seek operation was possible
◆ GetCodecByName()
PVRCodec GetCodecByName |
( |
const std::string & | codecName | ) |
const |
|
inline |
Callback to Kodi Function
Get the codec id used by Kodi.
- Parameters
-
[in] | codecName | The name of the codec |
- Returns
- The codec_id, or a codec_id with 0 values when not supported
◆ AllocateDemuxPacket()
Callback to Kodi Function
Allocate a demux packet. Free with FreeDemuxPacket().
- Parameters
-
[in] | iDataSize | The size of the data that will go into the packet |
- Returns
- The allocated packet
◆ FreeDemuxPacket()
Callback to Kodi Function
Free a packet that was allocated with AllocateDemuxPacket().
- Parameters
-
[in] | pPacket | The packet to free |