Browse Source

swscale: add gray14 support

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Paul B Mahol 6 years ago
parent
commit
b9dd058f7a

+ 2 - 0
libavcodec/raw.c

@@ -125,6 +125,8 @@ const PixelFormatTag ff_raw_pix_fmt_tags[] = {
     { AV_PIX_FMT_GRAY10BE,    MKTAG(10 ,  0 , '1', 'Y') },
     { AV_PIX_FMT_GRAY12LE,    MKTAG('Y', '1',  0 , 12 ) },
     { AV_PIX_FMT_GRAY12BE,    MKTAG(12 ,  0 , '1', 'Y') },
+    { AV_PIX_FMT_GRAY14LE,    MKTAG('Y', '1',  0 , 14 ) },
+    { AV_PIX_FMT_GRAY14BE,    MKTAG(14 ,  0 , '1', 'Y') },
     { AV_PIX_FMT_GRAY16LE,    MKTAG('Y', '1',  0 , 16 ) },
     { AV_PIX_FMT_GRAY16BE,    MKTAG(16 ,  0 , '1', 'Y') },
     { AV_PIX_FMT_YUV420P9LE,  MKTAG('Y', '3', 11 ,  9 ) },

+ 3 - 0
libavformat/nut.c

@@ -154,6 +154,9 @@ const AVCodecTag ff_nut_video_tags[] = {
     { AV_CODEC_ID_RAWVIDEO,         MKTAG('Y', '4',   0,  16) },
     { AV_CODEC_ID_RAWVIDEO,         MKTAG(16,    0, '4', 'Y') },
 
+    { AV_CODEC_ID_RAWVIDEO,         MKTAG('Y', '1',   0,  14) },
+    { AV_CODEC_ID_RAWVIDEO,         MKTAG(14,    0, '1', 'Y') },
+
     { AV_CODEC_ID_RAWVIDEO,         MKTAG('G', '3',   0,   8) },
 
     { AV_CODEC_ID_RAWVIDEO,         MKTAG('G', '3',   0,   9) },

+ 2 - 0
libswscale/input.c

@@ -1365,6 +1365,7 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c)
     case AV_PIX_FMT_GRAY9LE:
     case AV_PIX_FMT_GRAY10LE:
     case AV_PIX_FMT_GRAY12LE:
+    case AV_PIX_FMT_GRAY14LE:
     case AV_PIX_FMT_GRAY16LE:
 
     case AV_PIX_FMT_P016LE:
@@ -1404,6 +1405,7 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c)
     case AV_PIX_FMT_GRAY9BE:
     case AV_PIX_FMT_GRAY10BE:
     case AV_PIX_FMT_GRAY12BE:
+    case AV_PIX_FMT_GRAY14BE:
     case AV_PIX_FMT_GRAY16BE:
 
     case AV_PIX_FMT_P016BE:

+ 1 - 0
libswscale/swscale_unscaled.c

@@ -1852,6 +1852,7 @@ void ff_get_unscaled_swscale(SwsContext *c)
         IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GRAY9)  ||
         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_GRAY14) ||
         IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GRAY16) ||
         IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_YA16)   ||
         IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_AYUV64) ||

+ 4 - 0
libswscale/utils.c

@@ -137,6 +137,8 @@ static const FormatEntry format_entries[AV_PIX_FMT_NB] = {
     [AV_PIX_FMT_GRAY10LE]    = { 1, 1 },
     [AV_PIX_FMT_GRAY12BE]    = { 1, 1 },
     [AV_PIX_FMT_GRAY12LE]    = { 1, 1 },
+    [AV_PIX_FMT_GRAY14BE]    = { 1, 1 },
+    [AV_PIX_FMT_GRAY14LE]    = { 1, 1 },
     [AV_PIX_FMT_GRAY16BE]    = { 1, 1 },
     [AV_PIX_FMT_GRAY16LE]    = { 1, 1 },
     [AV_PIX_FMT_YUV440P]     = { 1, 1 },
@@ -1024,6 +1026,8 @@ static int handle_jpeg(enum AVPixelFormat *format)
     case AV_PIX_FMT_GRAY10BE:
     case AV_PIX_FMT_GRAY12LE:
     case AV_PIX_FMT_GRAY12BE:
+    case AV_PIX_FMT_GRAY14LE:
+    case AV_PIX_FMT_GRAY14BE:
     case AV_PIX_FMT_GRAY16LE:
     case AV_PIX_FMT_GRAY16BE:
     case AV_PIX_FMT_YA16BE:

+ 1 - 0
tests/ref/fate/filter-pixdesc-gray14be

@@ -0,0 +1 @@
+pixdesc-gray14be    6c9faae02a63f17d78ae6bff2866c0c1

+ 1 - 0
tests/ref/fate/filter-pixdesc-gray14le

@@ -0,0 +1 @@
+pixdesc-gray14le    713c6b98b8f22a0716bf3541fb311936

+ 2 - 0
tests/ref/fate/filter-pixfmts-copy

@@ -41,6 +41,8 @@ gray10be            d486558ecd2e27afc17930be861f0e4c
 gray10le            917d687103b2adcca7132bfc070ca54a
 gray12be            9685614450f1282be433d2b07234ca1f
 gray12le            2700bd7fb3fea56e54eb03e31d6d4e57
+gray14be            19ed2bf25878980d6f81f6ae699024ec
+gray14le            4b148b26b30040c05dc248a8852f31ac
 gray16be            08d997a3faa25a3db9d6be272d282eef
 gray16le            df65eb804360795e3e38a2701fa9641a
 gray9be             6382a14594a8b68f0ec7de25531f9334

+ 2 - 0
tests/ref/fate/filter-pixfmts-crop

@@ -41,6 +41,8 @@ gray10be            18ed76cab145ab9058cc353fcec6d3c4
 gray10le            fd83f7489880160783ddb125615b4638
 gray12be            472700c26cc49b8d5f74af141f6a0d38
 gray12le            4f6537fe1f32b3963350f8c435009433
+gray14be            302b5b534f64ee15fffe2d3818e8c29c
+gray14le            9c205ae791cbb9e479beb0ece236c05f
 gray16be            38f599da990224de86e3dc7a543121a9
 gray16le            9ff7c866bd98def4e6c91542c1c45f80
 gray9be             8ffcb18d699480f55414bfc21ab33321

+ 2 - 0
tests/ref/fate/filter-pixfmts-field

@@ -41,6 +41,8 @@ gray10be            437713f3d081238cddb738e106e5a27d
 gray10le            c749b80049b152f4ba3e66a72c0c5acc
 gray12be            d34c50810b37e6f97dffdf6a8ab958de
 gray12le            cf71b8fee47ce7821f3ae9f9b62ae39a
+gray14be            2644f330259d70793d789b8dc3c01226
+gray14le            7776a471945d303088012cbc2ff2a2d0
 gray16be            e1700e056de9917744a7ff4ab2ca63fd
 gray16le            338de7ac5f7d36d5ad5ac2c8d5bbea68
 gray9be             25e50940fa300a8f09edfb6eba4fd250

Some files were not shown because too many files changed in this diff