Add support for rocDecMapVideoFrame API (#53)

This commit is contained in:
Aryan Salmanpour
2023-11-10 17:02:57 -05:00
committed by GitHub
vanhempi 55ebf353cc
commit 7a90c0c054
4 muutettua tiedostoa jossa 66 lisäystä ja 10 poistoa
@@ -174,3 +174,17 @@ rocDecStatus VaapiVideoDecoder::GetDecodeStatus(int pic_idx, RocdecDecodeStatus
}
return ROCDEC_SUCCESS;
}
rocDecStatus VaapiVideoDecoder::ExportSurface(int pic_idx, VADRMPRIMESurfaceDescriptor &va_drm_prime_surface_desc) {
if (pic_idx >= va_surface_ids_.size()) {
return ROCDEC_INVALID_PARAMETER;
}
CHECK_VAAPI(vaSyncSurface(va_display_, va_surface_ids_[pic_idx]));
CHECK_VAAPI(vaExportSurfaceHandle(va_display_, va_surface_ids_[pic_idx],
VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2,
VA_EXPORT_SURFACE_READ_ONLY |
VA_EXPORT_SURFACE_SEPARATE_LAYERS,
&va_drm_prime_surface_desc));
return ROCDEC_SUCCESS;
}
@@ -50,6 +50,8 @@ public:
rocDecStatus InitializeDecoder(std::string gcn_arch_name);
rocDecStatus SubmitDecode(RocdecPicParams *pPicParams);
rocDecStatus GetDecodeStatus(int pic_idx, RocdecDecodeStatus* decode_status);
rocDecStatus ExportSurface(int pic_idx, VADRMPRIMESurfaceDescriptor &va_drm_prime_surface_desc);
private:
RocDecoderCreateInfo decoder_create_info_;
int drm_fd_;