X265原始碼解析1 Encode方法

2021-10-06 22:11:09 字數 541 閱讀 8457

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ÿ

在linux下原始碼編譯x265

將原始碼放入linux目錄下,注意,若是虛擬機器的話要放到linux系統的真實目錄下,而不是windows的共享資料夾,否則會有很多問題。libx265是用cmake編譯的,故先下cmake,我是centos系統,命令 yum install cmake y 進入目錄.x265 1.9 build ...

Qt原始碼解析 1

本文 感謝原創者分享 如果你閱讀了 qt 的源 你會看到一堆奇奇怪怪的巨集,例如 q d,q q。我們的qt原始碼之旅就從理解這些巨集說起。下面先看乙個c 的例子。cpp class person person string name void setname string name int age...

jquery原始碼解析1

學了很久的js也寫了很長時間的jquery了,這裡來以學習的態度來看大牛的思想和架構。使用的是當前最新版本 3.1.1 就不考慮煩人的ie 6 7 8了,輕鬆愉快。其實一上來不知所措,這都是啥?function global,factory return factory w else typeof ...