diff --git a/libswscale/input.c b/libswscale/input.c
index 28f0bafce306a1e58c2c1d90a652a90c983765c8..1f4ea185787778cd04151409df2b7eeae1c62511 100644
--- a/libswscale/input.c
+++ b/libswscale/input.c
@@ -1323,6 +1323,7 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c)
     case AV_PIX_FMT_YUV422P16LE:
     case AV_PIX_FMT_YUV444P16LE:
 
+    case AV_PIX_FMT_GRAY10LE:
     case AV_PIX_FMT_GRAY12LE:
     case AV_PIX_FMT_GRAY16LE:
         c->lumToYV12 = bswap16Y_c;
@@ -1358,6 +1359,7 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c)
     case AV_PIX_FMT_YUV422P16BE:
     case AV_PIX_FMT_YUV444P16BE:
 
+    case AV_PIX_FMT_GRAY10BE:
     case AV_PIX_FMT_GRAY12BE:
     case AV_PIX_FMT_GRAY16BE:
         c->lumToYV12 = bswap16Y_c;
diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h
index 9368832830da4e70294448ae48e799d1824033ca..af82396b1c81399148e2b06077aa63a95e2e3891 100644
--- a/libswscale/swscale_internal.h
+++ b/libswscale/swscale_internal.h
@@ -695,6 +695,8 @@ static av_always_inline int isRGB(enum AVPixelFormat pix_fmt)
 #define isGray(x)                      \
     ((x) == AV_PIX_FMT_GRAY8       ||  \
      (x) == AV_PIX_FMT_YA8         ||  \
+     (x) == AV_PIX_FMT_GRAY10BE    ||  \
+     (x) == AV_PIX_FMT_GRAY10LE    ||  \
      (x) == AV_PIX_FMT_GRAY12BE    ||  \
      (x) == AV_PIX_FMT_GRAY12LE    ||  \
      (x) == AV_PIX_FMT_GRAY16BE    ||  \
diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c
index 6a09281e1c28f8a4fa2f683c9e85ceecde3f87f7..b2bfc40c3d1d5a6a9bb898c2a0bbdd0ec4302719 100644
--- a/libswscale/swscale_unscaled.c
+++ b/libswscale/swscale_unscaled.c
@@ -1796,6 +1796,7 @@ void ff_get_unscaled_swscale(SwsContext *c)
         IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_BGR555) ||
         IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_BGR565) ||
         IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_BGRA64) ||
+        IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GRAY10) ||
         IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GRAY12) ||
         IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GRAY16) ||
         IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_YA16)   ||
