@@ -790,81 +790,95 @@ r12l_to_p210le(AVFrame *__restrict out_frame,
790790 const int src_linesize = vc_get_linesize (width , R12L );
791791 for (int y = 0 ; y < height ; ++ y ) {
792792 const unsigned char * src = in_data + y * src_linesize ;
793- uint16_t * dst_y = (uint16_t * )(void * ) (out_frame -> data [0 ] + out_frame -> linesize [0 ] * y );
794- uint16_t * dst_cbcr = (uint16_t * )(void * ) (out_frame -> data [1 ] + out_frame -> linesize [1 ] * y );
795-
796- OPTIMIZED_FOR (int x = 0 ; x < width ; x += 8 ) {
797- comp_type_t r = 0 ;
798- comp_type_t g = 0 ;
799- comp_type_t b = 0 ;
800- comp_type_t res_y = 0 ;
793+ uint16_t * dst_y =
794+ (uint16_t * ) (void * ) (out_frame -> data [0 ] +
795+ out_frame -> linesize [0 ] * y );
796+ uint16_t * dst_cbcr =
797+ (uint16_t * ) (void * ) (out_frame -> data [1 ] +
798+ out_frame -> linesize [1 ] * y );
799+
800+ OPTIMIZED_FOR (int x = 0 ; x < width ; x += 8 )
801+ {
802+ comp_type_t r = 0 ;
803+ comp_type_t g = 0 ;
804+ comp_type_t b = 0 ;
805+ comp_type_t res_y = 0 ;
801806 comp_type_t res_cb = 0 ;
802807 comp_type_t res_cr = 0 ;
803808
804- r = src [BYTE_SWAP (0 )];
805- r |= (src [BYTE_SWAP (1 )] & 0xF ) << 8 ;
806- g = src [BYTE_SWAP (2 )] << 4 | src [BYTE_SWAP (1 )] >> 4 ; // g0
807- b = src [BYTE_SWAP (3 )];
808- src += 4 ;
809+ r = src [BYTE_SWAP (0 )];
810+ r |= (src [BYTE_SWAP (1 )] & 0xF ) << 8 ;
811+ g = src [BYTE_SWAP (2 )] << 4 |
812+ src [BYTE_SWAP (1 )] >> 4 ; // g0
813+ b = src [BYTE_SWAP (3 )];
814+ src += 4 ;
809815
810- b |= (src [BYTE_SWAP (0 )] & 0xF ) << 8 ;
816+ b |= (src [BYTE_SWAP (0 )] & 0xF ) << 8 ;
811817 WRITE_RES (0 )
812- r = src [BYTE_SWAP (1 )] << 4 | src [BYTE_SWAP (0 )] >> 4 ; // r1
813- g = src [BYTE_SWAP (2 )];
814- g |= (src [BYTE_SWAP (3 )] & 0xF ) << 8 ;
815- b = src [BYTE_SWAP (3 )] >> 4 ;
816- src += 4 ;
818+ r = src [BYTE_SWAP (1 )] << 4 |
819+ src [BYTE_SWAP (0 )] >> 4 ; // r1
820+ g = src [BYTE_SWAP (2 )];
821+ g |= (src [BYTE_SWAP (3 )] & 0xF ) << 8 ;
822+ b = src [BYTE_SWAP (3 )] >> 4 ;
823+ src += 4 ;
817824
818- b |= src [BYTE_SWAP (0 )] << 4 ; // b1
825+ b |= src [BYTE_SWAP (0 )] << 4 ; // b1
819826 WRITE_RES (1 )
820- r = src [BYTE_SWAP (1 )];
821- r |= (src [BYTE_SWAP (2 )] & 0xF ) << 8 ;
822- g = src [BYTE_SWAP (3 )] << 4 | src [BYTE_SWAP (2 )] >> 4 ; // g2
823- src += 4 ;
827+ r = src [BYTE_SWAP (1 )];
828+ r |= (src [BYTE_SWAP (2 )] & 0xF ) << 8 ;
829+ g = src [BYTE_SWAP (3 )] << 4 |
830+ src [BYTE_SWAP (2 )] >> 4 ; // g2
831+ src += 4 ;
824832
825- b = src [BYTE_SWAP (0 )];
826- b |= (src [BYTE_SWAP (1 )] & 0xF ) << 8 ;
833+ b = src [BYTE_SWAP (0 )];
834+ b |= (src [BYTE_SWAP (1 )] & 0xF ) << 8 ;
827835 WRITE_RES (2 )
828- r = src [BYTE_SWAP (2 )] << 4 | src [BYTE_SWAP (1 )] >> 4 ; // r3
829- g = src [BYTE_SWAP (3 )];
830- src += 4 ;
836+ r = src [BYTE_SWAP (2 )] << 4 |
837+ src [BYTE_SWAP (1 )] >> 4 ; // r3
838+ g = src [BYTE_SWAP (3 )];
839+ src += 4 ;
831840
832- g |= (src [BYTE_SWAP (0 )] & 0xF ) << 8 ;
833- b = src [BYTE_SWAP (1 )] << 4 | src [BYTE_SWAP (0 )] >> 4 ; // b3
841+ g |= (src [BYTE_SWAP (0 )] & 0xF ) << 8 ;
842+ b = src [BYTE_SWAP (1 )] << 4 |
843+ src [BYTE_SWAP (0 )] >> 4 ; // b3
834844 WRITE_RES (3 )
835- r = src [BYTE_SWAP (2 )];
836- r |= (src [BYTE_SWAP (3 )] & 0xF ) << 8 ;
837- g = src [BYTE_SWAP (3 )] >> 4 ;
838- src += 4 ;
845+ r = src [BYTE_SWAP (2 )];
846+ r |= (src [BYTE_SWAP (3 )] & 0xF ) << 8 ;
847+ g = src [BYTE_SWAP (3 )] >> 4 ;
848+ src += 4 ;
839849
840- g |= src [BYTE_SWAP (0 )] << 4 ; // g4
841- b = src [BYTE_SWAP (1 )];
842- b |= (src [BYTE_SWAP (2 )] & 0xF ) << 8 ;
843- WRITE_RES (4 )
844- r = src [BYTE_SWAP (3 )] << 4 | src [BYTE_SWAP (2 )] >> 4 ; // r5
845- src += 4 ;
850+ g |= src [BYTE_SWAP (0 )] << 4 ; // g4
851+ b = src [BYTE_SWAP (1 )];
852+ b |= (src [BYTE_SWAP (2 )] & 0xF ) << 8 ;
853+ WRITE_RES (4 )
854+ r = src [BYTE_SWAP (3 )] << 4 |
855+ src [BYTE_SWAP (2 )] >> 4 ; // r5
856+ src += 4 ;
846857
847- g = src [BYTE_SWAP (0 )];
848- g |= (src [BYTE_SWAP (1 )] & 0xF ) << 8 ;
849- b = src [BYTE_SWAP (2 )] << 4 | src [BYTE_SWAP (1 )] >> 4 ; // b5
858+ g = src [BYTE_SWAP (0 )];
859+ g |= (src [BYTE_SWAP (1 )] & 0xF ) << 8 ;
860+ b = src [BYTE_SWAP (2 )] << 4 |
861+ src [BYTE_SWAP (1 )] >> 4 ; // b5
850862 WRITE_RES (5 )
851- r = src [BYTE_SWAP (3 )];
852- src += 4 ;
863+ r = src [BYTE_SWAP (3 )];
864+ src += 4 ;
853865
854- r |= (src [BYTE_SWAP (0 )] & 0xF ) << 8 ;
855- g = src [BYTE_SWAP (1 )] << 4 | src [BYTE_SWAP (0 )] >> 4 ; // g6
856- b = src [BYTE_SWAP (2 )];
857- b |= (src [BYTE_SWAP (3 )] & 0xF ) << 8 ;
866+ r |= (src [BYTE_SWAP (0 )] & 0xF ) << 8 ;
867+ g = src [BYTE_SWAP (1 )] << 4 |
868+ src [BYTE_SWAP (0 )] >> 4 ; // g6
869+ b = src [BYTE_SWAP (2 )];
870+ b |= (src [BYTE_SWAP (3 )] & 0xF ) << 8 ;
858871 WRITE_RES (6 )
859- r = src [BYTE_SWAP (3 )] >> 4 ;
860- src += 4 ;
872+ r = src [BYTE_SWAP (3 )] >> 4 ;
873+ src += 4 ;
861874
862- r |= src [BYTE_SWAP (0 )] << 4 ; // r7
863- g = src [BYTE_SWAP (1 )];
864- g |= (src [BYTE_SWAP (2 )] & 0xF ) << 8 ;
865- b = src [BYTE_SWAP (3 )] << 4 | src [BYTE_SWAP (2 )] >> 4 ; // b7
875+ r |= src [BYTE_SWAP (0 )] << 4 ; // r7
876+ g = src [BYTE_SWAP (1 )];
877+ g |= (src [BYTE_SWAP (2 )] & 0xF ) << 8 ;
878+ b = src [BYTE_SWAP (3 )] << 4 |
879+ src [BYTE_SWAP (2 )] >> 4 ; // b7
866880 WRITE_RES (7 )
867- src += 4 ;
881+ src += 4 ;
868882 }
869883 }
870884#undef WRITE_RES
@@ -874,102 +888,112 @@ r12l_to_p210le(AVFrame *__restrict out_frame,
874888// copied from r12l_to_p210le
875889static void
876890r12l_to_ayuv64le (AVFrame * __restrict out_frame ,
877- const unsigned char * __restrict in_data , int width , int height )
891+ const unsigned char * __restrict in_data , int width , int height )
878892{
879893 assert ((uintptr_t ) out_frame -> linesize [0 ] % 2 == 0 );
880894
881895 const struct color_coeffs cfs = * get_color_coeffs (CS_DFL , DEPTH16 );
882896#define WRITE_RES (idx ) \
883897 *dst++ = 0xffff; /* alpha */ \
884- res_y = (RGB_TO_Y (cfs , r , g , b ) >> (COMP_BASE + 12 - DEPTH16 )) + \
898+ res_y = (RGB_TO_Y (cfs , r , g , b ) >> (COMP_BASE + 12 - DEPTH16 )) + \
885899 (1 << (DEPTH16 - 4 )); \
886900 * dst ++ = CLAMP_LIMITED_Y (res_y , DEPTH16 ); \
887- res_cb = \
888- (RGB_TO_CB (cfs , r , g , b ) >> (COMP_BASE + 12 - DEPTH16 )) + \
889- (1 << (DEPTH16 - 1 )); \
890- res_cr = \
891- (RGB_TO_CR (cfs , r , g , b ) >> (COMP_BASE + 12 - DEPTH16 )) + \
892- (1 << (DEPTH16 - 1 )); \
901+ res_cb = (RGB_TO_CB (cfs , r , g , b ) >> (COMP_BASE + 12 - DEPTH16 )) + \
902+ (1 << (DEPTH16 - 1 )); \
903+ res_cr = (RGB_TO_CR (cfs , r , g , b ) >> (COMP_BASE + 12 - DEPTH16 )) + \
904+ (1 << (DEPTH16 - 1 )); \
893905 * dst ++ = CLAMP_LIMITED_CBCR (res_cb , depth ); \
894- * dst ++ = CLAMP_LIMITED_CBCR (res_cr , depth ); \
906+ * dst ++ = CLAMP_LIMITED_CBCR (res_cr , depth );
895907
896908 const int src_linesize = vc_get_linesize (width , R12L );
897909 for (int y = 0 ; y < height ; ++ y ) {
898910 const unsigned char * src = in_data + y * src_linesize ;
899- uint16_t * dst = (uint16_t * )(void * ) (out_frame -> data [0 ] + out_frame -> linesize [0 ] * y );
911+ uint16_t * dst =
912+ (uint16_t * ) (void * ) (out_frame -> data [0 ] +
913+ out_frame -> linesize [0 ] * y );
900914
901- OPTIMIZED_FOR (int x = 0 ; x < width ; x += 8 ) {
902- comp_type_t r = 0 ;
903- comp_type_t g = 0 ;
904- comp_type_t b = 0 ;
905- comp_type_t res_y = 0 ;
915+ OPTIMIZED_FOR (int x = 0 ; x < width ; x += 8 )
916+ {
917+ comp_type_t r = 0 ;
918+ comp_type_t g = 0 ;
919+ comp_type_t b = 0 ;
920+ comp_type_t res_y = 0 ;
906921 comp_type_t res_cb = 0 ;
907922 comp_type_t res_cr = 0 ;
908923
909- r = src [BYTE_SWAP (0 )];
910- r |= (src [BYTE_SWAP (1 )] & 0xF ) << 8 ;
911- g = src [BYTE_SWAP (2 )] << 4 | src [BYTE_SWAP (1 )] >> 4 ; // g0
912- b = src [BYTE_SWAP (3 )];
913- src += 4 ;
924+ r = src [BYTE_SWAP (0 )];
925+ r |= (src [BYTE_SWAP (1 )] & 0xF ) << 8 ;
926+ g = src [BYTE_SWAP (2 )] << 4 |
927+ src [BYTE_SWAP (1 )] >> 4 ; // g0
928+ b = src [BYTE_SWAP (3 )];
929+ src += 4 ;
914930
915- b |= (src [BYTE_SWAP (0 )] & 0xF ) << 8 ;
931+ b |= (src [BYTE_SWAP (0 )] & 0xF ) << 8 ;
916932 WRITE_RES (0 )
917- r = src [BYTE_SWAP (1 )] << 4 | src [BYTE_SWAP (0 )] >> 4 ; // r1
918- g = src [BYTE_SWAP (2 )];
919- g |= (src [BYTE_SWAP (3 )] & 0xF ) << 8 ;
920- b = src [BYTE_SWAP (3 )] >> 4 ;
921- src += 4 ;
933+ r = src [BYTE_SWAP (1 )] << 4 |
934+ src [BYTE_SWAP (0 )] >> 4 ; // r1
935+ g = src [BYTE_SWAP (2 )];
936+ g |= (src [BYTE_SWAP (3 )] & 0xF ) << 8 ;
937+ b = src [BYTE_SWAP (3 )] >> 4 ;
938+ src += 4 ;
922939
923- b |= src [BYTE_SWAP (0 )] << 4 ; // b1
940+ b |= src [BYTE_SWAP (0 )] << 4 ; // b1
924941 WRITE_RES (1 )
925- r = src [BYTE_SWAP (1 )];
926- r |= (src [BYTE_SWAP (2 )] & 0xF ) << 8 ;
927- g = src [BYTE_SWAP (3 )] << 4 | src [BYTE_SWAP (2 )] >> 4 ; // g2
928- src += 4 ;
942+ r = src [BYTE_SWAP (1 )];
943+ r |= (src [BYTE_SWAP (2 )] & 0xF ) << 8 ;
944+ g = src [BYTE_SWAP (3 )] << 4 |
945+ src [BYTE_SWAP (2 )] >> 4 ; // g2
946+ src += 4 ;
929947
930- b = src [BYTE_SWAP (0 )];
931- b |= (src [BYTE_SWAP (1 )] & 0xF ) << 8 ;
948+ b = src [BYTE_SWAP (0 )];
949+ b |= (src [BYTE_SWAP (1 )] & 0xF ) << 8 ;
932950 WRITE_RES (2 )
933- r = src [BYTE_SWAP (2 )] << 4 | src [BYTE_SWAP (1 )] >> 4 ; // r3
934- g = src [BYTE_SWAP (3 )];
935- src += 4 ;
951+ r = src [BYTE_SWAP (2 )] << 4 |
952+ src [BYTE_SWAP (1 )] >> 4 ; // r3
953+ g = src [BYTE_SWAP (3 )];
954+ src += 4 ;
936955
937- g |= (src [BYTE_SWAP (0 )] & 0xF ) << 8 ;
938- b = src [BYTE_SWAP (1 )] << 4 | src [BYTE_SWAP (0 )] >> 4 ; // b3
956+ g |= (src [BYTE_SWAP (0 )] & 0xF ) << 8 ;
957+ b = src [BYTE_SWAP (1 )] << 4 |
958+ src [BYTE_SWAP (0 )] >> 4 ; // b3
939959 WRITE_RES (3 )
940- r = src [BYTE_SWAP (2 )];
941- r |= (src [BYTE_SWAP (3 )] & 0xF ) << 8 ;
942- g = src [BYTE_SWAP (3 )] >> 4 ;
943- src += 4 ;
960+ r = src [BYTE_SWAP (2 )];
961+ r |= (src [BYTE_SWAP (3 )] & 0xF ) << 8 ;
962+ g = src [BYTE_SWAP (3 )] >> 4 ;
963+ src += 4 ;
944964
945- g |= src [BYTE_SWAP (0 )] << 4 ; // g4
946- b = src [BYTE_SWAP (1 )];
947- b |= (src [BYTE_SWAP (2 )] & 0xF ) << 8 ;
948- WRITE_RES (4 )
949- r = src [BYTE_SWAP (3 )] << 4 | src [BYTE_SWAP (2 )] >> 4 ; // r5
950- src += 4 ;
965+ g |= src [BYTE_SWAP (0 )] << 4 ; // g4
966+ b = src [BYTE_SWAP (1 )];
967+ b |= (src [BYTE_SWAP (2 )] & 0xF ) << 8 ;
968+ WRITE_RES (4 )
969+ r = src [BYTE_SWAP (3 )] << 4 |
970+ src [BYTE_SWAP (2 )] >> 4 ; // r5
971+ src += 4 ;
951972
952- g = src [BYTE_SWAP (0 )];
953- g |= (src [BYTE_SWAP (1 )] & 0xF ) << 8 ;
954- b = src [BYTE_SWAP (2 )] << 4 | src [BYTE_SWAP (1 )] >> 4 ; // b5
973+ g = src [BYTE_SWAP (0 )];
974+ g |= (src [BYTE_SWAP (1 )] & 0xF ) << 8 ;
975+ b = src [BYTE_SWAP (2 )] << 4 |
976+ src [BYTE_SWAP (1 )] >> 4 ; // b5
955977 WRITE_RES (5 )
956- r = src [BYTE_SWAP (3 )];
957- src += 4 ;
978+ r = src [BYTE_SWAP (3 )];
979+ src += 4 ;
958980
959- r |= (src [BYTE_SWAP (0 )] & 0xF ) << 8 ;
960- g = src [BYTE_SWAP (1 )] << 4 | src [BYTE_SWAP (0 )] >> 4 ; // g6
961- b = src [BYTE_SWAP (2 )];
962- b |= (src [BYTE_SWAP (3 )] & 0xF ) << 8 ;
981+ r |= (src [BYTE_SWAP (0 )] & 0xF ) << 8 ;
982+ g = src [BYTE_SWAP (1 )] << 4 |
983+ src [BYTE_SWAP (0 )] >> 4 ; // g6
984+ b = src [BYTE_SWAP (2 )];
985+ b |= (src [BYTE_SWAP (3 )] & 0xF ) << 8 ;
963986 WRITE_RES (6 )
964- r = src [BYTE_SWAP (3 )] >> 4 ;
965- src += 4 ;
987+ r = src [BYTE_SWAP (3 )] >> 4 ;
988+ src += 4 ;
966989
967- r |= src [BYTE_SWAP (0 )] << 4 ; // r7
968- g = src [BYTE_SWAP (1 )];
969- g |= (src [BYTE_SWAP (2 )] & 0xF ) << 8 ;
970- b = src [BYTE_SWAP (3 )] << 4 | src [BYTE_SWAP (2 )] >> 4 ; // b7
990+ r |= src [BYTE_SWAP (0 )] << 4 ; // r7
991+ g = src [BYTE_SWAP (1 )];
992+ g |= (src [BYTE_SWAP (2 )] & 0xF ) << 8 ;
993+ b = src [BYTE_SWAP (3 )] << 4 |
994+ src [BYTE_SWAP (2 )] >> 4 ; // b7
971995 WRITE_RES (7 )
972- src += 4 ;
996+ src += 4 ;
973997 }
974998 }
975999#undef WRITE_RES
0 commit comments