Created by the British Broadcasting Corporation.
#include <frame_buffer.h>
dirac::FrameBuffer::FrameBuffer | ( | ) |
dirac::FrameBuffer::FrameBuffer | ( | ChromaFormat | cf, | |
const int | orig_xlen, | |||
const int | orig_ylen, | |||
const int | dwt_xlen, | |||
const int | dwt_ylen, | |||
const int | dwt_cxlen, | |||
const int | dwt_cylen, | |||
const unsigned int | luma_depth, | |||
const unsigned int | chroma_depth | |||
) |
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 | |
orig_xlen | the original luma width of frames in the buffer | |
orig_ylen | the original luma height of frames in the buffer | |
dwt_xlen | the padded luma width of frames in the buffer | |
dwt_ylen | the padded luma height of frames in the buffer | |
dwt_cxlen | the padded chroma width of frames in the buffer | |
dwt_cylen | the padded chroma height of frames in the buffer | |
luma_depth | the video depth of the luma comp in the buffer | |
chroma_depth | the video depth of the chroma comp in the buffer |
dirac::FrameBuffer::FrameBuffer | ( | ChromaFormat | cf, | |
const int | numL1, | |||
const int | L1sep, | |||
const int | orig_xlen, | |||
const int | orig_ylen, | |||
const int | dwt_xlen, | |||
const int | dwt_ylen, | |||
const int | dwt_cxlen, | |||
const int | dwt_cylen, | |||
const unsigned int | luma_depth, | |||
const unsigned int | chroma_depth, | |||
bool | interlace | |||
) |
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 | |
orig_xlen | the original luma width of frames in the buffer | |
orig_ylen | the original luma height of frames in the buffer | |
dwt_xlen | the padded luma width of frames in the buffer | |
dwt_ylen | the padded luma height of frames in the buffer | |
dwt_cxlen | the padded chroma width of frames in the buffer | |
dwt_cylen | the padded chroma height of frames in the buffer | |
luma_depth | the video depth of the luma comp in the buffer | |
chroma_depth | the video depth of the chroma comp in the buffer | |
interlace | Set true if material is being coded in interlaced mode |
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 |
bool dirac::FrameBuffer::IsFrameAvail | ( | const unsigned int | fnum | ) | 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::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] |
FrameParams& dirac::FrameBuffer::GetFParams | ( | ) | [inline] |
void dirac::FrameBuffer::SetFrameParams | ( | const unsigned int | fnum | ) |
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.
void dirac::FrameBuffer::SetProgressiveFrameParams | ( | const unsigned int | fnum | ) | [private] |
void dirac::FrameBuffer::SetInterlacedFrameParams | ( | const unsigned int | fnum | ) | [private] |
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] |
bool dirac::FrameBuffer::m_interlace [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.