Add extra error checking during decoder reconfiguration (#558)

Этот коммит содержится в:
Aryan Salmanpour
2025-04-14 14:36:08 -04:00
коммит произвёл GitHub
родитель 193423300f
Коммит 0f89c55157
2 изменённых файлов: 7 добавлений и 2 удалений
+2 -1
Просмотреть файл
@@ -82,7 +82,8 @@ rocDecStatus RocDecoder::GetDecodeStatus(int pic_idx, RocdecDecodeStatus* decode
}
rocDecStatus RocDecoder::ReconfigureDecoder(RocdecReconfigureDecoderInfo *reconfig_params) {
if (reconfig_params == nullptr) {
if (reconfig_params == nullptr || reconfig_params->width == 0 || reconfig_params->height == 0 ||
reconfig_params->num_decode_surfaces < 1 || reconfig_params->bit_depth_minus_8 > 2) {
return ROCDEC_INVALID_PARAMETER;
}
rocDecStatus rocdec_status;
+5 -1
Просмотреть файл
@@ -332,11 +332,15 @@ rocDecStatus VaapiVideoDecoder::ReconfigureDecoder(RocdecReconfigureDecoderInfo
return ROCDEC_NOT_SUPPORTED;
}
CHECK_VAAPI(vaDestroySurfaces(va_display_, va_surface_ids_.data(), va_surface_ids_.size()));
CHECK_VAAPI(vaDestroyContext(va_display_, va_context_id_));
if (va_context_id_) {
CHECK_VAAPI(vaDestroyContext(va_display_, va_context_id_));
va_context_id_ = 0;
}
// Need to re-create VA config if bit deepth changes
bool create_va_config = decoder_create_info_.bit_depth_minus_8 != reconfig_params->bit_depth_minus_8 ? true : false;
if (create_va_config) {
CHECK_VAAPI(vaDestroyConfig(va_display_, va_config_id_));
va_config_id_ = 0;
}
va_surface_ids_.clear();