Revision cb6247cb libavcodec/ac3enc.c

View differences:

libavcodec/ac3enc.c
929 929

  
930 930

  
931 931
/**
932
 * Perform bit allocation search.
933
 * Finds the SNR offset value that maximizes quality and fits in the specified
934
 * frame size.  Output is the SNR offset and a set of bit allocation pointers
935
 * used to quantize the mantissas.
932
 * Constant bitrate bit allocation search.
933
 * Find the largest SNR offset that will allow data to fit in the frame.
936 934
 */
937
static int compute_bit_allocation(AC3EncodeContext *s)
935
static int cbr_bit_allocation(AC3EncodeContext *s)
938 936
{
939 937
    int ch;
940 938
    int bits_left;
941 939
    int snr_offset;
942 940

  
943
    /* count frame bits other than exponents and mantissas */
944
    count_frame_bits(s);
945

  
946
    /* calculate psd and masking curve before doing bit allocation */
947
    bit_alloc_masking(s);
948

  
949
    /* now the big work begins : do the bit allocation. Modify the snr
950
       offset until we can pack everything in the requested frame size */
951

  
952 941
    bits_left = 8 * s->frame_size - (s->frame_bits + s->exponent_bits);
953 942

  
954 943
    snr_offset = s->coarse_snr_offset << 4;
......
991 980

  
992 981

  
993 982
/**
983
 * Perform bit allocation search.
984
 * Finds the SNR offset value that maximizes quality and fits in the specified
985
 * frame size.  Output is the SNR offset and a set of bit allocation pointers
986
 * used to quantize the mantissas.
987
 */
988
static int compute_bit_allocation(AC3EncodeContext *s)
989
{
990
    /* count frame bits other than exponents and mantissas */
991
    count_frame_bits(s);
992

  
993
    /* calculate psd and masking curve before doing bit allocation */
994
    bit_alloc_masking(s);
995

  
996
    return cbr_bit_allocation(s);
997
}
998

  
999

  
1000
/**
994 1001
 * Symmetric quantization on 'levels' levels.
995 1002
 */
996 1003
static inline int sym_quant(int c, int e, int levels)

Also available in: Unified diff