Lines Matching refs:gfc
71 getframebits(const lame_internal_flags * gfc)
73 SessionConfig_t const *const cfg = &gfc->cfg;
74 EncResult_t const *const eov = &gfc->ov_enc;
133 putheader_bits(lame_internal_flags * gfc)
135 SessionConfig_t const *const cfg = &gfc->cfg;
136 EncStateVar_t *const esv = &gfc->sv_enc;
137 Bit_stream_struc *bs = &gfc->bs;
152 putbits2(lame_internal_flags * gfc, int val, int j)
154 EncStateVar_t const *const esv = &gfc->sv_enc;
156 bs = &gfc->bs;
168 putheader_bits(gfc);
188 putbits_noheaders(lame_internal_flags * gfc, int val, int j)
191 bs = &gfc->bs;
226 drain_into_ancillary(lame_internal_flags * gfc, int remainingBits)
228 SessionConfig_t const *const cfg = &gfc->cfg;
229 EncStateVar_t *const esv = &gfc->sv_enc;
234 putbits2(gfc, 0x4c, 8);
238 putbits2(gfc, 0x41, 8);
242 putbits2(gfc, 0x4d, 8);
246 putbits2(gfc, 0x45, 8);
255 putbits2(gfc, version[i], 8);
260 putbits2(gfc, esv->ancillary_flag, 1);
270 writeheader(lame_internal_flags * gfc, int val, int j)
272 EncStateVar_t *const esv = &gfc->sv_enc;
304 CRC_writeheader(lame_internal_flags const *gfc, char *header)
306 SessionConfig_t const *const cfg = &gfc->cfg;
321 encodeSideInfo2(lame_internal_flags * gfc, int bitsPerFrame)
323 SessionConfig_t const *const cfg = &gfc->cfg;
324 EncResult_t const *const eov = &gfc->ov_enc;
325 EncStateVar_t *const esv = &gfc->sv_enc;
329 l3_side = &gfc->l3_side;
333 writeheader(gfc, 0xffe, 12);
335 writeheader(gfc, 0xfff, 12);
336 writeheader(gfc, (cfg->version), 1);
337 writeheader(gfc, 4 - 3, 2);
338 writeheader(gfc, (!cfg->error_protection), 1);
339 writeheader(gfc, (eov->bitrate_index), 4);
340 writeheader(gfc, (cfg->samplerate_index), 2);
341 writeheader(gfc, (eov->padding), 1);
342 writeheader(gfc, (cfg->extension), 1);
343 writeheader(gfc, (cfg->mode), 2);
344 writeheader(gfc, (eov->mode_ext), 2);
345 writeheader(gfc, (cfg->copyright), 1);
346 writeheader(gfc, (cfg->original), 1);
347 writeheader(gfc, (cfg->emphasis), 2);
349 writeheader(gfc, 0, 16); /* dummy */
355 writeheader(gfc, (l3_side->main_data_begin), 9);
358 writeheader(gfc, l3_side->private_bits, 3);
360 writeheader(gfc, l3_side->private_bits, 5);
365 writeheader(gfc, l3_side->scfsi[ch][band], 1);
372 writeheader(gfc, gi->part2_3_length + gi->part2_length, 12);
373 writeheader(gfc, gi->big_values / 2, 9);
374 writeheader(gfc, gi->global_gain, 8);
375 writeheader(gfc, gi->scalefac_compress, 4);
378 writeheader(gfc, 1, 1); /* window_switching_flag */
379 writeheader(gfc, gi->block_type, 2);
380 writeheader(gfc, gi->mixed_block_flag, 1);
384 writeheader(gfc, gi->table_select[0], 5);
387 writeheader(gfc, gi->table_select[1], 5);
389 writeheader(gfc, gi->subblock_gain[0], 3);
390 writeheader(gfc, gi->subblock_gain[1], 3);
391 writeheader(gfc, gi->subblock_gain[2], 3);
394 writeheader(gfc, 0, 1); /* window_switching_flag */
397 writeheader(gfc, gi->table_select[0], 5);
400 writeheader(gfc, gi->table_select[1], 5);
403 writeheader(gfc, gi->table_select[2], 5);
407 writeheader(gfc, gi->region0_count, 4);
408 writeheader(gfc, gi->region1_count, 3);
410 writeheader(gfc, gi->preflag, 1);
411 writeheader(gfc, gi->scalefac_scale, 1);
412 writeheader(gfc, gi->count1table_select, 1);
419 writeheader(gfc, (l3_side->main_data_begin), 8);
420 writeheader(gfc, l3_side->private_bits, cfg->channels_out);
425 writeheader(gfc, gi->part2_3_length + gi->part2_length, 12);
426 writeheader(gfc, gi->big_values / 2, 9);
427 writeheader(gfc, gi->global_gain, 8);
428 writeheader(gfc, gi->scalefac_compress, 9);
431 writeheader(gfc, 1, 1); /* window_switching_flag */
432 writeheader(gfc, gi->block_type, 2);
433 writeheader(gfc, gi->mixed_block_flag, 1);
437 writeheader(gfc, gi->table_select[0], 5);
440 writeheader(gfc, gi->table_select[1], 5);
442 writeheader(gfc, gi->subblock_gain[0], 3);
443 writeheader(gfc, gi->subblock_gain[1], 3);
444 writeheader(gfc, gi->subblock_gain[2], 3);
447 writeheader(gfc, 0, 1); /* window_switching_flag */
450 writeheader(gfc, gi->table_select[0], 5);
453 writeheader(gfc, gi->table_select[1], 5);
456 writeheader(gfc, gi->table_select[2], 5);
460 writeheader(gfc, gi->region0_count, 4);
461 writeheader(gfc, gi->region1_count, 3);
464 writeheader(gfc, gi->scalefac_scale, 1);
465 writeheader(gfc, gi->count1table_select, 1);
471 CRC_writeheader(gfc, esv->header[esv->h_ptr].buf);
483 ERRORF(gfc, "Error: MAX_HEADER_BUF too small in bitstream.c \n");
491 huffman_coder_count1(lame_internal_flags * gfc, gr_info const *gi)
497 int gegebo = gfc->bs.totbit;
545 putbits2(gfc, huffbits + h->table[p], h->hlen[p]);
549 DEBUGF(gfc, "count1: real: %ld counted:%d (bigv %d count1len %d)\n",
550 gfc->bs.totbit - gegebo, gi->count1bits, gi->big_values, gi->count1);
561 Huffmancode(lame_internal_flags * const gfc, const unsigned int tableindex,
626 putbits2(gfc, h->table[x1], cbits);
627 putbits2(gfc, (int)ext, xbits);
639 ShortHuffmancodebits(lame_internal_flags * gfc, gr_info const *gi)
644 region1Start = 3 * gfc->scalefac_band.s[3];
649 bits = Huffmancode(gfc, gi->table_select[0], 0, region1Start, gi);
650 bits += Huffmancode(gfc, gi->table_select[1], region1Start, gi->big_values, gi);
655 LongHuffmancodebits(lame_internal_flags * gfc, gr_info const *gi)
667 assert((size_t) i < dimension_of(gfc->scalefac_band.l));
668 region1Start = gfc->scalefac_band.l[i];
670 assert((size_t) i < dimension_of(gfc->scalefac_band.l));
671 region2Start = gfc->scalefac_band.l[i];
679 bits = Huffmancode(gfc, gi->table_select[0], 0, region1Start, gi);
680 bits += Huffmancode(gfc, gi->table_select[1], region1Start, region2Start, gi);
681 bits += Huffmancode(gfc, gi->table_select[2], region2Start, bigvalues, gi);
686 writeMainData(lame_internal_flags * const gfc)
688 SessionConfig_t const *const cfg = &gfc->cfg;
689 III_side_info_t const *const l3_side = &gfc->l3_side;
701 hogege = gfc->bs.totbit;
706 putbits2(gfc, gi->scalefac[sfb], slen1);
712 putbits2(gfc, gi->scalefac[sfb], slen2);
718 data_bits += ShortHuffmancodebits(gfc, gi);
721 data_bits += LongHuffmancodebits(gfc, gi);
723 data_bits += huffman_coder_count1(gfc, gi);
725 DEBUGF(gfc, "<%ld> ", gfc->bs.totbit - hogege);
742 hogege = gfc->bs.totbit;
752 putbits2(gfc, Max(gi->scalefac[sfb * 3 + 0], 0), slen);
753 putbits2(gfc, Max(gi->scalefac[sfb * 3 + 1], 0), slen);
754 putbits2(gfc, Max(gi->scalefac[sfb * 3 + 2], 0), slen);
758 data_bits += ShortHuffmancodebits(gfc, gi);
765 putbits2(gfc, Max(gi->scalefac[sfb], 0), slen);
769 data_bits += LongHuffmancodebits(gfc, gi);
771 data_bits += huffman_coder_count1(gfc, gi);
773 DEBUGF(gfc, "<%ld> ", gfc->bs.totbit - hogege);
802 compute_flushbits(const lame_internal_flags * gfc, int *total_bytes_output)
804 SessionConfig_t const *const cfg = &gfc->cfg;
805 EncStateVar_t const *const esv = &gfc->sv_enc;
815 flushbits = esv->header[last_ptr].write_timing - gfc->bs.totbit;
832 bitsPerFrame = getframebits(gfc);
840 *total_bytes_output += gfc->bs.buf_byte_idx + 1;
848 DEBUGF(gfc, "last header write_timing = %i \n", esv->header[last_ptr].write_timing);
849 DEBUGF(gfc, "first header write_timing = %i \n", esv->header[first_ptr].write_timing);
850 DEBUGF(gfc, "bs.totbit: %i \n", gfc->bs.totbit);
851 DEBUGF(gfc, "first_ptr, last_ptr %i %i \n", first_ptr, last_ptr);
852 DEBUGF(gfc, "remaining_headers = %i \n", remaining_headers);
853 DEBUGF(gfc, "bitsperframe: %i \n", bitsPerFrame);
854 DEBUGF(gfc, "sidelen: %i \n", cfg->sideinfo_len);
856 ERRORF(gfc, "strange error flushing buffer ... \n");
863 flush_bitstream(lame_internal_flags * gfc)
865 EncStateVar_t *const esv = &gfc->sv_enc;
872 l3_side = &gfc->l3_side;
875 if ((flushbits = compute_flushbits(gfc, &nbytes)) < 0)
877 drain_into_ancillary(gfc, flushbits);
880 assert(esv->header[last_ptr].write_timing + getframebits(gfc)
881 == gfc->bs.totbit);
893 add_dummy_byte(lame_internal_flags * gfc, unsigned char val, unsigned int n)
895 EncStateVar_t *const esv = &gfc->sv_enc;
899 putbits_noheaders(gfc, val, 8);
918 format_bitstream(lame_internal_flags * gfc)
920 SessionConfig_t const *const cfg = &gfc->cfg;
921 EncStateVar_t *const esv = &gfc->sv_enc;
925 l3_side = &gfc->l3_side;
927 bitsPerFrame = getframebits(gfc);
928 drain_into_ancillary(gfc, l3_side->resvDrain_pre);
930 encodeSideInfo2(gfc, bitsPerFrame);
932 bits += writeMainData(gfc);
933 drain_into_ancillary(gfc, l3_side->resvDrain_post);
940 if (compute_flushbits(gfc, &nbytes) != esv->ResvSize) {
941 ERRORF(gfc, "Internal buffer inconsistency. flushbits <> ResvSize");
948 ERRORF(gfc, "bit reservoir error: \n"
965 ERRORF(gfc, "This is a fatal error. It has several possible causes:");
966 ERRORF(gfc, "90%% LAME compiled with buggy version of gcc using advanced optimizations");
967 ERRORF(gfc, " 9%% Your system is overclocked");
968 ERRORF(gfc, " 1%% bug in LAME encoding library");
972 assert(gfc->bs.totbit % 8 == 0);
974 if (gfc->bs.totbit > 1000000000) {
978 esv->header[i].write_timing -= gfc->bs.totbit;
979 gfc->bs.totbit = 0;
988 do_gain_analysis(lame_internal_flags * gfc, unsigned char* buffer, int minimum)
990 SessionConfig_t const *const cfg = &gfc->cfg;
991 RpgStateVar_t const *const rsv = &gfc->sv_rpg;
992 RpgResult_t *const rov = &gfc->ov_rpg;
1002 samples_out = hip_decode1_unclipped(gfc->hip, buffer, mp3_in, pcm_buf[0], pcm_buf[1]);
1050 } /* if (gfc->decode_on_the_fly) */
1056 do_copy_buffer(lame_internal_flags * gfc, unsigned char *buffer, int size)
1058 Bit_stream_struc *const bs = &gfc->bs;
1079 copy_buffer(lame_internal_flags * gfc, unsigned char *buffer, int size, int mp3data)
1081 int const minimum = do_copy_buffer(gfc, buffer, size);
1083 UpdateMusicCRC(&gfc->nMusicCRC, buffer, minimum);
1088 gfc->VBR_seek_table.nBytesWritten += minimum;
1090 return do_gain_analysis(gfc, buffer, minimum);
1097 init_bit_stream_w(lame_internal_flags * gfc)
1099 EncStateVar_t *const esv = &gfc->sv_enc;
1104 gfc->bs.buf = lame_calloc(unsigned char, BUFFER_SIZE);
1105 gfc->bs.buf_size = BUFFER_SIZE;
1106 gfc->bs.buf_byte_idx = -1;
1107 gfc->bs.buf_bit_idx = 0;
1108 gfc->bs.totbit = 0;