Originally committed as revision 22220 to svn://svn.ffmpeg.org/ffmpeg/trunk
Janusz Krzysztofik authored on 2010/03/05 17:26:23... | ... |
@@ -240,6 +240,18 @@ static const PixFmtInfo pix_fmt_info[PIX_FMT_NB] = { |
240 | 240 |
.pixel_type = FF_PIXEL_PACKED, |
241 | 241 |
.depth = 5, |
242 | 242 |
}, |
243 |
+ [PIX_FMT_RGB444BE] = { |
|
244 |
+ .nb_channels = 3, |
|
245 |
+ .color_type = FF_COLOR_RGB, |
|
246 |
+ .pixel_type = FF_PIXEL_PACKED, |
|
247 |
+ .depth = 4, |
|
248 |
+ }, |
|
249 |
+ [PIX_FMT_RGB444LE] = { |
|
250 |
+ .nb_channels = 3, |
|
251 |
+ .color_type = FF_COLOR_RGB, |
|
252 |
+ .pixel_type = FF_PIXEL_PACKED, |
|
253 |
+ .depth = 4, |
|
254 |
+ }, |
|
243 | 255 |
|
244 | 256 |
/* gray / mono formats */ |
245 | 257 |
[PIX_FMT_GRAY16BE] = { |
... | ... |
@@ -316,6 +328,18 @@ static const PixFmtInfo pix_fmt_info[PIX_FMT_NB] = { |
316 | 316 |
.pixel_type = FF_PIXEL_PACKED, |
317 | 317 |
.depth = 5, |
318 | 318 |
}, |
319 |
+ [PIX_FMT_BGR444BE] = { |
|
320 |
+ .nb_channels = 3, |
|
321 |
+ .color_type = FF_COLOR_RGB, |
|
322 |
+ .pixel_type = FF_PIXEL_PACKED, |
|
323 |
+ .depth = 4, |
|
324 |
+ }, |
|
325 |
+ [PIX_FMT_BGR444LE] = { |
|
326 |
+ .nb_channels = 3, |
|
327 |
+ .color_type = FF_COLOR_RGB, |
|
328 |
+ .pixel_type = FF_PIXEL_PACKED, |
|
329 |
+ .depth = 4, |
|
330 |
+ }, |
|
319 | 331 |
[PIX_FMT_RGB8] = { |
320 | 332 |
.nb_channels = 1, |
321 | 333 |
.color_type = FF_COLOR_RGB, |
... | ... |
@@ -529,10 +553,14 @@ int ff_fill_linesize(AVPicture *picture, enum PixelFormat pix_fmt, int width) |
529 | 529 |
break; |
530 | 530 |
case PIX_FMT_GRAY16BE: |
531 | 531 |
case PIX_FMT_GRAY16LE: |
532 |
+ case PIX_FMT_BGR444BE: |
|
533 |
+ case PIX_FMT_BGR444LE: |
|
532 | 534 |
case PIX_FMT_BGR555BE: |
533 | 535 |
case PIX_FMT_BGR555LE: |
534 | 536 |
case PIX_FMT_BGR565BE: |
535 | 537 |
case PIX_FMT_BGR565LE: |
538 |
+ case PIX_FMT_RGB444BE: |
|
539 |
+ case PIX_FMT_RGB444LE: |
|
536 | 540 |
case PIX_FMT_RGB555BE: |
537 | 541 |
case PIX_FMT_RGB555LE: |
538 | 542 |
case PIX_FMT_RGB565BE: |
... | ... |
@@ -626,10 +654,14 @@ int ff_fill_pointer(AVPicture *picture, uint8_t *ptr, enum PixelFormat pix_fmt, |
626 | 626 |
case PIX_FMT_RGB48LE: |
627 | 627 |
case PIX_FMT_GRAY16BE: |
628 | 628 |
case PIX_FMT_GRAY16LE: |
629 |
+ case PIX_FMT_BGR444BE: |
|
630 |
+ case PIX_FMT_BGR444LE: |
|
629 | 631 |
case PIX_FMT_BGR555BE: |
630 | 632 |
case PIX_FMT_BGR555LE: |
631 | 633 |
case PIX_FMT_BGR565BE: |
632 | 634 |
case PIX_FMT_BGR565LE: |
635 |
+ case PIX_FMT_RGB444BE: |
|
636 |
+ case PIX_FMT_RGB444LE: |
|
633 | 637 |
case PIX_FMT_RGB555BE: |
634 | 638 |
case PIX_FMT_RGB555LE: |
635 | 639 |
case PIX_FMT_RGB565BE: |
... | ... |
@@ -699,10 +731,14 @@ int avpicture_layout(const AVPicture* src, enum PixelFormat pix_fmt, int width, |
699 | 699 |
pix_fmt == PIX_FMT_BGR565LE || |
700 | 700 |
pix_fmt == PIX_FMT_BGR555BE || |
701 | 701 |
pix_fmt == PIX_FMT_BGR555LE || |
702 |
+ pix_fmt == PIX_FMT_BGR444BE || |
|
703 |
+ pix_fmt == PIX_FMT_BGR444LE || |
|
702 | 704 |
pix_fmt == PIX_FMT_RGB565BE || |
703 | 705 |
pix_fmt == PIX_FMT_RGB565LE || |
704 | 706 |
pix_fmt == PIX_FMT_RGB555BE || |
705 |
- pix_fmt == PIX_FMT_RGB555LE) |
|
707 |
+ pix_fmt == PIX_FMT_RGB555LE || |
|
708 |
+ pix_fmt == PIX_FMT_RGB444BE || |
|
709 |
+ pix_fmt == PIX_FMT_RGB444LE) |
|
706 | 710 |
w = width * 2; |
707 | 711 |
else if (pix_fmt == PIX_FMT_UYYVYY411) |
708 | 712 |
w = width + width/2; |
... | ... |
@@ -838,10 +874,14 @@ static int avg_bits_per_pixel(enum PixelFormat pix_fmt) |
838 | 838 |
case PIX_FMT_RGB565LE: |
839 | 839 |
case PIX_FMT_RGB555BE: |
840 | 840 |
case PIX_FMT_RGB555LE: |
841 |
+ case PIX_FMT_RGB444BE: |
|
842 |
+ case PIX_FMT_RGB444LE: |
|
841 | 843 |
case PIX_FMT_BGR565BE: |
842 | 844 |
case PIX_FMT_BGR565LE: |
843 | 845 |
case PIX_FMT_BGR555BE: |
844 | 846 |
case PIX_FMT_BGR555LE: |
847 |
+ case PIX_FMT_BGR444BE: |
|
848 |
+ case PIX_FMT_BGR444LE: |
|
845 | 849 |
bits = 16; |
846 | 850 |
break; |
847 | 851 |
case PIX_FMT_UYYVYY411: |
... | ... |
@@ -958,10 +998,14 @@ int ff_get_plane_bytewidth(enum PixelFormat pix_fmt, int width, int plane) |
958 | 958 |
case PIX_FMT_RGB565LE: |
959 | 959 |
case PIX_FMT_RGB555BE: |
960 | 960 |
case PIX_FMT_RGB555LE: |
961 |
+ case PIX_FMT_RGB444BE: |
|
962 |
+ case PIX_FMT_RGB444LE: |
|
961 | 963 |
case PIX_FMT_BGR565BE: |
962 | 964 |
case PIX_FMT_BGR565LE: |
963 | 965 |
case PIX_FMT_BGR555BE: |
964 | 966 |
case PIX_FMT_BGR555LE: |
967 |
+ case PIX_FMT_BGR444BE: |
|
968 |
+ case PIX_FMT_BGR444LE: |
|
965 | 969 |
bits = 16; |
966 | 970 |
break; |
967 | 971 |
case PIX_FMT_UYYVYY411: |
... | ... |
@@ -594,6 +594,29 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { |
594 | 594 |
{0,1,1,0,4}, /* B */ |
595 | 595 |
}, |
596 | 596 |
}, |
597 |
+ [PIX_FMT_RGB444BE] = { |
|
598 |
+ .name = "rgb444be", |
|
599 |
+ .nb_components= 3, |
|
600 |
+ .log2_chroma_w= 0, |
|
601 |
+ .log2_chroma_h= 0, |
|
602 |
+ .comp = { |
|
603 |
+ {0,1,0,0,3}, /* R */ |
|
604 |
+ {0,1,1,4,3}, /* G */ |
|
605 |
+ {0,1,1,0,3}, /* B */ |
|
606 |
+ }, |
|
607 |
+ .flags = PIX_FMT_BE, |
|
608 |
+ }, |
|
609 |
+ [PIX_FMT_RGB444LE] = { |
|
610 |
+ .name = "rgb444le", |
|
611 |
+ .nb_components= 3, |
|
612 |
+ .log2_chroma_w= 0, |
|
613 |
+ .log2_chroma_h= 0, |
|
614 |
+ .comp = { |
|
615 |
+ {0,1,2,0,3}, /* R */ |
|
616 |
+ {0,1,1,4,3}, /* G */ |
|
617 |
+ {0,1,1,0,3}, /* B */ |
|
618 |
+ }, |
|
619 |
+ }, |
|
597 | 620 |
[PIX_FMT_BGR565BE] = { |
598 | 621 |
.name = "bgr565be", |
599 | 622 |
.nb_components= 3, |
... | ... |
@@ -640,6 +663,29 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { |
640 | 640 |
{0,1,1,0,4}, /* R */ |
641 | 641 |
}, |
642 | 642 |
}, |
643 |
+ [PIX_FMT_BGR444BE] = { |
|
644 |
+ .name = "bgr444be", |
|
645 |
+ .nb_components= 3, |
|
646 |
+ .log2_chroma_w= 0, |
|
647 |
+ .log2_chroma_h= 0, |
|
648 |
+ .comp = { |
|
649 |
+ {0,1,0,0,3}, /* B */ |
|
650 |
+ {0,1,1,4,3}, /* G */ |
|
651 |
+ {0,1,1,0,3}, /* R */ |
|
652 |
+ }, |
|
653 |
+ .flags = PIX_FMT_BE, |
|
654 |
+ }, |
|
655 |
+ [PIX_FMT_BGR444LE] = { |
|
656 |
+ .name = "bgr444le", |
|
657 |
+ .nb_components= 3, |
|
658 |
+ .log2_chroma_w= 0, |
|
659 |
+ .log2_chroma_h= 0, |
|
660 |
+ .comp = { |
|
661 |
+ {0,1,2,0,3}, /* B */ |
|
662 |
+ {0,1,1,4,3}, /* G */ |
|
663 |
+ {0,1,1,0,3}, /* R */ |
|
664 |
+ }, |
|
665 |
+ }, |
|
643 | 666 |
[PIX_FMT_VAAPI_MOCO] = { |
644 | 667 |
.name = "vaapi_moco", |
645 | 668 |
.log2_chroma_w = 1, |
... | ... |
@@ -127,6 +127,11 @@ enum PixelFormat { |
127 | 127 |
PIX_FMT_YUV444P16BE, ///< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian |
128 | 128 |
PIX_FMT_VDPAU_MPEG4, ///< MPEG4 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers |
129 | 129 |
PIX_FMT_DXVA2_VLD, ///< HW decoding through DXVA2, Picture.data[3] contains a LPDIRECT3DSURFACE9 pointer |
130 |
+ |
|
131 |
+ PIX_FMT_RGB444BE, ///< packed RGB 4:4:4, 16bpp, (msb)4A 4R 4G 4B(lsb), big-endian, most significant bits to 0 |
|
132 |
+ PIX_FMT_RGB444LE, ///< packed RGB 4:4:4, 16bpp, (msb)4A 4R 4G 4B(lsb), little-endian, most significant bits to 0 |
|
133 |
+ PIX_FMT_BGR444BE, ///< packed BGR 4:4:4, 16bpp, (msb)4A 4B 4G 4R(lsb), big-endian, most significant bits to 1 |
|
134 |
+ PIX_FMT_BGR444LE, ///< packed BGR 4:4:4, 16bpp, (msb)4A 4B 4G 4R(lsb), little-endian, most significant bits to 1 |
|
130 | 135 |
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 |
131 | 136 |
}; |
132 | 137 |
|
... | ... |
@@ -145,8 +150,10 @@ enum PixelFormat { |
145 | 145 |
#define PIX_FMT_RGB48 PIX_FMT_NE(RGB48BE, RGB48LE) |
146 | 146 |
#define PIX_FMT_RGB565 PIX_FMT_NE(RGB565BE, RGB565LE) |
147 | 147 |
#define PIX_FMT_RGB555 PIX_FMT_NE(RGB555BE, RGB555LE) |
148 |
+#define PIX_FMT_RGB444 PIX_FMT_NE(RGB444BE, RGB444LE) |
|
148 | 149 |
#define PIX_FMT_BGR565 PIX_FMT_NE(BGR565BE, BGR565LE) |
149 | 150 |
#define PIX_FMT_BGR555 PIX_FMT_NE(BGR555BE, BGR555LE) |
151 |
+#define PIX_FMT_BGR444 PIX_FMT_NE(BGR444BE, BGR444LE) |
|
150 | 152 |
|
151 | 153 |
#define PIX_FMT_YUV420P16 PIX_FMT_NE(YUV420P16BE, YUV420P16LE) |
152 | 154 |
#define PIX_FMT_YUV422P16 PIX_FMT_NE(YUV422P16BE, YUV422P16LE) |