[FFmpeg-cvslog] swresample: check av_opt_set for failure in swr_alloc_set_opts()
Michael Niedermayer
git at videolan.org
Mon Aug 11 01:58:57 CEST 2014
ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Mon Aug 11 01:34:34 2014 +0200| [f4e814f787d050ac65f507b1304dcdc4ffa56f29] | committer: Michael Niedermayer
swresample: check av_opt_set for failure in swr_alloc_set_opts()
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f4e814f787d050ac65f507b1304dcdc4ffa56f29
---
libswresample/swresample.c | 40 +++++++++++++++++++++++++++++++---------
1 file changed, 31 insertions(+), 9 deletions(-)
diff --git a/libswresample/swresample.c b/libswresample/swresample.c
index 81c04b2..32bbee3 100644
--- a/libswresample/swresample.c
+++ b/libswresample/swresample.c
@@ -62,17 +62,39 @@ struct SwrContext *swr_alloc_set_opts(struct SwrContext *s,
s->log_level_offset= log_offset;
s->log_ctx= log_ctx;
- av_opt_set_int(s, "ocl", out_ch_layout, 0);
- av_opt_set_int(s, "osf", out_sample_fmt, 0);
- av_opt_set_int(s, "osr", out_sample_rate, 0);
- av_opt_set_int(s, "icl", in_ch_layout, 0);
- av_opt_set_int(s, "isf", in_sample_fmt, 0);
- av_opt_set_int(s, "isr", in_sample_rate, 0);
- av_opt_set_int(s, "tsf", AV_SAMPLE_FMT_NONE, 0);
- av_opt_set_int(s, "ich", av_get_channel_layout_nb_channels(s-> in_ch_layout), 0);
- av_opt_set_int(s, "och", av_get_channel_layout_nb_channels(s->out_ch_layout), 0);
+ if (av_opt_set_int(s, "ocl", out_ch_layout, 0) < 0)
+ goto fail;
+
+ if (av_opt_set_int(s, "osf", out_sample_fmt, 0) < 0)
+ goto fail;
+
+ if (av_opt_set_int(s, "osr", out_sample_rate, 0) < 0)
+ goto fail;
+
+ if (av_opt_set_int(s, "icl", in_ch_layout, 0) < 0)
+ goto fail;
+
+ if (av_opt_set_int(s, "isf", in_sample_fmt, 0) < 0)
+ goto fail;
+
+ if (av_opt_set_int(s, "isr", in_sample_rate, 0) < 0)
+ goto fail;
+
+ if (av_opt_set_int(s, "tsf", AV_SAMPLE_FMT_NONE, 0) < 0)
+ goto fail;
+
+ if (av_opt_set_int(s, "ich", av_get_channel_layout_nb_channels(s-> in_ch_layout), 0) < 0)
+ goto fail;
+
+ if (av_opt_set_int(s, "och", av_get_channel_layout_nb_channels(s->out_ch_layout), 0) < 0)
+ goto fail;
+
av_opt_set_int(s, "uch", 0, 0);
return s;
+fail:
+ av_log(s, AV_LOG_ERROR, "Failed to set option\n");
+ swr_free(&s);
+ return NULL;
}
static void set_audiodata_fmt(AudioData *a, enum AVSampleFormat fmt){
More information about the ffmpeg-cvslog
mailing list