diff --git a/libswscale/input.c b/libswscale/input.c index 28f0bafce3..1f4ea18578 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 9368832830..af82396b1c 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 6a09281e1c..b2bfc40c3d 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 a1d791b616..15cc56d5a4 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 9832cc8145..0d67738fa4 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 0000000000..81540c8ce4 --- /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 0000000000..c47b1833c2 --- /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 c39ea5122a..1ae44692eb 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 d4319b820f..7abdccce96 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 380a53b9de..0225c15f25 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 6170916f26..1cc8e5b572 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 1bde49c3fd..762995a1c7 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 431a2a9391..2b673b11fa 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 c39ea5122a..1ae44692eb 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 4bef06cc82..c133536186 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 05f3512737..b6bcad0b7d 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 ed423fcbe1..8de061f1a0 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