additional logging and segfault fix

Change-Id: I95309cfe90efd17d6592f78e39c3732fa0d6e75d
changes/55/12455/1
Richard Fuchs 9 years ago
parent af1db75caa
commit dab9fdb20e

@ -17,6 +17,7 @@
AVFrame *resample_frame(resample_t *resample, AVFrame *frame, const format_t *to_format) {
const char *err;
int errcode = 0;
uint64_t to_channel_layout = av_get_default_channel_layout(to_format->channels);
if (frame->format != to_format->format)
@ -36,22 +37,29 @@ resample:
if (!resample->avresample)
goto err;
av_opt_set_int(resample->avresample, "in_channel_layout",
frame->channel_layout, 0);
av_opt_set_int(resample->avresample, "in_sample_fmt",
frame->format, 0);
av_opt_set_int(resample->avresample, "in_sample_rate",
frame->sample_rate, 0);
av_opt_set_int(resample->avresample, "out_channel_layout",
to_channel_layout, 0);
av_opt_set_int(resample->avresample, "out_sample_fmt",
to_format->format, 0);
av_opt_set_int(resample->avresample, "out_sample_rate",
to_format->clockrate, 0);
err = "failed to set resample option";
if ((errcode = av_opt_set_int(resample->avresample, "in_channel_layout",
frame->channel_layout, 0)))
goto err;
if ((errcode = av_opt_set_int(resample->avresample, "in_sample_fmt",
frame->format, 0)))
goto err;
if ((errcode = av_opt_set_int(resample->avresample, "in_sample_rate",
frame->sample_rate, 0)))
goto err;
if ((errcode = av_opt_set_int(resample->avresample, "out_channel_layout",
to_channel_layout, 0)))
goto err;
if ((errcode = av_opt_set_int(resample->avresample, "out_sample_fmt",
to_format->format, 0)))
goto err;
if ((errcode = av_opt_set_int(resample->avresample, "out_sample_rate",
to_format->clockrate, 0)))
goto err;
// av_opt_set_int(dec->avresample, "internal_sample_fmt", AV_SAMPLE_FMT_FLTP, 0); // ?
err = "failed to init resample context";
if (avresample_open(resample->avresample) < 0)
if ((errcode = avresample_open(resample->avresample)) < 0)
goto err;
}
@ -74,7 +82,7 @@ resample:
resample->swr_frame->nb_samples = dst_samples;
resample->swr_frame->sample_rate = to_format->clockrate;
err = "failed to get resample buffers";
if (av_frame_get_buffer(resample->swr_frame, 0) < 0)
if ((errcode = av_frame_get_buffer(resample->swr_frame, 0)) < 0)
goto err;
resample->swr_buffers = dst_samples;
}
@ -85,7 +93,7 @@ resample:
frame->extended_data,
frame->linesize[0], frame->nb_samples);
err = "failed to resample audio";
if (ret_samples < 0)
if ((errcode = ret_samples) < 0)
goto err;
resample->swr_frame->nb_samples = ret_samples;
@ -93,7 +101,8 @@ resample:
return resample->swr_frame;
err:
ilog(LOG_ERR, "Error resampling: %s", err);
ilog(LOG_ERR, "Error resampling: %s (code %i)", err, errcode);
resample_shutdown(resample);
return NULL;
}

Loading…
Cancel
Save