From 363205c9a84288f5364bf8df6fd6844d5ff1632c Mon Sep 17 00:00:00 2001 From: Aryan Salmanpour Date: Mon, 1 Apr 2024 18:06:44 -0400 Subject: [PATCH] Add support for passing the correct device id when initializing the va-api decoder (#8) --- src/rocjpeg_decoder.cpp | 2 +- src/rocjpeg_vaapi_decoder.cpp | 3 ++- src/rocjpeg_vaapi_decoder.h | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/rocjpeg_decoder.cpp b/src/rocjpeg_decoder.cpp index 6ba8c40803..e707724a60 100644 --- a/src/rocjpeg_decoder.cpp +++ b/src/rocjpeg_decoder.cpp @@ -56,7 +56,7 @@ RocJpegStatus ROCJpegDecoder::InitializeDecoder() { return rocjpeg_status; } if (backend_ == ROCJPEG_BACKEND_HARDWARE) { - rocjpeg_status = jpeg_vaapi_decoder_.InitializeDecoder(hip_dev_prop_.name, hip_dev_prop_.gcnArchName); + rocjpeg_status = jpeg_vaapi_decoder_.InitializeDecoder(hip_dev_prop_.name, hip_dev_prop_.gcnArchName, device_id_); if (rocjpeg_status != ROCJPEG_STATUS_SUCCESS) { ERR("ERROR: Failed to initialize the VA-API JPEG decoder!"); return rocjpeg_status; diff --git a/src/rocjpeg_vaapi_decoder.cpp b/src/rocjpeg_vaapi_decoder.cpp index 4d0ffa7a7e..0df9563a30 100644 --- a/src/rocjpeg_vaapi_decoder.cpp +++ b/src/rocjpeg_vaapi_decoder.cpp @@ -63,7 +63,8 @@ RocJpegVappiDecoder::~RocJpegVappiDecoder() { } } -RocJpegStatus RocJpegVappiDecoder::InitializeDecoder(std::string device_name, std::string gcn_arch_name) { +RocJpegStatus RocJpegVappiDecoder::InitializeDecoder(std::string device_name, std::string gcn_arch_name, int device_id) { + device_id_ = device_id; std::size_t pos = gcn_arch_name.find_first_of(":"); std::string gcn_arch_name_base = (pos != std::string::npos) ? gcn_arch_name.substr(0, pos) : gcn_arch_name; diff --git a/src/rocjpeg_vaapi_decoder.h b/src/rocjpeg_vaapi_decoder.h index c595308d74..0e7b969169 100644 --- a/src/rocjpeg_vaapi_decoder.h +++ b/src/rocjpeg_vaapi_decoder.h @@ -54,7 +54,7 @@ class RocJpegVappiDecoder { public: RocJpegVappiDecoder(int device_id = 0); ~RocJpegVappiDecoder(); - RocJpegStatus InitializeDecoder(std::string device_name, std::string gcn_arch_name); + RocJpegStatus InitializeDecoder(std::string device_name, std::string gcn_arch_name, int device_id); RocJpegStatus SubmitDecode(const JpegStreamParameters *jpeg_stream_params, uint32_t &surface_id); RocJpegStatus ExportSurface(VASurfaceID surface_id, VADRMPRIMESurfaceDescriptor &va_drm_prime_surface_desc); RocJpegStatus SyncSurface(VASurfaceID surface_id);