Return an error if the ExportSurface function fails. Add extra error logging in the destructor of the VaapiVideoDecoder class (#87)

Этот коммит содержится в:
Aryan Salmanpour
2023-11-27 13:08:34 -05:00
коммит произвёл GitHub
родитель 624c3c0f09
Коммит e5d5bd4abb
2 изменённых файлов: 23 добавлений и 5 удалений
+22 -5
Просмотреть файл
@@ -30,13 +30,30 @@ VaapiVideoDecoder::~VaapiVideoDecoder() {
close(drm_fd_);
}
if (va_display_) {
DestroyDataBuffers();
vaDestroySurfaces(va_display_, va_surface_ids_.data(), va_surface_ids_.size());
rocDecStatus rocdec_status = ROCDEC_SUCCESS;
rocdec_status = DestroyDataBuffers();
if (rocdec_status != ROCDEC_SUCCESS) {
ERR("ERROR: DestroyDataBuffers failed with status " + TOSTR(rocdec_status));
}
VAStatus va_status = VA_STATUS_SUCCESS;
va_status = vaDestroySurfaces(va_display_, va_surface_ids_.data(), va_surface_ids_.size());
if (va_status != VA_STATUS_SUCCESS) {
ERR("ERROR: vaDestroySurfaces failed with status " + TOSTR(va_status));
}
if (va_context_id_)
vaDestroyContext(va_display_, va_context_id_);
va_status = vaDestroyContext(va_display_, va_context_id_);
if (va_status != VA_STATUS_SUCCESS) {
ERR("ERROR: vaDestroyContext failed with status " + TOSTR(va_status));
}
if (va_config_id_)
vaDestroyConfig(va_display_, va_config_id_);
vaTerminate(va_display_);
va_status = vaDestroyConfig(va_display_, va_config_id_);
if (va_status != VA_STATUS_SUCCESS) {
ERR("ERROR: vaDestroyConfig failed with status " + TOSTR(va_status));
}
va_status = vaTerminate(va_display_);
if (va_status != VA_STATUS_SUCCESS) {
ERR("ERROR: vaTerminate failed with status " + TOSTR(va_status));
}
}
}