MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / encode_dc

Function encode_dc

libavcodec/mpeg12enc.c:812–847  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

810}
811
812static 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
849static void mpeg1_encode_block(MpegEncContext *s,
850 DCTELEM *block,

Callers 1

mpeg1_encode_blockFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected