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

Lines Matching defs:ac

70 void ff_audio_convert_set_func(AudioConvert *ac, enum AVSampleFormat out_fmt,
77 switch (ac->func_type) {
79 if (av_get_packed_sample_fmt(ac->in_fmt) == in_fmt &&
80 av_get_packed_sample_fmt(ac->out_fmt) == out_fmt) {
81 ac->conv_flat = conv;
82 ac->func_descr = descr;
83 ac->ptr_align = ptr_align;
84 ac->samples_align = samples_align;
86 ac->conv_flat_generic = conv;
87 ac->func_descr_generic = descr;
89 ac->has_optimized_func = 1;
95 if (ac->in_fmt == in_fmt && ac->out_fmt == out_fmt &&
96 (!channels || ac->channels == channels)) {
97 ac->conv_interleave = conv;
98 ac->func_descr = descr;
99 ac->ptr_align = ptr_align;
100 ac->samples_align = samples_align;
102 ac->conv_interleave_generic = conv;
103 ac->func_descr_generic = descr;
105 ac->has_optimized_func = 1;
111 if (ac->in_fmt == in_fmt && ac->out_fmt == out_fmt &&
112 (!channels || ac->channels == channels)) {
113 ac->conv_deinterleave = conv;
114 ac->func_descr = descr;
115 ac->ptr_align = ptr_align;
116 ac->samples_align = samples_align;
118 ac->conv_deinterleave_generic = conv;
119 ac->func_descr_generic = descr;
121 ac->has_optimized_func = 1;
128 av_log(ac->avr, AV_LOG_DEBUG, "audio_convert: found function: %-4s "
129 "to %-4s (%s)\n", av_get_sample_fmt_name(ac->in_fmt),
130 av_get_sample_fmt_name(ac->out_fmt), descr);
219 ff_audio_convert_set_func(ac, ofmt, ifmt, 0, 1, 1, "C", CONV_FUNC_NAME(ofmt, ifmt)); \
220 ff_audio_convert_set_func(ac, ofmt ## P, ifmt, 0, 1, 1, "C", CONV_FUNC_NAME(ofmt ## P, ifmt)); \
221 ff_audio_convert_set_func(ac, ofmt, ifmt ## P, 0, 1, 1, "C", CONV_FUNC_NAME(ofmt, ifmt ## P));
223 static void set_generic_function(AudioConvert *ac)
252 void ff_audio_convert_free(AudioConvert **ac)
254 if (!*ac)
256 ff_dither_free(&(*ac)->dc);
257 av_freep(ac);
266 AudioConvert *ac;
269 ac = av_mallocz(sizeof(*ac));
270 if (!ac)
273 ac->avr = avr;
274 ac->out_fmt = out_fmt;
275 ac->in_fmt = in_fmt;
276 ac->channels = channels;
277 ac->apply_map = apply_map;
282 ac->dc = ff_dither_alloc(avr, out_fmt, in_fmt, channels, sample_rate,
284 if (!ac->dc) {
285 av_free(ac);
288 return ac;
295 ac->func_type = CONV_FUNC_TYPE_FLAT;
296 ac->planes = in_planar ? ac->channels : 1;
298 ac->func_type = CONV_FUNC_TYPE_INTERLEAVE;
300 ac->func_type = CONV_FUNC_TYPE_DEINTERLEAVE;
302 set_generic_function(ac);
305 ff_audio_convert_init_aarch64(ac);
307 ff_audio_convert_init_arm(ac);
309 ff_audio_convert_init_x86(ac);
311 return ac;
314 int ff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in)
320 if (ac->dc) {
322 av_dlog(ac->avr, "%d samples - audio_convert: %s to %s (dithered)\n",
323 len, av_get_sample_fmt_name(ac->in_fmt),
324 av_get_sample_fmt_name(ac->out_fmt));
326 return ff_convert_dither(ac->dc, out, in);
331 if (ac->has_optimized_func) {
334 int aligned_len = FFALIGN(len, ac->samples_align);
335 if (!(ptr_align % ac->ptr_align) && samples_align >= aligned_len) {
340 av_dlog(ac->avr, "%d samples - audio_convert: %s to %s (%s)\n", len,
341 av_get_sample_fmt_name(ac->in_fmt),
342 av_get_sample_fmt_name(ac->out_fmt),
343 use_generic ? ac->func_descr_generic : ac->func_descr);
345 if (ac->apply_map) {
346 ChannelMapInfo *map = &ac->avr->ch_map_info;
348 if (!av_sample_fmt_is_planar(ac->out_fmt)) {
349 av_log(ac->avr, AV_LOG_ERROR, "cannot remap packed format during conversion\n");
354 if (av_sample_fmt_is_planar(ac->in_fmt)) {
355 conv_func_flat *convert = use_generic ? ac->conv_flat_generic :
356 ac->conv_flat;
358 for (p = 0; p < ac->planes; p++)
364 ac->conv_deinterleave_generic :
365 ac->conv_deinterleave;
367 for (p = 0; p < ac->channels; p++)
370 convert(data, in->data[0], len, ac->channels);
374 for (p = 0; p < ac->planes; p++) {
379 av_samples_set_silence(&out->data[p], 0, len, 1, ac->out_fmt);
383 switch (ac->func_type) {
388 for (p = 0; p < ac->planes; p++)
389 ac->conv_flat_generic(out->data[p], in->data[p], len);
391 for (p = 0; p < ac->planes; p++)
392 ac->conv_flat(out->data[p], in->data[p], len);
398 ac->conv_interleave_generic(out->data[0], in->data, len,
399 ac->channels);
401 ac->conv_interleave(out->data[0], in->data, len, ac->channels);
405 ac->conv_deinterleave_generic(out->data, in->data[0], len,
406 ac->channels);
408 ac->conv_deinterleave(out->data, in->data[0], len,
409 ac->channels);