[FFmpeg-devel] [PATCH] lswr/swresample: use AV_OPT_TYPE_SAMPLE_FMT for sample format options
Stefano Sabatini
stefasab at gmail.com
Fri Nov 30 01:11:14 CET 2012
Improve usability and robustness. This is technically an API/ABI break.
---
doc/ffmpeg-resampler.texi | 12 +++---------
libswresample/swresample.c | 18 +++++++++---------
libswresample/swresample.h | 4 ++--
3 files changed, 14 insertions(+), 20 deletions(-)
diff --git a/doc/ffmpeg-resampler.texi b/doc/ffmpeg-resampler.texi
index 1bdb5b0..3558772 100644
--- a/doc/ffmpeg-resampler.texi
+++ b/doc/ffmpeg-resampler.texi
@@ -52,19 +52,13 @@ Set the input sample rate. Default value is 0.
Set the output sample rate. Default value is 0.
@item isf, in_sample_fmt
-Specify the input sample format. Must be an integer representing the
-corresponding sample format specified in
- at file{libavutil/samplefmt.h} header. Default value is -1
-(corresponding to @code{AV_SAMPLE_FMT_NONE}).
+Specify the input sample format. It is set by default to @code{none}.
@item osf, out_sample_fmt
-Specify the output sample format. Must be an integer representing the
-corresponding sample format specified in
- at file{libavutil/samplefmt.h} header. Default value is -1
-(corresponding to @code{AV_SAMPLE_FMT_NONE}).
+Specify the output sample format. It is set by default to @code{none}.
@item tsf, internal_sample_fmt
-Set the internal sample format. Default value is -1.
+Set the internal sample format. Default value is @code{none}.
@item icl, in_channel_layout
Set the input channel layout.
diff --git a/libswresample/swresample.c b/libswresample/swresample.c
index 28388b5..2dbaf04 100644
--- a/libswresample/swresample.c
+++ b/libswresample/swresample.c
@@ -51,12 +51,12 @@ static const AVOption options[]={
{"in_sample_rate" , "set input sample rate" , OFFSET( in_sample_rate), AV_OPT_TYPE_INT , {.i64=0 }, 0 , INT_MAX , PARAM},
{"osr" , "set output sample rate" , OFFSET(out_sample_rate), AV_OPT_TYPE_INT , {.i64=0 }, 0 , INT_MAX , PARAM},
{"out_sample_rate" , "set output sample rate" , OFFSET(out_sample_rate), AV_OPT_TYPE_INT , {.i64=0 }, 0 , INT_MAX , PARAM},
-{"isf" , "set input sample format" , OFFSET( in_sample_fmt ), AV_OPT_TYPE_INT , {.i64=AV_SAMPLE_FMT_NONE }, -1 , AV_SAMPLE_FMT_NB-1+256, PARAM},
-{"in_sample_fmt" , "set input sample format" , OFFSET( in_sample_fmt ), AV_OPT_TYPE_INT , {.i64=AV_SAMPLE_FMT_NONE }, -1 , AV_SAMPLE_FMT_NB-1+256, PARAM},
-{"osf" , "set output sample format" , OFFSET(out_sample_fmt ), AV_OPT_TYPE_INT , {.i64=AV_SAMPLE_FMT_NONE }, -1 , AV_SAMPLE_FMT_NB-1+256, PARAM},
-{"out_sample_fmt" , "set output sample format" , OFFSET(out_sample_fmt ), AV_OPT_TYPE_INT , {.i64=AV_SAMPLE_FMT_NONE }, -1 , AV_SAMPLE_FMT_NB-1+256, PARAM},
-{"tsf" , "set internal sample format" , OFFSET(int_sample_fmt ), AV_OPT_TYPE_INT , {.i64=AV_SAMPLE_FMT_NONE }, -1 , AV_SAMPLE_FMT_FLTP, PARAM},
-{"internal_sample_fmt" , "set internal sample format" , OFFSET(int_sample_fmt ), AV_OPT_TYPE_INT , {.i64=AV_SAMPLE_FMT_NONE }, -1 , AV_SAMPLE_FMT_FLTP, PARAM},
+{"isf" , "set input sample format" , OFFSET( in_sample_fmt ), AV_OPT_TYPE_SAMPLE_FMT , {.i64=AV_SAMPLE_FMT_NONE}, 0 , 0 , PARAM},
+{"in_sample_fmt" , "set input sample format" , OFFSET( in_sample_fmt ), AV_OPT_TYPE_SAMPLE_FMT , {.i64=AV_SAMPLE_FMT_NONE}, 0 , 0 , PARAM},
+{"osf" , "set output sample format" , OFFSET(out_sample_fmt ), AV_OPT_TYPE_SAMPLE_FMT , {.i64=AV_SAMPLE_FMT_NONE}, 0 , 0 , PARAM},
+{"out_sample_fmt" , "set output sample format" , OFFSET(out_sample_fmt ), AV_OPT_TYPE_SAMPLE_FMT , {.i64=AV_SAMPLE_FMT_NONE}, 0 , 0 , PARAM},
+{"tsf" , "set internal sample format" , OFFSET(int_sample_fmt ), AV_OPT_TYPE_SAMPLE_FMT , {.i64=AV_SAMPLE_FMT_NONE}, 0 , 0 , PARAM},
+{"internal_sample_fmt" , "set internal sample format" , OFFSET(int_sample_fmt ), AV_OPT_TYPE_SAMPLE_FMT , {.i64=AV_SAMPLE_FMT_NONE}, 0 , 0 , PARAM},
{"icl" , "set input channel layout" , OFFSET( in_ch_layout ), AV_OPT_TYPE_INT64, {.i64=0 }, 0 , INT64_MAX , PARAM, "channel_layout"},
{"in_channel_layout" , "set input channel layout" , OFFSET( in_ch_layout ), AV_OPT_TYPE_INT64, {.i64=0 }, 0 , INT64_MAX , PARAM, "channel_layout"},
{"ocl" , "set output channel layout" , OFFSET(out_ch_layout ), AV_OPT_TYPE_INT64, {.i64=0 }, 0 , INT64_MAX , PARAM, "channel_layout"},
@@ -171,12 +171,12 @@ struct SwrContext *swr_alloc_set_opts(struct SwrContext *s,
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_sample_fmt(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_sample_fmt(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_sample_fmt(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);
av_opt_set_int(s, "uch", 0, 0);
diff --git a/libswresample/swresample.h b/libswresample/swresample.h
index 71a82cc..3bd4fe1 100644
--- a/libswresample/swresample.h
+++ b/libswresample/swresample.h
@@ -47,8 +47,8 @@
* av_opt_set_int(swr, "out_channel_layout", AV_CH_LAYOUT_STEREO, 0);
* av_opt_set_int(swr, "in_sample_rate", 48000, 0);
* av_opt_set_int(swr, "out_sample_rate", 44100, 0);
- * av_opt_set_int(swr, "in_sample_fmt", AV_SAMPLE_FMT_FLTP, 0);
- * av_opt_set_int(swr, "out_sample_fmt, AV_SAMPLE_FMT_S16, 0);
+ * av_opt_set_sample_fmt(swr, "in_sample_fmt", AV_SAMPLE_FMT_FLTP, 0);
+ * av_opt_set_sample_fmt(swr, "out_sample_fmt, AV_SAMPLE_FMT_S16, 0);
* @endcode
*
* Once all values have been set, it must be initialized with swr_init(). If
--
1.7.9.5
More information about the ffmpeg-devel
mailing list