NV12剪下區域時的對齊程式碼
阿新 • • 發佈:2018-12-09
如果沒有對齊,底邊有時顏色會有點問題(比如綠色)。
所以專門寫了程式碼進行對齊。
#define NV12_PACK 2 //如果沒有對齊,NV12無法生成JPG,或者底邊顏色異常。對齊時要避免剪下區域變小。 int clipNv12Pack(int* pnClipLeft, int* pnClipTop, int* pnClipWidth, int* pnClipHeight) { const int clipLeft = *pnClipLeft; const int clipTop = *pnClipTop; const int clipWidth = *pnClipWidth; const int clipHeight= *pnClipHeight; if (*pnClipLeft % NV12_PACK != 0) { *pnClipLeft = clipLeft/NV12_PACK*NV12_PACK; *pnClipWidth = clipWidth+(clipLeft-*pnClipLeft); } *pnClipWidth = (*pnClipWidth+NV12_PACK-1)/NV12_PACK*NV12_PACK; if (*pnClipTop % NV12_PACK != 0) { *pnClipTop = clipTop/NV12_PACK*NV12_PACK; *pnClipHeight= clipHeight+(clipTop-*pnClipTop); } *pnClipHeight = (*pnClipHeight+NV12_PACK-1)/NV12_PACK*NV12_PACK; return 0; }