FFmpeg
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
libavutil
parseutils.h
Go to the documentation of this file.
1
/*
2
* This file is part of FFmpeg.
3
*
4
* FFmpeg is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation; either
7
* version 2.1 of the License, or (at your option) any later version.
8
*
9
* FFmpeg is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* Lesser General Public License for more details.
13
*
14
* You should have received a copy of the GNU Lesser General Public
15
* License along with FFmpeg; if not, write to the Free Software
16
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
*/
18
19
#ifndef AVUTIL_PARSEUTILS_H
20
#define AVUTIL_PARSEUTILS_H
21
22
#include <
time.h
>
23
24
#include "
rational.h
"
25
26
/**
27
* @file
28
* misc parsing utilities
29
*/
30
31
/**
32
* Parse str and store the parsed ratio in q.
33
*
34
* Note that a ratio with infinite (1/0) or negative value is
35
* considered valid, so you should check on the returned value if you
36
* want to exclude those values.
37
*
38
* The undefined value can be expressed using the "0:0" string.
39
*
40
* @param[in,out] q pointer to the AVRational which will contain the ratio
41
* @param[in] str the string to parse: it has to be a string in the format
42
* num:den, a float number or an expression
43
* @param[in] max the maximum allowed numerator and denominator
44
* @param[in] log_offset log level offset which is applied to the log
45
* level of log_ctx
46
* @param[in] log_ctx parent logging context
47
* @return >= 0 on success, a negative error code otherwise
48
*/
49
int
av_parse_ratio
(
AVRational
*q,
const
char
*str,
int
max,
50
int
log_offset,
void
*log_ctx);
51
52
#define av_parse_ratio_quiet(rate, str, max) \
53
av_parse_ratio(rate, str, max, AV_LOG_MAX_OFFSET, NULL)
54
55
/**
56
* Parse str and put in width_ptr and height_ptr the detected values.
57
*
58
* @param[in,out] width_ptr pointer to the variable which will contain the detected
59
* width value
60
* @param[in,out] height_ptr pointer to the variable which will contain the detected
61
* height value
62
* @param[in] str the string to parse: it has to be a string in the format
63
* width x height or a valid video size abbreviation.
64
* @return >= 0 on success, a negative error code otherwise
65
*/
66
int
av_parse_video_size
(
int
*width_ptr,
int
*height_ptr,
const
char
*str);
67
68
/**
69
* Parse str and store the detected values in *rate.
70
*
71
* @param[in,out] rate pointer to the AVRational which will contain the detected
72
* frame rate
73
* @param[in] str the string to parse: it has to be a string in the format
74
* rate_num / rate_den, a float number or a valid video rate abbreviation
75
* @return >= 0 on success, a negative error code otherwise
76
*/
77
int
av_parse_video_rate
(
AVRational
*rate,
const
char
*str);
78
79
/**
80
* Put the RGBA values that correspond to color_string in rgba_color.
81
*
82
* @param color_string a string specifying a color. It can be the name of
83
* a color (case insensitive match) or a [0x|#]RRGGBB[AA] sequence,
84
* possibly followed by "@" and a string representing the alpha
85
* component.
86
* The alpha component may be a string composed by "0x" followed by an
87
* hexadecimal number or a decimal number between 0.0 and 1.0, which
88
* represents the opacity value (0x00/0.0 means completely transparent,
89
* 0xff/1.0 completely opaque).
90
* If the alpha component is not specified then 0xff is assumed.
91
* The string "random" will result in a random color.
92
* @param slen length of the initial part of color_string containing the
93
* color. It can be set to -1 if color_string is a null terminated string
94
* containing nothing else than the color.
95
* @return >= 0 in case of success, a negative value in case of
96
* failure (for example if color_string cannot be parsed).
97
*/
98
int
av_parse_color
(
uint8_t
*rgba_color,
const
char
*color_string,
int
slen,
99
void
*log_ctx);
100
101
/**
102
* Parse timestr and return in *time a corresponding number of
103
* microseconds.
104
*
105
* @param timeval puts here the number of microseconds corresponding
106
* to the string in timestr. If the string represents a duration, it
107
* is the number of microseconds contained in the time interval. If
108
* the string is a date, is the number of microseconds since 1st of
109
* January, 1970 up to the time of the parsed date. If timestr cannot
110
* be successfully parsed, set *time to INT64_MIN.
111
112
* @param timestr a string representing a date or a duration.
113
* - If a date the syntax is:
114
* @code
115
* [{YYYY-MM-DD|YYYYMMDD}[T|t| ]]{{HH:MM:SS[.m...]]]}|{HHMMSS[.m...]]]}}[Z]
116
* now
117
* @endcode
118
* If the value is "now" it takes the current time.
119
* Time is local time unless Z is appended, in which case it is
120
* interpreted as UTC.
121
* If the year-month-day part is not specified it takes the current
122
* year-month-day.
123
* - If a duration the syntax is:
124
* @code
125
* [-][HH:]MM:SS[.m...]
126
* [-]S+[.m...]
127
* @endcode
128
* @param duration flag which tells how to interpret timestr, if not
129
* zero timestr is interpreted as a duration, otherwise as a date
130
* @return 0 in case of success, a negative value corresponding to an
131
* AVERROR code otherwise
132
*/
133
int
av_parse_time
(int64_t *timeval,
const
char
*timestr,
int
duration
);
134
135
/**
136
* Parse the input string p according to the format string fmt and
137
* store its results in the structure dt.
138
* This implementation supports only a subset of the formats supported
139
* by the standard strptime().
140
*
141
* In particular it actually supports the parameters:
142
* - %H: the hour as a decimal number, using a 24-hour clock, in the
143
* range '00' through '23'
144
* - %J: hours as a decimal number, in the range '0' through INT_MAX
145
* - %M: the minute as a decimal number, using a 24-hour clock, in the
146
* range '00' through '59'
147
* - %S: the second as a decimal number, using a 24-hour clock, in the
148
* range '00' through '59'
149
* - %Y: the year as a decimal number, using the Gregorian calendar
150
* - %m: the month as a decimal number, in the range '1' through '12'
151
* - %d: the day of the month as a decimal number, in the range '1'
152
* through '31'
153
* - %%: a literal '%'
154
*
155
* @return a pointer to the first character not processed in this
156
* function call, or NULL in case the function fails to match all of
157
* the fmt string and therefore an error occurred
158
*/
159
char
*
av_small_strptime
(
const
char
*p,
const
char
*
fmt
,
struct
tm *dt);
160
161
/**
162
* Attempt to find a specific tag in a URL.
163
*
164
* syntax: '?tag1=val1&tag2=val2...'. Little URL decoding is done.
165
* Return 1 if found.
166
*/
167
int
av_find_info_tag
(
char
*
arg
,
int
arg_size,
const
char
*tag1,
const
char
*info);
168
169
/**
170
* Convert the decomposed UTC time in tm to a time_t value.
171
*/
172
time_t
av_timegm
(
struct
tm *tm);
173
174
#endif
/* AVUTIL_PARSEUTILS_H */
Generated on Wed Jul 10 2013 23:48:16 for FFmpeg by
1.8.2