int Encoder::encode(const x265_picture* pic_in, x265_picture* pic_out)
Frame *inFrame;
x265_param* p = (m_reconfigure || m_reconfigureRc) ? m_latestParam : m_param;
if (m_dpb->m_freeList.empty())
{
如果dpb的中沒有free狀態的Frame,就會去創建。freeList是一個Frame的pool,這樣可以節約內存。
inFrame = new Frame;
Frame主要包括編碼完成的數據,重建幀的YUV數據和要編碼的YUV數據。
inFrame->m_encodeStartTime = x265_mdate();
這一幀的開始時間單位是ms。
if (inFrame->create(p, pic_in->quantOffsets))
{
主要是創建了要存儲編碼YUV數據的PicYUV,後續再詳細分析