Mercurial > libavcodec.hg
comparison parser.c @ 3063:f02d0b59279c libavcodec
Remove all stray tabs and trailing whitespace, this time for good.
author | diego |
---|---|
date | Tue, 24 Jan 2006 10:33:14 +0000 |
parents | 61b4cc042988 |
children | d85afa120256 |
comparison
equal
deleted
inserted
replaced
3062:8d05d4036b6a | 3063:f02d0b59279c |
---|---|
759 static const int ac3_sample_rates[4] = { | 759 static const int ac3_sample_rates[4] = { |
760 48000, 44100, 32000, 0 | 760 48000, 44100, 32000, 0 |
761 }; | 761 }; |
762 | 762 |
763 static const int ac3_frame_sizes[64][3] = { | 763 static const int ac3_frame_sizes[64][3] = { |
764 { 64, 69, 96 }, | 764 { 64, 69, 96 }, |
765 { 64, 70, 96 }, | 765 { 64, 70, 96 }, |
766 { 80, 87, 120 }, | 766 { 80, 87, 120 }, |
767 { 80, 88, 120 }, | 767 { 80, 88, 120 }, |
768 { 96, 104, 144 }, | 768 { 96, 104, 144 }, |
769 { 96, 105, 144 }, | 769 { 96, 105, 144 }, |
770 { 112, 121, 168 }, | 770 { 112, 121, 168 }, |
771 { 112, 122, 168 }, | 771 { 112, 122, 168 }, |
772 { 128, 139, 192 }, | 772 { 128, 139, 192 }, |
773 { 128, 140, 192 }, | 773 { 128, 140, 192 }, |
774 { 160, 174, 240 }, | 774 { 160, 174, 240 }, |
775 { 160, 175, 240 }, | 775 { 160, 175, 240 }, |
776 { 192, 208, 288 }, | 776 { 192, 208, 288 }, |
777 { 192, 209, 288 }, | 777 { 192, 209, 288 }, |
778 { 224, 243, 336 }, | 778 { 224, 243, 336 }, |
779 { 224, 244, 336 }, | 779 { 224, 244, 336 }, |
780 { 256, 278, 384 }, | 780 { 256, 278, 384 }, |
781 { 256, 279, 384 }, | 781 { 256, 279, 384 }, |
782 { 320, 348, 480 }, | 782 { 320, 348, 480 }, |
783 { 320, 349, 480 }, | 783 { 320, 349, 480 }, |
784 { 384, 417, 576 }, | 784 { 384, 417, 576 }, |
785 { 384, 418, 576 }, | 785 { 384, 418, 576 }, |
786 { 448, 487, 672 }, | 786 { 448, 487, 672 }, |
787 { 448, 488, 672 }, | 787 { 448, 488, 672 }, |
788 { 512, 557, 768 }, | 788 { 512, 557, 768 }, |
789 { 512, 558, 768 }, | 789 { 512, 558, 768 }, |
790 { 640, 696, 960 }, | 790 { 640, 696, 960 }, |
791 { 640, 697, 960 }, | 791 { 640, 697, 960 }, |
792 { 768, 835, 1152 }, | 792 { 768, 835, 1152 }, |
793 { 768, 836, 1152 }, | 793 { 768, 836, 1152 }, |
794 { 896, 975, 1344 }, | 794 { 896, 975, 1344 }, |
795 { 896, 976, 1344 }, | 795 { 896, 976, 1344 }, |
796 { 1024, 1114, 1536 }, | 796 { 1024, 1114, 1536 }, |
797 { 1024, 1115, 1536 }, | 797 { 1024, 1115, 1536 }, |
798 { 1152, 1253, 1728 }, | 798 { 1152, 1253, 1728 }, |
799 { 1152, 1254, 1728 }, | 799 { 1152, 1254, 1728 }, |
800 { 1280, 1393, 1920 }, | 800 { 1280, 1393, 1920 }, |
810 static const int ac3_channels[8] = { | 810 static const int ac3_channels[8] = { |
811 2, 1, 2, 3, 3, 4, 4, 5 | 811 2, 1, 2, 3, 3, 4, 4, 5 |
812 }; | 812 }; |
813 | 813 |
814 static int ac3_sync(const uint8_t *buf, int *channels, int *sample_rate, | 814 static int ac3_sync(const uint8_t *buf, int *channels, int *sample_rate, |
815 int *bit_rate) | 815 int *bit_rate) |
816 { | 816 { |
817 unsigned int fscod, frmsizecod, acmod, bsid, lfeon; | 817 unsigned int fscod, frmsizecod, acmod, bsid, lfeon; |
818 GetBitContext bits; | 818 GetBitContext bits; |
819 | 819 |
820 init_get_bits(&bits, buf, AC3_HEADER_SIZE * 8); | 820 init_get_bits(&bits, buf, AC3_HEADER_SIZE * 8); |
821 | 821 |
822 if(get_bits(&bits, 16) != 0x0b77) | 822 if(get_bits(&bits, 16) != 0x0b77) |
823 return 0; | 823 return 0; |
824 | 824 |
825 get_bits(&bits, 16); /* crc */ | 825 get_bits(&bits, 16); /* crc */ |
826 fscod = get_bits(&bits, 2); | 826 fscod = get_bits(&bits, 2); |
827 frmsizecod = get_bits(&bits, 6); | 827 frmsizecod = get_bits(&bits, 6); |
828 | 828 |
829 if(!ac3_sample_rates[fscod]) | 829 if(!ac3_sample_rates[fscod]) |
830 return 0; | 830 return 0; |
831 | 831 |
832 bsid = get_bits(&bits, 5); | 832 bsid = get_bits(&bits, 5); |
833 if(bsid > 8) | 833 if(bsid > 8) |
834 return 0; | 834 return 0; |
835 get_bits(&bits, 3); /* bsmod */ | 835 get_bits(&bits, 3); /* bsmod */ |
836 acmod = get_bits(&bits, 3); | 836 acmod = get_bits(&bits, 3); |
837 if(acmod & 1 && acmod != 1) | 837 if(acmod & 1 && acmod != 1) |
838 get_bits(&bits, 2); /* cmixlev */ | 838 get_bits(&bits, 2); /* cmixlev */ |
839 if(acmod & 4) | 839 if(acmod & 4) |
840 get_bits(&bits, 2); /* surmixlev */ | 840 get_bits(&bits, 2); /* surmixlev */ |
841 if(acmod & 2) | 841 if(acmod & 2) |
842 get_bits(&bits, 2); /* dsurmod */ | 842 get_bits(&bits, 2); /* dsurmod */ |
843 lfeon = get_bits(&bits, 1); | 843 lfeon = get_bits(&bits, 1); |
844 | 844 |
845 *sample_rate = ac3_sample_rates[fscod]; | 845 *sample_rate = ac3_sample_rates[fscod]; |
846 *bit_rate = ac3_bitrates[frmsizecod] * 1000; | 846 *bit_rate = ac3_bitrates[frmsizecod] * 1000; |
847 *channels = ac3_channels[acmod] + lfeon; | 847 *channels = ac3_channels[acmod] + lfeon; |
879 memcpy(s->inbuf_ptr, buf_ptr, len); | 879 memcpy(s->inbuf_ptr, buf_ptr, len); |
880 buf_ptr += len; | 880 buf_ptr += len; |
881 s->inbuf_ptr += len; | 881 s->inbuf_ptr += len; |
882 buf_size -= len; | 882 buf_size -= len; |
883 if ((s->inbuf_ptr - s->inbuf) == AC3_HEADER_SIZE) { | 883 if ((s->inbuf_ptr - s->inbuf) == AC3_HEADER_SIZE) { |
884 len = ac3_sync(s->inbuf, &channels, &sample_rate, &bit_rate); | 884 len = ac3_sync(s->inbuf, &channels, &sample_rate, &bit_rate); |
885 if (len == 0) { | 885 if (len == 0) { |
886 /* no sync found : move by one byte (inefficient, but simple!) */ | 886 /* no sync found : move by one byte (inefficient, but simple!) */ |
887 memmove(s->inbuf, s->inbuf + 1, AC3_HEADER_SIZE - 1); | 887 memmove(s->inbuf, s->inbuf + 1, AC3_HEADER_SIZE - 1); |
888 s->inbuf_ptr--; | 888 s->inbuf_ptr--; |
889 } else { | 889 } else { |
890 s->frame_size = len; | 890 s->frame_size = len; |
891 /* update codec info */ | 891 /* update codec info */ |
892 avctx->sample_rate = sample_rate; | 892 avctx->sample_rate = sample_rate; |
893 /* set channels,except if the user explicitly requests 1 or 2 channels, XXX/FIXME this is a bit ugly */ | 893 /* set channels,except if the user explicitly requests 1 or 2 channels, XXX/FIXME this is a bit ugly */ |
894 if(avctx->channels!=1 && avctx->channels!=2){ | 894 if(avctx->channels!=1 && avctx->channels!=2){ |
895 avctx->channels = channels; | 895 avctx->channels = channels; |
896 } | 896 } |
897 avctx->bit_rate = bit_rate; | 897 avctx->bit_rate = bit_rate; |
898 avctx->frame_size = 6 * 256; | 898 avctx->frame_size = 6 * 256; |
899 } | 899 } |
900 } | 900 } |