static const AVClass audioresample_context_class = { "ReSampleContext", context_to_name, options };
struct ReSampleContext {
- const AVClass *av_class;
struct AVResampleContext *resample_context;
short *temp[2];
int temp_len;
s->resample_context= av_resample_init(output_rate, input_rate,
filter_length, log2_phase_count, linear, cutoff);
- s->av_class= &audioresample_context_class;
+ *(const AVClass**)s->resample_context = &audioresample_context_class;
return s;
}
int ostride[1] = { 2 };
const void *ibuf[1] = { input };
void *obuf[1];
- unsigned input_size = nb_samples*s->input_channels*s->sample_size[0];
+ unsigned input_size = nb_samples*s->input_channels*2;
if (!s->buffer_size[0] || s->buffer_size[0] < input_size) {
av_free(s->buffer[0]);
s->buffer_size[0] = input_size;
s->buffer[0] = av_malloc(s->buffer_size[0]);
if (!s->buffer[0]) {
- av_log(s, AV_LOG_ERROR, "Could not allocate buffer\n");
+ av_log(s->resample_context, AV_LOG_ERROR, "Could not allocate buffer\n");
return 0;
}
}
if (av_audio_convert(s->convert_ctx[0], obuf, ostride,
ibuf, istride, nb_samples*s->input_channels) < 0) {
- av_log(s, AV_LOG_ERROR, "Audio sample format conversion failed\n");
+ av_log(s->resample_context, AV_LOG_ERROR, "Audio sample format conversion failed\n");
return 0;
}
s->buffer_size[1] = lenout;
s->buffer[1] = av_malloc(s->buffer_size[1]);
if (!s->buffer[1]) {
- av_log(s, AV_LOG_ERROR, "Could not allocate buffer\n");
+ av_log(s->resample_context, AV_LOG_ERROR, "Could not allocate buffer\n");
return 0;
}
}
if (av_audio_convert(s->convert_ctx[1], obuf, ostride,
ibuf, istride, nb_samples1*s->output_channels) < 0) {
- av_log(s, AV_LOG_ERROR, "Audio sample format convertion failed\n");
+ av_log(s->resample_context, AV_LOG_ERROR, "Audio sample format convertion failed\n");
return 0;
}
}