hr = IDirect3DSurface9_LockRect(surface, &LockedRect, NULL, D3DLOCK_READONLY);
if (FAILED(hr)) {
av_log(NULL, AV_LOG_ERROR, "Unable to lock DXVA2 surface\n");
return AVERROR_UNKNOWN;
}
av_image_copy_plane(ctx->tmp_frame->data[0], ctx->tmp_frame->linesize[0],
(uint8_t*)LockedRect.pBits,
LockedRect.Pitch, frame->width, frame->height);
av_image_copy_plane(ctx->tmp_frame->data[1], ctx->tmp_frame->linesize[1],
(uint8_t*)LockedRect.pBits + LockedRect.Pitch * surfaceDesc.Height,
LockedRect.Pitch, frame->width, frame->height / 2);
IDirect3DSurface9_UnlockRect(surface);
這段代碼每次呼叫都會增加3M左右的記憶體,請問這個記憶體怎么釋放?
uj5u.com熱心網友回復:
LockRect和UnLockRect這兩個函式導致的,請問怎么解決?uj5u.com熱心網友回復:
是需要釋放LockedRect.pBits?怎么釋放?uj5u.com熱心網友回復:
應該是dx內部的操作吧uj5u.com熱心網友回復:
但是我每次呼叫都會漲記憶體uj5u.com熱心網友回復:
看看API,有沒有對應的釋放記憶體的函式轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/51925.html
標籤:其它游戲引擎
