#include <videobuffers.h>
The states available for a buffer are: available, limbo, used, process, and displayed.
The two most important states are available and used. Used is implemented as a FIFO, and is used to buffer frames ready for display. A decoder may decode frames out of order but must add them to the used queue in order. The available buffers are buffers that are ready to be used by the decoder.
Generally a buffer leaves the available state via GetNextFreeFrame(bool,bool,BufferType) and enters the limbo state. It then leaves the limbo state via ReleaseFrame(VideoFrame*) and enters the used state. Then it leaves the used state via DoneDisplayingFrame() and enters the available state.
At any point, DiscardFrame(VideoFrame*) can be called to remove the frame from the current state and add it to the available list.
However, there are two additional states available, these are currently used by VideoOutputXv for XvMC support. These are the process and displayed state. The process state simply indicates that the frame has been picked up in the VideoOutput::ProcessFrame() call, but VideoOutput::Show() has not yet used the frame. This is needed because a frame other than a used frame is being held by VideoOutput and we don't want to lose it if the stream is reset. The displayed state indicates that DoneDisplayingFrame() has been called for the frame, but it can not yet be added to available because it is still being displayed. VideoOutputXv calls DiscardFrame(VideoFrame*) on the frames no longer being displayed at the end of the next DoneDisplayingFrame(), finally adding them to available.
Frame locking is also available, the locks are reqursive QMutex locks. If more than one frame lock is needed the LockFrames should generally be called with all the needed locks in the list, and no locks currently held. This function will spin until all the locks can be held at once, avoiding deadlocks from mismatched locking order.
The only method that returns with a lock held on the VideoBuffers object itself, preventing anyone else from using the VideoBuffers class, inluding to unlocking frames, is the begin_lock(BufferType). This method is to be used with extreme caution, in particular one should not attempt to acquire any locks before end_lock() is called.
There are also frame inheritence tracking functions, these are used by VideoOutputXv to avoid throwing away displayed frames too early. See videoout_xv.cpp for their use.
Definition at line 60 of file videobuffers.h.
| VideoBuffers::VideoBuffers | ( | ) |
Definition at line 112 of file videobuffers.cpp.
| VideoBuffers::~VideoBuffers | ( | ) | [virtual] |
Definition at line 121 of file videobuffers.cpp.
| void VideoBuffers::Init | ( | uint | numdecode, | |
| bool | extra_for_pause, | |||
| uint | need_free, | |||
| uint | needprebuffer_normal, | |||
| uint | needprebuffer_small, | |||
| uint | keepprebuffer, | |||
| bool | enable_frame_locking = false | |||
| ) |
Creates buffers and sets various buffer management parameters.
This normally creates numdecode buffers, but it creates one more buffer if extra_for_pause is true. Only numdecode buffers are added to available and hence into the buffer management handled by VideoBuffers. The availability of any scratch frame must be managed by the video output class itself.
| numdecode | number of buffers to allocate for normal use | |
| extra_for_pause | allocate an extra buffer, a scratch a frame for pause | |
| need_free | maximum number of buffers needed in display and pause | |
| needprebuffer_normal | number buffers you can put in used or limbo normally | |
| needprebuffer_small | number of buffers you can put in used or limbo after SetPrebuffering(false) has been called. | |
| keepprebuffer | number of buffers in used or limbo that are considered enough for decent playback. | |
| enable_frame_locking | if true, the frames will be locked with a mutex, this makes XvMC decoding safe, but adds some CPU overhead. It is normally left off. |
Definition at line 150 of file videobuffers.cpp.
Referenced by CreateBuffers(), VideoOutputQuartz::Init(), VideoOutputNull::Init(), VideoOutputDX::Init(), VideoOutputDirectfb::Init(), VideoOutputD3D::Init(), and VideoOutputXv::InitVideoBuffers().
| bool VideoBuffers::CreateBuffers | ( | int | width, | |
| int | height, | |||
| vector< unsigned char * > | bufs, | |||
| vector< YUVInfo > | yuvinfo | |||
| ) |
Definition at line 1113 of file videobuffers.cpp.
Referenced by VideoOutputXv::CreateBuffers(), DirectfbData::CreateBuffers(), CreateBuffers(), VideoOutputQuartz::CreateQuartzBuffers(), VideoOutputXv::CreateXvMCBuffers(), VideoOutputNull::Init(), VideoOutputDX::Init(), VideoOutputD3D::Init(), VideoOutputNull::InputChanged(), VideoOutputDX::InputChanged(), and VideoOutputD3D::InputChanged().
| bool VideoBuffers::CreateBuffers | ( | int | width, | |
| int | height | |||
| ) |
Definition at line 1106 of file videobuffers.cpp.
| void VideoBuffers::DeleteBuffers | ( | void | ) |
Definition at line 1240 of file videobuffers.cpp.
Referenced by VideoOutputXv::DeleteBuffers(), VideoOutputQuartz::DeleteQuartzBuffers(), VideoOutputDX::Exit(), VideoOutputD3D::Exit(), VideoOutputNull::InputChanged(), VideoOutputDX::InputChanged(), VideoOutputD3D::InputChanged(), ~VideoBuffers(), and VideoOutputNull::~VideoOutputNull().
| void VideoBuffers::Reset | ( | void | ) |
Resets the class so that Init may be called again.
Definition at line 192 of file videobuffers.cpp.
Referenced by CreateBuffers(), Init(), and VideoOutputXv::InitVideoBuffers().
| void VideoBuffers::DiscardFrames | ( | bool | next_frame_keyframe | ) |
Mark all used frames as ready to be reused, this is for seek.
Definition at line 653 of file videobuffers.cpp.
Referenced by VideoOutput::DiscardFrames(), VideoOutputXv::DiscardFrames(), GetNextFreeFrame(), and VideoOutputNull::InputChanged().
| void VideoBuffers::ClearAfterSeek | ( | void | ) |
| void VideoBuffers::SetPrebuffering | ( | bool | normal | ) |
Sets prebuffering state to normal, or small.
Definition at line 222 of file videobuffers.cpp.
Referenced by VideoOutput::SetPrebuffering().
| VideoFrame * VideoBuffers::GetNextFreeFrame | ( | bool | with_lock, | |
| bool | allow_unsafe, | |||
| BufferType | enqueue_to = kVideoBuffer_limbo | |||
| ) |
Gets a frame from available buffers list.
| with_lock | locks the frame, so that UnlockFrame() must be called before anyone else can use it. | |
| allow_unsafe | allows busy buffers to be used if no available buffers exist. Historic, should never be used. | |
| enqueue_to | put new frame in some state other than limbo. |
Definition at line 298 of file videobuffers.cpp.
Referenced by VideoOutput::GetNextFreeFrame(), VideoOutputXv::GetNextFreeFrame(), and VideoOutputXv::ProcessFrameXvMC().
| void VideoBuffers::ReleaseFrame | ( | VideoFrame * | frame | ) |
Frame is ready to be for filtering or OSD application.
Removes frame from limbo and adds it to used queue.
| frame | Frame to move to used. |
Definition at line 338 of file videobuffers.cpp.
Referenced by VideoOutput::ReleaseFrame().
| void VideoBuffers::DeLimboFrame | ( | VideoFrame * | frame | ) |
If the frame is still in the limbo state it is added to the available queue.
| frame | Frame to move to used. |
Definition at line 353 of file videobuffers.cpp.
Referenced by VideoOutput::DeLimboFrame().
| void VideoBuffers::StartDisplayingFrame | ( | void | ) |
Sets rpos to index of videoframe at head of used queue.
Definition at line 374 of file videobuffers.cpp.
Referenced by VideoOutput::StartDisplayingFrame().
| void VideoBuffers::DoneDisplayingFrame | ( | void | ) |
Removes frame from used queue and adds it to the available list.
Definition at line 384 of file videobuffers.cpp.
Referenced by VideoOutput::DoneDisplayingFrame(), and VideoOutputXv::DoneDisplayingFrame().
| void VideoBuffers::DiscardFrame | ( | VideoFrame * | frame | ) |
Frame is ready to be reused by decoder.
Add frame to available list, remove from any other list.
Definition at line 402 of file videobuffers.cpp.
Referenced by VideoOutput::DiscardFrame(), VideoOutputXv::DiscardFrame(), DiscardFrames(), and GetNextFreeFrameInternal().
| VideoFrame* VideoBuffers::at | ( | uint | i | ) | [inline] |
Definition at line 91 of file videobuffers.h.
Referenced by Clear(), ClearAfterSeek(), DirectfbData::DeleteBuffers(), DiscardFrames(), GetLastDecodedFrame(), GetLastShownFrame(), GetScratchFrame(), and Init().
| VideoFrame * VideoBuffers::dequeue | ( | BufferType | type | ) |
Definition at line 472 of file videobuffers.cpp.
Referenced by VideoOutputXv::ProcessFrameXvMC(), requeue(), VideoOutputXv::ShowXvMC(), and VideoOutputXv::UpdatePauseFrame().
| VideoFrame * VideoBuffers::head | ( | BufferType | type | ) |
Definition at line 484 of file videobuffers.cpp.
Referenced by VideoOutputXv::DoneDisplayingFrame(), VideoOutputXv::ProcessFrameXvMC(), VideoOutputXv::ShowXvMC(), VideoOutputXv::UpdatePauseFrame(), VideoOutputQuartz::UpdatePauseFrame(), VideoOutputNull::UpdatePauseFrame(), VideoOutputDX::UpdatePauseFrame(), VideoOutputDirectfb::UpdatePauseFrame(), and VideoOutputD3D::UpdatePauseFrame().
| VideoFrame * VideoBuffers::tail | ( | BufferType | type | ) |
| void VideoBuffers::requeue | ( | BufferType | dst, | |
| BufferType | src, | |||
| int | num = 1 | |||
| ) |
Definition at line 555 of file videobuffers.cpp.
| void VideoBuffers::enqueue | ( | BufferType | type, | |
| VideoFrame * | frame | |||
| ) |
Definition at line 514 of file videobuffers.cpp.
Referenced by Init(), requeue(), and safeEnqueue().
| void VideoBuffers::safeEnqueue | ( | BufferType | dst, | |
| VideoFrame * | frame | |||
| ) |
Definition at line 568 of file videobuffers.cpp.
Referenced by VideoOutputXv::CheckFrameStates(), VideoOutputXv::DiscardFrame(), DiscardFrame(), VideoOutputXv::DiscardFrames(), GetNextFreeFrameInternal(), VideoOutputXv::ShowXvMC(), and VideoOutputXv::UpdatePauseFrame().
| void VideoBuffers::remove | ( | BufferType | type, | |
| VideoFrame * | frame | |||
| ) |
Definition at line 534 of file videobuffers.cpp.
| frame_queue_t::iterator VideoBuffers::begin_lock | ( | BufferType | type | ) |
Definition at line 579 of file videobuffers.cpp.
Referenced by VideoOutputXv::CheckFrameStates(), VideoOutputXv::DiscardFrames(), VideoOutputXv::ProcessFrameXvMC(), VideoOutputXv::ShowXvMC(), VideoOutputXv::UpdatePauseFrame(), and VideoOutputNull::UpdatePauseFrame().
| frame_queue_t::iterator VideoBuffers::end | ( | BufferType | type | ) |
Definition at line 589 of file videobuffers.cpp.
Referenced by VideoOutputXv::CheckFrameStates(), and VideoOutputXv::ProcessFrameXvMC().
| void VideoBuffers::end_lock | ( | ) | [inline] |
Definition at line 101 of file videobuffers.h.
Referenced by VideoOutputXv::CheckFrameStates(), VideoOutputXv::DiscardFrames(), VideoOutputXv::ProcessFrameXvMC(), VideoOutputXv::ShowXvMC(), VideoOutputXv::UpdatePauseFrame(), and VideoOutputNull::UpdatePauseFrame().
| uint VideoBuffers::size | ( | BufferType | type | ) | const |
Definition at line 603 of file videobuffers.cpp.
Referenced by VideoOutputXv::DoneDisplayingFrame(), VideoOutputXv::ProcessFrameXvMC(), VideoOutputXv::ShowXvMC(), VideoOutputXv::UpdatePauseFrame(), and VideoOutputNull::UpdatePauseFrame().
| bool VideoBuffers::contains | ( | BufferType | type, | |
| VideoFrame * | frame | |||
| ) | const |
| VideoFrame * VideoBuffers::GetScratchFrame | ( | void | ) |
Definition at line 625 of file videobuffers.cpp.
Referenced by VideoOutputXv::CreatePauseFrame(), VideoOutputNull::CreatePauseFrame(), VideoOutputQuartz::CreateQuartzBuffers(), VideoOutputDX::Init(), VideoOutputDirectfb::Init(), VideoOutputD3D::Init(), VideoOutputDX::InputChanged(), VideoOutputDirectfb::InputChanged(), VideoOutputD3D::InputChanged(), VideoOutputNull::PrepareFrame(), VideoOutputDX::PrepareFrame(), VideoOutputDirectfb::PrepareFrame(), VideoOutputD3D::PrepareFrame(), VideoOutputXv::PrepareFrameMem(), VideoOutputXv::PrepareFrameOpenGL(), VideoOutputXv::PrepareFrameXv(), VideoOutputQuartz::ProcessFrame(), VideoOutputDX::ProcessFrame(), VideoOutputDirectfb::ProcessFrame(), VideoOutputD3D::ProcessFrame(), VideoOutputXv::ProcessFrameMem(), VideoOutputXv::ProcessFrameOpenGL(), VideoOutputXv::UpdatePauseFrame(), VideoOutputQuartz::UpdatePauseFrame(), VideoOutputNull::UpdatePauseFrame(), VideoOutputDX::UpdatePauseFrame(), VideoOutputDirectfb::UpdatePauseFrame(), and VideoOutputD3D::UpdatePauseFrame().
| const VideoFrame * VideoBuffers::GetScratchFrame | ( | void | ) | const |
Definition at line 637 of file videobuffers.cpp.
| VideoFrame* VideoBuffers::GetLastDecodedFrame | ( | void | ) | [inline] |
| VideoFrame* VideoBuffers::GetLastShownFrame | ( | void | ) | [inline] |
| void VideoBuffers::SetLastShownFrameToScratch | ( | ) | [inline] |
Definition at line 109 of file videobuffers.h.
Referenced by VideoOutputXv::PrepareFrameOpenGL(), and VideoOutputXv::PrepareFrameXv().
| uint VideoBuffers::ValidVideoFrames | ( | void | ) | const [inline] |
| uint VideoBuffers::FreeVideoFrames | ( | void | ) | const [inline] |
| bool VideoBuffers::EnoughFreeFrames | ( | void | ) | const [inline] |
Definition at line 114 of file videobuffers.h.
Referenced by ClearAfterSeek(), DoneDisplayingFrame(), VideoOutput::EnoughFreeFrames(), enqueue(), and GetNextFreeFrameInternal().
| bool VideoBuffers::EnoughDecodedFrames | ( | void | ) | const [inline] |
| bool VideoBuffers::EnoughPrebufferedFrames | ( | void | ) | const [inline] |
Definition at line 118 of file videobuffers.h.
Referenced by VideoOutput::EnoughPrebufferedFrames().
| const VideoFrame* VideoBuffers::at | ( | uint | i | ) | const [inline] |
Definition at line 121 of file videobuffers.h.
| const VideoFrame* VideoBuffers::GetLastDecodedFrame | ( | void | ) | const [inline] |
Definition at line 122 of file videobuffers.h.
| const VideoFrame* VideoBuffers::GetLastShownFrame | ( | void | ) | const [inline] |
Definition at line 123 of file videobuffers.h.
| uint VideoBuffers::size | ( | ) | const [inline] |
Definition at line 124 of file videobuffers.h.
Referenced by ClearAfterSeek(), CreateBuffers(), DiscardFrames(), EnoughDecodedFrames(), EnoughFreeFrames(), EnoughPrebufferedFrames(), FreeVideoFrames(), requeue(), SetLastShownFrameToScratch(), and ValidVideoFrames().
| uint VideoBuffers::allocSize | ( | ) | const [inline] |
Definition at line 125 of file videobuffers.h.
Referenced by Clear(), VideoOutputXv::CreateBuffers(), DirectfbData::CreateBuffers(), CreateBuffers(), DirectfbData::DeleteBuffers(), DeleteBuffers(), and GetScratchFrame().
| void VideoBuffers::LockFrame | ( | const VideoFrame * | frame, | |
| const char * | owner | |||
| ) |
Definition at line 763 of file videobuffers.cpp.
Referenced by VideoOutputXv::CheckFrameStates(), VideoOutputXv::CreatePauseFrame(), VideoOutputNull::CreatePauseFrame(), VideoOutputXv::DiscardFrame(), VideoOutputXv::DrawSlice(), FutureFrame(), GetOSDFrame(), PastFrame(), VideoOutputNull::PrepareFrame(), VideoOutputXv::PrepareFrameMem(), VideoOutputXv::PrepareFrameXv(), VideoOutputXv::PrepareFrameXvMC(), VideoOutputXv::ProcessFrameMem(), VideoOutputXv::ProcessFrameXvMC(), SetOSDFrame(), VideoOutputXv::ShowXVideo(), VideoOutputXv::ShowXvMC(), VideoOutputXv::UpdatePauseFrame(), VideoOutputNull::UpdatePauseFrame(), and VideoOutputNull::~VideoOutputNull().
| void VideoBuffers::LockFrames | ( | vector< const VideoFrame * > & | vec, | |
| const char * | owner | |||
| ) |
Definition at line 792 of file videobuffers.cpp.
Referenced by VideoOutputXv::DrawSlice(), and VideoOutputXv::ProcessFrameMem().
| bool VideoBuffers::TryLockFrame | ( | const VideoFrame * | frame, | |
| const char * | owner | |||
| ) |
Definition at line 827 of file videobuffers.cpp.
Referenced by DiscardFrame(), GetNextFreeFrameInternal(), LockFrames(), VideoOutputXv::ProcessFrameXvMC(), VideoOutputXv::ShowXvMC(), VideoOutputXv::UpdatePauseFrame(), and VideoOutputNull::UpdatePauseFrame().
| void VideoBuffers::UnlockFrame | ( | const VideoFrame * | frame, | |
| const char * | owner | |||
| ) |
Definition at line 865 of file videobuffers.cpp.
Referenced by VideoOutputXv::CheckFrameStates(), VideoOutputXv::CreatePauseFrame(), VideoOutputNull::CreatePauseFrame(), VideoOutputXv::DiscardFrame(), DiscardFrame(), VideoOutputXv::DrawSlice(), FutureFrame(), GetOSDFrame(), LockFrames(), PastFrame(), VideoOutputNull::PrepareFrame(), VideoOutputXv::PrepareFrameMem(), VideoOutputXv::PrepareFrameXv(), VideoOutputXv::PrepareFrameXvMC(), VideoOutputXv::ProcessFrameMem(), VideoOutputXv::ProcessFrameXvMC(), SetOSDFrame(), VideoOutputXv::ShowXVideo(), VideoOutputXv::ShowXvMC(), UnlockFrames(), VideoOutputXv::UpdatePauseFrame(), VideoOutputNull::UpdatePauseFrame(), and VideoOutputNull::~VideoOutputNull().
| void VideoBuffers::UnlockFrames | ( | vector< const VideoFrame * > & | vec, | |
| const char * | owner | |||
| ) |
Definition at line 888 of file videobuffers.cpp.
Referenced by VideoOutputXv::DrawSlice(), and VideoOutputXv::ProcessFrameMem().
| void VideoBuffers::AddInheritence | ( | const VideoFrame * | frame | ) |
| void VideoBuffers::RemoveInheritence | ( | const VideoFrame * | frame | ) |
Definition at line 954 of file videobuffers.cpp.
Referenced by VideoOutputXv::CheckFrameStates(), VideoOutputXv::DiscardFrame(), and DiscardFrames().
| frame_queue_t VideoBuffers::Children | ( | const VideoFrame * | frame | ) |
| bool VideoBuffers::HasChildren | ( | const VideoFrame * | frame | ) |
Definition at line 1002 of file videobuffers.cpp.
Referenced by VideoOutputXv::CheckFrameStates(), VideoOutputXv::DiscardFrame(), and DiscardFrames().
| void VideoBuffers::Clear | ( | uint | i, | |
| int | fourcc | |||
| ) |
Definition at line 1313 of file videobuffers.cpp.
Referenced by Clear(), CreateBuffers(), VideoOutputXv::InputChanged(), and VideoOutputNull::InputChanged().
| void VideoBuffers::Clear | ( | int | fourcc | ) |
Definition at line 1318 of file videobuffers.cpp.
| VideoFrame * VideoBuffers::PastFrame | ( | const VideoFrame * | frame | ) |
Definition at line 1030 of file videobuffers.cpp.
Referenced by AddInheritence(), and VideoOutputXv::DrawSlice().
| VideoFrame * VideoBuffers::FutureFrame | ( | const VideoFrame * | frame | ) |
Definition at line 1041 of file videobuffers.cpp.
Referenced by AddInheritence(), and VideoOutputXv::DrawSlice().
| VideoFrame * VideoBuffers::GetOSDFrame | ( | const VideoFrame * | frame | ) |
Definition at line 1052 of file videobuffers.cpp.
Referenced by VideoOutputXv::DiscardFrame(), VideoOutputXv::DoneDisplayingFrame(), VideoOutputXv::PrepareFrameXvMC(), VideoOutputXv::ProcessFrameXvMC(), and VideoOutputXv::ShowXvMC().
| void VideoBuffers::SetOSDFrame | ( | VideoFrame * | frame, | |
| VideoFrame * | osd | |||
| ) |
Definition at line 1070 of file videobuffers.cpp.
Referenced by VideoOutputXv::DiscardFrame(), and VideoOutputXv::ProcessFrameXvMC().
| VideoFrame * VideoBuffers::GetOSDParent | ( | const VideoFrame * | osd | ) |
Definition at line 1098 of file videobuffers.cpp.
Referenced by VideoOutputXv::DiscardFrame(), and VideoOutputXv::UpdatePauseFrame().
| bool VideoBuffers::CreateBuffers | ( | int | width, | |
| int | height, | |||
| Display * | disp, | |||
| void * | xvmc_ctx, | |||
| void * | xvmc_surf_info, | |||
| vector< void * > | surfs | |||
| ) |
Definition at line 1161 of file videobuffers.cpp.
| QString VideoBuffers::GetStatus | ( | int | n = -1 |
) | const |
Definition at line 1267 of file videobuffers.cpp.
Referenced by AddInheritence(), DiscardFrame(), VideoOutputXv::DiscardFrames(), DiscardFrames(), VideoOutput::GetFrameStatus(), GetNextFreeFrameInternal(), LockFrame(), LockFrames(), VideoOutputXv::ProcessFrameXvMC(), SetOSDFrame(), TryLockFrame(), UnlockFrame(), UnlockFrames(), and VideoOutputXv::UpdatePauseFrame().
| frame_queue_t * VideoBuffers::queue | ( | BufferType | type | ) | [private] |
Definition at line 428 of file videobuffers.cpp.
Referenced by begin_lock(), contains(), dequeue(), end(), enqueue(), head(), size(), and tail().
| const frame_queue_t * VideoBuffers::queue | ( | BufferType | type | ) | const [private] |
Definition at line 450 of file videobuffers.cpp.
| VideoFrame * VideoBuffers::GetNextFreeFrameInternal | ( | bool | with_lock, | |
| bool | allow_unsafe, | |||
| BufferType | enqueue_to | |||
| ) | [private] |
frame_queue_t VideoBuffers::available [private] |
Definition at line 161 of file videobuffers.h.
Referenced by begin_lock(), ClearAfterSeek(), DeLimboFrame(), DiscardFrames(), DoneDisplayingFrame(), end(), enqueue(), GetNextFreeFrameInternal(), GetStatus(), queue(), remove(), and Reset().
frame_queue_t VideoBuffers::used [private] |
Definition at line 161 of file videobuffers.h.
Referenced by AddInheritence(), ClearAfterSeek(), DiscardFrames(), DoneDisplayingFrame(), GetNextFreeFrameInternal(), GetStatus(), queue(), ReleaseFrame(), remove(), Reset(), and StartDisplayingFrame().
frame_queue_t VideoBuffers::limbo [private] |
Definition at line 161 of file videobuffers.h.
Referenced by AddInheritence(), DeLimboFrame(), DiscardFrames(), GetStatus(), queue(), ReleaseFrame(), remove(), and Reset().
frame_queue_t VideoBuffers::pause [private] |
Definition at line 161 of file videobuffers.h.
Referenced by AddInheritence(), DiscardFrames(), GetStatus(), queue(), remove(), and Reset().
frame_queue_t VideoBuffers::displayed [private] |
Definition at line 161 of file videobuffers.h.
Referenced by AddInheritence(), DiscardFrames(), GetStatus(), queue(), remove(), and Reset().
frame_queue_t VideoBuffers::decode [private] |
Definition at line 161 of file videobuffers.h.
Referenced by DeLimboFrame(), DiscardFrames(), GetNextFreeFrameInternal(), GetStatus(), queue(), ReleaseFrame(), and remove().
vbuffer_map_t VideoBuffers::vbufferMap [private] |
Definition at line 162 of file videobuffers.h.
Referenced by ClearAfterSeek(), Init(), ReleaseFrame(), Reset(), and StartDisplayingFrame().
frame_vector_t VideoBuffers::buffers [private] |
Definition at line 163 of file videobuffers.h.
uchar_vector_t VideoBuffers::allocated_arrays [private] |
frame_map_t VideoBuffers::parents [private] |
Definition at line 166 of file videobuffers.h.
Referenced by AddInheritence(), RemoveInheritence(), and Reset().
frame_map_t VideoBuffers::children [private] |
Definition at line 167 of file videobuffers.h.
Referenced by AddInheritence(), Children(), HasChildren(), RemoveInheritence(), and Reset().
QWaitCondition VideoBuffers::available_wait [private] |
Definition at line 169 of file videobuffers.h.
Referenced by ClearAfterSeek(), DoneDisplayingFrame(), enqueue(), GetNextFreeFrameInternal(), and WaitForAvailable().
uint VideoBuffers::numbuffers [private] |
uint VideoBuffers::needfreeframes [private] |
Definition at line 172 of file videobuffers.h.
Referenced by CreateBuffers(), EnoughFreeFrames(), and Init().
uint VideoBuffers::needprebufferframes [private] |
Definition at line 173 of file videobuffers.h.
Referenced by EnoughDecodedFrames(), Init(), and SetPrebuffering().
uint VideoBuffers::needprebufferframes_normal [private] |
Definition at line 174 of file videobuffers.h.
Referenced by CreateBuffers(), Init(), and SetPrebuffering().
uint VideoBuffers::needprebufferframes_small [private] |
Definition at line 175 of file videobuffers.h.
Referenced by CreateBuffers(), Init(), and SetPrebuffering().
uint VideoBuffers::keepprebufferframes [private] |
Definition at line 175 of file videobuffers.h.
Referenced by CreateBuffers(), EnoughPrebufferedFrames(), and Init().
bool VideoBuffers::need_extra_for_pause [private] |
uint VideoBuffers::rpos [private] |
Definition at line 179 of file videobuffers.h.
Referenced by ClearAfterSeek(), GetLastShownFrame(), SetLastShownFrameToScratch(), and StartDisplayingFrame().
uint VideoBuffers::vpos [private] |
Definition at line 180 of file videobuffers.h.
Referenced by ClearAfterSeek(), GetLastDecodedFrame(), and ReleaseFrame().
QMutex VideoBuffers::global_lock [mutable, private] |
Definition at line 182 of file videobuffers.h.
Referenced by AddInheritence(), begin_lock(), Children(), ClearAfterSeek(), contains(), DeLimboFrame(), dequeue(), DiscardFrame(), DiscardFrames(), DoneDisplayingFrame(), end(), end_lock(), enqueue(), GetNextFreeFrameInternal(), GetOSDParent(), GetScratchFrame(), GetStatus(), HasChildren(), head(), Init(), queue(), ReleaseFrame(), remove(), RemoveInheritence(), requeue(), Reset(), safeEnqueue(), SetOSDFrame(), SetPrebuffering(), size(), StartDisplayingFrame(), and tail().
bool VideoBuffers::use_frame_locks [private] |
Definition at line 184 of file videobuffers.h.
Referenced by Init(), LockFrame(), LockFrames(), TryLockFrame(), UnlockFrame(), and UnlockFrames().
QMutex VideoBuffers::frame_lock [private] |
Definition at line 185 of file videobuffers.h.
Referenced by LockFrame(), TryLockFrame(), and UnlockFrame().
frame_lock_map_t VideoBuffers::frame_locks [private] |
Definition at line 186 of file videobuffers.h.
Referenced by LockFrame(), TryLockFrame(), and UnlockFrame().
Definition at line 189 of file videobuffers.h.
Referenced by CreateBuffers(), DeleteBuffers(), FutureFrame(), and PastFrame().
1.5.5