Documentation ¶
Overview ¶
Package samplebuilder provides functionality to reconstruct media frames from RTP packets.
Package samplebuilder provides functionality to reconstruct media frames from RTP packets.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Option ¶
type Option func(o *SampleBuilder)
An Option configures a SampleBuilder.
func WithMaxTimeDelay ¶ added in v3.0.29
WithMaxTimeDelay ensures that packets that are too old in the buffer get purged based on time rather than building up an extraordinarily long delay.
func WithPacketReleaseHandler ¶
WithPacketReleaseHandler set a callback when the builder is about to release some packet.
func WithPartitionHeadChecker ¶
func WithPartitionHeadChecker(interface{}) Option
WithPartitionHeadChecker is obsolete, it does nothing.
type SampleBuilder ¶
type SampleBuilder struct {
// contains filtered or unexported fields
}
SampleBuilder buffers packets until media frames are complete.
func New ¶
func New(maxLate uint16, depacketizer rtp.Depacketizer, sampleRate uint32, opts ...Option) *SampleBuilder
New constructs a new SampleBuilder. maxLate is how long to wait until we can construct a completed media.Sample. maxLate is measured in RTP packet sequence numbers. A large maxLate will result in less packet loss but higher latency. The depacketizer extracts media samples from RTP packets. Several depacketizers are available in package github.com/pion/rtp/codecs.
func (*SampleBuilder) Pop ¶
func (s *SampleBuilder) Pop() *media.Sample
Pop compiles pushed RTP packets into media samples and then returns the next valid sample (or nil if no sample is compiled).
func (*SampleBuilder) PopWithTimestamp ¶
func (s *SampleBuilder) PopWithTimestamp() (*media.Sample, uint32)
PopWithTimestamp compiles pushed RTP packets into media samples and then returns the next valid sample with its associated RTP timestamp (or nil, 0 if no sample is compiled).
func (*SampleBuilder) Push ¶
func (s *SampleBuilder) Push(p *rtp.Packet)
Push adds an RTP Packet to s's buffer.
Push does not copy the input. If you wish to reuse this memory make sure to copy before calling Push