• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/minidlna/ffmpeg-2.3.4/libavcodec/

Lines Matching defs:venc

200 static int ready_residue(vorbis_enc_residue *rc, vorbis_enc_context *venc)
215 cb = &venc->codebooks[rc->books[i][j]];
239 static int create_vorbis_context(vorbis_enc_context *venc,
247 venc->channels = avctx->channels;
248 venc->sample_rate = avctx->sample_rate;
249 venc->log2_blocksize[0] = venc->log2_blocksize[1] = 11;
251 venc->ncodebooks = FF_ARRAY_ELEMS(cvectors);
252 venc->codebooks = av_malloc(sizeof(vorbis_enc_codebook) * venc->ncodebooks);
253 if (!venc->codebooks)
259 for (book = 0; book < venc->ncodebooks; book++) {
260 vorbis_enc_codebook *cb = &venc->codebooks[book];
290 venc->nfloors = 1;
291 venc->floors = av_malloc(sizeof(vorbis_enc_floor) * venc->nfloors);
292 if (!venc->floors)
296 fc = &venc->floors[0];
325 fc->rangebits = venc->log2_blocksize[0] - 1;
347 venc->nresidues = 1;
348 venc->residues = av_malloc(sizeof(vorbis_enc_residue) * venc->nresidues);
349 if (!venc->residues)
353 rc = &venc->residues[0];
378 if ((ret = ready_residue(rc, venc)) < 0)
381 venc->nmappings = 1;
382 venc->mappings = av_malloc(sizeof(vorbis_enc_mapping) * venc->nmappings);
383 if (!venc->mappings)
387 mc = &venc->mappings[0];
389 mc->mux = av_malloc(sizeof(int) * venc->channels);
392 for (i = 0; i < venc->channels; i++)
402 mc->coupling_steps = venc->channels == 2 ? 1 : 0;
412 venc->nmodes = 1;
413 venc->modes = av_malloc(sizeof(vorbis_enc_mode) * venc->nmodes);
414 if (!venc->modes)
418 venc->modes[0].blockflag = 0;
419 venc->modes[0].mapping = 0;
421 venc->have_saved = 0;
422 venc->saved = av_malloc(sizeof(float) * venc->channels * (1 << venc->log2_blocksize[1]) / 2);
423 venc->samples = av_malloc(sizeof(float) * venc->channels * (1 << venc->log2_blocksize[1]));
424 venc->floor = av_malloc(sizeof(float) * venc->channels * (1 << venc->log2_blocksize[1]) / 2);
425 venc->coeffs = av_malloc(sizeof(float) * venc->channels * (1 << venc->log2_blocksize[1]) / 2);
426 if (!venc->saved || !venc->samples || !venc->floor || !venc->coeffs)
429 venc->win[0] = ff_vorbis_vwin[venc->log2_blocksize[0] - 6];
430 venc->win[1] = ff_vorbis_vwin[venc->log2_blocksize[1] - 6];
432 if ((ret = ff_mdct_init(&venc->mdct[0], venc->log2_blocksize[0], 0, 1.0)) < 0)
434 if ((ret = ff_mdct_init(&venc->mdct[1], venc->log2_blocksize[1], 0, 1.0)) < 0)
584 static int put_main_header(vorbis_enc_context *venc, uint8_t **out)
598 put_bits(&pb, 8, venc->channels);
599 put_bits32(&pb, venc->sample_rate);
603 put_bits(&pb, 4, venc->log2_blocksize[0]);
604 put_bits(&pb, 4, venc->log2_blocksize[1]);
633 put_bits(&pb, 8, venc->ncodebooks - 1);
634 for (i = 0; i < venc->ncodebooks; i++)
635 put_codebook_header(&pb, &venc->codebooks[i]);
642 put_bits(&pb, 6, venc->nfloors - 1);
643 for (i = 0; i < venc->nfloors; i++)
644 put_floor_header(&pb, &venc->floors[i]);
647 put_bits(&pb, 6, venc->nresidues - 1);
648 for (i = 0; i < venc->nresidues; i++)
649 put_residue_header(&pb, &venc->residues[i]);
652 put_bits(&pb, 6, venc->nmappings - 1);
653 for (i = 0; i < venc->nmappings; i++) {
654 vorbis_enc_mapping *mc = &venc->mappings[i];
666 put_bits(&pb, ilog(venc->channels - 1), mc->magnitude[j]);
667 put_bits(&pb, ilog(venc->channels - 1), mc->angle[j]);
674 for (j = 0; j < venc->channels; j++)
685 put_bits(&pb, 6, venc->nmodes - 1);
686 for (i = 0; i < venc->nmodes; i++) {
687 put_bits(&pb, 1, venc->modes[i].blockflag);
690 put_bits(&pb, 8, venc->modes[i].mapping);
728 static void floor_fit(vorbis_enc_context *venc, vorbis_enc_floor *fc,
740 tot_average /= venc->quality;
760 static int floor_encode(vorbis_enc_context *venc, vorbis_enc_floor *fc,
811 vorbis_enc_codebook * book = &venc->codebooks[c->masterbook];
818 maxval = venc->codebooks[c->books[l]].nentries;
838 if (put_codeword(pb, &venc->codebooks[book], entry))
872 static int residue_encode(vorbis_enc_context *venc, vorbis_enc_residue *rc,
881 int classwords = venc->codebooks[rc->classbook].ndimensions;
904 vorbis_enc_codebook * book = &venc->codebooks[rc->classbook];
916 vorbis_enc_codebook * book = &venc->codebooks[nbook];
967 static int apply_window_and_mdct(vorbis_enc_context *venc,
971 const float * win = venc->win[0];
972 int window_len = 1 << (venc->log2_blocksize[0] - 1);
973 float n = (float)(1 << venc->log2_blocksize[0]) / 4.0;
976 if (!venc->have_saved && !samples)
979 if (venc->have_saved) {
980 for (channel = 0; channel < venc->channels; channel++)
981 memcpy(venc->samples + channel * window_len * 2,
982 venc->saved + channel * window_len, sizeof(float) * window_len);
984 for (channel = 0; channel < venc->channels; channel++)
985 memset(venc->samples + channel * window_len * 2, 0,
990 for (channel = 0; channel < venc->channels; channel++) {
991 float * offset = venc->samples + channel*window_len*2 + window_len;
996 for (channel = 0; channel < venc->channels; channel++)
997 memset(venc->samples + channel * window_len * 2 + window_len,
1001 for (channel = 0; channel < venc->channels; channel++)
1002 venc->mdct[0].mdct_calc(&venc->mdct[0], venc->coeffs + channel * window_len,
1003 venc->samples + channel * window_len * 2);
1006 for (channel = 0; channel < venc->channels; channel++) {
1007 float *offset = venc->saved + channel * window_len;
1011 venc->have_saved = 1;
1013 venc->have_saved = 0;
1021 vorbis_enc_context *venc = avctx->priv_data;
1029 if (!apply_window_and_mdct(venc, audio, samples))
1031 samples = 1 << (venc->log2_blocksize[0] - 1);
1038 if (pb.size_in_bits - put_bits_count(&pb) < 1 + ilog(venc->nmodes - 1)) {
1045 put_bits(&pb, ilog(venc->nmodes - 1), 0); // 0 bits, the mode
1047 mode = &venc->modes[0];
1048 mapping = &venc->mappings[mode->mapping];
1054 for (i = 0; i < venc->channels; i++) {
1055 vorbis_enc_floor *fc = &venc->floors[mapping->floor[mapping->mux[i]]];
1057 floor_fit(venc, fc, &venc->coeffs[i * samples], posts, samples);
1058 if (floor_encode(venc, fc, &pb, posts, &venc->floor[i * samples], samples)) {
1064 for (i = 0; i < venc->channels * samples; i++)
1065 venc->coeffs[i] /= venc->floor[i];
1068 float *mag = venc->coeffs + mapping->magnitude[i] * samples;
1069 float *ang = venc->coeffs + mapping->angle[i] * samples;
1081 if (residue_encode(venc, &venc->residues[mapping->residue[mapping->mux[0]]],
1082 &pb, venc->coeffs, samples, venc->channels)) {
1095 avpkt->pts = venc->next_pts;
1097 venc->next_pts = avpkt->pts + avpkt->duration;
1106 vorbis_enc_context *venc = avctx->priv_data;
1109 if (venc->codebooks)
1110 for (i = 0; i < venc->ncodebooks; i++) {
1111 av_freep(&venc->codebooks[i].lens);
1112 av_freep(&venc->codebooks[i].codewords);
1113 av_freep(&venc->codebooks[i].quantlist);
1114 av_freep(&venc->codebooks[i].dimensions);
1115 av_freep(&venc->codebooks[i].pow2);
1117 av_freep(&venc->codebooks);
1119 if (venc->floors)
1120 for (i = 0; i < venc->nfloors; i++) {
1122 if (venc->floors[i].classes)
1123 for (j = 0; j < venc->floors[i].nclasses; j++)
1124 av_freep(&venc->floors[i].classes[j].books);
1125 av_freep(&venc->floors[i].classes);
1126 av_freep(&venc->floors[i].partition_to_class);
1127 av_freep(&venc->floors[i].list);
1129 av_freep(&venc->floors);
1131 if (venc->residues)
1132 for (i = 0; i < venc->nresidues; i++) {
1133 av_freep(&venc->residues[i].books);
1134 av_freep(&venc->residues[i].maxes);
1136 av_freep(&venc->residues);
1138 if (venc->mappings)
1139 for (i = 0; i < venc->nmappings; i++) {
1140 av_freep(&venc->mappings[i].mux);
1141 av_freep(&venc->mappings[i].floor);
1142 av_freep(&venc->mappings[i].residue);
1143 av_freep(&venc->mappings[i].magnitude);
1144 av_freep(&venc->mappings[i].angle);
1146 av_freep(&venc->mappings);
1148 av_freep(&venc->modes);
1150 av_freep(&venc->saved);
1151 av_freep(&venc->samples);
1152 av_freep(&venc->floor);
1153 av_freep(&venc->coeffs);
1155 ff_mdct_end(&venc->mdct[0]);
1156 ff_mdct_end(&venc->mdct[1]);
1165 vorbis_enc_context *venc = avctx->priv_data;
1173 if ((ret = create_vorbis_context(venc, avctx)) < 0)
1178 venc->quality = avctx->global_quality / (float)FF_QP2LAMBDA;
1180 venc->quality = 8;
1181 venc->quality *= venc->quality;
1183 if ((ret = put_main_header(venc, (uint8_t**)&avctx->extradata)) < 0)
1187 avctx->frame_size = 1 << (venc->log2_blocksize[0] - 1);