vdpau: add helper for VDPAU to libav error codes conversion
authorRémi Denis-Courmont <remi@remlab.net>
Sat, 4 Oct 2014 13:55:02 +0000 (16:55 +0300)
committerAnton Khirnov <anton@khirnov.net>
Sun, 5 Oct 2014 10:08:53 +0000 (10:08 +0000)
Signed-off-by: Anton Khirnov <anton@khirnov.net>
libavcodec/vdpau.c

index 5406874..581eada 100644 (file)
  * @{
  */
 
+static int vdpau_error(VdpStatus status)
+{
+    switch (status) {
+    case VDP_STATUS_OK:
+        return 0;
+    case VDP_STATUS_NO_IMPLEMENTATION:
+        return AVERROR(ENOSYS);
+    case VDP_STATUS_DISPLAY_PREEMPTED:
+        return AVERROR(EIO);
+    case VDP_STATUS_INVALID_HANDLE:
+        return AVERROR(EBADF);
+    case VDP_STATUS_INVALID_POINTER:
+        return AVERROR(EFAULT);
+    case VDP_STATUS_RESOURCES:
+        return AVERROR(ENOBUFS);
+    case VDP_STATUS_HANDLE_DEVICE_MISMATCH:
+        return AVERROR(EXDEV);
+    case VDP_STATUS_ERROR:
+        return AVERROR(EIO);
+    default:
+        return AVERROR(EINVAL);
+    }
+}
+
 int ff_vdpau_common_start_frame(struct vdpau_picture_context *pic_ctx,
                                 av_unused const uint8_t *buffer,
                                 av_unused uint32_t size)