examples/resampling_audio: make use of av_samples_alloc_array_and_samples()

Simplify.
pull/13/merge
Stefano Sabatini 12 years ago
parent 5c73645d91
commit 66c92a1575
  1. 20
      doc/examples/resampling_audio.c

@ -78,18 +78,6 @@ void fill_samples(double *dst, int nb_samples, int nb_channels, int sample_rate,
} }
} }
int alloc_samples_array_and_data(uint8_t ***data, int *linesize, int nb_channels,
int nb_samples, enum AVSampleFormat sample_fmt, int align)
{
int nb_planes = av_sample_fmt_is_planar(sample_fmt) ? nb_channels : 1;
*data = av_malloc(sizeof(*data) * nb_planes);
if (!*data)
return AVERROR(ENOMEM);
return av_samples_alloc(*data, linesize, nb_channels,
nb_samples, sample_fmt, align);
}
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
int64_t src_ch_layout = AV_CH_LAYOUT_STEREO, dst_ch_layout = AV_CH_LAYOUT_SURROUND; int64_t src_ch_layout = AV_CH_LAYOUT_STEREO, dst_ch_layout = AV_CH_LAYOUT_SURROUND;
@ -149,8 +137,8 @@ int main(int argc, char **argv)
/* allocate source and destination samples buffers */ /* allocate source and destination samples buffers */
src_nb_channels = av_get_channel_layout_nb_channels(src_ch_layout); src_nb_channels = av_get_channel_layout_nb_channels(src_ch_layout);
ret = alloc_samples_array_and_data(&src_data, &src_linesize, src_nb_channels, ret = av_samples_alloc_array_and_samples(&src_data, &src_linesize, src_nb_channels,
src_nb_samples, src_sample_fmt, 0); src_nb_samples, src_sample_fmt, 0);
if (ret < 0) { if (ret < 0) {
fprintf(stderr, "Could not allocate source samples\n"); fprintf(stderr, "Could not allocate source samples\n");
goto end; goto end;
@ -164,8 +152,8 @@ int main(int argc, char **argv)
/* buffer is going to be directly written to a rawaudio file, no alignment */ /* buffer is going to be directly written to a rawaudio file, no alignment */
dst_nb_channels = av_get_channel_layout_nb_channels(dst_ch_layout); dst_nb_channels = av_get_channel_layout_nb_channels(dst_ch_layout);
ret = alloc_samples_array_and_data(&dst_data, &dst_linesize, dst_nb_channels, ret = av_samples_alloc_array_and_samples(&dst_data, &dst_linesize, dst_nb_channels,
dst_nb_samples, dst_sample_fmt, 0); dst_nb_samples, dst_sample_fmt, 0);
if (ret < 0) { if (ret < 0) {
fprintf(stderr, "Could not allocate destination samples\n"); fprintf(stderr, "Could not allocate destination samples\n");
goto end; goto end;

Loading…
Cancel
Save