| 810 | } |
| 811 | |
| 812 | static inline void encode_dc(MpegEncContext *s, int diff, int component) |
| 813 | { |
| 814 | if(((unsigned) (diff+255)) >= 511){ |
| 815 | int index; |
| 816 | |
| 817 | if(diff<0){ |
| 818 | index= av_log2_16bit(-2*diff); |
| 819 | diff--; |
| 820 | }else{ |
| 821 | index= av_log2_16bit(2*diff); |
| 822 | } |
| 823 | if (component == 0) { |
| 824 | put_bits( |
| 825 | &s->pb, |
| 826 | ff_mpeg12_vlc_dc_lum_bits[index] + index, |
| 827 | (ff_mpeg12_vlc_dc_lum_code[index]<<index) + (diff & ((1 << index) - 1))); |
| 828 | }else{ |
| 829 | put_bits( |
| 830 | &s->pb, |
| 831 | ff_mpeg12_vlc_dc_chroma_bits[index] + index, |
| 832 | (ff_mpeg12_vlc_dc_chroma_code[index]<<index) + (diff & ((1 << index) - 1))); |
| 833 | } |
| 834 | }else{ |
| 835 | if (component == 0) { |
| 836 | put_bits( |
| 837 | &s->pb, |
| 838 | mpeg1_lum_dc_uni[diff+255]&0xFF, |
| 839 | mpeg1_lum_dc_uni[diff+255]>>8); |
| 840 | } else { |
| 841 | put_bits( |
| 842 | &s->pb, |
| 843 | mpeg1_chr_dc_uni[diff+255]&0xFF, |
| 844 | mpeg1_chr_dc_uni[diff+255]>>8); |
| 845 | } |
| 846 | } |
| 847 | } |
| 848 | |
| 849 | static void mpeg1_encode_block(MpegEncContext *s, |
| 850 | DCTELEM *block, |
no outgoing calls
no test coverage detected