Add support for rocDecGetDecodeStatus API (#46)

Este commit está contenido en:
Aryan Salmanpour
2023-11-09 08:47:58 -05:00
cometido por GitHub
padre 9afec26af0
commit 6ab31ce40e
Se han modificado 5 ficheros con 34 adiciones y 5 borrados
+23 -1
Ver fichero
@@ -151,4 +151,26 @@ rocDecStatus VaapiVideoDecoder::CreateContext() {
rocDecStatus VaapiVideoDecoder::SubmitDecode(RocdecPicParams *pPicParams) {
// Todo copy pic param, slice param, IQ matrix and slice data from RocdecPicParams to VAAPI struct buffers, then submit to VAAPI driver.
return ROCDEC_SUCCESS;
}
}
rocDecStatus VaapiVideoDecoder::GetDecodeStatus(int pic_idx, RocdecDecodeStatus *decode_status) {
VASurfaceStatus va_surface_status;
if (pic_idx >= va_surface_ids_.size() || decode_status == nullptr) {
return ROCDEC_INVALID_PARAMETER;
}
CHECK_VAAPI(vaQuerySurfaceStatus(va_display_, va_surface_ids_[pic_idx], &va_surface_status));
switch (va_surface_status) {
case VASurfaceRendering:
decode_status->decodeStatus = rocDecodeStatus_InProgress;
break;
case VASurfaceReady:
decode_status->decodeStatus = rocDecodeStatus_Success;
break;
case VASurfaceDisplaying:
decode_status->decodeStatus = rocDecodeStatus_Displaying;
break;
default:
decode_status->decodeStatus = rocDecodeStatus_Invalid;
}
return ROCDEC_SUCCESS;
}