38 #define ELS_JOTS_PER_BYTE   36 
   39 #define ELS_MAX             (1 << 24) 
   40 #define RUNG_SPACE          (64 * sizeof(ElsRungNode)) 
   91     { -2,  -13, 152, 164 },
 
  129     { -1,  -30,  78, 100 },
 
  131     { -1,  -29,  80, 102 },
 
  133     { -1,  -29,  82, 104 },
 
  135     { -1,  -28,  84, 104 },
 
  137     { -1,  -28,  86, 108 },
 
  139     { -1,  -27,  88, 108 },
 
  141     { -1,  -27,  90, 112 },
 
  143     { -1,  -26,  92, 112 },
 
  145     { -1,  -26,  94, 114 },
 
  147     { -1,  -25,  96, 116 },
 
  148     { -1,  -20, 101,  83 },
 
  149     { -1,  -25,  98, 118 },
 
  150     { -1,  -21, 103,  83 },
 
  151     { -1,  -24, 100, 120 },
 
  152     { -1,  -21, 105,  85 },
 
  153     { -1,  -24, 102, 122 },
 
  154     { -1,  -22, 107,  87 },
 
  155     { -1,  -23, 104, 124 },
 
  156     { -1,  -22, 109,  89 },
 
  157     { -1,  -23, 106, 126 },
 
  158     { -1,  -22, 111,  91 },
 
  159     { -1,  -22, 108, 128 },
 
  160     { -1,  -23, 113,  93 },
 
  161     { -1,  -22, 110, 130 },
 
  162     { -1,  -23, 115,  95 },
 
  163     { -1,  -22, 112, 132 },
 
  164     { -1,  -24, 117,  97 },
 
  165     { -1,  -21, 114, 134 },
 
  166     { -1,  -24, 119,  99 },
 
  167     { -1,  -21, 116, 136 },
 
  168     { -1,  -25, 121, 101 },
 
  169     { -1,  -20, 118, 136 },
 
  170     { -1,  -25, 123, 103 },
 
  171     { -1,  -20, 120, 138 },
 
  172     { -1,  -26, 125, 105 },
 
  173     { -1,  -20, 122, 140 },
 
  174     { -1,  -26, 127, 107 },
 
  175     { -1,  -19, 124, 142 },
 
  176     { -1,  -27, 129, 107 },
 
  177     { -1,  -19, 126, 144 },
 
  178     { -1,  -27, 131, 111 },
 
  179     { -1,  -18, 128, 146 },
 
  180     { -1,  -28, 133, 111 },
 
  181     { -1,  -18, 130, 146 },
 
  182     { -1,  -28, 135, 115 },
 
  183     { -1,  -18, 132, 148 },
 
  184     { -1,  -29, 137, 115 },
 
  185     { -1,  -17, 134, 150 },
 
  186     { -1,  -29, 139, 117 },
 
  187     { -1,  -17, 136, 152 },
 
  188     { -1,  -30, 141, 119 },
 
  189     { -1,  -16, 138, 152 },
 
  190     { -1,  -31, 143, 121 },
 
  191     { -1,  -16, 140, 154 },
 
  192     { -1,  -31, 145, 123 },
 
  193     { -1,  -15, 142, 156 },
 
  194     { -1,  -32, 147, 125 },
 
  195     { -1,  -15, 144, 158 },
 
  196     { -1,  -33, 149, 127 },
 
  197     { -1,  -15, 146, 158 },
 
  198     { -1,  -34, 151, 129 },
 
  199     { -1,  -14, 148, 160 },
 
  200     { -1,  -35, 153, 131 },
 
  201     { -1,  -14, 150, 160 },
 
  202     { -1,  -36, 155, 133 },
 
  203     { -2,  -13, 152, 162 },
 
  204     { -1,  -37, 157, 135 },
 
  205     { -2,  -12, 154, 164 },
 
  206     { -1,  -39, 159, 137 },
 
  207     { -2,  -12, 156, 164 },
 
  208     { -1,  -41, 161, 139 },
 
  209     { -2,  -11, 158, 166 },
 
  210     { -1,  -43, 163, 141 },
 
  211     { -2,  -10, 160, 166 },
 
  212     { -1,  -46, 165, 143 },
 
  213     { -3,   -9, 162, 168 },
 
  214     { -1,  -51, 167, 143 },
 
  215     { -3,   -8, 164, 170 },
 
  216     { -1,  -61, 169, 145 },
 
  217     { -4,   -7, 166, 170 },
 
  218     { -1,  -72, 169, 145 },
 
  220     {  0, -108, 171, 171 },
 
  221     {  0, -108, 172, 172 },
 
  222     { -6,   -5, 173, 173 },
 
  226            0,        0,       0,       0,       0,       0,         0,        0,
 
  227            0,        0,       0,       0,       0,       0,         0,        0,
 
  228            0,        0,       0,       0,       0,       0,         0,        0,
 
  229            0,        0,       0,       0,       0,       0,         0,        0,
 
  230            0,        0,       0,       0,       1,       1,         1,        1,
 
  231            1,        2,       2,       2,       3,       4,         4,        5,
 
  232            6,        7,       8,      10,      11,      13,        16,       18,
 
  233           21,       25,      29,      34,      40,      47,        54,       64,
 
  234           74,       87,     101,     118,     138,      161,      188,      219,
 
  235          256,      298,     348,     406,     474,      552,      645,      752,
 
  236          877,     1024,    1194,    1393,    1625,     1896,     2211,     2580,
 
  237         3010,     3511,    4096,    4778,    5573,     6501,     7584,     8847,
 
  238        10321,    12040,   14045,   16384,   19112,    22295,    26007,    30339,
 
  239        35391,    41285,   48160,   56180,   65536,    76288,    89088,   103936,
 
  240       121344,   141312,  165120,  192512,  224512,   262144,   305664,   356608,
 
  241       416000,   485376,  566016,  660480,  770560,   898816,  1048576,  1223168,
 
  242      1426688,  1664256, 1941504, 2264832, 2642176,  3082240,  3595520,  4194304,
 
  243      4892672,  5707520, 6657792, 7766784, 9060096, 10568960, 12328960, 14382080,
 
  252     if (data_size >= 3) {
 
  255     } 
