Sunshine master
Self-hosted game stream host for Moonlight.
stream::fec::fec_t Struct Reference

Reed-Solomon FEC encoder state for video packets. More...

Collaboration diagram for stream::fec::fec_t:
[legend]

Public Member Functions

char * data (size_t el)
 Return the FEC shard data pointer for a packet-group element.
 
char * prefix (size_t el)
 Return the FEC prefix bytes for the current packet group.
 
size_t size () const
 Return the serialized size of the current object.
 

Public Attributes

size_t blocksize
 Bytes reserved for the payload portion of each shard.
 
size_t data_shards
 Number of original packet shards in each FEC block.
 
util::buffer_t< char > headers
 Backing storage for the RTP/FEC headers attached to shards.
 
size_t nr_shards
 Total data and recovery shards generated for each FEC block.
 
std::vector< platf::buffer_descriptor_tpayload_buffers
 Platform send descriptors for FEC payload buffers.
 
size_t percentage
 Recovery-shard percentage requested for the stream.
 
size_t prefixsize
 Bytes reserved before each shard payload for protocol headers.
 
util::buffer_t< char > shards
 Contiguous backing storage for all encoded FEC shards.
 
util::buffer_t< uint8_t * > shards_p
 Pointer table passed to the Reed-Solomon encoder.
 

Detailed Description

Reed-Solomon FEC encoder state for video packets.

Member Function Documentation

◆ data()

char * stream::fec::fec_t::data ( size_t el)
inline

Return the FEC shard data pointer for a packet-group element.

Parameters
elPacket-group element index.
Returns
Pointer to the shard bytes for the requested element.

◆ prefix()

char * stream::fec::fec_t::prefix ( size_t el)
inline

Return the FEC prefix bytes for the current packet group.

Parameters
elPacket-group element index.
Returns
Pointer to the element's prefix bytes, or nullptr when no prefix is used.

◆ size()

size_t stream::fec::fec_t::size ( ) const
inline

Return the serialized size of the current object.

Returns
Number of elements currently stored.

The documentation for this struct was generated from the following file: