mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-06-01 04:08:25 -04:00
obs-nvenc: Fix resource destruction order
The NVENC session was destroyed before its child resources (textures, surfaces) were cleaned up, causing resource cleanup calls to operate on an invalid session handle. Reorder destruction to free all registered resources before destroying the encoder session.
This commit is contained in:
@@ -1029,16 +1029,19 @@ static void nvenc_destroy(void *data)
|
||||
for (size_t i = 0; i < enc->bitstreams.num; i++) {
|
||||
nv_bitstream_free(enc, &enc->bitstreams.array[i]);
|
||||
}
|
||||
if (enc->session)
|
||||
nv.nvEncDestroyEncoder(enc->session);
|
||||
|
||||
#ifdef _WIN32
|
||||
d3d11_free_textures(enc);
|
||||
d3d11_free(enc);
|
||||
#else
|
||||
cuda_opengl_free(enc);
|
||||
#endif
|
||||
cuda_free_surfaces(enc);
|
||||
|
||||
if (enc->session)
|
||||
nv.nvEncDestroyEncoder(enc->session);
|
||||
|
||||
#ifdef _WIN32
|
||||
d3d11_free(enc);
|
||||
#endif
|
||||
cuda_ctx_free(enc);
|
||||
|
||||
bfree(enc->header);
|
||||
|
||||
Reference in New Issue
Block a user