else if (data_size == 2) {
 
  263     ctx->
in_buf    = in + nbytes;
 
  283     ctx->
x   = (ctx->
x << 8) | *ctx->
in_buf++;
 
  305     if (ctx->
t > ctx->
x) {  
 
  307         while (ctx->
t > pAllowable[ctx->
j])
 
  336                 while (pAllowable[ctx->
j - 1] >= z)
 
  345     ctx->
diff = 
FFMIN(z - ctx->
x, z - pAllowable[ctx->
j - 1]);
 
  364     if (ctx->
err || n >= ELS_EXPGOLOMB_LEN) {
 
  386     for (i = 0, r = 0, bit = 0; i < 
n; i++) {
 
  421     return (1 << n) - 1 + 
r; 
 
#define AVERROR_INVALIDDATA
Invalid data found when processing input. 
Entropy Logarithmic-Scale binary arithmetic coder. 
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_WL32 unsigned int_TMPL AV_WL24 unsigned int_TMPL AV_WL16 uint64_t_TMPL AV_WB64 unsigned int_TMPL AV_WB32 unsigned int_TMPL AV_WB24 unsigned int_TMPL AV_RB16
#define ELS_EXPGOLOMB_LEN
static const uint32_t els_exp_tab[ELS_JOTS_PER_BYTE *4+1]
#define AVERROR_EOF
End of file. 
#define ELS_JOTS_PER_BYTE
void ff_els_decoder_init(ElsDecCtx *ctx, const uint8_t *in, size_t data_size)
Libavcodec external API header. 
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_WL32 unsigned int_TMPL AV_WL24 unsigned int_TMPL AV_WL16 uint64_t_TMPL AV_WB64 unsigned int_TMPL AV_WB32 unsigned int_TMPL AV_RB24
uint8_t pi<< 24) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_U8, uint8_t,(*(constuint8_t *) pi-0x80)*(1.0f/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_U8, uint8_t,(*(constuint8_t *) pi-0x80)*(1.0/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S16, int16_t,(*(constint16_t *) pi >>8)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S16, int16_t,*(constint16_t *) pi *(1.0f/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S16, int16_t,*(constint16_t *) pi *(1.0/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S32, int32_t,(*(constint32_t *) pi >>24)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S32, int32_t,*(constint32_t *) pi *(1.0f/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S32, int32_t,*(constint32_t *) pi *(1.0/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_FLT, float, av_clip_uint8(lrintf(*(constfloat *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_FLT, float, av_clip_int16(lrintf(*(constfloat *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_FLT, float, av_clipl_int32(llrintf(*(constfloat *) pi *(1U<< 31)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_DBL, double, av_clip_uint8(lrint(*(constdouble *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_DBL, double, av_clip_int16(lrint(*(constdouble *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_DBL, double, av_clipl_int32(llrint(*(constdouble *) pi *(1U<< 31))))#defineSET_CONV_FUNC_GROUP(ofmt, ifmt) staticvoidset_generic_function(AudioConvert *ac){}voidff_audio_convert_free(AudioConvert **ac){if(!*ac) return;ff_dither_free(&(*ac) ->dc);av_freep(ac);}AudioConvert *ff_audio_convert_alloc(AVAudioResampleContext *avr, enumAVSampleFormatout_fmt, enumAVSampleFormatin_fmt, intchannels, intsample_rate, intapply_map){AudioConvert *ac;intin_planar, out_planar;ac=av_mallocz(sizeof(*ac));if(!ac) returnNULL;ac->avr=avr;ac->out_fmt=out_fmt;ac->in_fmt=in_fmt;ac->channels=channels;ac->apply_map=apply_map;if(avr->dither_method!=AV_RESAMPLE_DITHER_NONE &&av_get_packed_sample_fmt(out_fmt)==AV_SAMPLE_FMT_S16 &&av_get_bytes_per_sample(in_fmt)>2){ac->dc=ff_dither_alloc(avr, out_fmt, in_fmt, channels, sample_rate, apply_map);if(!ac->dc){av_free(ac);returnNULL;}returnac;}in_planar=ff_sample_fmt_is_planar(in_fmt, channels);out_planar=ff_sample_fmt_is_planar(out_fmt, channels);if(in_planar==out_planar){ac->func_type=CONV_FUNC_TYPE_FLAT;ac->planes=in_planar?ac->channels:1;}elseif(in_planar) ac->func_type=CONV_FUNC_TYPE_INTERLEAVE;elseac->func_type=CONV_FUNC_TYPE_DEINTERLEAVE;set_generic_function(ac);if(ARCH_AARCH64) ff_audio_convert_init_aarch64(ac);if(ARCH_ARM) ff_audio_convert_init_arm(ac);if(ARCH_X86) ff_audio_convert_init_x86(ac);returnac;}intff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in){intuse_generic=1;intlen=in->nb_samples;intp;if(ac->dc){av_log(ac->avr, AV_LOG_TRACE,"%dsamples-audio_convert:%sto%s(dithered)\n", len, av_get_sample_fmt_name(ac->in_fmt), av_get_sample_fmt_name(ac->out_fmt));returnff_convert_dither(ac-> in
ElsRungNode * rem_rung_list
static int els_import_byte(ElsDecCtx *ctx)
unsigned ff_els_decode_unsigned(ElsDecCtx *ctx, ElsUnsignedRung *ur)
common internal and external API header 
void * av_realloc(void *ptr, size_t size)
Allocate or reallocate a block of memory. 
void ff_els_decoder_uninit(ElsUnsignedRung *rung)
int ff_els_decode_bit(ElsDecCtx *ctx, uint8_t *rung)
uint8_t prefix_rung[ELS_EXPGOLOMB_LEN+1]