Twitch SDK (Internal)
Public Member Functions | Private Attributes | List of all members
ttv::broadcast::VideoFrameQueue Class Reference

#include <videoframequeue.h>

Public Member Functions

 VideoFrameQueue ()
 
void SetFPS (uint fps)
 
TTV_ErrorCode AddFrame (const std::shared_ptr< VideoFrame > &frame)
 
std::shared_ptr< VideoFrameGetNextFrame (uint64_t currentTime)
 
void Shutdown ()
 
void SetAllowFrameDroppingAndReuse (bool allow)
 

Private Attributes

std::shared_ptr< IMutexmMutex
 
std::list< std::shared_ptr< VideoFrame > > mQueuedVideoFrames
 
std::shared_ptr< VideoFramemLastProcessedFrame
 
uint mNumFramesDropped
 
uint mNumFramesProcessed
 
uint64_t mFrameDuration
 
uint64_t mTimeOfNextFrame
 
uint64_t mTimeOfNextKeyFrame
 
uint64_t mTimeOfLastSubmittedFrame
 
bool mAllowFrameDroppingAndReuse
 

Constructor & Destructor Documentation

◆ VideoFrameQueue()

ttv::broadcast::VideoFrameQueue::VideoFrameQueue ( )

Member Function Documentation

◆ AddFrame()

TTV_ErrorCode ttv::broadcast::VideoFrameQueue::AddFrame ( const std::shared_ptr< VideoFrame > &  frame)

◆ GetNextFrame()

std::shared_ptr<VideoFrame> ttv::broadcast::VideoFrameQueue::GetNextFrame ( uint64_t  currentTime)

◆ SetAllowFrameDroppingAndReuse()

void ttv::broadcast::VideoFrameQueue::SetAllowFrameDroppingAndReuse ( bool  allow)
inline

Frame dropping and reuse should be allowed for scenarios that have real encoders encoding frames. When using passthrough capturers and encodeers this should be false so that no frames are dropped or submitted multiple times.

◆ SetFPS()

void ttv::broadcast::VideoFrameQueue::SetFPS ( uint  fps)

◆ Shutdown()

void ttv::broadcast::VideoFrameQueue::Shutdown ( )

Member Data Documentation

◆ mAllowFrameDroppingAndReuse

bool ttv::broadcast::VideoFrameQueue::mAllowFrameDroppingAndReuse
private

◆ mFrameDuration

uint64_t ttv::broadcast::VideoFrameQueue::mFrameDuration
private

◆ mLastProcessedFrame

std::shared_ptr<VideoFrame> ttv::broadcast::VideoFrameQueue::mLastProcessedFrame
private

◆ mMutex

std::shared_ptr<IMutex> ttv::broadcast::VideoFrameQueue::mMutex
private

◆ mNumFramesDropped

uint ttv::broadcast::VideoFrameQueue::mNumFramesDropped
private

◆ mNumFramesProcessed

uint ttv::broadcast::VideoFrameQueue::mNumFramesProcessed
private

◆ mQueuedVideoFrames

std::list< std::shared_ptr<VideoFrame> > ttv::broadcast::VideoFrameQueue::mQueuedVideoFrames
private

◆ mTimeOfLastSubmittedFrame

uint64_t ttv::broadcast::VideoFrameQueue::mTimeOfLastSubmittedFrame
private

◆ mTimeOfNextFrame

uint64_t ttv::broadcast::VideoFrameQueue::mTimeOfNextFrame
private

◆ mTimeOfNextKeyFrame

uint64_t ttv::broadcast::VideoFrameQueue::mTimeOfNextKeyFrame
private

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