From 3448404a707b6e236a2ffa7b0453b3300de41b7b Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Thu, 17 May 2012 02:37:13 +0200 Subject: [PATCH] libavfilter: add ff_parse_time_base() Signed-off-by: Michael Niedermayer --- libavfilter/formats.c | 12 ++++++++++++ libavfilter/internal.h | 10 ++++++++++ 2 files changed, 22 insertions(+) diff --git a/libavfilter/formats.c b/libavfilter/formats.c index 3534d64ca7..5564d03249 100644 --- a/libavfilter/formats.c +++ b/libavfilter/formats.c @@ -21,6 +21,7 @@ #include "libavutil/eval.h" #include "libavutil/pixdesc.h" +#include "libavutil/parseutils.h" #include "libavutil/audioconvert.h" #include "avfilter.h" #include "internal.h" @@ -493,6 +494,17 @@ int ff_parse_sample_format(int *ret, const char *arg, void *log_ctx) return 0; } +int ff_parse_time_base(AVRational *ret, const char *arg, void *log_ctx) +{ + AVRational r; + if(av_parse_ratio(&r, arg, INT_MAX, 0, log_ctx) < 0 ||r.num<=0 ||r.den<=0) { + av_log(log_ctx, AV_LOG_ERROR, "Invalid time base '%s'\n", arg); + return AVERROR(EINVAL); + } + *ret = r; + return 0; +} + int ff_parse_sample_rate(int *ret, const char *arg, void *log_ctx) { char *tail; diff --git a/libavfilter/internal.h b/libavfilter/internal.h index f06151f90c..bb45274e27 100644 --- a/libavfilter/internal.h +++ b/libavfilter/internal.h @@ -111,6 +111,16 @@ int ff_parse_pixel_format(enum PixelFormat *ret, const char *arg, void *log_ctx) */ int ff_parse_sample_rate(int *ret, const char *arg, void *log_ctx); +/** + * Parse a time base. + * + * @param ret unsigned AVRational pointer to where the value should be written + * @param arg string to parse + * @param log_ctx log context + * @return 0 in case of success, a negative AVERROR code on error + */ +int ff_parse_time_base(AVRational *ret, const char *arg, void *log_ctx); + /** * Parse a sample format name or a corresponding integer representation. *