summaryrefslogtreecommitdiff
path: root/libavformat/utils.c
diff options
context:
space:
mode:
authorStefano Sabatini <stefano.sabatini-lala@poste.it>2007-09-18 08:26:10 +0000
committerDiego Biurrun <diego@biurrun.de>2007-09-18 08:26:10 +0000
commita8f70d72c354c1eec47d8788dc9971e4e78880b6 (patch)
treef3946ab7d330e7947691835de0f484ceda677bd6 /libavformat/utils.c
parentdbd255cda1c142c8779a1aed9b8561b1c800e357 (diff)
Add explanatory comments to the parse_date function.
patch by Stefano Sabatini, stefano.sabatini-lala poste it Originally committed as revision 10525 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/utils.c')
-rw-r--r--libavformat/utils.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 1e04bd217c..b018de99d8 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -2579,6 +2579,7 @@ int64_t parse_date(const char *datestr, int duration)
p = datestr;
q = NULL;
if (!duration) {
+ /* parse the year-month-day part */
for (i = 0; i < sizeof(date_fmt) / sizeof(date_fmt[0]); i++) {
q = small_strptime(p, date_fmt[i], &dt);
if (q) {
@@ -2586,6 +2587,8 @@ int64_t parse_date(const char *datestr, int duration)
}
}
+ /* if the year-month-day part is missing, then take the
+ * current year-month-day time */
if (!q) {
if (is_utc) {
dt = *gmtime(&now);
@@ -2600,6 +2603,7 @@ int64_t parse_date(const char *datestr, int duration)
if (*p == 'T' || *p == 't' || *p == ' ')
p++;
+ /* parse the hour-minute-second part */
for (i = 0; i < sizeof(time_fmt) / sizeof(time_fmt[0]); i++) {
q = small_strptime(p, time_fmt[i], &dt);
if (q) {
@@ -2607,12 +2611,15 @@ int64_t parse_date(const char *datestr, int duration)
}
}
} else {
+ /* parse datestr as a duration */
if (p[0] == '-') {
negative = 1;
++p;
}
+ /* parse datestr as HH:MM:SS */
q = small_strptime(p, time_fmt[0], &dt);
if (!q) {
+ /* parse datestr as S+ */
dt.tm_sec = strtol(p, (char **)&q, 10);
dt.tm_min = 0;
dt.tm_hour = 0;
@@ -2640,6 +2647,7 @@ int64_t parse_date(const char *datestr, int duration)
t *= 1000000;
+ /* parse the .m... part */
if (*q == '.') {
int val, n;
q++;