diff options
author | Michael Niedermayer <michael@niedermayer.cc> | 2016-06-09 06:01:26 +0300 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2016-06-09 11:35:13 +0300 |
commit | 37bb6004059c15f6a17f38b4ab5c5f5d2f61c087 (patch) | |
tree | 58e3c2145414d5d13607123f50f7bdd56037e19d /libavutil | |
parent | 4888932c4d3ac68c26f44d7adf1e22e0d7ed8808 (diff) |
avutil/opt: Fix max/min checking in av_opt_set() for AV_OPT_TYPE_VIDEO_RATE
Fixes Ticket5618
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavutil')
-rw-r--r-- | libavutil/opt-test.c | 2 | ||||
-rw-r--r-- | libavutil/opt.c | 9 |
2 files changed, 8 insertions, 3 deletions
diff --git a/libavutil/opt-test.c b/libavutil/opt-test.c index 1f813d69a5..e41782bacf 100644 --- a/libavutil/opt-test.c +++ b/libavutil/opt-test.c @@ -76,7 +76,7 @@ static const AVOption test_options[]= { {"size", "set size", OFFSET(w), AV_OPT_TYPE_IMAGE_SIZE, { .str="200x300" }, 0, 0, 1 }, {"pix_fmt", "set pixfmt", OFFSET(pix_fmt), AV_OPT_TYPE_PIXEL_FMT, { .i64 = AV_PIX_FMT_0BGR }, -1, INT_MAX, 1 }, {"sample_fmt", "set samplefmt", OFFSET(sample_fmt), AV_OPT_TYPE_SAMPLE_FMT, { .i64 = AV_SAMPLE_FMT_S16 }, -1, INT_MAX, 1 }, - {"video_rate", "set videorate", OFFSET(video_rate), AV_OPT_TYPE_VIDEO_RATE, { .str = "25" }, 0, 0, 1 }, + {"video_rate", "set videorate", OFFSET(video_rate), AV_OPT_TYPE_VIDEO_RATE, { .str = "25" }, 0, INT_MAX, 1 }, {"duration", "set duration", OFFSET(duration), AV_OPT_TYPE_DURATION, { .i64 = 1000 }, 0, INT64_MAX, 1 }, {"color", "set color", OFFSET(color), AV_OPT_TYPE_COLOR, { .str = "pink" }, 0, 0, 1 }, {"cl", "set channel layout", OFFSET(channel_layout), AV_OPT_TYPE_CHANNEL_LAYOUT, { .i64 = AV_CH_LAYOUT_HEXAGONAL }, 0, INT64_MAX, 1 }, diff --git a/libavutil/opt.c b/libavutil/opt.c index 7e9ad8f4b2..cd16bd1d3f 100644 --- a/libavutil/opt.c +++ b/libavutil/opt.c @@ -462,8 +462,13 @@ int av_opt_set(void *obj, const char *name, const char *val, int search_flags) return set_string_number(obj, target_obj, o, val, dst); case AV_OPT_TYPE_IMAGE_SIZE: return set_string_image_size(obj, o, val, dst); - case AV_OPT_TYPE_VIDEO_RATE: - return set_string_video_rate(obj, o, val, dst); + case AV_OPT_TYPE_VIDEO_RATE: { + AVRational tmp; + ret = set_string_video_rate(obj, o, val, &tmp); + if (ret < 0) + return ret; + return write_number(obj, o, dst, 1, tmp.den, tmp.num); + } case AV_OPT_TYPE_PIXEL_FMT: return set_string_pixel_fmt(obj, o, val, dst); case AV_OPT_TYPE_SAMPLE_FMT: |