comparison mjpeg.c @ 1275:61317ffc64d5 libavcodec

cleanup
author michaelni
date Tue, 20 May 2003 01:03:40 +0000
parents ec946cb74397
children 8623c2e29555
comparison
equal deleted inserted replaced
1274:95061e8c5ea9 1275:61317ffc64d5
901 } 901 }
902 902
903 static inline int mjpeg_decode_dc(MJpegDecodeContext *s, int dc_index) 903 static inline int mjpeg_decode_dc(MJpegDecodeContext *s, int dc_index)
904 { 904 {
905 int code, diff; 905 int code, diff;
906 #if 1
907 code = get_vlc2(&s->gb, s->vlcs[0][dc_index].table, 9, 2); 906 code = get_vlc2(&s->gb, s->vlcs[0][dc_index].table, 9, 2);
908 #else
909 code = get_vlc(&s->gb, &s->vlcs[0][dc_index]);
910 #endif
911 if (code < 0) 907 if (code < 0)
912 { 908 {
913 dprintf("mjpeg_decode_dc: bad vlc: %d:%d (%p)\n", 0, dc_index, 909 dprintf("mjpeg_decode_dc: bad vlc: %d:%d (%p)\n", 0, dc_index,
914 &s->vlcs[0][dc_index]); 910 &s->vlcs[0][dc_index]);
915 return 0xffff; 911 return 0xffff;
916 } 912 }
917 if (code == 0) { 913 if (code == 0) {
918 diff = 0; 914 diff = 0;
919 } else { 915 } else {
920 diff = get_bits(&s->gb, code); 916 diff = get_xbits(&s->gb, code);
921 if ((diff & (1 << (code - 1))) == 0)
922 diff = (-1 << code) | (diff + 1);
923 } 917 }
924 return diff; 918 return diff;
925 } 919 }
926 920
927 /* decode block and dequantize */ 921 /* decode block and dequantize */
945 block[0] = val; 939 block[0] = val;
946 /* AC coefs */ 940 /* AC coefs */
947 ac_vlc = &s->vlcs[1][ac_index]; 941 ac_vlc = &s->vlcs[1][ac_index];
948 i = 1; 942 i = 1;
949 for(;;) { 943 for(;;) {
950 #if 1
951 code = get_vlc2(&s->gb, s->vlcs[1][ac_index].table, 9, 2); 944 code = get_vlc2(&s->gb, s->vlcs[1][ac_index].table, 9, 2);
952 #else 945
953 code = get_vlc(&s->gb, ac_vlc);
954 #endif
955 if (code < 0) { 946 if (code < 0) {
956 dprintf("error ac\n"); 947 dprintf("error ac\n");
957 return -1; 948 return -1;
958 } 949 }
959 /* EOB */ 950 /* EOB */
962 if (code == 0xf0) { 953 if (code == 0xf0) {
963 i += 16; 954 i += 16;
964 } else { 955 } else {
965 run = code >> 4; 956 run = code >> 4;
966 nbits = code & 0xf; 957 nbits = code & 0xf;
967 level = get_bits(&s->gb, nbits); 958 level = get_xbits(&s->gb, nbits);
968 if ((level & (1 << (nbits - 1))) == 0)
969 level = (-1 << nbits) | (level + 1);
970 i += run; 959 i += run;
971 if (i >= 64) { 960 if (i >= 64) {
972 dprintf("error count: %d\n", i); 961 dprintf("error count: %d\n", i);
973 return -1; 962 return -1;
974 } 963 }