X265源碼解析1-Encode方法

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,後續再詳細分析

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章