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
* Get the name of a color from the internal table of hard-coded named
103
* colors.
104
*
105
* This function is meant to enumerate the color names recognized by
106
* av_parse_color().
107
*
108
* @param color_idx index of the requested color, starting from 0
109
* @param rgbp if not NULL, will point to a 3-elements array with the color value in RGB
110
* @return the color name string or NULL if color_idx is not in the array
111
*/
112
const
char
*
av_get_known_color_name
(
int
color_idx,
const
uint8_t
**rgb);
113
114
/**
115
* Parse timestr and return in *time a corresponding number of
116
* microseconds.
117
*
118
* @param timeval puts here the number of microseconds corresponding
119
* to the string in timestr. If the string represents a duration, it
120
* is the number of microseconds contained in the time interval. If
121
* the string is a date, is the number of microseconds since 1st of
122
* January, 1970 up to the time of the parsed date. If timestr cannot
123
* be successfully parsed, set *time to INT64_MIN.
124
125
* @param timestr a string representing a date or a duration.
126
* - If a date the syntax is:
127
* @code
128
* [{YYYY-MM-DD|YYYYMMDD}[T|t| ]]{{HH:MM:SS[.m...]]]}|{HHMMSS[.m...]]]}}[Z]
129
* now
130
* @endcode
131
* If the value is "now" it takes the current time.
132
* Time is local time unless Z is appended, in which case it is
133
* interpreted as UTC.
134
* If the year-month-day part is not specified it takes the current
135
* year-month-day.
136
* - If a duration the syntax is:
137
* @code
138
* [-][HH:]MM:SS[.m...]
139
* [-]S+[.m...]
140
* @endcode
141
* @param duration flag which tells how to interpret timestr, if not
142
* zero timestr is interpreted as a duration, otherwise as a date
143
* @return >= 0 in case of success, a negative value corresponding to an
144
* AVERROR code otherwise
145
*/
146
int
av_parse_time
(int64_t *timeval,
const
char
*timestr,
int
duration
);
147
148
/**
149
* Parse the input string p according to the format string fmt and
150
* store its results in the structure dt.
151
* This implementation supports only a subset of the formats supported
152
* by the standard strptime().
153
*
154
* In particular it actually supports the parameters:
155
* - %H: the hour as a decimal number, using a 24-hour clock, in the
156
* range '00' through '23'
157
* - %J: hours as a decimal number, in the range '0' through INT_MAX
158
* - %M: the minute as a decimal number, using a 24-hour clock, in the
159
* range '00' through '59'
160
* - %S: the second as a decimal number, using a 24-hour clock, in the
161
* range '00' through '59'
162
* - %Y: the year as a decimal number, using the Gregorian calendar
163
* - %m: the month as a decimal number, in the range '1' through '12'
164
* - %d: the day of the month as a decimal number, in the range '1'
165
* through '31'
166
* - %%: a literal '%'
167
*
168
* @return a pointer to the first character not processed in this
169
* function call, or NULL in case the function fails to match all of
170
* the fmt string and therefore an error occurred
171
*/
172
char
*
av_small_strptime
(
const
char
*p,
const
char
*
fmt
,
struct
tm *dt);
173
174
/**
175
* Attempt to find a specific tag in a URL.
176
*
177
* syntax: '?tag1=val1&tag2=val2...'. Little URL decoding is done.
178
* Return 1 if found.
179
*/
180
int
av_find_info_tag
(
char
*
arg
,
int
arg_size,
const
char
*tag1,
const
char
*info);
181
182
/**
183
* Convert the decomposed UTC time in tm to a time_t value.
184
*/
185
time_t
av_timegm
(
struct
tm *tm);
186
187
#endif
/* AVUTIL_PARSEUTILS_H */
Generated on Sat Jan 25 2014 19:52:06 for FFmpeg by
1.8.2