mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-02-20 05:46:57 +00:00
Allow parameter values (AVOptions) to use the 'k', 'M', 'G'
and 'B' postfixes. Originally committed as revision 6249 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
7f889a76ad
commit
a41e9d6899
@ -27,11 +27,38 @@
|
||||
#include "avcodec.h"
|
||||
#include "opt.h"
|
||||
|
||||
static double av_parse_num(const char *name, char **tail){
|
||||
/**
|
||||
* strtod() function extended with 'k', 'M' and 'B' postfixes.
|
||||
* This allows using kB, MB, k, M and B as a postfix. This function
|
||||
* assumes that the unit of numbers is bits not bytes.
|
||||
*/
|
||||
static double av_strtod(const char *name, char **tail) {
|
||||
double d;
|
||||
d= strtod(name, tail);
|
||||
if(*tail>name && (**tail=='k')) {
|
||||
d*=1000;
|
||||
(*tail)++;
|
||||
}
|
||||
else if(*tail && (**tail=='M')) {
|
||||
d*=1000000;
|
||||
(*tail)++;
|
||||
}
|
||||
else if(*tail && (**tail=='G')) {
|
||||
d*=1000000000;
|
||||
(*tail)++;
|
||||
}
|
||||
if(*tail && (**tail=='B')) {
|
||||
d*=8;
|
||||
(*tail)++;
|
||||
}
|
||||
return d;
|
||||
}
|
||||
|
||||
static double av_parse_num(const char *name, char **tail){
|
||||
double d;
|
||||
d= av_strtod(name, tail);
|
||||
if(*tail>name && (**tail=='/' || **tail==':'))
|
||||
d/=strtod((*tail)+1, tail);
|
||||
d/=av_strtod((*tail)+1, tail);
|
||||
return d;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user