add locale month names to av_small_strptime
Signed-off-by: Micah Galizia <micahgalizia@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
3a003cc381
commit
489c09ad4b
3 changed files with 42 additions and 0 deletions
|
@ -140,6 +140,11 @@ static const VideoRateAbbr video_rate_abbrs[]= {
|
||||||
{ "ntsc-film", { 24000, 1001 } },
|
{ "ntsc-film", { 24000, 1001 } },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const char *months[12] = {
|
||||||
|
"january", "february", "march", "april", "may", "june", "july", "august",
|
||||||
|
"september", "october", "november", "december"
|
||||||
|
};
|
||||||
|
|
||||||
int av_parse_video_size(int *width_ptr, int *height_ptr, const char *str)
|
int av_parse_video_size(int *width_ptr, int *height_ptr, const char *str)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -466,6 +471,21 @@ static int date_get_num(const char **pp,
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int date_get_month(const char **pp) {
|
||||||
|
int i = 0;
|
||||||
|
for (; i < 12; i++) {
|
||||||
|
if (!av_strncasecmp(*pp, months[i], 3)) {
|
||||||
|
const char *mo_full = months[i] + 3;
|
||||||
|
int len = strlen(mo_full);
|
||||||
|
*pp += 3;
|
||||||
|
if (len > 0 && !av_strncasecmp(*pp, mo_full, len))
|
||||||
|
*pp += len;
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
char *av_small_strptime(const char *p, const char *fmt, struct tm *dt)
|
char *av_small_strptime(const char *p, const char *fmt, struct tm *dt)
|
||||||
{
|
{
|
||||||
int c, val;
|
int c, val;
|
||||||
|
@ -525,6 +545,14 @@ char *av_small_strptime(const char *p, const char *fmt, struct tm *dt)
|
||||||
if (!p)
|
if (!p)
|
||||||
return NULL;
|
return NULL;
|
||||||
break;
|
break;
|
||||||
|
case 'b':
|
||||||
|
case 'B':
|
||||||
|
case 'h':
|
||||||
|
val = date_get_month(&p);
|
||||||
|
if (val == -1)
|
||||||
|
return NULL;
|
||||||
|
dt->tm_mon = val;
|
||||||
|
break;
|
||||||
case '%':
|
case '%':
|
||||||
if (*p++ != '%')
|
if (*p++ != '%')
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
@ -138,6 +138,13 @@ static void test_av_small_strptime(void)
|
||||||
{ "%Y - %m - %d", "2012-12-21" },
|
{ "%Y - %m - %d", "2012-12-21" },
|
||||||
{ "%Y-%m-%d %H:%M:%S", "2012-12-21 20:12:21" },
|
{ "%Y-%m-%d %H:%M:%S", "2012-12-21 20:12:21" },
|
||||||
{ " %Y - %m - %d %H : %M : %S", " 2012 - 12 - 21 20 : 12 : 21" },
|
{ " %Y - %m - %d %H : %M : %S", " 2012 - 12 - 21 20 : 12 : 21" },
|
||||||
|
{ " %Y - %b - %d %H : %M : %S", " 2012 - nOV - 21 20 : 12 : 21" },
|
||||||
|
{ " %Y - %B - %d %H : %M : %S", " 2012 - nOVemBeR - 21 20 : 12 : 21" },
|
||||||
|
{ " %Y - %B%d %H : %M : %S", " 2012 - may21 20 : 12 : 21" },
|
||||||
|
{ " %Y - %B%d %H : %M : %S", " 2012 - mby21 20 : 12 : 21" },
|
||||||
|
{ " %Y - %B - %d %H : %M : %S", " 2012 - JunE - 21 20 : 12 : 21" },
|
||||||
|
{ " %Y - %B - %d %H : %M : %S", " 2012 - Jane - 21 20 : 12 : 21" },
|
||||||
|
{ " %Y - %B - %d %H : %M : %S", " 2012 - January - 21 20 : 12 : 21" },
|
||||||
};
|
};
|
||||||
|
|
||||||
av_log_set_level(AV_LOG_DEBUG);
|
av_log_set_level(AV_LOG_DEBUG);
|
||||||
|
|
|
@ -68,6 +68,13 @@ fmt:'%Y-%m-%d' spec:'2012-12-21' -> 2012-12-21 00:00:00
|
||||||
fmt:'%Y - %m - %d' spec:'2012-12-21' -> 2012-12-21 00:00:00
|
fmt:'%Y - %m - %d' spec:'2012-12-21' -> 2012-12-21 00:00:00
|
||||||
fmt:'%Y-%m-%d %H:%M:%S' spec:'2012-12-21 20:12:21' -> 2012-12-21 20:12:21
|
fmt:'%Y-%m-%d %H:%M:%S' spec:'2012-12-21 20:12:21' -> 2012-12-21 20:12:21
|
||||||
fmt:' %Y - %m - %d %H : %M : %S' spec:' 2012 - 12 - 21 20 : 12 : 21' -> 2012-12-21 20:12:21
|
fmt:' %Y - %m - %d %H : %M : %S' spec:' 2012 - 12 - 21 20 : 12 : 21' -> 2012-12-21 20:12:21
|
||||||
|
fmt:' %Y - %b - %d %H : %M : %S' spec:' 2012 - nOV - 21 20 : 12 : 21' -> 2012-11-21 20:12:21
|
||||||
|
fmt:' %Y - %B - %d %H : %M : %S' spec:' 2012 - nOVemBeR - 21 20 : 12 : 21' -> 2012-11-21 20:12:21
|
||||||
|
fmt:' %Y - %B%d %H : %M : %S' spec:' 2012 - may21 20 : 12 : 21' -> 2012-05-21 20:12:21
|
||||||
|
fmt:' %Y - %B%d %H : %M : %S' spec:' 2012 - mby21 20 : 12 : 21' -> error
|
||||||
|
fmt:' %Y - %B - %d %H : %M : %S' spec:' 2012 - JunE - 21 20 : 12 : 21' -> 2012-06-21 20:12:21
|
||||||
|
fmt:' %Y - %B - %d %H : %M : %S' spec:' 2012 - Jane - 21 20 : 12 : 21' -> error
|
||||||
|
fmt:' %Y - %B - %d %H : %M : %S' spec:' 2012 - January - 21 20 : 12 : 21' -> 2012-01-21 20:12:21
|
||||||
|
|
||||||
Testing av_parse_time()
|
Testing av_parse_time()
|
||||||
(now is 2012-03-17 09:14:13.2 +0100, local time is UTC+1)
|
(now is 2012-03-17 09:14:13.2 +0100, local time is UTC+1)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue