Mercurial > libavcodec.hg
comparison imgconvert.c @ 10043:5d5562aa94df libavcodec
Use RGB5x5LE, RGB5x5BE, BGR5x5LE and BGR5x5BE instead of their native
endian counterparts.
Patch by Alexis Ballier, alexis D ballier gmail
author | cehoyos |
---|---|
date | Tue, 11 Aug 2009 16:18:55 +0000 |
parents | 266bf83f634d |
children | 399b5d6b5439 |
comparison
equal
deleted
inserted
replaced
10042:37485479bb6e | 10043:5d5562aa94df |
---|---|
700 case PIX_FMT_RGB48LE: | 700 case PIX_FMT_RGB48LE: |
701 picture->linesize[0] = width * 6; | 701 picture->linesize[0] = width * 6; |
702 break; | 702 break; |
703 case PIX_FMT_GRAY16BE: | 703 case PIX_FMT_GRAY16BE: |
704 case PIX_FMT_GRAY16LE: | 704 case PIX_FMT_GRAY16LE: |
705 case PIX_FMT_BGR555: | 705 case PIX_FMT_BGR555BE: |
706 case PIX_FMT_BGR565: | 706 case PIX_FMT_BGR555LE: |
707 case PIX_FMT_RGB555: | 707 case PIX_FMT_BGR565BE: |
708 case PIX_FMT_RGB565: | 708 case PIX_FMT_BGR565LE: |
709 case PIX_FMT_RGB555BE: | |
710 case PIX_FMT_RGB555LE: | |
711 case PIX_FMT_RGB565BE: | |
712 case PIX_FMT_RGB565LE: | |
709 case PIX_FMT_YUYV422: | 713 case PIX_FMT_YUYV422: |
710 picture->linesize[0] = width * 2; | 714 picture->linesize[0] = width * 2; |
711 break; | 715 break; |
712 case PIX_FMT_UYVY422: | 716 case PIX_FMT_UYVY422: |
713 picture->linesize[0] = width * 2; | 717 picture->linesize[0] = width * 2; |
794 case PIX_FMT_BGRA: | 798 case PIX_FMT_BGRA: |
795 case PIX_FMT_RGB48BE: | 799 case PIX_FMT_RGB48BE: |
796 case PIX_FMT_RGB48LE: | 800 case PIX_FMT_RGB48LE: |
797 case PIX_FMT_GRAY16BE: | 801 case PIX_FMT_GRAY16BE: |
798 case PIX_FMT_GRAY16LE: | 802 case PIX_FMT_GRAY16LE: |
799 case PIX_FMT_BGR555: | 803 case PIX_FMT_BGR555BE: |
800 case PIX_FMT_BGR565: | 804 case PIX_FMT_BGR555LE: |
801 case PIX_FMT_RGB555: | 805 case PIX_FMT_BGR565BE: |
802 case PIX_FMT_RGB565: | 806 case PIX_FMT_BGR565LE: |
807 case PIX_FMT_RGB555BE: | |
808 case PIX_FMT_RGB555LE: | |
809 case PIX_FMT_RGB565BE: | |
810 case PIX_FMT_RGB565LE: | |
803 case PIX_FMT_YUYV422: | 811 case PIX_FMT_YUYV422: |
804 case PIX_FMT_UYVY422: | 812 case PIX_FMT_UYVY422: |
805 case PIX_FMT_UYYVYY411: | 813 case PIX_FMT_UYYVYY411: |
806 case PIX_FMT_RGB4: | 814 case PIX_FMT_RGB4: |
807 case PIX_FMT_BGR4: | 815 case PIX_FMT_BGR4: |
858 return -1; | 866 return -1; |
859 | 867 |
860 if (pf->pixel_type == FF_PIXEL_PACKED || pf->pixel_type == FF_PIXEL_PALETTE) { | 868 if (pf->pixel_type == FF_PIXEL_PACKED || pf->pixel_type == FF_PIXEL_PALETTE) { |
861 if (pix_fmt == PIX_FMT_YUYV422 || | 869 if (pix_fmt == PIX_FMT_YUYV422 || |
862 pix_fmt == PIX_FMT_UYVY422 || | 870 pix_fmt == PIX_FMT_UYVY422 || |
863 pix_fmt == PIX_FMT_BGR565 || | 871 pix_fmt == PIX_FMT_BGR565BE || |
864 pix_fmt == PIX_FMT_BGR555 || | 872 pix_fmt == PIX_FMT_BGR565LE || |
865 pix_fmt == PIX_FMT_RGB565 || | 873 pix_fmt == PIX_FMT_BGR555BE || |
866 pix_fmt == PIX_FMT_RGB555) | 874 pix_fmt == PIX_FMT_BGR555LE || |
875 pix_fmt == PIX_FMT_RGB565BE || | |
876 pix_fmt == PIX_FMT_RGB565LE || | |
877 pix_fmt == PIX_FMT_RGB555BE || | |
878 pix_fmt == PIX_FMT_RGB555LE) | |
867 w = width * 2; | 879 w = width * 2; |
868 else if (pix_fmt == PIX_FMT_UYYVYY411) | 880 else if (pix_fmt == PIX_FMT_UYYVYY411) |
869 w = width + width/2; | 881 w = width + width/2; |
870 else if (pix_fmt == PIX_FMT_PAL8) | 882 else if (pix_fmt == PIX_FMT_PAL8) |
871 w = width; | 883 w = width; |
932 | 944 |
933 /* compute loss */ | 945 /* compute loss */ |
934 loss = 0; | 946 loss = 0; |
935 pf = &pix_fmt_info[dst_pix_fmt]; | 947 pf = &pix_fmt_info[dst_pix_fmt]; |
936 if (pf->depth < ps->depth || | 948 if (pf->depth < ps->depth || |
937 (dst_pix_fmt == PIX_FMT_RGB555 && src_pix_fmt == PIX_FMT_RGB565)) | 949 ((dst_pix_fmt == PIX_FMT_RGB555BE || dst_pix_fmt == PIX_FMT_RGB555LE) && |
950 (src_pix_fmt == PIX_FMT_RGB565BE || src_pix_fmt == PIX_FMT_RGB565LE))) | |
938 loss |= FF_LOSS_DEPTH; | 951 loss |= FF_LOSS_DEPTH; |
939 if (pf->x_chroma_shift > ps->x_chroma_shift || | 952 if (pf->x_chroma_shift > ps->x_chroma_shift || |
940 pf->y_chroma_shift > ps->y_chroma_shift) | 953 pf->y_chroma_shift > ps->y_chroma_shift) |
941 loss |= FF_LOSS_RESOLUTION; | 954 loss |= FF_LOSS_RESOLUTION; |
942 switch(pf->color_type) { | 955 switch(pf->color_type) { |
985 switch(pf->pixel_type) { | 998 switch(pf->pixel_type) { |
986 case FF_PIXEL_PACKED: | 999 case FF_PIXEL_PACKED: |
987 switch(pix_fmt) { | 1000 switch(pix_fmt) { |
988 case PIX_FMT_YUYV422: | 1001 case PIX_FMT_YUYV422: |
989 case PIX_FMT_UYVY422: | 1002 case PIX_FMT_UYVY422: |
990 case PIX_FMT_RGB565: | 1003 case PIX_FMT_RGB565BE: |
991 case PIX_FMT_RGB555: | 1004 case PIX_FMT_RGB565LE: |
992 case PIX_FMT_BGR565: | 1005 case PIX_FMT_RGB555BE: |
993 case PIX_FMT_BGR555: | 1006 case PIX_FMT_RGB555LE: |
1007 case PIX_FMT_BGR565BE: | |
1008 case PIX_FMT_BGR565LE: | |
1009 case PIX_FMT_BGR555BE: | |
1010 case PIX_FMT_BGR555LE: | |
994 bits = 16; | 1011 bits = 16; |
995 break; | 1012 break; |
996 case PIX_FMT_UYYVYY411: | 1013 case PIX_FMT_UYYVYY411: |
997 bits = 12; | 1014 bits = 12; |
998 break; | 1015 break; |
1100 switch(pf->pixel_type) { | 1117 switch(pf->pixel_type) { |
1101 case FF_PIXEL_PACKED: | 1118 case FF_PIXEL_PACKED: |
1102 switch(pix_fmt) { | 1119 switch(pix_fmt) { |
1103 case PIX_FMT_YUYV422: | 1120 case PIX_FMT_YUYV422: |
1104 case PIX_FMT_UYVY422: | 1121 case PIX_FMT_UYVY422: |
1105 case PIX_FMT_RGB565: | 1122 case PIX_FMT_RGB565BE: |
1106 case PIX_FMT_RGB555: | 1123 case PIX_FMT_RGB565LE: |
1107 case PIX_FMT_BGR565: | 1124 case PIX_FMT_RGB555BE: |
1108 case PIX_FMT_BGR555: | 1125 case PIX_FMT_RGB555LE: |
1126 case PIX_FMT_BGR565BE: | |
1127 case PIX_FMT_BGR565LE: | |
1128 case PIX_FMT_BGR555BE: | |
1129 case PIX_FMT_BGR555LE: | |
1109 bits = 16; | 1130 bits = 16; |
1110 break; | 1131 break; |
1111 case PIX_FMT_UYYVYY411: | 1132 case PIX_FMT_UYYVYY411: |
1112 bits = 12; | 1133 bits = 12; |
1113 break; | 1134 break; |