• Home
  • Raw
  • Download

Lines Matching refs:vc

165         av_log(vc->avctx, AV_LOG_ERROR,\
188 static void vorbis_free(vorbis_context *vc) in vorbis_free() argument
192 av_freep(&vc->channel_residues); in vorbis_free()
193 av_freep(&vc->saved); in vorbis_free()
194 av_freep(&vc->fdsp); in vorbis_free()
196 if (vc->residues) in vorbis_free()
197 for (i = 0; i < vc->residue_count; i++) in vorbis_free()
198 av_freep(&vc->residues[i].classifs); in vorbis_free()
199 av_freep(&vc->residues); in vorbis_free()
200 av_freep(&vc->modes); in vorbis_free()
202 ff_mdct_end(&vc->mdct[0]); in vorbis_free()
203 ff_mdct_end(&vc->mdct[1]); in vorbis_free()
205 if (vc->codebooks) in vorbis_free()
206 for (i = 0; i < vc->codebook_count; ++i) { in vorbis_free()
207 av_freep(&vc->codebooks[i].codevectors); in vorbis_free()
208 ff_free_vlc(&vc->codebooks[i].vlc); in vorbis_free()
210 av_freep(&vc->codebooks); in vorbis_free()
212 if (vc->floors) in vorbis_free()
213 for (i = 0; i < vc->floor_count; ++i) { in vorbis_free()
214 if (vc->floors[i].floor_type == 0) { in vorbis_free()
215 av_freep(&vc->floors[i].data.t0.map[0]); in vorbis_free()
216 av_freep(&vc->floors[i].data.t0.map[1]); in vorbis_free()
217 av_freep(&vc->floors[i].data.t0.book_list); in vorbis_free()
218 av_freep(&vc->floors[i].data.t0.lsp); in vorbis_free()
220 av_freep(&vc->floors[i].data.t1.list); in vorbis_free()
223 av_freep(&vc->floors); in vorbis_free()
225 if (vc->mappings) in vorbis_free()
226 for (i = 0; i < vc->mapping_count; ++i) { in vorbis_free()
227 av_freep(&vc->mappings[i].magnitude); in vorbis_free()
228 av_freep(&vc->mappings[i].angle); in vorbis_free()
229 av_freep(&vc->mappings[i].mux); in vorbis_free()
231 av_freep(&vc->mappings); in vorbis_free()
238 static int vorbis_parse_setup_hdr_codebooks(vorbis_context *vc) in vorbis_parse_setup_hdr_codebooks() argument
243 GetBitContext *gb = &vc->gb; in vorbis_parse_setup_hdr_codebooks()
247 vc->codebook_count = get_bits(gb, 8) + 1; in vorbis_parse_setup_hdr_codebooks()
249 ff_dlog(NULL, " Codebooks: %d \n", vc->codebook_count); in vorbis_parse_setup_hdr_codebooks()
251 vc->codebooks = av_mallocz(vc->codebook_count * sizeof(*vc->codebooks)); in vorbis_parse_setup_hdr_codebooks()
255 if (!vc->codebooks || in vorbis_parse_setup_hdr_codebooks()
261 for (cb = 0; cb < vc->codebook_count; ++cb) { in vorbis_parse_setup_hdr_codebooks()
262 vorbis_codebook *codebook_setup = &vc->codebooks[cb]; in vorbis_parse_setup_hdr_codebooks()
268 av_log(vc->avctx, AV_LOG_ERROR, in vorbis_parse_setup_hdr_codebooks()
276 av_log(vc->avctx, AV_LOG_ERROR, in vorbis_parse_setup_hdr_codebooks()
284 av_log(vc->avctx, AV_LOG_ERROR, in vorbis_parse_setup_hdr_codebooks()
344 av_log(vc->avctx, AV_LOG_ERROR, " More codelengths than codes in codebook. \n"); in vorbis_parse_setup_hdr_codebooks()
398 ff_dlog(vc->avctx, "Lookup offset %u ,", i); in vorbis_parse_setup_hdr_codebooks()
409 ff_dlog(vc->avctx, "real lookup offset %u, vector: ", j); in vorbis_parse_setup_hdr_codebooks()
411 ff_dlog(vc->avctx, " %f ", in vorbis_parse_setup_hdr_codebooks()
413 ff_dlog(vc->avctx, "\n"); in vorbis_parse_setup_hdr_codebooks()
419 av_log(vc->avctx, AV_LOG_ERROR, "Bug in codevector vector building code. \n"); in vorbis_parse_setup_hdr_codebooks()
425 av_log(vc->avctx, AV_LOG_ERROR, "Codebook lookup type not supported. \n"); in vorbis_parse_setup_hdr_codebooks()
432 av_log(vc->avctx, AV_LOG_ERROR, " Invalid code lengths while generating vlcs. \n"); in vorbis_parse_setup_hdr_codebooks()
453 av_log(vc->avctx, AV_LOG_ERROR, " Error generating vlc tables. \n"); in vorbis_parse_setup_hdr_codebooks()
473 static int vorbis_parse_setup_hdr_tdtransforms(vorbis_context *vc) in vorbis_parse_setup_hdr_tdtransforms() argument
475 GetBitContext *gb = &vc->gb; in vorbis_parse_setup_hdr_tdtransforms()
485 av_log(vc->avctx, AV_LOG_ERROR, "Vorbis time domain transform data nonzero. \n"); in vorbis_parse_setup_hdr_tdtransforms()
494 static int vorbis_floor0_decode(vorbis_context *vc,
496 static int create_map(vorbis_context *vc, unsigned floor_number);
497 static int vorbis_floor1_decode(vorbis_context *vc,
499 static int vorbis_parse_setup_hdr_floors(vorbis_context *vc) in vorbis_parse_setup_hdr_floors() argument
501 GetBitContext *gb = &vc->gb; in vorbis_parse_setup_hdr_floors()
504 vc->floor_count = get_bits(gb, 6) + 1; in vorbis_parse_setup_hdr_floors()
506 vc->floors = av_mallocz(vc->floor_count * sizeof(*vc->floors)); in vorbis_parse_setup_hdr_floors()
507 if (!vc->floors) in vorbis_parse_setup_hdr_floors()
510 for (i = 0; i < vc->floor_count; ++i) { in vorbis_parse_setup_hdr_floors()
511 vorbis_floor *floor_setup = &vc->floors[i]; in vorbis_parse_setup_hdr_floors()
549 … GET_VALIDATED_INDEX(floor_setup->data.t1.class_masterbook[j], 8, vc->codebook_count) in vorbis_parse_setup_hdr_floors()
557 VALIDATE_INDEX(bits, vc->codebook_count) in vorbis_parse_setup_hdr_floors()
577 av_log(vc->avctx, AV_LOG_ERROR, in vorbis_parse_setup_hdr_floors()
582 if (rangemax > vc->blocksize[1] / 2) { in vorbis_parse_setup_hdr_floors()
583 av_log(vc->avctx, AV_LOG_ERROR, in vorbis_parse_setup_hdr_floors()
585 rangemax, vc->blocksize[1] / 2); in vorbis_parse_setup_hdr_floors()
601 if (ff_vorbis_ready_floor1_list(vc->avctx, in vorbis_parse_setup_hdr_floors()
613 av_log(vc->avctx, AV_LOG_ERROR, "Floor 0 order is 0.\n"); in vorbis_parse_setup_hdr_floors()
618 av_log(vc->avctx, AV_LOG_ERROR, "Floor 0 rate is 0.\n"); in vorbis_parse_setup_hdr_floors()
623 av_log(vc->avctx, AV_LOG_ERROR, in vorbis_parse_setup_hdr_floors()
641 GET_VALIDATED_INDEX(book_idx, 8, vc->codebook_count) in vorbis_parse_setup_hdr_floors()
643 if (vc->codebooks[book_idx].dimensions > max_codebook_dim) in vorbis_parse_setup_hdr_floors()
644 max_codebook_dim = vc->codebooks[book_idx].dimensions; in vorbis_parse_setup_hdr_floors()
648 if ((ret = create_map(vc, i)) < 0) in vorbis_parse_setup_hdr_floors()
680 av_log(vc->avctx, AV_LOG_ERROR, "Invalid floor type!\n"); in vorbis_parse_setup_hdr_floors()
689 static int vorbis_parse_setup_hdr_residues(vorbis_context *vc) in vorbis_parse_setup_hdr_residues() argument
691 GetBitContext *gb = &vc->gb; in vorbis_parse_setup_hdr_residues()
694 vc->residue_count = get_bits(gb, 6)+1; in vorbis_parse_setup_hdr_residues()
695 vc->residues = av_mallocz(vc->residue_count * sizeof(*vc->residues)); in vorbis_parse_setup_hdr_residues()
696 if (!vc->residues) in vorbis_parse_setup_hdr_residues()
699 ff_dlog(NULL, " There are %d residues. \n", vc->residue_count); in vorbis_parse_setup_hdr_residues()
701 for (i = 0; i < vc->residue_count; ++i) { in vorbis_parse_setup_hdr_residues()
702 vorbis_residue *res_setup = &vc->residues[i]; in vorbis_parse_setup_hdr_residues()
716 av_log(vc->avctx, AV_LOG_ERROR, in vorbis_parse_setup_hdr_residues()
719 res_setup->partition_size, vc->blocksize[1] / 2); in vorbis_parse_setup_hdr_residues()
724 GET_VALIDATED_INDEX(res_setup->classbook, 8, vc->codebook_count) in vorbis_parse_setup_hdr_residues()
729 vc->audio_channels * in vorbis_parse_setup_hdr_residues()
752 GET_VALIDATED_INDEX(res_setup->books[j][k], 8, vc->codebook_count) in vorbis_parse_setup_hdr_residues()
770 static int vorbis_parse_setup_hdr_mappings(vorbis_context *vc) in vorbis_parse_setup_hdr_mappings() argument
772 GetBitContext *gb = &vc->gb; in vorbis_parse_setup_hdr_mappings()
775 vc->mapping_count = get_bits(gb, 6)+1; in vorbis_parse_setup_hdr_mappings()
776 vc->mappings = av_mallocz(vc->mapping_count * sizeof(*vc->mappings)); in vorbis_parse_setup_hdr_mappings()
777 if (!vc->mappings) in vorbis_parse_setup_hdr_mappings()
780 ff_dlog(NULL, " There are %d mappings. \n", vc->mapping_count); in vorbis_parse_setup_hdr_mappings()
782 for (i = 0; i < vc->mapping_count; ++i) { in vorbis_parse_setup_hdr_mappings()
783 vorbis_mapping *mapping_setup = &vc->mappings[i]; in vorbis_parse_setup_hdr_mappings()
786 …av_log(vc->avctx, AV_LOG_ERROR, "Other mappings than type 0 are not compliant with the Vorbis I sp… in vorbis_parse_setup_hdr_mappings()
797 if (vc->audio_channels < 2) { in vorbis_parse_setup_hdr_mappings()
798 av_log(vc->avctx, AV_LOG_ERROR, in vorbis_parse_setup_hdr_mappings()
810 … GET_VALIDATED_INDEX(mapping_setup->magnitude[j], ilog(vc->audio_channels - 1), vc->audio_channels) in vorbis_parse_setup_hdr_mappings()
811 … GET_VALIDATED_INDEX(mapping_setup->angle[j], ilog(vc->audio_channels - 1), vc->audio_channels) in vorbis_parse_setup_hdr_mappings()
821 av_log(vc->avctx, AV_LOG_ERROR, "%u. mapping setup data invalid.\n", i); in vorbis_parse_setup_hdr_mappings()
826 mapping_setup->mux = av_mallocz_array(vc->audio_channels, in vorbis_parse_setup_hdr_mappings()
831 for (j = 0; j < vc->audio_channels; ++j) in vorbis_parse_setup_hdr_mappings()
837 GET_VALIDATED_INDEX(mapping_setup->submap_floor[j], 8, vc->floor_count) in vorbis_parse_setup_hdr_mappings()
838 GET_VALIDATED_INDEX(mapping_setup->submap_residue[j], 8, vc->residue_count) in vorbis_parse_setup_hdr_mappings()
850 static int create_map(vorbis_context *vc, unsigned floor_number) in create_map() argument
852 vorbis_floor *floors = vc->floors; in create_map()
859 n = vc->blocksize[blockflag] / 2; in create_map()
885 static int vorbis_parse_setup_hdr_modes(vorbis_context *vc) in vorbis_parse_setup_hdr_modes() argument
887 GetBitContext *gb = &vc->gb; in vorbis_parse_setup_hdr_modes()
890 vc->mode_count = get_bits(gb, 6) + 1; in vorbis_parse_setup_hdr_modes()
891 vc->modes = av_mallocz(vc->mode_count * sizeof(*vc->modes)); in vorbis_parse_setup_hdr_modes()
892 if (!vc->modes) in vorbis_parse_setup_hdr_modes()
895 ff_dlog(NULL, " There are %d modes.\n", vc->mode_count); in vorbis_parse_setup_hdr_modes()
897 for (i = 0; i < vc->mode_count; ++i) { in vorbis_parse_setup_hdr_modes()
898 vorbis_mode *mode_setup = &vc->modes[i]; in vorbis_parse_setup_hdr_modes()
903 GET_VALIDATED_INDEX(mode_setup->mapping, 8, vc->mapping_count); in vorbis_parse_setup_hdr_modes()
914 static int vorbis_parse_setup_hdr(vorbis_context *vc) in vorbis_parse_setup_hdr() argument
916 GetBitContext *gb = &vc->gb; in vorbis_parse_setup_hdr()
922 … av_log(vc->avctx, AV_LOG_ERROR, " Vorbis setup header packet corrupt (no vorbis signature). \n"); in vorbis_parse_setup_hdr()
926 if ((ret = vorbis_parse_setup_hdr_codebooks(vc))) { in vorbis_parse_setup_hdr()
927 av_log(vc->avctx, AV_LOG_ERROR, " Vorbis setup header packet corrupt (codebooks). \n"); in vorbis_parse_setup_hdr()
930 if ((ret = vorbis_parse_setup_hdr_tdtransforms(vc))) { in vorbis_parse_setup_hdr()
931 …av_log(vc->avctx, AV_LOG_ERROR, " Vorbis setup header packet corrupt (time domain transforms). \n"… in vorbis_parse_setup_hdr()
934 if ((ret = vorbis_parse_setup_hdr_floors(vc))) { in vorbis_parse_setup_hdr()
935 av_log(vc->avctx, AV_LOG_ERROR, " Vorbis setup header packet corrupt (floors). \n"); in vorbis_parse_setup_hdr()
938 if ((ret = vorbis_parse_setup_hdr_residues(vc))) { in vorbis_parse_setup_hdr()
939 av_log(vc->avctx, AV_LOG_ERROR, " Vorbis setup header packet corrupt (residues). \n"); in vorbis_parse_setup_hdr()
942 if ((ret = vorbis_parse_setup_hdr_mappings(vc))) { in vorbis_parse_setup_hdr()
943 av_log(vc->avctx, AV_LOG_ERROR, " Vorbis setup header packet corrupt (mappings). \n"); in vorbis_parse_setup_hdr()
946 if ((ret = vorbis_parse_setup_hdr_modes(vc))) { in vorbis_parse_setup_hdr()
947 av_log(vc->avctx, AV_LOG_ERROR, " Vorbis setup header packet corrupt (modes). \n"); in vorbis_parse_setup_hdr()
951 av_log(vc->avctx, AV_LOG_ERROR, " Vorbis setup header packet corrupt (framing flag). \n"); in vorbis_parse_setup_hdr()
960 static int vorbis_parse_id_hdr(vorbis_context *vc) in vorbis_parse_id_hdr() argument
962 GetBitContext *gb = &vc->gb; in vorbis_parse_id_hdr()
968 … av_log(vc->avctx, AV_LOG_ERROR, " Vorbis id header packet corrupt (no vorbis signature). \n"); in vorbis_parse_id_hdr()
972 vc->version = get_bits_long(gb, 32); //FIXME check 0 in vorbis_parse_id_hdr()
973 vc->audio_channels = get_bits(gb, 8); in vorbis_parse_id_hdr()
974 if (vc->audio_channels <= 0) { in vorbis_parse_id_hdr()
975 av_log(vc->avctx, AV_LOG_ERROR, "Invalid number of channels\n"); in vorbis_parse_id_hdr()
978 vc->audio_samplerate = get_bits_long(gb, 32); in vorbis_parse_id_hdr()
979 if (vc->audio_samplerate <= 0) { in vorbis_parse_id_hdr()
980 av_log(vc->avctx, AV_LOG_ERROR, "Invalid samplerate\n"); in vorbis_parse_id_hdr()
983 vc->bitrate_maximum = get_bits_long(gb, 32); in vorbis_parse_id_hdr()
984 vc->bitrate_nominal = get_bits_long(gb, 32); in vorbis_parse_id_hdr()
985 vc->bitrate_minimum = get_bits_long(gb, 32); in vorbis_parse_id_hdr()
989 av_log(vc->avctx, AV_LOG_ERROR, " Vorbis id header packet corrupt (illegal blocksize). \n"); in vorbis_parse_id_hdr()
992 vc->blocksize[0] = (1 << bl0); in vorbis_parse_id_hdr()
993 vc->blocksize[1] = (1 << bl1); in vorbis_parse_id_hdr()
994 vc->win[0] = ff_vorbis_vwin[bl0 - 6]; in vorbis_parse_id_hdr()
995 vc->win[1] = ff_vorbis_vwin[bl1 - 6]; in vorbis_parse_id_hdr()
998 … av_log(vc->avctx, AV_LOG_ERROR, " Vorbis id header packet corrupt (framing flag not set). \n"); in vorbis_parse_id_hdr()
1002vc->channel_residues = av_malloc_array(vc->blocksize[1] / 2, vc->audio_channels * sizeof(*vc->ch… in vorbis_parse_id_hdr()
1003vc->saved = av_mallocz_array(vc->blocksize[1] / 4, vc->audio_channels * sizeof(*vc->sa… in vorbis_parse_id_hdr()
1004 if (!vc->channel_residues || !vc->saved) in vorbis_parse_id_hdr()
1007 vc->previous_window = -1; in vorbis_parse_id_hdr()
1009 ff_mdct_init(&vc->mdct[0], bl0, 1, -1.0); in vorbis_parse_id_hdr()
1010 ff_mdct_init(&vc->mdct[1], bl1, 1, -1.0); in vorbis_parse_id_hdr()
1011 vc->fdsp = avpriv_float_dsp_alloc(vc->avctx->flags & AV_CODEC_FLAG_BITEXACT); in vorbis_parse_id_hdr()
1012 if (!vc->fdsp) in vorbis_parse_id_hdr()
1016vc->version, vc->audio_channels, vc->audio_samplerate, vc->bitrate_maximum, vc->bitrate_nominal, v… in vorbis_parse_id_hdr()
1032 vorbis_context *vc = avctx->priv_data; in vorbis_decode_init() local
1037 GetBitContext *gb = &vc->gb; in vorbis_decode_init()
1040 vc->avctx = avctx; in vorbis_decode_init()
1041 ff_vorbisdsp_init(&vc->dsp); in vorbis_decode_init()
1061 if ((ret = vorbis_parse_id_hdr(vc))) { in vorbis_decode_init()
1063 vorbis_free(vc); in vorbis_decode_init()
1071 vorbis_free(vc); in vorbis_decode_init()
1074 if ((ret = vorbis_parse_setup_hdr(vc))) { in vorbis_decode_init()
1076 vorbis_free(vc); in vorbis_decode_init()
1080 if (vc->audio_channels > 8) in vorbis_decode_init()
1083 avctx->channel_layout = ff_vorbis_channel_layouts[vc->audio_channels - 1]; in vorbis_decode_init()
1085 avctx->channels = vc->audio_channels; in vorbis_decode_init()
1086 avctx->sample_rate = vc->audio_samplerate; in vorbis_decode_init()
1095 static int vorbis_floor0_decode(vorbis_context *vc, in vorbis_floor0_decode() argument
1102 unsigned blockflag = vc->modes[vc->mode_number].blockflag; in vorbis_floor0_decode()
1107 amplitude = get_bits64(&vc->gb, vf->amplitude_bits); in vorbis_floor0_decode()
1113 book_idx = get_bits(&vc->gb, ilog(vf->num_books)); in vorbis_floor0_decode()
1115 av_log(vc->avctx, AV_LOG_ERROR, "floor0 dec: booknumber too high!\n"); in vorbis_floor0_decode()
1119 codebook = vc->codebooks[vf->book_list[book_idx]]; in vorbis_floor0_decode()
1130 vec_off = get_vlc2(&vc->gb, codebook.vlc.table, in vorbis_floor0_decode()
1209 static int vorbis_floor1_decode(vorbis_context *vc, in vorbis_floor1_decode() argument
1213 GetBitContext *gb = &vc->gb; in vorbis_floor1_decode()
1244 cval = get_vlc2(gb, vc->codebooks[vf->class_masterbook[partition_class]].vlc.table, in vorbis_floor1_decode()
1245 vc->codebooks[vf->class_masterbook[partition_class]].nb_bits, 3); in vorbis_floor1_decode()
1255 int v = get_vlc2(gb, vc->codebooks[book].vlc.table, in vorbis_floor1_decode()
1256 vc->codebooks[book].nb_bits, 3); in vorbis_floor1_decode()
1336 static av_always_inline int setup_classifs(vorbis_context *vc, in setup_classifs() argument
1344 vorbis_codebook *codebook = vc->codebooks + vr->classbook; in setup_classifs()
1351 temp = get_vlc2(&vc->gb, codebook->vlc.table, in setup_classifs()
1359 av_log(vc->avctx, AV_LOG_ERROR, in setup_classifs()
1385 static av_always_inline int vorbis_residue_decode_internal(vorbis_context *vc, in vorbis_residue_decode_internal() argument
1394 GetBitContext *gb = &vc->gb; in vorbis_residue_decode_internal()
1395 unsigned c_p_c = vc->codebooks[vr->classbook].dimensions; in vorbis_residue_decode_internal()
1419 av_log(vc->avctx, AV_LOG_ERROR, "Insufficient output buffer\n"); in vorbis_residue_decode_internal()
1432 … int ret = setup_classifs(vc, vr, do_not_decode, ch_used, partition_count, ptns_to_read); in vorbis_residue_decode_internal()
1444 if (vqbook >= 0 && vc->codebooks[vqbook].codevectors) { in vorbis_residue_decode_internal()
1446 unsigned dim = vc->codebooks[vqbook].dimensions; in vorbis_residue_decode_internal()
1448 vorbis_codebook codebook = vc->codebooks[vqbook]; in vorbis_residue_decode_internal()
1551 get_vlc2(&vc->gb, vc->codebooks[vr->classbook].vlc.table, in vorbis_residue_decode_internal()
1552 vc->codebooks[vr->classbook].nb_bits, 3); in vorbis_residue_decode_internal()
1560 static inline int vorbis_residue_decode(vorbis_context *vc, vorbis_residue *vr, in vorbis_residue_decode() argument
1567 return vorbis_residue_decode_internal(vc, vr, ch, do_not_decode, vec, vlen, ch_left, 2); in vorbis_residue_decode()
1569 return vorbis_residue_decode_internal(vc, vr, ch, do_not_decode, vec, vlen, ch_left, 1); in vorbis_residue_decode()
1571 return vorbis_residue_decode_internal(vc, vr, ch, do_not_decode, vec, vlen, ch_left, 0); in vorbis_residue_decode()
1573 av_log(vc->avctx, AV_LOG_ERROR, " Invalid residue type while residue decode?! \n"); in vorbis_residue_decode()
1604 static int vorbis_parse_audio_packet(vorbis_context *vc, float **floor_ptr) in vorbis_parse_audio_packet() argument
1606 GetBitContext *gb = &vc->gb; in vorbis_parse_audio_packet()
1608 int previous_window = vc->previous_window; in vorbis_parse_audio_packet()
1614 float *ch_res_ptr = vc->channel_residues; in vorbis_parse_audio_packet()
1618 unsigned ch_left = vc->audio_channels; in vorbis_parse_audio_packet()
1622 av_log(vc->avctx, AV_LOG_ERROR, "Not a Vorbis I audio packet.\n"); in vorbis_parse_audio_packet()
1626 if (vc->mode_count == 1) { in vorbis_parse_audio_packet()
1629 GET_VALIDATED_INDEX(mode_number, ilog(vc->mode_count-1), vc->mode_count) in vorbis_parse_audio_packet()
1631 vc->mode_number = mode_number; in vorbis_parse_audio_packet()
1632 mapping = &vc->mappings[vc->modes[mode_number].mapping]; in vorbis_parse_audio_packet()
1635 vc->modes[mode_number].mapping, vc->modes[mode_number].blockflag); in vorbis_parse_audio_packet()
1637 blockflag = vc->modes[mode_number].blockflag; in vorbis_parse_audio_packet()
1638 blocksize = vc->blocksize[blockflag]; in vorbis_parse_audio_packet()
1647 … memset(ch_res_ptr, 0, sizeof(float) * vc->audio_channels * vlen); //FIXME can this be removed ? in vorbis_parse_audio_packet()
1648 for (i = 0; i < vc->audio_channels; ++i) in vorbis_parse_audio_packet()
1653 for (i = 0; i < vc->audio_channels; ++i) { in vorbis_parse_audio_packet()
1657 floor = &vc->floors[mapping->submap_floor[mapping->mux[i]]]; in vorbis_parse_audio_packet()
1659 floor = &vc->floors[mapping->submap_floor[0]]; in vorbis_parse_audio_packet()
1662 ret = floor->decode(vc, &floor->data, floor_ptr[i]); in vorbis_parse_audio_packet()
1665 av_log(vc->avctx, AV_LOG_ERROR, "Invalid codebook in vorbis_floor_decode.\n"); in vorbis_parse_audio_packet()
1687 for (j = 0; j < vc->audio_channels; ++j) { in vorbis_parse_audio_packet()
1699 residue = &vc->residues[mapping->submap_residue[i]]; in vorbis_parse_audio_packet()
1701 av_log(vc->avctx, AV_LOG_ERROR, "Too many channels in vorbis_floor_decode.\n"); in vorbis_parse_audio_packet()
1705 ret = vorbis_residue_decode(vc, residue, ch, do_not_decode, ch_res_ptr, vlen, ch_left); in vorbis_parse_audio_packet()
1722 mag = vc->channel_residues+res_chan[mapping->magnitude[i]] * blocksize / 2; in vorbis_parse_audio_packet()
1723 ang = vc->channel_residues+res_chan[mapping->angle[i]] * blocksize / 2; in vorbis_parse_audio_packet()
1724 vc->dsp.vorbis_inverse_coupling(mag, ang, blocksize / 2); in vorbis_parse_audio_packet()
1729 mdct = &vc->mdct[blockflag]; in vorbis_parse_audio_packet()
1731 for (j = vc->audio_channels-1;j >= 0; j--) { in vorbis_parse_audio_packet()
1732 ch_res_ptr = vc->channel_residues + res_chan[j] * blocksize / 2; in vorbis_parse_audio_packet()
1733 vc->fdsp->vector_fmul(floor_ptr[j], floor_ptr[j], ch_res_ptr, blocksize / 2); in vorbis_parse_audio_packet()
1739 retlen = (blocksize + vc->blocksize[previous_window]) / 4; in vorbis_parse_audio_packet()
1740 for (j = 0; j < vc->audio_channels; j++) { in vorbis_parse_audio_packet()
1741 unsigned bs0 = vc->blocksize[0]; in vorbis_parse_audio_packet()
1742 unsigned bs1 = vc->blocksize[1]; in vorbis_parse_audio_packet()
1743 float *residue = vc->channel_residues + res_chan[j] * blocksize / 2; in vorbis_parse_audio_packet()
1744 float *saved = vc->saved + j * bs1 / 4; in vorbis_parse_audio_packet()
1747 const float *win = vc->win[blockflag & previous_window]; in vorbis_parse_audio_packet()
1750 vc->fdsp->vector_fmul_window(ret, saved, buf, win, blocksize / 4); in vorbis_parse_audio_packet()
1752 vc->fdsp->vector_fmul_window(ret, saved, buf, win, bs0 / 4); in vorbis_parse_audio_packet()
1756vc->fdsp->vector_fmul_window(ret + (bs1 - bs0) / 4, saved + (bs1 - bs0) / 4, buf, win, bs0 / 4); in vorbis_parse_audio_packet()
1761 vc->previous_window = blockflag; in vorbis_parse_audio_packet()
1772 vorbis_context *vc = avctx->priv_data; in vorbis_decode_frame() local
1774 GetBitContext *gb = &vc->gb; in vorbis_decode_frame()
1784 vorbis_free(vc); in vorbis_decode_frame()
1785 if ((ret = vorbis_parse_id_hdr(vc))) { in vorbis_decode_frame()
1787 vorbis_free(vc); in vorbis_decode_frame()
1791 if (vc->audio_channels > 8) in vorbis_decode_frame()
1794 avctx->channel_layout = ff_vorbis_channel_layouts[vc->audio_channels - 1]; in vorbis_decode_frame()
1796 avctx->channels = vc->audio_channels; in vorbis_decode_frame()
1797 avctx->sample_rate = vc->audio_samplerate; in vorbis_decode_frame()
1806 if (*buf == 5 && buf_size > 7 && vc->channel_residues && !vc->modes) { in vorbis_decode_frame()
1810 if ((ret = vorbis_parse_setup_hdr(vc))) { in vorbis_decode_frame()
1812 vorbis_free(vc); in vorbis_decode_frame()
1818 if (!vc->channel_residues || !vc->modes) { in vorbis_decode_frame()
1824 frame->nb_samples = vc->blocksize[1] / 2; in vorbis_decode_frame()
1828 if (vc->audio_channels > 8) { in vorbis_decode_frame()
1829 for (i = 0; i < vc->audio_channels; i++) in vorbis_decode_frame()
1832 for (i = 0; i < vc->audio_channels; i++) { in vorbis_decode_frame()
1833 int ch = ff_vorbis_channel_layout_offsets[vc->audio_channels - 1][i]; in vorbis_decode_frame()
1841 if ((len = vorbis_parse_audio_packet(vc, channel_ptrs)) <= 0) in vorbis_decode_frame()
1844 if (!vc->first_frame) { in vorbis_decode_frame()
1845 vc->first_frame = 1; in vorbis_decode_frame()
1864 vorbis_context *vc = avctx->priv_data; in vorbis_decode_close() local
1866 vorbis_free(vc); in vorbis_decode_close()
1873 vorbis_context *vc = avctx->priv_data; in vorbis_decode_flush() local
1875 if (vc->saved) { in vorbis_decode_flush()
1876 memset(vc->saved, 0, (vc->blocksize[1] / 4) * vc->audio_channels * in vorbis_decode_flush()
1877 sizeof(*vc->saved)); in vorbis_decode_flush()
1879 vc->previous_window = -1; in vorbis_decode_flush()
1880 vc->first_frame = 0; in vorbis_decode_flush()