IDirect3DSurface9_LockRect调用会内存泄漏

小小的熊OnlyOne 2018-05-12 04:10:41
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左右的内存,请问这个内存怎么释放?
...全文
1089 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yshuise 2018-05-19
  • 打赏
  • 举报
回复
看看API,有没有对应的释放内存的函数
WJN92 2018-05-15
  • 打赏
  • 举报
回复
应该是dx内部的操作吧
  • 打赏
  • 举报
回复
但是我每次调用都会涨内存
  • 打赏
  • 举报
回复
是需要释放LockedRect.pBits?怎么释放?
  • 打赏
  • 举报
回复
LockRect和UnLockRect这两个函数导致的,请问怎么解决?

456

社区成员

发帖
与我相关
我的任务
社区描述
其它游戏引擎
社区管理员
  • 其它游戏引擎社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