109 const char *filename,
int flags,
121 "Impossible to open the '%s' protocol for reading\n", up->
name);
126 "Impossible to open the '%s' protocol for writing\n", up->
name);
148 int proto_len= strlen(up->
name);
159 if (strcmp(up->
name,
"subfile"))
162 while(ret >= 0 && (key= strchr(p, sep)) && p<key && (val = strchr(key+1, sep))){
164 if (strcmp(p,
"start") && strcmp(p,
"end")) {
180 memmove(start, key+1, strlen(key));
220 #define URL_SCHEME_CHARS \
221 "abcdefghijklmnopqrstuvwxyz" \
222 "ABCDEFGHIJKLMNOPQRSTUVWXYZ" \
228 char proto_str[128], proto_nested[128], *ptr;
231 if (filename[proto_len] !=
':' &&
232 (strncmp(filename,
"subfile,", 8) || !strchr(filename + proto_len + 1,
':')) ||
234 strcpy(proto_str,
"file");
237 FFMIN(proto_len + 1,
sizeof(proto_str)));
239 if ((ptr = strchr(proto_str,
',')))
241 av_strlcpy(proto_nested, proto_str,
sizeof(proto_nested));
242 if ((ptr = strchr(proto_nested,
'+')))
246 if (!strcmp(proto_str, up->
name))
249 !strcmp(proto_nested, up->
name))
261 if (!first_protocol) {
263 "Missing call to av_register_all()?\n");
282 if (options && (*puc)->prot->priv_data_class &&
297 int size,
int size_min,
303 int fast_retries = 5;
304 int64_t wait_since = 0;
307 while (len < size_min) {
310 ret = transfer_func(h, buf + len, size - len);
331 fast_retries =
FFMAX(fast_retries, 2);