History

sws/pixfmt/pixdesc: add support for yuv420p9le/be.

Ronald S. Bultje committed 15 years ago

Commit dc49bf11 parent e85297e11 files · +48 −0Browse files

Unified · Split

11 files
  1. libavcodec/utils.c +2 −0
  2. libavutil/pixdesc.c +23 −0
  3. libavutil/pixfmt.h +3 −0
  4. libswscale/swscale.c +4 −0
  5. libswscale/swscale_internal.h +4 −0
  6. libswscale/utils.c +2 −0
  7. tests/ref/lavfi/pixdesc +2 −0
  8. tests/ref/lavfi/pixfmts_copy +2 −0
  9. tests/ref/lavfi/pixfmts_null +2 −0
  10. tests/ref/lavfi/pixfmts_scale +2 −0
  11. tests/ref/lavfi/pixfmts_vflip +2 −0
libavcodec/utils.c+2−0
@@ -158,6 +158,8 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, int l · 157 unmodified lines
158 case PIX_FMT_YUV420P9BE:158 case PIX_FMT_YUV420P9BE:
159 case PIX_FMT_YUV420P10LE:159 case PIX_FMT_YUV420P10LE:
160 case PIX_FMT_YUV420P10BE:160 case PIX_FMT_YUV420P10BE:
161 case PIX_FMT_YUV422P9LE:
162 case PIX_FMT_YUV422P9BE:
161 case PIX_FMT_YUV422P10LE:163 case PIX_FMT_YUV422P10LE:
162 case PIX_FMT_YUV422P10BE:164 case PIX_FMT_YUV422P10BE:
163 case PIX_FMT_YUV444P9LE:165 case PIX_FMT_YUV444P9LE:
libavutil/pixdesc.c+23−0
@@ -809,6 +809,29 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { · 808 unmodified lines
809 },809 },
810 .flags = PIX_FMT_BE,810 .flags = PIX_FMT_BE,
811 },811 },
812 [PIX_FMT_YUV422P9LE] = {
813 .name = "yuv422p9le",
814 .nb_components= 3,
815 .log2_chroma_w= 1,
816 .log2_chroma_h= 0,
817 .comp = {
818 {0,1,1,0,8}, /* Y */
819 {1,1,1,0,8}, /* U */
820 {2,1,1,0,8}, /* V */
821 },
822 },
823 [PIX_FMT_YUV422P9BE] = {
824 .name = "yuv422p9be",
825 .nb_components= 3,
826 .log2_chroma_w= 1,
827 .log2_chroma_h= 0,
828 .comp = {
829 {0,1,1,0,8}, /* Y */
830 {1,1,1,0,8}, /* U */
831 {2,1,1,0,8}, /* V */
832 },
833 .flags = PIX_FMT_BE,
834 },
812 [PIX_FMT_YUV422P10LE] = {835 [PIX_FMT_YUV422P10LE] = {
813 .name = "yuv422p10le",836 .name = "yuv422p10le",
814 .nb_components= 3,837 .nb_components= 3,
libavutil/pixfmt.h+3−0
@@ -145,6 +145,8 @@ enum PixelFormat { · 144 unmodified lines
145 PIX_FMT_YUV444P9LE, ///< planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian145 PIX_FMT_YUV444P9LE, ///< planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
146 PIX_FMT_YUV444P10BE,///< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian146 PIX_FMT_YUV444P10BE,///< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
147 PIX_FMT_YUV444P10LE,///< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian147 PIX_FMT_YUV444P10LE,///< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
148 PIX_FMT_YUV422P9BE, ///< planar YUV 4:2:2, 18bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
149 PIX_FMT_YUV422P9LE, ///< planar YUV 4:2:2, 18bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
148 PIX_FMT_NB, ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions150 PIX_FMT_NB, ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions
149};151};
150 152
@@ -170,6 +172,7 @@ enum PixelFormat { · 19 unmodified lines
170#define PIX_FMT_BGR444 PIX_FMT_NE(BGR444BE, BGR444LE)172#define PIX_FMT_BGR444 PIX_FMT_NE(BGR444BE, BGR444LE)
171 173
172#define PIX_FMT_YUV420P9 PIX_FMT_NE(YUV420P9BE , YUV420P9LE)174#define PIX_FMT_YUV420P9 PIX_FMT_NE(YUV420P9BE , YUV420P9LE)
175#define PIX_FMT_YUV422P9 PIX_FMT_NE(YUV422P9BE , YUV422P9LE)
173#define PIX_FMT_YUV444P9 PIX_FMT_NE(YUV444P9BE , YUV444P9LE)176#define PIX_FMT_YUV444P9 PIX_FMT_NE(YUV444P9BE , YUV444P9LE)
174#define PIX_FMT_YUV420P10 PIX_FMT_NE(YUV420P10BE, YUV420P10LE)177#define PIX_FMT_YUV420P10 PIX_FMT_NE(YUV420P10BE, YUV420P10LE)
175#define PIX_FMT_YUV422P10 PIX_FMT_NE(YUV422P10BE, YUV422P10LE)178#define PIX_FMT_YUV422P10 PIX_FMT_NE(YUV422P10BE, YUV422P10LE)
libswscale/swscale.c+4−0
@@ -2662,6 +2662,7 @@ static av_cold void sws_init_swScale_c(SwsContext *c) · 2661 unmodified lines
2662 case PIX_FMT_RGB4_BYTE: c->chrToYV12 = palToUV_c; break;2662 case PIX_FMT_RGB4_BYTE: c->chrToYV12 = palToUV_c; break;
2663#if HAVE_BIGENDIAN2663#if HAVE_BIGENDIAN
2664 case PIX_FMT_YUV444P9LE:2664 case PIX_FMT_YUV444P9LE:
2665 case PIX_FMT_YUV422P9LE:
2665 case PIX_FMT_YUV420P9LE:2666 case PIX_FMT_YUV420P9LE:
2666 case PIX_FMT_YUV422P10LE:2667 case PIX_FMT_YUV422P10LE:
2667 case PIX_FMT_YUV444P10LE:2668 case PIX_FMT_YUV444P10LE:
@@ -2671,6 +2672,7 @@ static av_cold void sws_init_swScale_c(SwsContext *c) · 3 unmodified lines
2671 case PIX_FMT_YUV444P16LE: c->chrToYV12 = bswap16UV_c; break;2672 case PIX_FMT_YUV444P16LE: c->chrToYV12 = bswap16UV_c; break;
2672#else2673#else
2673 case PIX_FMT_YUV444P9BE:2674 case PIX_FMT_YUV444P9BE:
2675 case PIX_FMT_YUV422P9BE:
2674 case PIX_FMT_YUV420P9BE:2676 case PIX_FMT_YUV420P9BE:
2675 case PIX_FMT_YUV444P10BE:2677 case PIX_FMT_YUV444P10BE:
2676 case PIX_FMT_YUV422P10BE:2678 case PIX_FMT_YUV422P10BE:
@@ -2729,6 +2731,7 @@ static av_cold void sws_init_swScale_c(SwsContext *c) · 52 unmodified lines
2729 switch (srcFormat) {2731 switch (srcFormat) {
2730#if HAVE_BIGENDIAN2732#if HAVE_BIGENDIAN
2731 case PIX_FMT_YUV444P9LE:2733 case PIX_FMT_YUV444P9LE:
2734 case PIX_FMT_YUV422P9LE:
2732 case PIX_FMT_YUV420P9LE:2735 case PIX_FMT_YUV420P9LE:
2733 case PIX_FMT_YUV444P10LE:2736 case PIX_FMT_YUV444P10LE:
2734 case PIX_FMT_YUV422P10LE:2737 case PIX_FMT_YUV422P10LE:
@@ -2739,6 +2742,7 @@ static av_cold void sws_init_swScale_c(SwsContext *c) · 4 unmodified lines
2739 case PIX_FMT_GRAY16LE: c->lumToYV12 = bswap16Y_c; break;2742 case PIX_FMT_GRAY16LE: c->lumToYV12 = bswap16Y_c; break;
2740#else2743#else
2741 case PIX_FMT_YUV444P9BE:2744 case PIX_FMT_YUV444P9BE:
2745 case PIX_FMT_YUV422P9BE:
2742 case PIX_FMT_YUV420P9BE:2746 case PIX_FMT_YUV420P9BE:
2743 case PIX_FMT_YUV444P10BE:2747 case PIX_FMT_YUV444P10BE:
2744 case PIX_FMT_YUV422P10BE:2748 case PIX_FMT_YUV422P10BE:
libswscale/swscale_internal.h+4−0
@@ -535,6 +535,8 @@ const char *sws_format_name(enum PixelFormat format); · 534 unmodified lines
535#define is9_OR_10BPS(x) ( \535#define is9_OR_10BPS(x) ( \
536 (x)==PIX_FMT_YUV420P9LE \536 (x)==PIX_FMT_YUV420P9LE \
537 || (x)==PIX_FMT_YUV420P9BE \537 || (x)==PIX_FMT_YUV420P9BE \
538 || (x)==PIX_FMT_YUV422P9LE \
539 || (x)==PIX_FMT_YUV422P9BE \
538 || (x)==PIX_FMT_YUV444P9BE \540 || (x)==PIX_FMT_YUV444P9BE \
539 || (x)==PIX_FMT_YUV444P9LE \541 || (x)==PIX_FMT_YUV444P9LE \
540 || (x)==PIX_FMT_YUV422P10BE \542 || (x)==PIX_FMT_YUV422P10BE \
@@ -559,6 +561,7 @@ const char *sws_format_name(enum PixelFormat format); · 18 unmodified lines
559#define isPlanarYUV(x) ( \561#define isPlanarYUV(x) ( \
560 isPlanar8YUV(x) \562 isPlanar8YUV(x) \
561 || (x)==PIX_FMT_YUV420P9LE \563 || (x)==PIX_FMT_YUV420P9LE \
564 || (x)==PIX_FMT_YUV422P9LE \
562 || (x)==PIX_FMT_YUV444P9LE \565 || (x)==PIX_FMT_YUV444P9LE \
563 || (x)==PIX_FMT_YUV420P10LE \566 || (x)==PIX_FMT_YUV420P10LE \
564 || (x)==PIX_FMT_YUV422P10LE \567 || (x)==PIX_FMT_YUV422P10LE \
@@ -567,6 +570,7 @@ const char *sws_format_name(enum PixelFormat format); · 2 unmodified lines
567 || (x)==PIX_FMT_YUV422P16LE \570 || (x)==PIX_FMT_YUV422P16LE \
568 || (x)==PIX_FMT_YUV444P16LE \571 || (x)==PIX_FMT_YUV444P16LE \
569 || (x)==PIX_FMT_YUV420P9BE \572 || (x)==PIX_FMT_YUV420P9BE \
573 || (x)==PIX_FMT_YUV422P9BE \
570 || (x)==PIX_FMT_YUV444P9BE \574 || (x)==PIX_FMT_YUV444P9BE \
571 || (x)==PIX_FMT_YUV420P10BE \575 || (x)==PIX_FMT_YUV420P10BE \
572 || (x)==PIX_FMT_YUV422P10BE \576 || (x)==PIX_FMT_YUV422P10BE \
libswscale/utils.c+2−0
@@ -129,6 +129,8 @@ const static FormatEntry format_entries[PIX_FMT_NB] = { · 128 unmodified lines
129 [PIX_FMT_YUV420P9LE] = { 1 , 1 },129 [PIX_FMT_YUV420P9LE] = { 1 , 1 },
130 [PIX_FMT_YUV420P10BE] = { 1 , 1 },130 [PIX_FMT_YUV420P10BE] = { 1 , 1 },
131 [PIX_FMT_YUV420P10LE] = { 1 , 1 },131 [PIX_FMT_YUV420P10LE] = { 1 , 1 },
132 [PIX_FMT_YUV422P9BE] = { 1 , 1 },
133 [PIX_FMT_YUV422P9LE] = { 1 , 1 },
132 [PIX_FMT_YUV422P10BE] = { 1 , 1 },134 [PIX_FMT_YUV422P10BE] = { 1 , 1 },
133 [PIX_FMT_YUV422P10LE] = { 1 , 1 },135 [PIX_FMT_YUV422P10LE] = { 1 , 1 },
134 [PIX_FMT_YUV444P9BE] = { 1 , 1 },136 [PIX_FMT_YUV444P9BE] = { 1 , 1 },
tests/ref/lavfi/pixdesc+2−0
@@ -42,6 +42,8 @@ yuv422p10be bdc13b630fd668b34c6fe1aae28dfc71 · 41 unmodified lines
42yuv422p10le d0607c260a45c973e6639f4e449730ad42yuv422p10le d0607c260a45c973e6639f4e449730ad
43yuv422p16be 4e9b3b3467aeebb6a528cee5966800ed43yuv422p16be 4e9b3b3467aeebb6a528cee5966800ed
44yuv422p16le f87c81bf16916b64d201359be0b4b6f444yuv422p16le f87c81bf16916b64d201359be0b4b6f4
45yuv422p9be 29b71579946940a8c00fa844c9dff507
46yuv422p9le 062b7f9cbb972bf36b5bdb1a7623701a
45yuv440p 5a064afe2b453bb52cdb3f176b1aa1cf47yuv440p 5a064afe2b453bb52cdb3f176b1aa1cf
46yuv444p 0a98447b78fd476aa39686da6a74fa2e48yuv444p 0a98447b78fd476aa39686da6a74fa2e
47yuv444p10be e65cbae7e4f1892c23defbc8e8052cf649yuv444p10be e65cbae7e4f1892c23defbc8e8052cf6
tests/ref/lavfi/pixfmts_copy+2−0
@@ -42,6 +42,8 @@ yuv422p10be bdc13b630fd668b34c6fe1aae28dfc71 · 41 unmodified lines
42yuv422p10le d0607c260a45c973e6639f4e449730ad42yuv422p10le d0607c260a45c973e6639f4e449730ad
43yuv422p16be 4e9b3b3467aeebb6a528cee5966800ed43yuv422p16be 4e9b3b3467aeebb6a528cee5966800ed
44yuv422p16le f87c81bf16916b64d201359be0b4b6f444yuv422p16le f87c81bf16916b64d201359be0b4b6f4
45yuv422p9be 29b71579946940a8c00fa844c9dff507
46yuv422p9le 062b7f9cbb972bf36b5bdb1a7623701a
45yuv440p 5a064afe2b453bb52cdb3f176b1aa1cf47yuv440p 5a064afe2b453bb52cdb3f176b1aa1cf
46yuv444p 0a98447b78fd476aa39686da6a74fa2e48yuv444p 0a98447b78fd476aa39686da6a74fa2e
47yuv444p10be e65cbae7e4f1892c23defbc8e8052cf649yuv444p10be e65cbae7e4f1892c23defbc8e8052cf6
tests/ref/lavfi/pixfmts_null+2−0
@@ -42,6 +42,8 @@ yuv422p10be bdc13b630fd668b34c6fe1aae28dfc71 · 41 unmodified lines
42yuv422p10le d0607c260a45c973e6639f4e449730ad42yuv422p10le d0607c260a45c973e6639f4e449730ad
43yuv422p16be 4e9b3b3467aeebb6a528cee5966800ed43yuv422p16be 4e9b3b3467aeebb6a528cee5966800ed
44yuv422p16le f87c81bf16916b64d201359be0b4b6f444yuv422p16le f87c81bf16916b64d201359be0b4b6f4
45yuv422p9be 29b71579946940a8c00fa844c9dff507
46yuv422p9le 062b7f9cbb972bf36b5bdb1a7623701a
45yuv440p 5a064afe2b453bb52cdb3f176b1aa1cf47yuv440p 5a064afe2b453bb52cdb3f176b1aa1cf
46yuv444p 0a98447b78fd476aa39686da6a74fa2e48yuv444p 0a98447b78fd476aa39686da6a74fa2e
47yuv444p10be e65cbae7e4f1892c23defbc8e8052cf649yuv444p10be e65cbae7e4f1892c23defbc8e8052cf6
tests/ref/lavfi/pixfmts_scale+2−0
@@ -42,6 +42,8 @@ yuv422p10be cea7ca6b0e66d6f29539885896c88603 · 41 unmodified lines
42yuv422p10le a10c4a5837547716f13cd61918b145f942yuv422p10le a10c4a5837547716f13cd61918b145f9
43yuv422p16be 285993ee0c0f4f8e511ee46f93c5f38c43yuv422p16be 285993ee0c0f4f8e511ee46f93c5f38c
44yuv422p16le 61bfcee8e54465f760164f5a75d40b5e44yuv422p16le 61bfcee8e54465f760164f5a75d40b5e
45yuv422p9be 82494823944912f73cebc58ad2979bbd
46yuv422p9le fc69c8a21f473916a4b4225636b97e06
45yuv440p 461503fdb9b90451020aa3b25ddf041c47yuv440p 461503fdb9b90451020aa3b25ddf041c
46yuv444p 81b2eba962d12e8d64f003ac56f6faf248yuv444p 81b2eba962d12e8d64f003ac56f6faf2
47yuv444p10be e9d3c8e744b8b0d8187ca092fa203fc949yuv444p10be e9d3c8e744b8b0d8187ca092fa203fc9
tests/ref/lavfi/pixfmts_vflip+2−0
@@ -42,6 +42,8 @@ yuv422p10be 588fe319b96513c32e21d3e32b45447f · 41 unmodified lines
42yuv422p10le 11b57f2bd9661024153f3973b9090cdb42yuv422p10le 11b57f2bd9661024153f3973b9090cdb
43yuv422p16be c092d083548c2a144c372a98c46875c743yuv422p16be c092d083548c2a144c372a98c46875c7
44yuv422p16le c071b9397a416d51cbe339345cbcba8444yuv422p16le c071b9397a416d51cbe339345cbcba84
45yuv422p9be 7c6f1e140b3999ee7d923854e507752a
46yuv422p9le 51f10d79c07989060dd06e767e6d7d60
45yuv440p 876385e96165acf51271b20e5d85a41647yuv440p 876385e96165acf51271b20e5d85a416
46yuv444p 9c3c667d1613b72d15bc6d851c5eb8f748yuv444p 9c3c667d1613b72d15bc6d851c5eb8f7
47yuv444p10be 944a4997c4edb3a8dd0f0493cfd5a1fd49yuv444p10be 944a4997c4edb3a8dd0f0493cfd5a1fd

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t