From fe0e639d08ec0142062e53a8f1eec28159854b48 Mon Sep 17 00:00:00 2001 From: Aryan Salmanpour Date: Mon, 14 Apr 2025 19:13:57 -0400 Subject: [PATCH] close the drm_fd in the VaContext destructor (#560) [ROCm/rocdecode commit: ed556199b042b41d8256410ac203c5f6808abf1e] --- .../rocdecode/src/rocdecode/vaapi/vaapi_videodecoder.cpp | 8 ++++---- .../rocdecode/src/rocdecode/vaapi/vaapi_videodecoder.h | 1 - 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/projects/rocdecode/src/rocdecode/vaapi/vaapi_videodecoder.cpp b/projects/rocdecode/src/rocdecode/vaapi/vaapi_videodecoder.cpp index 5bbf231626..30ce8fe29b 100644 --- a/projects/rocdecode/src/rocdecode/vaapi/vaapi_videodecoder.cpp +++ b/projects/rocdecode/src/rocdecode/vaapi/vaapi_videodecoder.cpp @@ -23,14 +23,11 @@ THE SOFTWARE. #include "vaapi_videodecoder.h" VaapiVideoDecoder::VaapiVideoDecoder(RocDecoderCreateInfo &decoder_create_info) : decoder_create_info_{decoder_create_info}, - drm_fd_{-1}, va_display_{0}, va_config_attrib_{{}}, va_config_id_{0}, va_profile_ {VAProfileNone}, va_context_id_{0}, va_surface_ids_{{}}, + va_display_{0}, va_config_attrib_{{}}, va_config_id_{0}, va_profile_ {VAProfileNone}, va_context_id_{0}, va_surface_ids_{{}}, supports_modifiers_{false}, pic_params_buf_id_{0}, iq_matrix_buf_id_{0}, num_slices_{0}, slice_data_buf_id_{0} { }; VaapiVideoDecoder::~VaapiVideoDecoder() { - if (drm_fd_ != -1) { - close(drm_fd_); - } if (va_display_) { rocDecStatus rocdec_status = ROCDEC_SUCCESS; rocdec_status = DestroyDataBuffers(); @@ -517,6 +514,9 @@ VaContext::VaContext() { VaContext::~VaContext() { for (int i = 0; i < va_contexts_.size(); i++) { + if (va_contexts_[i].drm_fd != -1) { + close(va_contexts_[i].drm_fd); + } if (va_contexts_[i].va_display) { if (vaTerminate(va_contexts_[i].va_display) != VA_STATUS_SUCCESS) { ERR("Failed to termiate VA"); diff --git a/projects/rocdecode/src/rocdecode/vaapi/vaapi_videodecoder.h b/projects/rocdecode/src/rocdecode/vaapi/vaapi_videodecoder.h index 821b11951e..9a290a41c9 100644 --- a/projects/rocdecode/src/rocdecode/vaapi/vaapi_videodecoder.h +++ b/projects/rocdecode/src/rocdecode/vaapi/vaapi_videodecoder.h @@ -101,7 +101,6 @@ public: private: RocDecoderCreateInfo decoder_create_info_; - int drm_fd_; VADisplay va_display_; VAConfigAttrib va_config_attrib_; VAConfigID va_config_id_;