2 * This library is free software; you can redistribute it and/or modify it
3 * under the terms of the GNU Lesser General Public License as published
4 * by the Free Software Foundation; either version 2 of the License, or
5 * (at your option) any later version.
7 * This library is distributed in the hope that it will be useful, but
8 * WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10 * Lesser General Public License for more details.
12 * You should have received a copy of the GNU Lesser General Public
13 * License along with this library; if not, write to the Free Software
14 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
17 #include "cmodel_permutation.h"
27 // ********************************* YUV101010 -> *****************************
29 #define READ_YUV101010 \
31 uint32_t input_i = input[0] | \
36 y = ((input_i & 0xffc00000) >> 16) | 0x3f; \
37 u = ((input_i & 0x3ff000) >> 6) | 0x3f; \
38 v = ((input_i & 0xffc) << 4) | 0x3f;
45 static inline void transfer_YUV101010_to_RGB8(unsigned char *(*output
), unsigned char *input
)
51 y
= (y
<< 8) | (y
>> 8);
53 YUV_TO_RGB16(y
, u
, v
, r
, g
, b
);
55 *(*output
)++ = (unsigned char)(((input
[0] & 0xc000) >> 8) +
56 ((input
[1] & 0xe000) >> 10) +
57 ((input
[2] & 0xe000) >> 13));
60 static inline void transfer_YUV101010_to_BGR565(unsigned char *(*output
), unsigned char *input
)
66 y
= (y
<< 8) | (y
>> 8);
68 YUV_TO_RGB16(y
, u
, v
, r
, g
, b
);
70 *(uint16_t*)(*output
) = (b
& 0xf800) |
76 static inline void transfer_YUV101010_to_RGB565(unsigned char *(*output
), unsigned char *input
)
82 y
= (y
<< 8) | (y
>> 8);
84 YUV_TO_RGB16(y
, u
, v
, r
, g
, b
);
86 *(uint16_t*)(*output
) = (r
& 0xf800) |
92 static inline void transfer_YUV101010_to_BGR888(unsigned char *(*output
), unsigned char *input
)
98 y
= (y
<< 8) | (y
>> 8);
100 YUV_TO_RGB16(y
, u
, v
, r
, g
, b
);
102 *(*output
)++ = b
>> 8;
103 *(*output
)++ = g
>> 8;
104 *(*output
)++ = r
>> 8;
107 static inline void transfer_YUV101010_to_BGR8888(unsigned char *(*output
), unsigned char *input
)
113 y
= (y
<< 8) | (y
>> 8);
115 YUV_TO_RGB16(y
, u
, v
, r
, g
, b
);
117 *(*output
)++ = b
>> 8;
118 *(*output
)++ = g
>> 8;
119 *(*output
)++ = r
>> 8;
123 static inline void transfer_YUV101010_to_YUV888(unsigned char *(*output
), unsigned char *input
)
127 *(*output
)++ = y
>> 8;
128 *(*output
)++ = u
>> 8;
129 *(*output
)++ = v
>> 8;
132 static inline void transfer_YUV101010_to_YUVA8888(unsigned char *(*output
), unsigned char *input
)
136 *(*output
)++ = y
>> 8;
137 *(*output
)++ = u
>> 8;
138 *(*output
)++ = v
>> 8;
142 static inline void transfer_YUV101010_to_YUV161616(uint16_t *(*output
), unsigned char *input
)
151 static inline void transfer_YUV101010_to_YUVA16161616(uint16_t *(*output
), unsigned char *input
)
158 *(*output
)++ = 0xffff;
161 static inline void transfer_YUV101010_to_RGB888(unsigned char *(*output
), unsigned char *input
)
167 y
= (y
<< 8) | (y
>> 8);
169 YUV_TO_RGB16(y
, u
, v
, r
, g
, b
);
171 *(*output
)++ = r
>> 8;
172 *(*output
)++ = g
>> 8;
173 *(*output
)++ = b
>> 8;
176 static inline void transfer_YUV101010_to_RGBA8888(unsigned char *(*output
), unsigned char *input
)
182 y
= (y
<< 8) | (y
>> 8);
184 YUV_TO_RGB16(y
, u
, v
, r
, g
, b
);
186 *(*output
)++ = r
>> 8;
187 *(*output
)++ = g
>> 8;
188 *(*output
)++ = b
>> 8;
192 static inline void transfer_YUV101010_to_RGB161616(uint16_t *(*output
), unsigned char *input
)
198 y
= (y
<< 8) | (y
>> 8);
200 YUV_TO_RGB16(y
, u
, v
, r
, g
, b
);
207 static inline void transfer_YUV101010_to_RGBA16161616(uint16_t *(*output
), unsigned char *input
)
213 y
= (y
<< 8) | (y
>> 8);
215 YUV_TO_RGB16(y
, u
, v
, r
, g
, b
);
220 *(*output
)++ = 0xffff;
226 static inline void transfer_YUV101010_to_RGB_FLOAT(float *(*output
),
227 unsigned char *input
)
234 y_f
= (float)y
/ 0xffff;
236 YUV16_TO_RGB_FLOAT(y_f
, u
, v
, r
, g
, b
);
243 static inline void transfer_YUV101010_to_RGBA_FLOAT(float *(*output
),
244 unsigned char *input
)
251 y_f
= (float)y
/ 0xffff;
253 YUV16_TO_RGB_FLOAT(y_f
, u
, v
, r
, g
, b
);
279 // ******************************** VYU888 -> *********************************
282 static inline void transfer_VYU888_to_RGB8(unsigned char *(*output
), unsigned char *input
)
287 y
= ((int)input
[1]) << 16;
290 YUV_TO_RGB(y
, u
, v
, r
, g
, b
);
292 *(*output
) = (unsigned char)((r
& 0xc0) +
298 static inline void transfer_VYU888_to_BGR565(unsigned char *(*output
), unsigned char *input
)
303 y
= ((int)input
[1]) << 16;
306 YUV_TO_RGB(y
, u
, v
, r
, g
, b
);
307 *(uint16_t*)(*output
) = ((b
& 0xf8) << 8)
313 static inline void transfer_VYU888_to_RGB565(unsigned char *(*output
), unsigned char *input
)
318 y
= ((int)input
[1]) << 16;
321 YUV_TO_RGB(y
, u
, v
, r
, g
, b
);
322 *(uint16_t*)(*output
) = ((r
& 0xf8) << 8)
328 static inline void transfer_VYU888_to_BGR888(unsigned char *(*output
), unsigned char *input
)
333 y
= ((int)input
[1]) << 16;
336 YUV_TO_RGB(y
, u
, v
, r
, g
, b
);
344 static inline void transfer_VYU888_to_BGR8888(unsigned char *(*output
), unsigned char *input
)
349 y
= ((int)input
[1]) << 16;
352 YUV_TO_RGB(y
, u
, v
, r
, g
, b
);
360 static inline void transfer_VYU888_to_RGB888(unsigned char *(*output
), unsigned char *input
)
365 y
= ((int)input
[1]) << 16;
368 YUV_TO_RGB(y
, u
, v
, r
, g
, b
);
376 static inline void transfer_VYU888_to_RGBA8888(unsigned char *(*output
), unsigned char *input
)
381 y
= ((int)input
[1]) << 16;
384 YUV_TO_RGB(y
, u
, v
, r
, g
, b
);
394 static inline void transfer_VYU888_to_RGB161616(uint16_t *(*output
), unsigned char *input
)
399 y
= (input
[1] << 16) | (input
[1] << 8) | input
[1];
400 u
= (input
[2] << 8) | input
[2];
401 v
= (input
[0] << 8) | input
[0];
402 YUV_TO_RGB16(y
, u
, v
, r
, g
, b
);
410 static inline void transfer_VYU888_to_RGBA16161616(uint16_t *(*output
), unsigned char *input
)
415 y
= (input
[1] << 16) | (input
[1] << 8) | input
[1];
416 u
= (input
[2] << 8) | input
[2];
417 v
= (input
[0] << 8) | input
[0];
418 YUV_TO_RGB16(y
, u
, v
, r
, g
, b
);
423 (*output
)[3] = 0xffff;
428 static inline void transfer_VYU888_to_RGB_FLOAT(float *(*output
), unsigned char *input
)
435 y
= (float)*input
++ / 0xff;
437 YUV_TO_FLOAT(y
, u
, v
, r
, g
, b
);
444 static inline void transfer_VYU888_to_RGBA_FLOAT(float *(*output
), unsigned char *input
)
451 y
= (float)*input
++ / 0xff;
453 YUV_TO_FLOAT(y
, u
, v
, r
, g
, b
);
462 static inline void transfer_VYU888_to_YUV888(unsigned char *(*output
), unsigned char *input
)
464 (*output
)[0] = input
[1];
465 (*output
)[1] = input
[2];
466 (*output
)[2] = input
[0];
470 static inline void transfer_VYU888_to_YUVA8888(unsigned char *(*output
), unsigned char *input
)
472 (*output
)[0] = input
[1];
473 (*output
)[1] = input
[2];
474 (*output
)[2] = input
[0];
480 static inline void transfer_VYU888_to_YUV161616(uint16_t *(*output
), unsigned char *input
)
482 (*output
)[0] = ((int)input
[1]) << 8;
483 (*output
)[1] = ((int)input
[2]) << 8;
484 (*output
)[2] = ((int)input
[0]) << 8;
488 static inline void transfer_VYU888_to_YUVA16161616(uint16_t *(*output
), unsigned char *input
)
490 (*output
)[0] = ((int)input
[1]) << 8;
491 (*output
)[1] = ((int)input
[2]) << 8;
492 (*output
)[2] = ((int)input
[0]) << 8;
508 // ******************************** UYVA8888 -> *********************************
511 static inline void transfer_UYVA8888_to_RGB8(unsigned char *(*output
), unsigned char *input
)
516 y
= ((int)input
[1]) << 16;
519 YUV_TO_RGB(y
, u
, v
, r
, g
, b
);
521 r
= r
* input
[3] / 0xff;
522 g
= g
* input
[3] / 0xff;
523 b
= b
* input
[3] / 0xff;
524 *(*output
) = (unsigned char)((r
& 0xc0) +
530 static inline void transfer_UYVA8888_to_BGR565(unsigned char *(*output
), unsigned char *input
)
535 y
= ((int)input
[1]) << 16;
538 YUV_TO_RGB(y
, u
, v
, r
, g
, b
);
539 r
= r
* input
[3] / 0xff;
540 g
= g
* input
[3] / 0xff;
541 b
= b
* input
[3] / 0xff;
542 *(uint16_t*)(*output
) = ((b
& 0xf8) << 8)
548 static inline void transfer_UYVA8888_to_RGB565(unsigned char *(*output
), unsigned char *input
)
553 y
= ((int)input
[1]) << 16;
556 YUV_TO_RGB(y
, u
, v
, r
, g
, b
);
557 r
= r
* input
[3] / 0xff;
558 g
= g
* input
[3] / 0xff;
559 b
= b
* input
[3] / 0xff;
560 *(uint16_t*)(*output
) = ((r
& 0xf8) << 8)
566 static inline void transfer_UYVA8888_to_BGR888(unsigned char *(*output
), unsigned char *input
)
571 y
= ((int)input
[1]) << 16;
574 YUV_TO_RGB(y
, u
, v
, r
, g
, b
);
575 r
= r
* input
[3] / 0xff;
576 g
= g
* input
[3] / 0xff;
577 b
= b
* input
[3] / 0xff;
585 static inline void transfer_UYVA8888_to_BGR8888(unsigned char *(*output
), unsigned char *input
)
590 y
= ((int)input
[1]) << 16;
593 YUV_TO_RGB(y
, u
, v
, r
, g
, b
);
594 r
= r
* input
[3] / 0xff;
595 g
= g
* input
[3] / 0xff;
596 b
= b
* input
[3] / 0xff;
605 static inline void transfer_UYVA8888_to_RGB888(unsigned char *(*output
), unsigned char *input
)
610 y
= ((int)input
[1]) << 16;
613 YUV_TO_RGB(y
, u
, v
, r
, g
, b
);
614 r
= r
* input
[3] / 0xff;
615 g
= g
* input
[3] / 0xff;
616 b
= b
* input
[3] / 0xff;
624 static inline void transfer_UYVA8888_to_RGBA8888(unsigned char *(*output
), unsigned char *input
)
629 y
= ((int)input
[1]) << 16;
632 YUV_TO_RGB(y
, u
, v
, r
, g
, b
);
637 (*output
)[3] = input
[3];
642 static inline void transfer_UYVA8888_to_RGB161616(uint16_t *(*output
), unsigned char *input
)
647 y
= ((int)input
[1]) << 16;
648 u
= (input
[0] << 8) | input
[0];
649 v
= (input
[2] << 8) | input
[2];
650 YUV_TO_RGB16(y
, u
, v
, r
, g
, b
);
651 r
= r
* input
[3] / 0xff;
652 g
= g
* input
[3] / 0xff;
653 b
= b
* input
[3] / 0xff;
661 static inline void transfer_UYVA8888_to_RGBA16161616(uint16_t *(*output
), unsigned char *input
)
666 y
= ((int)input
[1]) << 16;
667 u
= (input
[0] << 8) | input
[0];
668 v
= (input
[2] << 8) | input
[2];
669 YUV_TO_RGB16(y
, u
, v
, r
, g
, b
);
674 (*output
)[3] = input
[3] << 8;
678 static inline void transfer_UYVA8888_to_RGB_FLOAT(float *(*output
), unsigned char *input
)
685 y
= (float)*input
++ / 0xff;
687 a
= (float)*input
/ 0xff;
688 YUV_TO_FLOAT(y
, u
, v
, r
, g
, b
);
699 static inline void transfer_UYVA8888_to_RGBA_FLOAT(float *(*output
), unsigned char *input
)
706 y
= (float)*input
++ / 0xff;
708 a
= (float)*input
/ 0xff;
709 YUV_TO_FLOAT(y
, u
, v
, r
, g
, b
);
718 static inline void transfer_UYVA8888_to_YUV888(unsigned char *(*output
), unsigned char *input
)
724 (*output
)[0] = (a
* input
[1]) / 0xff;
725 (*output
)[1] = (a
* input
[0] + anti_a
* 0x80) / 0xff;
726 (*output
)[2] = (a
* input
[2] + anti_a
* 0x80) / 0xff;
730 static inline void transfer_UYVA8888_to_YUVA8888(unsigned char *(*output
), unsigned char *input
)
732 (*output
)[0] = input
[1];
733 (*output
)[1] = input
[0];
734 (*output
)[2] = input
[2];
735 (*output
)[3] = input
[3];
740 static inline void transfer_UYVA8888_to_YUV161616(uint16_t *(*output
), unsigned char *input
)
746 (*output
)[0] = a
* input
[1];
747 (*output
)[1] = a
* input
[0] + anti_a
* 0x80;
748 (*output
)[2] = a
* input
[2] + anti_a
* 0x80;
752 static inline void transfer_UYVA8888_to_YUVA16161616(uint16_t *(*output
), unsigned char *input
)
754 (*output
)[0] = input
[1] << 8;
755 (*output
)[1] = input
[0] << 8;
756 (*output
)[2] = input
[2] << 8;
757 (*output
)[3] = input
[3] << 8;
770 #define TRANSFER_FRAME_DEFAULT(output, \
779 switch(in_colormodel) \
782 switch(out_colormodel) \
785 TRANSFER_FRAME_HEAD \
786 transfer_YUV888_to_RGB8((output), (input)); \
787 TRANSFER_FRAME_TAIL \
790 TRANSFER_FRAME_HEAD \
791 transfer_YUV888_to_BGR565((output), (input)); \
792 TRANSFER_FRAME_TAIL \
795 TRANSFER_FRAME_HEAD \
796 transfer_YUV888_to_RGB565((output), (input)); \
797 TRANSFER_FRAME_TAIL \
800 TRANSFER_FRAME_HEAD \
801 transfer_YUV888_to_BGR888((output), (input)); \
802 TRANSFER_FRAME_TAIL \
805 TRANSFER_FRAME_HEAD \
806 transfer_YUV888_to_BGR8888((output), (input)); \
807 TRANSFER_FRAME_TAIL \
810 TRANSFER_FRAME_HEAD \
811 transfer_YUV888_to_RGB888((output), (input)); \
812 TRANSFER_FRAME_TAIL \
815 TRANSFER_FRAME_HEAD \
816 transfer_YUV888_to_RGBA8888((output), (input)); \
817 TRANSFER_FRAME_TAIL \
820 TRANSFER_FRAME_HEAD \
821 transfer_YUV888_to_RGB_FLOAT((float**)(output), (input)); \
822 TRANSFER_FRAME_TAIL \
824 case BC_RGBA_FLOAT: \
825 TRANSFER_FRAME_HEAD \
826 transfer_YUV888_to_RGBA_FLOAT((float**)(output), (input)); \
827 TRANSFER_FRAME_TAIL \
830 TRANSFER_FRAME_HEAD \
831 transfer_YUV888_to_YUV101010((output), (input)); \
832 TRANSFER_FRAME_TAIL \
835 TRANSFER_YUV420P_OUT_HEAD \
836 transfer_YUV888_to_YUV420P_YUV422P(output_y, \
841 TRANSFER_FRAME_TAIL \
844 TRANSFER_YUV422P_OUT_HEAD \
845 transfer_YUV888_to_YUV420P_YUV422P(output_y, \
850 TRANSFER_FRAME_TAIL \
853 TRANSFER_YUV444P_OUT_HEAD \
854 transfer_YUV888_to_YUV444P(output_y, \
859 TRANSFER_FRAME_TAIL \
862 TRANSFER_FRAME_HEAD \
863 transfer_YUV888_to_YUV422((output), \
866 TRANSFER_FRAME_TAIL \
869 TRANSFER_FRAME_HEAD \
870 transfer_YUV888_to_YUV888((output), (input)); \
871 TRANSFER_FRAME_TAIL \
874 TRANSFER_FRAME_HEAD \
875 transfer_YUV888_to_YUVA8888((output), (input)); \
876 TRANSFER_FRAME_TAIL \
879 TRANSFER_FRAME_HEAD \
880 transfer_YUV888_to_VYU888((output), (input)); \
881 TRANSFER_FRAME_TAIL \
884 TRANSFER_FRAME_HEAD \
885 transfer_YUV888_to_UYVA8888((output), (input)); \
886 TRANSFER_FRAME_TAIL \
892 switch(out_colormodel) \
895 TRANSFER_FRAME_HEAD \
896 transfer_YUVA8888_to_RGB8((output), (input)); \
897 TRANSFER_FRAME_TAIL \
900 TRANSFER_FRAME_HEAD \
901 transfer_YUVA8888_to_BGR565((output), (input)); \
902 TRANSFER_FRAME_TAIL \
905 TRANSFER_FRAME_HEAD \
906 transfer_YUVA8888_to_RGB565((output), (input)); \
907 TRANSFER_FRAME_TAIL \
910 TRANSFER_FRAME_HEAD \
911 transfer_YUVA8888_to_BGR888((output), (input)); \
912 TRANSFER_FRAME_TAIL \
915 TRANSFER_FRAME_HEAD \
916 transfer_YUVA8888_to_BGR8888((output), (input)); \
917 TRANSFER_FRAME_TAIL \
920 TRANSFER_FRAME_HEAD \
921 transfer_YUVA8888_to_RGB888((output), (input)); \
922 TRANSFER_FRAME_TAIL \
925 TRANSFER_FRAME_HEAD \
926 transfer_YUVA8888_to_RGBA8888((output), (input)); \
927 TRANSFER_FRAME_TAIL \
930 TRANSFER_FRAME_HEAD \
931 transfer_YUVA8888_to_RGB_FLOAT((float**)(output), (input)); \
932 TRANSFER_FRAME_TAIL \
934 case BC_RGBA_FLOAT: \
935 TRANSFER_FRAME_HEAD \
936 transfer_YUVA8888_to_RGBA_FLOAT((float**)(output), (input)); \
937 TRANSFER_FRAME_TAIL \
940 TRANSFER_FRAME_HEAD \
941 transfer_YUVA8888_to_VYU888((output), (input)); \
942 TRANSFER_FRAME_TAIL \
945 TRANSFER_FRAME_HEAD \
946 transfer_YUVA8888_to_YUVA8888((output), (input)); \
947 TRANSFER_FRAME_TAIL \
950 TRANSFER_FRAME_HEAD \
951 transfer_YUVA8888_to_UYVA8888((output), (input)); \
952 TRANSFER_FRAME_TAIL \
955 TRANSFER_FRAME_HEAD \
956 transfer_YUVA8888_to_YUV101010((output), (input)); \
957 TRANSFER_FRAME_TAIL \
960 TRANSFER_YUV420P_OUT_HEAD \
961 transfer_YUVA8888_to_YUV420P_YUV422P(output_y, \
966 TRANSFER_FRAME_TAIL \
969 TRANSFER_YUV422P_OUT_HEAD \
970 transfer_YUVA8888_to_YUV420P_YUV422P(output_y, \
975 TRANSFER_FRAME_TAIL \
978 TRANSFER_YUV444P_OUT_HEAD \
979 transfer_YUVA8888_to_YUV444P(output_y, \
984 TRANSFER_FRAME_TAIL \
987 TRANSFER_FRAME_HEAD \
988 transfer_YUVA8888_to_YUV422((output), \
991 TRANSFER_FRAME_TAIL \
997 switch(out_colormodel) \
1000 TRANSFER_FRAME_HEAD \
1001 transfer_YUV161616_to_RGB8((output), (uint16_t*)(input)); \
1002 TRANSFER_FRAME_TAIL \
1005 TRANSFER_FRAME_HEAD \
1006 transfer_YUV161616_to_BGR565((output), (uint16_t*)(input)); \
1007 TRANSFER_FRAME_TAIL \
1010 TRANSFER_FRAME_HEAD \
1011 transfer_YUV161616_to_RGB565((output), (uint16_t*)(input)); \
1012 TRANSFER_FRAME_TAIL \
1015 TRANSFER_FRAME_HEAD \
1016 transfer_YUV161616_to_BGR888((output), (uint16_t*)(input)); \
1017 TRANSFER_FRAME_TAIL \
1020 TRANSFER_FRAME_HEAD \
1021 transfer_YUV161616_to_BGR8888((output), (uint16_t*)(input)); \
1022 TRANSFER_FRAME_TAIL \
1025 TRANSFER_FRAME_HEAD \
1026 transfer_YUV161616_to_RGB888((output), (uint16_t*)(input)); \
1027 TRANSFER_FRAME_TAIL \
1030 TRANSFER_FRAME_HEAD \
1031 transfer_YUV161616_to_RGBA8888((output), (uint16_t*)(input)); \
1032 TRANSFER_FRAME_TAIL \
1034 case BC_RGB_FLOAT: \
1035 TRANSFER_FRAME_HEAD \
1036 transfer_YUV161616_to_RGB_FLOAT((float**)(output), (uint16_t*)(input)); \
1037 TRANSFER_FRAME_TAIL \
1039 case BC_RGBA_FLOAT: \
1040 TRANSFER_FRAME_HEAD \
1041 transfer_YUV161616_to_RGBA_FLOAT((float**)(output), (uint16_t*)(input)); \
1042 TRANSFER_FRAME_TAIL \
1045 TRANSFER_YUV420P_OUT_HEAD \
1046 transfer_YUV161616_to_YUV420P_YUV422P(output_y, \
1049 (uint16_t*)(input), \
1051 TRANSFER_FRAME_TAIL \
1054 TRANSFER_YUV422P_OUT_HEAD \
1055 transfer_YUV161616_to_YUV420P_YUV422P(output_y, \
1058 (uint16_t*)(input), \
1060 TRANSFER_FRAME_TAIL \
1063 TRANSFER_YUV444P_OUT_HEAD \
1064 transfer_YUV161616_to_YUV444P(output_y, \
1067 (uint16_t*)(input), \
1069 TRANSFER_FRAME_TAIL \
1072 TRANSFER_FRAME_HEAD \
1073 transfer_YUV161616_to_YUV422((output), \
1074 (uint16_t*)(input), \
1076 TRANSFER_FRAME_TAIL \
1078 case BC_YUV101010: \
1079 TRANSFER_FRAME_HEAD \
1080 transfer_YUV161616_to_YUV101010((output), (uint16_t*)(input)); \
1081 TRANSFER_FRAME_TAIL \
1084 TRANSFER_FRAME_HEAD \
1085 transfer_YUV161616_to_YUVA8888((output), \
1086 (uint16_t*)(input)); \
1087 TRANSFER_FRAME_TAIL \
1090 TRANSFER_FRAME_HEAD \
1091 transfer_YUV161616_to_VYU888((output), (uint16_t*)(input)); \
1092 TRANSFER_FRAME_TAIL \
1095 TRANSFER_FRAME_HEAD \
1096 transfer_YUV161616_to_UYVA8888((output), (uint16_t*)(input)); \
1097 TRANSFER_FRAME_TAIL \
1099 case BC_YUV161616: \
1100 TRANSFER_FRAME_HEAD \
1101 transfer_YUV161616_to_YUV161616((uint16_t**)(output), \
1102 (uint16_t*)(input)); \
1103 TRANSFER_FRAME_TAIL \
1108 case BC_YUVA16161616: \
1109 switch(out_colormodel) \
1112 TRANSFER_FRAME_HEAD \
1113 transfer_YUVA16161616_to_RGB8((output), (uint16_t*)(input)); \
1114 TRANSFER_FRAME_TAIL \
1117 TRANSFER_FRAME_HEAD \
1118 transfer_YUVA16161616_to_BGR565((output), (uint16_t*)(input)); \
1119 TRANSFER_FRAME_TAIL \
1122 TRANSFER_FRAME_HEAD \
1123 transfer_YUVA16161616_to_RGB565((output), (uint16_t*)(input)); \
1124 TRANSFER_FRAME_TAIL \
1127 TRANSFER_FRAME_HEAD \
1128 transfer_YUVA16161616_to_BGR888((output), (uint16_t*)(input)); \
1129 TRANSFER_FRAME_TAIL \
1132 TRANSFER_FRAME_HEAD \
1133 transfer_YUVA16161616_to_BGR8888((output), (uint16_t*)(input)); \
1134 TRANSFER_FRAME_TAIL \
1137 TRANSFER_FRAME_HEAD \
1138 transfer_YUVA16161616_to_RGB888((output), (uint16_t*)(input)); \
1139 TRANSFER_FRAME_TAIL \
1142 TRANSFER_FRAME_HEAD \
1143 transfer_YUVA16161616_to_RGBA8888((output), (uint16_t*)(input)); \
1144 TRANSFER_FRAME_TAIL \
1146 case BC_RGB_FLOAT: \
1147 TRANSFER_FRAME_HEAD \
1148 transfer_YUVA16161616_to_RGB_FLOAT((float**)(output), (uint16_t*)(input)); \
1149 TRANSFER_FRAME_TAIL \
1151 case BC_RGBA_FLOAT: \
1152 TRANSFER_FRAME_HEAD \
1153 transfer_YUVA16161616_to_RGBA_FLOAT((float**)(output), (uint16_t*)(input)); \
1154 TRANSFER_FRAME_TAIL \
1156 case BC_YUV101010: \
1157 TRANSFER_FRAME_HEAD \
1158 transfer_YUVA16161616_to_YUV101010((output), (uint16_t*)(input)); \
1159 TRANSFER_FRAME_TAIL \
1162 TRANSFER_FRAME_HEAD \
1163 transfer_YUVA16161616_to_VYU888((output), (uint16_t*)(input)); \
1164 TRANSFER_FRAME_TAIL \
1167 TRANSFER_FRAME_HEAD \
1168 transfer_YUVA16161616_to_UYVA8888((output), (uint16_t*)(input)); \
1169 TRANSFER_FRAME_TAIL \
1171 case BC_YUVA16161616: \
1172 TRANSFER_FRAME_HEAD \
1173 transfer_YUVA16161616_to_YUVA16161616((uint16_t**)(output), (uint16_t*)(input)); \
1174 TRANSFER_FRAME_TAIL \
1177 TRANSFER_YUV420P_OUT_HEAD \
1178 transfer_YUVA16161616_to_YUV420P_YUV422P(output_y, \
1181 (uint16_t*)(input), \
1183 TRANSFER_FRAME_TAIL \
1186 TRANSFER_YUV422P_OUT_HEAD \
1187 transfer_YUVA16161616_to_YUV420P_YUV422P(output_y, \
1190 (uint16_t*)(input), \
1192 TRANSFER_FRAME_TAIL \
1195 TRANSFER_YUV444P_OUT_HEAD \
1196 transfer_YUVA16161616_to_YUV444P(output_y, \
1199 (uint16_t*)(input), \
1201 TRANSFER_FRAME_TAIL \
1204 TRANSFER_FRAME_HEAD \
1205 transfer_YUVA16161616_to_YUV422((output), \
1206 (uint16_t*)(input), \
1208 TRANSFER_FRAME_TAIL \
1213 case BC_YUV101010: \
1214 switch(out_colormodel) \
1217 TRANSFER_FRAME_HEAD \
1218 transfer_YUV101010_to_RGB8((output), (input)); \
1219 TRANSFER_FRAME_TAIL \
1222 TRANSFER_FRAME_HEAD \
1223 transfer_YUV101010_to_BGR565((output), (input)); \
1224 TRANSFER_FRAME_TAIL \
1227 TRANSFER_FRAME_HEAD \
1228 transfer_YUV101010_to_RGB565((output), (input)); \
1229 TRANSFER_FRAME_TAIL \
1232 TRANSFER_FRAME_HEAD \
1233 transfer_YUV101010_to_BGR888((output), (input)); \
1234 TRANSFER_FRAME_TAIL \
1237 TRANSFER_FRAME_HEAD \
1238 transfer_YUV101010_to_BGR8888((output), (input)); \
1239 TRANSFER_FRAME_TAIL \
1242 TRANSFER_FRAME_HEAD \
1243 transfer_YUV101010_to_RGB888((output), (input)); \
1244 TRANSFER_FRAME_TAIL \
1247 TRANSFER_FRAME_HEAD \
1248 transfer_YUV101010_to_RGBA8888((output), (input)); \
1249 TRANSFER_FRAME_TAIL \
1252 TRANSFER_FRAME_HEAD \
1253 transfer_YUV101010_to_YUV888((output), (input)); \
1254 TRANSFER_FRAME_TAIL \
1257 TRANSFER_FRAME_HEAD \
1258 transfer_YUV101010_to_YUVA8888((output), (input)); \
1259 TRANSFER_FRAME_TAIL \
1261 case BC_RGB161616: \
1262 TRANSFER_FRAME_HEAD \
1263 transfer_YUV101010_to_RGB161616((uint16_t**)(output), (input)); \
1264 TRANSFER_FRAME_TAIL \
1266 case BC_RGBA16161616: \
1267 TRANSFER_FRAME_HEAD \
1268 transfer_YUV101010_to_RGBA16161616((uint16_t**)(output), (input)); \
1269 TRANSFER_FRAME_TAIL \
1271 case BC_RGB_FLOAT: \
1272 TRANSFER_FRAME_HEAD \
1273 transfer_YUV101010_to_RGB_FLOAT((float**)(output), (input)); \
1274 TRANSFER_FRAME_TAIL \
1276 case BC_RGBA_FLOAT: \
1277 TRANSFER_FRAME_HEAD \
1278 transfer_YUV101010_to_RGBA_FLOAT((float**)(output), (input)); \
1279 TRANSFER_FRAME_TAIL \
1281 case BC_YUV161616: \
1282 TRANSFER_FRAME_HEAD \
1283 transfer_YUV101010_to_YUV161616((uint16_t**)(output), (input)); \
1284 TRANSFER_FRAME_TAIL \
1286 case BC_YUVA16161616: \
1287 TRANSFER_FRAME_HEAD \
1288 transfer_YUV101010_to_YUVA16161616((uint16_t**)(output), (input)); \
1289 TRANSFER_FRAME_TAIL \
1295 switch(out_colormodel) \
1298 TRANSFER_FRAME_HEAD \
1299 transfer_VYU888_to_RGB8((output), (input)); \
1300 TRANSFER_FRAME_TAIL \
1303 TRANSFER_FRAME_HEAD \
1304 transfer_VYU888_to_BGR565((output), (input)); \
1305 TRANSFER_FRAME_TAIL \
1308 TRANSFER_FRAME_HEAD \
1309 transfer_VYU888_to_RGB565((output), (input)); \
1310 TRANSFER_FRAME_TAIL \
1313 TRANSFER_FRAME_HEAD \
1314 transfer_VYU888_to_BGR888((output), (input)); \
1315 TRANSFER_FRAME_TAIL \
1318 TRANSFER_FRAME_HEAD \
1319 transfer_VYU888_to_BGR8888((output), (input)); \
1320 TRANSFER_FRAME_TAIL \
1323 TRANSFER_FRAME_HEAD \
1324 transfer_VYU888_to_RGB888((output), (input)); \
1325 TRANSFER_FRAME_TAIL \
1328 TRANSFER_FRAME_HEAD \
1329 transfer_VYU888_to_RGBA8888((output), (input)); \
1330 TRANSFER_FRAME_TAIL \
1333 TRANSFER_FRAME_HEAD \
1334 transfer_VYU888_to_YUV888((output), (input)); \
1335 TRANSFER_FRAME_TAIL \
1338 TRANSFER_FRAME_HEAD \
1339 transfer_VYU888_to_YUVA8888((output), (input)); \
1340 TRANSFER_FRAME_TAIL \
1342 case BC_RGB161616: \
1343 TRANSFER_FRAME_HEAD \
1344 transfer_VYU888_to_RGB161616((uint16_t**)(output), (input)); \
1345 TRANSFER_FRAME_TAIL \
1347 case BC_RGBA16161616: \
1348 TRANSFER_FRAME_HEAD \
1349 transfer_VYU888_to_RGBA16161616((uint16_t**)(output), (input)); \
1350 TRANSFER_FRAME_TAIL \
1352 case BC_RGB_FLOAT: \
1353 TRANSFER_FRAME_HEAD \
1354 transfer_VYU888_to_RGB_FLOAT((float**)(output), (input)); \
1355 TRANSFER_FRAME_TAIL \
1357 case BC_RGBA_FLOAT: \
1358 TRANSFER_FRAME_HEAD \
1359 transfer_VYU888_to_RGBA_FLOAT((float**)(output), (input)); \
1360 TRANSFER_FRAME_TAIL \
1362 case BC_YUV161616: \
1363 TRANSFER_FRAME_HEAD \
1364 transfer_VYU888_to_YUV161616((uint16_t**)(output), (input)); \
1365 TRANSFER_FRAME_TAIL \
1367 case BC_YUVA16161616: \
1368 TRANSFER_FRAME_HEAD \
1369 transfer_VYU888_to_YUVA16161616((uint16_t**)(output), (input)); \
1370 TRANSFER_FRAME_TAIL \
1376 switch(out_colormodel) \
1379 TRANSFER_FRAME_HEAD \
1380 transfer_UYVA8888_to_RGB8((output), (input)); \
1381 TRANSFER_FRAME_TAIL \
1384 TRANSFER_FRAME_HEAD \
1385 transfer_UYVA8888_to_BGR565((output), (input)); \
1386 TRANSFER_FRAME_TAIL \
1389 TRANSFER_FRAME_HEAD \
1390 transfer_UYVA8888_to_RGB565((output), (input)); \
1391 TRANSFER_FRAME_TAIL \
1394 TRANSFER_FRAME_HEAD \
1395 transfer_UYVA8888_to_BGR888((output), (input)); \
1396 TRANSFER_FRAME_TAIL \
1399 TRANSFER_FRAME_HEAD \
1400 transfer_UYVA8888_to_BGR8888((output), (input)); \
1401 TRANSFER_FRAME_TAIL \
1404 TRANSFER_FRAME_HEAD \
1405 transfer_UYVA8888_to_RGB888((output), (input)); \
1406 TRANSFER_FRAME_TAIL \
1409 TRANSFER_FRAME_HEAD \
1410 transfer_UYVA8888_to_RGBA8888((output), (input)); \
1411 TRANSFER_FRAME_TAIL \
1414 TRANSFER_FRAME_HEAD \
1415 transfer_UYVA8888_to_YUV888((output), (input)); \
1416 TRANSFER_FRAME_TAIL \
1419 TRANSFER_FRAME_HEAD \
1420 transfer_UYVA8888_to_YUVA8888((output), (input)); \
1421 TRANSFER_FRAME_TAIL \
1423 case BC_RGB161616: \
1424 TRANSFER_FRAME_HEAD \
1425 transfer_UYVA8888_to_RGB161616((uint16_t**)(output), (input)); \
1426 TRANSFER_FRAME_TAIL \
1428 case BC_RGBA16161616: \
1429 TRANSFER_FRAME_HEAD \
1430 transfer_UYVA8888_to_RGBA16161616((uint16_t**)(output), (input)); \
1431 TRANSFER_FRAME_TAIL \
1433 case BC_RGB_FLOAT: \
1434 TRANSFER_FRAME_HEAD \
1435 transfer_UYVA8888_to_RGB_FLOAT((float**)(output), (input)); \
1436 TRANSFER_FRAME_TAIL \
1438 case BC_RGBA_FLOAT: \
1439 TRANSFER_FRAME_HEAD \
1440 transfer_UYVA8888_to_RGBA_FLOAT((float**)(output), (input)); \
1441 TRANSFER_FRAME_TAIL \
1443 case BC_YUV161616: \
1444 TRANSFER_FRAME_HEAD \
1445 transfer_UYVA8888_to_YUV161616((uint16_t**)(output), (input)); \
1446 TRANSFER_FRAME_TAIL \
1448 case BC_YUVA16161616: \
1449 TRANSFER_FRAME_HEAD \
1450 transfer_UYVA8888_to_YUVA16161616((uint16_t**)(output), (input)); \
1451 TRANSFER_FRAME_TAIL \
1458 switch(out_colormodel) \
1462 TRANSFER_FRAME_HEAD \
1463 transfer_ARGB8888_to_ARGB8888((output), (input)); \
1464 TRANSFER_FRAME_TAIL \
1470 switch(out_colormodel) \
1473 TRANSFER_FRAME_HEAD \
1474 transfer_RGB888_to_RGB8((output), (input)); \
1475 TRANSFER_FRAME_TAIL \
1478 TRANSFER_FRAME_HEAD \
1479 transfer_RGB888_to_BGR565((output), (input)); \
1480 TRANSFER_FRAME_TAIL \
1483 TRANSFER_FRAME_HEAD \
1484 transfer_RGB888_to_RGB565((output), (input)); \
1485 TRANSFER_FRAME_TAIL \
1488 TRANSFER_FRAME_HEAD \
1489 transfer_RGB888_to_BGR888((output), (input)); \
1490 TRANSFER_FRAME_TAIL \
1493 TRANSFER_FRAME_HEAD \
1494 transfer_RGB888_to_RGB888((output), (input)); \
1495 TRANSFER_FRAME_TAIL \
1498 TRANSFER_FRAME_HEAD \
1499 transfer_RGB888_to_RGBA8888((output), (input)); \
1500 TRANSFER_FRAME_TAIL \
1502 case BC_RGB161616: \
1503 TRANSFER_FRAME_HEAD \
1504 transfer_RGB888_to_RGB161616((uint16_t**)(output), (input)); \
1505 TRANSFER_FRAME_TAIL \
1507 case BC_RGBA16161616: \
1508 TRANSFER_FRAME_HEAD \
1509 transfer_RGB888_to_RGBA16161616((uint16_t**)(output), (input)); \
1510 TRANSFER_FRAME_TAIL \
1512 case BC_RGB_FLOAT: \
1513 TRANSFER_FRAME_HEAD \
1514 transfer_RGB888_to_RGB_FLOAT((float**)(output), (input)); \
1515 TRANSFER_FRAME_TAIL \
1517 case BC_RGBA_FLOAT: \
1518 TRANSFER_FRAME_HEAD \
1519 transfer_RGB888_to_RGBA_FLOAT((float**)(output), (input)); \
1520 TRANSFER_FRAME_TAIL \
1523 TRANSFER_FRAME_HEAD \
1524 transfer_RGB888_to_ARGB8888((output), (input)); \
1525 TRANSFER_FRAME_TAIL \
1528 TRANSFER_FRAME_HEAD \
1529 transfer_RGB888_to_ABGR8888((output), (input)); \
1530 TRANSFER_FRAME_TAIL \
1533 TRANSFER_FRAME_HEAD \
1534 transfer_RGB888_to_BGR8888((output), (input)); \
1535 TRANSFER_FRAME_TAIL \
1538 TRANSFER_FRAME_HEAD \
1539 transfer_RGB888_to_YUV888((output), (input)); \
1540 TRANSFER_FRAME_TAIL \
1543 TRANSFER_FRAME_HEAD \
1544 transfer_RGB888_to_YUVA8888((output), (input)); \
1545 TRANSFER_FRAME_TAIL \
1547 case BC_YUV161616: \
1548 TRANSFER_FRAME_HEAD \
1549 transfer_RGB888_to_YUV161616((uint16_t**)(output), (input)); \
1550 TRANSFER_FRAME_TAIL \
1552 case BC_YUVA16161616: \
1553 TRANSFER_FRAME_HEAD \
1554 transfer_RGB888_to_YUVA16161616((uint16_t**)(output), (input)); \
1555 TRANSFER_FRAME_TAIL \
1557 case BC_YUV101010: \
1558 TRANSFER_FRAME_HEAD \
1559 transfer_RGB888_to_YUV101010((output), (input)); \
1560 TRANSFER_FRAME_TAIL \
1563 TRANSFER_YUV420P_OUT_HEAD \
1564 transfer_RGB888_to_YUV420P_YUV422P(output_y, \
1569 TRANSFER_FRAME_TAIL \
1572 TRANSFER_FRAME_HEAD \
1573 transfer_RGB888_to_YUV422((output), (input), j); \
1574 TRANSFER_FRAME_TAIL \
1577 TRANSFER_YUV422P_OUT_HEAD \
1578 transfer_RGB888_to_YUV420P_YUV422P(output_y, \
1583 TRANSFER_FRAME_TAIL \
1586 TRANSFER_YUV444P_OUT_HEAD \
1587 transfer_RGB888_to_YUV444P(output_y, \
1592 TRANSFER_FRAME_TAIL \
1598 switch(out_colormodel) \
1600 case BC_TRANSPARENCY: \
1601 TRANSFER_FRAME_HEAD \
1602 transfer_RGBA8888_to_TRANSPARENCY((output), (input), &bit_counter); \
1603 TRANSFER_FRAME_TAIL \
1607 TRANSFER_FRAME_HEAD \
1608 transfer_RGBA8888_to_RGB8bg((output), (input), bg_r, bg_g, bg_b); \
1609 TRANSFER_FRAME_TAIL \
1611 TRANSFER_FRAME_HEAD \
1612 transfer_RGBA8888_to_RGB8((output), (input)); \
1613 TRANSFER_FRAME_TAIL \
1617 TRANSFER_FRAME_HEAD \
1618 transfer_RGBA8888_to_BGR565bg((output), (input), bg_r, bg_g, bg_b); \
1619 TRANSFER_FRAME_TAIL \
1621 TRANSFER_FRAME_HEAD \
1622 transfer_RGBA8888_to_BGR565((output), (input)); \
1623 TRANSFER_FRAME_TAIL \
1627 TRANSFER_FRAME_HEAD \
1628 transfer_RGBA8888_to_RGB565bg((output), (input), bg_r, bg_g, bg_b); \
1629 TRANSFER_FRAME_TAIL \
1631 TRANSFER_FRAME_HEAD \
1632 transfer_RGBA8888_to_RGB565((output), (input)); \
1633 TRANSFER_FRAME_TAIL \
1637 TRANSFER_FRAME_HEAD \
1638 transfer_RGBA8888_to_BGR888bg((output), (input), bg_r, bg_g, bg_b); \
1639 TRANSFER_FRAME_TAIL \
1641 TRANSFER_FRAME_HEAD \
1642 transfer_RGBA8888_to_BGR888((output), (input)); \
1643 TRANSFER_FRAME_TAIL \
1647 TRANSFER_FRAME_HEAD \
1648 transfer_RGBA8888_to_RGB888bg((output), (input), bg_r, bg_g, bg_b); \
1649 TRANSFER_FRAME_TAIL \
1651 TRANSFER_FRAME_HEAD \
1652 transfer_RGBA8888_to_RGB888((output), (input)); \
1653 TRANSFER_FRAME_TAIL \
1656 TRANSFER_FRAME_HEAD \
1657 transfer_RGBA8888_to_RGBA8888((output), (input)); \
1658 TRANSFER_FRAME_TAIL \
1660 case BC_RGB161616: \
1661 TRANSFER_FRAME_HEAD \
1662 transfer_RGBA8888_to_RGB161616((uint16_t**)(output), (input)); \
1663 TRANSFER_FRAME_TAIL \
1665 case BC_RGBA16161616: \
1666 TRANSFER_FRAME_HEAD \
1667 transfer_RGBA8888_to_RGBA16161616((uint16_t**)(output), (input)); \
1668 TRANSFER_FRAME_TAIL \
1670 case BC_RGB_FLOAT: \
1671 TRANSFER_FRAME_HEAD \
1672 transfer_RGBA8888_to_RGB_FLOAT((float**)(output), (input)); \
1673 TRANSFER_FRAME_TAIL \
1675 case BC_RGBA_FLOAT: \
1676 TRANSFER_FRAME_HEAD \
1677 transfer_RGBA8888_to_RGBA_FLOAT((float**)(output), (input)); \
1678 TRANSFER_FRAME_TAIL \
1682 TRANSFER_FRAME_HEAD \
1683 transfer_RGBA8888_to_BGR8888bg((output), (input), bg_r, bg_g, bg_b); \
1684 TRANSFER_FRAME_TAIL \
1686 TRANSFER_FRAME_HEAD \
1687 transfer_RGBA8888_to_BGR8888((output), (input)); \
1688 TRANSFER_FRAME_TAIL \
1691 TRANSFER_FRAME_HEAD \
1692 transfer_RGBA8888_to_YUV888((output), (input)); \
1693 TRANSFER_FRAME_TAIL \
1696 TRANSFER_FRAME_HEAD \
1697 transfer_RGBA8888_to_YUVA8888((output), (input)); \
1698 TRANSFER_FRAME_TAIL \
1700 case BC_YUV161616: \
1701 TRANSFER_FRAME_HEAD \
1702 transfer_RGBA8888_to_YUV161616((uint16_t**)(output), (input)); \
1703 TRANSFER_FRAME_TAIL \
1705 case BC_YUVA16161616: \
1706 TRANSFER_FRAME_HEAD \
1707 transfer_RGBA8888_to_YUVA16161616((uint16_t**)(output), (input)); \
1708 TRANSFER_FRAME_TAIL \
1710 case BC_YUV101010: \
1711 TRANSFER_FRAME_HEAD \
1712 transfer_RGBA8888_to_YUV101010((output), (input)); \
1713 TRANSFER_FRAME_TAIL \
1716 TRANSFER_YUV420P_OUT_HEAD \
1717 transfer_RGBA888_to_YUV420P_YUV422P(output_y, \
1722 TRANSFER_FRAME_TAIL \
1725 TRANSFER_FRAME_HEAD \
1726 transfer_RGBA888_to_YUV422((output), (input), j); \
1727 TRANSFER_FRAME_TAIL \
1730 TRANSFER_YUV422P_OUT_HEAD \
1731 transfer_RGBA888_to_YUV420P_YUV422P(output_y, \
1736 TRANSFER_FRAME_TAIL \
1739 TRANSFER_YUV444P_OUT_HEAD \
1740 transfer_RGBA888_to_YUV444P(output_y, \
1745 TRANSFER_FRAME_TAIL \
1750 case BC_RGB161616: \
1751 switch(out_colormodel) \
1754 TRANSFER_FRAME_HEAD \
1755 transfer_RGB161616_to_RGB8((output), (uint16_t*)(input)); \
1756 TRANSFER_FRAME_TAIL \
1759 TRANSFER_FRAME_HEAD \
1760 transfer_RGB161616_to_BGR565((output), (uint16_t*)(input)); \
1761 TRANSFER_FRAME_TAIL \
1764 TRANSFER_FRAME_HEAD \
1765 transfer_RGB161616_to_RGB565((output), (uint16_t*)(input)); \
1766 TRANSFER_FRAME_TAIL \
1769 TRANSFER_FRAME_HEAD \
1770 transfer_RGB161616_to_BGR888((output), (uint16_t*)(input)); \
1771 TRANSFER_FRAME_TAIL \
1774 TRANSFER_FRAME_HEAD \
1775 transfer_RGB161616_to_BGR8888((output), (uint16_t*)(input)); \
1776 TRANSFER_FRAME_TAIL \
1779 TRANSFER_FRAME_HEAD \
1780 transfer_RGB161616_to_RGB888((output), (uint16_t*)(input)); \
1781 TRANSFER_FRAME_TAIL \
1784 TRANSFER_FRAME_HEAD \
1785 transfer_RGB161616_to_RGBA8888((output), (uint16_t*)(input)); \
1786 TRANSFER_FRAME_TAIL \
1789 TRANSFER_FRAME_HEAD \
1790 transfer_RGB161616_to_YUV888((output), (uint16_t*)(input)); \
1791 TRANSFER_FRAME_TAIL \
1794 TRANSFER_FRAME_HEAD \
1795 transfer_RGB161616_to_YUVA8888((output), (uint16_t*)(input)); \
1796 TRANSFER_FRAME_TAIL \
1798 case BC_YUV101010: \
1799 TRANSFER_FRAME_HEAD \
1800 transfer_RGB161616_to_YUV101010((output), (uint16_t*)(input)); \
1801 TRANSFER_FRAME_TAIL \
1804 TRANSFER_YUV420P_OUT_HEAD \
1805 transfer_RGB161616_to_YUV420P_YUV422P(output_y, \
1808 (uint16_t*)(input), \
1810 TRANSFER_FRAME_TAIL \
1813 TRANSFER_YUV422P_OUT_HEAD \
1814 transfer_RGB161616_to_YUV420P_YUV422P(output_y, \
1817 (uint16_t*)(input), \
1819 TRANSFER_FRAME_TAIL \
1822 TRANSFER_YUV444P_OUT_HEAD \
1823 transfer_RGB161616_to_YUV444P(output_y, \
1826 (uint16_t*)(input), \
1828 TRANSFER_FRAME_TAIL \
1833 case BC_RGBA16161616: \
1834 switch(out_colormodel) \
1837 TRANSFER_FRAME_HEAD \
1838 transfer_RGBA16161616_to_RGB8((output), (uint16_t*)(input)); \
1839 TRANSFER_FRAME_TAIL \
1842 TRANSFER_FRAME_HEAD \
1843 transfer_RGBA16161616_to_BGR565((output), (uint16_t*)(input)); \
1844 TRANSFER_FRAME_TAIL \
1847 TRANSFER_FRAME_HEAD \
1848 transfer_RGBA16161616_to_RGB565((output), (uint16_t*)(input)); \
1849 TRANSFER_FRAME_TAIL \
1852 TRANSFER_FRAME_HEAD \
1853 transfer_RGBA16161616_to_BGR888((output), (uint16_t*)(input)); \
1854 TRANSFER_FRAME_TAIL \
1857 TRANSFER_FRAME_HEAD \
1858 transfer_RGBA16161616_to_BGR8888((output), (uint16_t*)(input)); \
1859 TRANSFER_FRAME_TAIL \
1862 TRANSFER_FRAME_HEAD \
1863 transfer_RGBA16161616_to_RGB888((output), (uint16_t*)(input)); \
1864 TRANSFER_FRAME_TAIL \
1867 TRANSFER_FRAME_HEAD \
1868 transfer_RGBA16161616_to_RGBA8888((output), (input)); \
1869 TRANSFER_FRAME_TAIL \
1871 case BC_YUV101010: \
1872 TRANSFER_FRAME_HEAD \
1873 transfer_RGBA16161616_to_YUV101010((output), (uint16_t*)(input)); \
1874 TRANSFER_FRAME_TAIL \
1877 TRANSFER_YUV420P_OUT_HEAD \
1878 transfer_RGBA16161616_to_YUV420P_YUV422P(output_y, \
1881 (uint16_t*)(input), \
1883 TRANSFER_FRAME_TAIL \
1886 TRANSFER_YUV422P_OUT_HEAD \
1887 transfer_RGBA16161616_to_YUV420P_YUV422P(output_y, \
1890 (uint16_t*)(input), \
1892 TRANSFER_FRAME_TAIL \
1895 TRANSFER_YUV444P_OUT_HEAD \
1896 transfer_RGBA16161616_to_YUV444P(output_y, \
1899 (uint16_t*)(input), \
1901 TRANSFER_FRAME_TAIL \
1907 switch(out_colormodel) \
1910 TRANSFER_FRAME_HEAD \
1911 transfer_BGR8888_to_RGB888((output), (input)); \
1912 TRANSFER_FRAME_TAIL \
1915 TRANSFER_FRAME_HEAD \
1916 transfer_BGR8888_to_BGR8888((output), (input)); \
1917 TRANSFER_FRAME_TAIL \
1923 switch(out_colormodel) \
1926 TRANSFER_FRAME_HEAD \
1927 transfer_BGR888_to_RGB888((output), (input)); \
1928 TRANSFER_FRAME_TAIL \
1938 void cmodel_default(PERMUTATION_ARGS
)
1942 TRANSFER_FRAME_DEFAULT(&output_row
,
1943 input_row
+ column_table
[j
] * in_pixelsize
,
1951 TRANSFER_FRAME_DEFAULT(&output_row
,
1952 input_row
+ j
* in_pixelsize
,