diff --git a/libswscale/utils.c b/libswscale/utils.c
index a1d791b616375f92dba32e4fa7fb64286b0bdee8..15cc56d5a4e555bd9912b5accf14a2ad1af8efc2 100644
--- a/libswscale/utils.c
+++ b/libswscale/utils.c
@@ -131,6 +131,8 @@ static const FormatEntry format_entries[AV_PIX_FMT_NB] = {
     [AV_PIX_FMT_RGB0]        = { 1, 1 },
     [AV_PIX_FMT_0BGR]        = { 1, 1 },
     [AV_PIX_FMT_BGR0]        = { 1, 1 },
+    [AV_PIX_FMT_GRAY10BE]    = { 1, 1 },
+    [AV_PIX_FMT_GRAY10LE]    = { 1, 1 },
     [AV_PIX_FMT_GRAY12BE]    = { 1, 1 },
     [AV_PIX_FMT_GRAY12LE]    = { 1, 1 },
     [AV_PIX_FMT_GRAY16BE]    = { 1, 1 },
diff --git a/libswscale/version.h b/libswscale/version.h
index 9832cc8145ca2124a8041fdbfae38c79c27bea44..0d67738fa4ac433c63a7006398eeefe79ddf96e7 100644
--- a/libswscale/version.h
+++ b/libswscale/version.h
@@ -28,7 +28,7 @@
 
 #define LIBSWSCALE_VERSION_MAJOR   4
 #define LIBSWSCALE_VERSION_MINOR   3
-#define LIBSWSCALE_VERSION_MICRO 100
+#define LIBSWSCALE_VERSION_MICRO 101
 
 #define LIBSWSCALE_VERSION_INT  AV_VERSION_INT(LIBSWSCALE_VERSION_MAJOR, \
                                                LIBSWSCALE_VERSION_MINOR, \
diff --git a/tests/ref/fate/filter-pixdesc-gray10be b/tests/ref/fate/filter-pixdesc-gray10be
new file mode 100644
index 0000000000000000000000000000000000000000..81540c8ce4898244bda0094d096600419c1bf24f
--- /dev/null
+++ b/tests/ref/fate/filter-pixdesc-gray10be
@@ -0,0 +1 @@
+pixdesc-gray10be    d4b84689e79b1d014c7a599a49b40b4d
diff --git a/tests/ref/fate/filter-pixdesc-gray10le b/tests/ref/fate/filter-pixdesc-gray10le
new file mode 100644
index 0000000000000000000000000000000000000000..c47b1833c25759e3016c4c1c45ebe049c6452e89
--- /dev/null
+++ b/tests/ref/fate/filter-pixdesc-gray10le
@@ -0,0 +1 @@
+pixdesc-gray10le    f1b0e53b9d6e63af70dc8f2b5a14cb4b
diff --git a/tests/ref/fate/filter-pixfmts-copy b/tests/ref/fate/filter-pixfmts-copy
index c39ea5122a11e0c0f28005104fdfa0f2276aa0f6..1ae44692ebb979d1e54f116a9a5fb4c19b69501e 100644
--- a/tests/ref/fate/filter-pixfmts-copy
+++ b/tests/ref/fate/filter-pixfmts-copy
@@ -33,6 +33,8 @@ gbrp14le            1607f5c8f13360b53b8186f523996b1b
 gbrp9be             a4dc6f6f9bb051de2dc348b592ad4282
 gbrp9le             699da3a3b324f3fd001a56aee9683384
 gray                188590b1231afd231ea910815aef2b25
+gray10be            8d594f0c6e886cce760689868f2523d4
+gray10le            a42744450d83943a7fa85fe179501548
 gray12be            fb9c00496453d233d2f0f0f81141bc31
 gray12le            c3cccaeb21ed9b894f9ef99ebebaf1cd
 gray16be            08d997a3faa25a3db9d6be272d282eef
diff --git a/tests/ref/fate/filter-pixfmts-crop b/tests/ref/fate/filter-pixfmts-crop
index d4319b820fa88123026a391a1bb20f6e3775e6fa..7abdccce962b1c6b9e9acc5dc8b1017bfd45626c 100644
--- a/tests/ref/fate/filter-pixfmts-crop
+++ b/tests/ref/fate/filter-pixfmts-crop
@@ -33,6 +33,8 @@ gbrp14le            d4764dba3c3efd1263c2c8e0f5ac9f6a
 gbrp9be             4af43999e5e9742992b6550ea5ad9b23
 gbrp9le             b4cbfa7878706a14295f09212e41f7fe
 gray                0d70b54b4b888ec4dbd89713620ac1ee
+gray10be            3e8dcfad8f30743a33d19349ba914a88
+gray10le            9a72da3e6a31a53ecde9b54bb2627e0c
 gray12be            ffc8ec5de51e2998d666a5e209d1f7f5
 gray12le            548dc0885922d2f5898a904b40287b92
 gray16be            38f599da990224de86e3dc7a543121a9
diff --git a/tests/ref/fate/filter-pixfmts-field b/tests/ref/fate/filter-pixfmts-field
index 380a53b9de9facb1dd430eb5fccaae5cb6014027..0225c15f2543886eb1eff848bbdf3a4bce64d42d 100644
--- a/tests/ref/fate/filter-pixfmts-field
+++ b/tests/ref/fate/filter-pixfmts-field
@@ -33,6 +33,8 @@ gbrp14le            ed9ccbc7a4f3e269a2ec37d210359fd8
 gbrp9be             170da3a8644cbea61c3caeadc45354c5
 gbrp9le             da5d80e6f12cabaa7081bb85d3b7fd30
 gray                57fd8e6e00f6be8752726005974cce1b
+gray10be            0f75355ec8be3e0787e27c5656fedfc7
+gray10le            28433b6788c33f9db70f84d927a3a77e
 gray12be            cb75ba58b07cdf33fb3a75f6c1f139eb
 gray12le            a243f45461d946e70c5a7f3f8eff37f1
 gray16be            e1700e056de9917744a7ff4ab2ca63fd
diff --git a/tests/ref/fate/filter-pixfmts-fieldorder b/tests/ref/fate/filter-pixfmts-fieldorder
index 6170916f262dc27bc930a0b5bbf6bdb739ca9914..1cc8e5b572306bdf2b580f8e1bd77219738b9259 100644
--- a/tests/ref/fate/filter-pixfmts-fieldorder
+++ b/tests/ref/fate/filter-pixfmts-fieldorder
@@ -33,6 +33,8 @@ gbrp14le            b01b1a05d8de36f51a133d25102fe1f3
 gbrp9be             b8d294d4bc81ceef1fb529e917c02e48
 gbrp9le             0d42cc9e222d806c33172781b45cb3e3
 gray                d96e0f1c73d3f0b9506d691b5cd36c73
+gray10be            3a460e670ebcf2373be499e15fe25843
+gray10le            74f61da347023482c36986c279b92df6
 gray12be            37950a95be3ada46b6404b1e1860fd93
 gray12le            c7431f01abd6e639bab036a46a18e423
 gray16be            293a36548ce16543494790f8f7f76a05
diff --git a/tests/ref/fate/filter-pixfmts-hflip b/tests/ref/fate/filter-pixfmts-hflip
index 1bde49c3fdd98f91fc451202874c2b254c33e352..762995a1c7148fcfa4390a97851c8c94e768d019 100644
--- a/tests/ref/fate/filter-pixfmts-hflip
+++ b/tests/ref/fate/filter-pixfmts-hflip
@@ -33,6 +33,8 @@ gbrp14le            91bb636f4e1f5d50312b136c185542e9
 gbrp9be             174de037c2a9f2b6fb4d9444ae0ff82f
 gbrp9le             ba7c2631fb2967aa909c66509bd243fe
 gray                8bd4ece1dbf89b20ee785e0515356e07
+gray10be            b75156463e3799e8eac19ca36032f4a2
+gray10le            e3f834c845d7060c71a3f1585437944c
 gray12be            aff18f944e023a767c59357eb362fab2
 gray12le            6a50f886754a32a01254bddbb0823880
 gray16be            cf7294d9aa23e1b838692ec01ade587b
diff --git a/tests/ref/fate/filter-pixfmts-il b/tests/ref/fate/filter-pixfmts-il
index 431a2a939152c56a6f0e0155cf1fa4a906ea2573..2b673b11fa5c0726527c9d18cae147755f9427d8 100644
--- a/tests/ref/fate/filter-pixfmts-il
+++ b/tests/ref/fate/filter-pixfmts-il
@@ -33,6 +33,8 @@ gbrp14le            bf3d5dec9b58cecd4ca1c5d3a4d57c31
 gbrp9be             f029d87fa642f4261160471ad27fd53f
 gbrp9le             b310d3cf37f7b41d706155993f8f0584
 gray                52ae18648161ac43144f5c9cd2127786
+gray10be            a71bf7a7317f4a1d195e5c9a9757934f
+gray10le            99fcbb9b5de29abccef4ffb0905cb528
 gray12be            cbff647cbf9693e95ce67ee663447afa
 gray12le            e44a1ed1755441ecf07ad7dbe2e033fa
 gray16be            92c3b09f371b610cc1b6a9776034f4d0
diff --git a/tests/ref/fate/filter-pixfmts-null b/tests/ref/fate/filter-pixfmts-null
index c39ea5122a11e0c0f28005104fdfa0f2276aa0f6..1ae44692ebb979d1e54f116a9a5fb4c19b69501e 100644
--- a/tests/ref/fate/filter-pixfmts-null
+++ b/tests/ref/fate/filter-pixfmts-null
@@ -33,6 +33,8 @@ gbrp14le            1607f5c8f13360b53b8186f523996b1b
 gbrp9be             a4dc6f6f9bb051de2dc348b592ad4282
 gbrp9le             699da3a3b324f3fd001a56aee9683384
 gray                188590b1231afd231ea910815aef2b25
+gray10be            8d594f0c6e886cce760689868f2523d4
+gray10le            a42744450d83943a7fa85fe179501548
 gray12be            fb9c00496453d233d2f0f0f81141bc31
 gray12le            c3cccaeb21ed9b894f9ef99ebebaf1cd
 gray16be            08d997a3faa25a3db9d6be272d282eef
diff --git a/tests/ref/fate/filter-pixfmts-pad b/tests/ref/fate/filter-pixfmts-pad
index 4bef06cc8273c8e9198233378006f8e52436018e..c13353618652f593b78e89b67a226f6b4a23fa74 100644
--- a/tests/ref/fate/filter-pixfmts-pad
+++ b/tests/ref/fate/filter-pixfmts-pad
@@ -14,6 +14,7 @@ gbrp12le            91fdad0d1edf7bfa2805e2041e8da3cd
 gbrp14le            deb2c3af6b48faa52f6a1f6590a0cdf7
 gbrp9le             9e827f438e081d334a6cae7e282698b0
 gray                ddc663a0491df3959d9c5795dceaa72e
+gray10le            32ca617a9ffda4bdbdef9a058f60e828
 gray12le            94b3d77e56b5a094720842fea6138cb1
 gray16le            468bda6155bdc7a7a20c34d6e599fd16
 nv12                381574979cb04be10c9168540310afad
diff --git a/tests/ref/fate/filter-pixfmts-scale b/tests/ref/fate/filter-pixfmts-scale
index 05f35127374311f71f19bc841a8e007b98cc60d6..b6bcad0b7dc46c54fa3c5cdd2309349b682781b2 100644
--- a/tests/ref/fate/filter-pixfmts-scale
+++ b/tests/ref/fate/filter-pixfmts-scale
@@ -33,6 +33,8 @@ gbrp14le            456f7d1ff5990aa6379137d84dd63862
 gbrp9be             d9c88968001e1452ff31fbc8d16b18a0
 gbrp9le             2ccfed0816bf6bd4bb3a5b7591d9603a
 gray                221201cc7cfc4964eacd8b3e426fd276
+gray10be            83b90b7dc2aa60352ad13fd45ed6ed6f
+gray10le            38334597d352b2117e6e3a012272ab4b
 gray12be            7ae04a6e966d23df34f95dc66507d334
 gray12le            255a75f40496c3adcd07700441dfc307
 gray16be            32891cb0928b1119d8d43a6e1bef0e2b
diff --git a/tests/ref/fate/filter-pixfmts-vflip b/tests/ref/fate/filter-pixfmts-vflip
index ed423fcbe1b79abed031143cb1f14927c7bab5ce..8de061f1a0c40110d7d4e3c9a70104293273542c 100644
--- a/tests/ref/fate/filter-pixfmts-vflip
+++ b/tests/ref/fate/filter-pixfmts-vflip
@@ -33,6 +33,8 @@ gbrp14le            6e93b87047e433995111eb5397751c3f
 gbrp9be             99c694dd47d12ae48fc8f47a0c410333
 gbrp9le             26e103a4ab99fb3f58667df490997a36
 gray                41811422d5819ed69389357294384c10
+gray10be            c29ddfe5615423296f089187752d763b
+gray10le            e2ecc50fff1cf4a8d7afe2e9beb1b8c5
 gray12be            29dd81b58b749d0037ba28430df77ded
 gray12le            989cb5cefd6aff20b732068e15ad2a88
 gray16be            29f24ba7cb0fc4fd2ae78963d008f6e6