diff --git a/modules/video_chroma/orient.c b/modules/video_chroma/orient.c
index 0dc0ea34e4cfb3ac1d69807dcd459b2864794cd2..3b9011022aeaee42fde7288a6208dfdb6e9ed86b 100644
--- a/modules/video_chroma/orient.c
+++ b/modules/video_chroma/orient.c
@@ -76,18 +76,19 @@ static void transpose_##bits(void *restrict dst, ptrdiff_t dst_stride, \
 TRANSFORMS(8)
 TRANSFORMS(16)
 TRANSFORMS(32)
+TRANSFORMS(64)
 
 typedef void (*plane_transform_cb)(void *, ptrdiff_t, const void *, ptrdiff_t,
                                    int, int);
 
-#define MAX_ORDER 2
+#define MAX_ORDER 3
 
 static const struct {
     plane_transform_cb hflip[MAX_ORDER + 1];
     plane_transform_cb transpose[MAX_ORDER + 1];
 } transforms = {
-    { hflip_8, hflip_16, hflip_32, },
-    { transpose_8, transpose_16, transpose_32, },
+    { hflip_8, hflip_16, hflip_32, hflip_64, },
+    { transpose_8, transpose_16, transpose_32, transpose_64, },
 };
 
 static void hflip(void *restrict dst, ptrdiff_t dst_stride,
@@ -304,6 +305,7 @@ static int Open(filter_t *filter)
         case 1:
         case 2:
         case 4:
+        case 8:
             break;
         default:
             return VLC_ENOTSUP;