Created by the British Broadcasting Corporation.
#include <frame_buffer.h>
Collaboration diagram for dirac::FrameBuffer:
dirac::FrameBuffer::FrameBuffer | ( | ) |
dirac::FrameBuffer::FrameBuffer | ( | ChromaFormat | cf, | |
const int | xlen, | |||
const int | ylen, | |||
const int | c_xlen, | |||
const int | c_ylen, | |||
const unsigned int | vd | |||
) |
Creates a FrameBuffer using the chroma format. Suitable for compressing when there are no L2 frames, or when the temporal prediction structure is to be determined on the fly.
cf | the Chroma format of frames in the buffer | |
xlen | the luma width of frames in the buffer | |
ylen | the luma height of frames in the buffer | |
c_xlen | the chroma width of frames in the buffer | |
c_ylen | the chroma height of frames in the buffer | |
vd | the video depth of the data in the buffer |
dirac::FrameBuffer::FrameBuffer | ( | ChromaFormat | cf, | |
const int | numL1, | |||
const int | L1sep, | |||
const int | xlen, | |||
const int | ylen, | |||
const int | c_xlen, | |||
const int | c_ylen, | |||
const unsigned int | vd | |||
) |
Creates a FrameBuffer using the chroma format, the number of L1 frames between I frames and the separation in frames between L1 frames. Suitable for compressing when there is a full GOP structure or when the temporal prediction structure is to be determined on the fly.
cf | the Chroma format of frames in the buffer | |
numL1 | the number of Layer 1 frames before the next I frame. 0 means that there is only one I frame. | |
L1sep | the number of Layer 2 frames between Layer 1 frames | |
xlen | the luma width of frames in the buffer | |
ylen | the luma height of frames in the buffer | |
c_xlen | the chroma width of frames in the buffer | |
c_ylen | the chroma height of frames in the buffer | |
vd | the video depth of the data in the buffer |
dirac::FrameBuffer::FrameBuffer | ( | const FrameBuffer & | cpy | ) |
Copy constructor. Removes the current contents of the frame buffer and copies in the contents of the initialising buffer.
dirac::FrameBuffer::~FrameBuffer | ( | ) |
FrameBuffer& dirac::FrameBuffer::operator= | ( | const FrameBuffer & | rhs | ) |
Operator=. Assigns all elements of the rhs to the lhs.
Frame& dirac::FrameBuffer::GetFrame | ( | const unsigned int | fnum | ) |
const Frame& dirac::FrameBuffer::GetFrame | ( | const unsigned int | fnum | ) | const |
Frame& dirac::FrameBuffer::GetFrame | ( | const unsigned int | fnum, | |
bool & | is_present | |||
) |
const Frame& dirac::FrameBuffer::GetFrame | ( | const unsigned int | fnum, | |
bool & | is_present | |||
) | const |
const PicArray& dirac::FrameBuffer::GetUpComponent | ( | const unsigned int | frame_num, | |
CompSort | c | |||
) | const |
std::vector<int> dirac::FrameBuffer::Members | ( | ) | const |
void dirac::FrameBuffer::PushFrame | ( | const unsigned int | frame_num | ) |
Put a new frame into the top of the buffer. Frame parameters associated with the frame will be the built-in parameters for the buffer.
frame_num | the number of the frame being inserted |
void dirac::FrameBuffer::PushFrame | ( | const FrameParams & | fp | ) |
Put a new frame into the top of the buffer. Frame parameters associated with the frame will be as given by the frame parameter object.
void dirac::FrameBuffer::PushFrame | ( | const Frame & | frame | ) |
Put a copy of a new frame into the top of the buffer.
void dirac::FrameBuffer::PushFrame | ( | StreamPicInput * | picin, | |
const FrameParams & | fp | |||
) |
Read a new frame into the buffer. Frame parameters associated with the frame will be as given by the frame parameter object.
picin | the picture input | |
fp | the frame parameters to apply to the frame |
void dirac::FrameBuffer::PushFrame | ( | StreamPicInput * | picin, | |
const unsigned int | fnum | |||
) |
Read a new frame into the buffer. Frame parameters associated with the frame will be derived from the frame number and the internal GOP parameters in the frame buffer.
picin | the picture input | |
fnum | the frame number |
void dirac::FrameBuffer::SetRetiredList | ( | const int | show_fnum, | |
const int | current_coded_fnum | |||
) |
Indicate frames which have been output and which are no longer required for reference. Expiry times are set in each frame's frame parameters.
show_fnum | frame number in display order that can be output | |
current_coded_fnum | frame number in display order of frame currently being coded |
void dirac::FrameBuffer::Clean | ( | const int | show_fnum, | |
const int | current_coded_fnum | |||
) |
Delete frames which have been output and which are no longer required for reference. Expiry times are set in each frame's frame parameters.
show_fnum | frame number in display order that can be output | |
current_coded_fnum | frame number in display order of frame currently being coded |
void dirac::FrameBuffer::Clean | ( | int | fnum | ) |
Delete frame.
fnum | frame number in display order to be deleted from frame buffer |
const FrameParams& dirac::FrameBuffer::GetFParams | ( | ) | const [inline] |
void dirac::FrameBuffer::SetFrameParams | ( | const unsigned int | fnum | ) | [private] |
void dirac::FrameBuffer::Remove | ( | const unsigned int | fnum | ) | [private] |
Remove a frame with a given frame number (in display order) from the buffer. Searches through the buffer and removes frame(s) with that number.
int dirac::FrameBuffer::m_ref_count [private] |
std::vector<Frame*> dirac::FrameBuffer::m_frame_data [private] |
std::vector<bool> dirac::FrameBuffer::m_frame_in_use [private] |
std::map<unsigned int,unsigned int> dirac::FrameBuffer::m_fnum_map [private] |
FrameParams dirac::FrameBuffer::m_fparams [private] |
unsigned int dirac::FrameBuffer::m_num_L1 [private] |
unsigned int dirac::FrameBuffer::m_L1_sep [private] |
unsigned int dirac::FrameBuffer::m_gop_len [private] |
© 2004 British Broadcasting Corporation.
Dirac code licensed under the Mozilla Public License (MPL) Version 1.1.
HTML documentation generated by Dimitri van Heesch's
excellent Doxygen tool.