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

Function encode_scale_factors

libavcodec/aacenc.c:377–394  ·  view source on GitHub ↗

* Encode scalefactors. */

Source from the content-addressed store, hash-verified

375 * Encode scalefactors.
376 */
377static void encode_scale_factors(AVCodecContext *avctx, AACEncContext *s,
378 SingleChannelElement *sce)
379{
380 int off = sce->sf_idx[0], diff;
381 int i, w;
382
383 for (w = 0; w < sce->ics.num_windows; w += sce->ics.group_len[w]) {
384 for (i = 0; i < sce->ics.max_sfb; i++) {
385 if (!sce->zeroes[w*16 + i]) {
386 diff = sce->sf_idx[w*16 + i] - off + SCALE_DIFF_ZERO;
387 if (diff < 0 || diff > 120)
388 av_log(avctx, AV_LOG_ERROR, "Scalefactor difference is too big to be coded\n");
389 off = sce->sf_idx[w*16 + i];
390 put_bits(&s->pb, ff_aac_scalefactor_bits[diff], ff_aac_scalefactor_code[diff]);
391 }
392 }
393 }
394}
395
396/**
397 * Encode pulse data.

Callers 1

Calls 1

av_logFunction · 0.85

Tested by

no test coverage detected