FFmpeg
Loading...
Searching...
No Matches
http.h
Go to the documentation of this file.
1/*
2 * HTTP definitions
3 * Copyright (c) 2010 Josh Allmann
4 *
5 * This file is part of FFmpeg.
6 *
7 * FFmpeg is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * FFmpeg is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with FFmpeg; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 */
21
22#ifndef AVFORMAT_HTTP_H
23#define AVFORMAT_HTTP_H
24
25#include "libavutil/error.h"
26#include "url.h"
27
28#define HTTP_HEADERS_SIZE 4096
29
30/**
31 * Initialize the authentication state based on another HTTP URLContext.
32 * This can be used to pre-initialize the authentication parameters if
33 * they are known beforehand, to avoid having to do an initial failing
34 * request just to get the parameters.
35 *
36 * @param dest URL context whose authentication state gets updated
37 * @param src URL context whose authentication state gets copied
38 */
40
41/**
42 * Send a new HTTP request, reusing the old connection.
43 *
44 * @param h pointer to the resource
45 * @param uri uri used to perform the request
46 * @return a negative value if an error condition occurred, 0
47 * otherwise
48 */
49int ff_http_do_new_request(URLContext *h, const char *uri);
50
51/**
52 * Send a new HTTP request, reusing the old connection.
53 *
54 * @param h pointer to the resource
55 * @param uri uri used to perform the request
56 * @param options A dictionary filled with HTTP options. On return
57 * this parameter will be destroyed and replaced with a dict containing options
58 * that were not found. May be NULL.
59 * @return a negative value if an error condition occurred, 0
60 * otherwise
61 */
63
65
66static inline int ff_http_averror(int status_code, int default_averror)
67{
68 switch (status_code) {
69 case 400: return AVERROR_HTTP_BAD_REQUEST;
70 case 401: return AVERROR_HTTP_UNAUTHORIZED;
71 case 403: return AVERROR_HTTP_FORBIDDEN;
72 case 404: return AVERROR_HTTP_NOT_FOUND;
73 case 429: return AVERROR_HTTP_TOO_MANY_REQUESTS;
74 default: break;
75 }
76 if (status_code >= 400 && status_code <= 499)
78 else if (status_code >= 500)
80 else
81 return default_averror;
82}
83
84#endif /* AVFORMAT_HTTP_H */
error code definitions
#define AVERROR_HTTP_FORBIDDEN
Definition error.h:80
#define AVERROR_HTTP_BAD_REQUEST
Definition error.h:78
#define AVERROR_HTTP_SERVER_ERROR
Definition error.h:84
#define AVERROR_HTTP_OTHER_4XX
Definition error.h:83
#define AVERROR_HTTP_TOO_MANY_REQUESTS
Definition error.h:82
#define AVERROR_HTTP_UNAUTHORIZED
Definition error.h:79
#define AVERROR_HTTP_NOT_FOUND
Definition error.h:81
int ff_http_do_new_request2(URLContext *h, const char *uri, AVDictionary **options)
Send a new HTTP request, reusing the old connection.
Definition http.c:549
static int ff_http_averror(int status_code, int default_averror)
Definition http.h:66
void ff_http_init_auth_state(URLContext *dest, const URLContext *src)
Initialize the authentication state based on another HTTP URLContext.
Definition http.c:239
const char * ff_http_get_new_location(URLContext *h)
Definition http.c:615
int ff_http_do_new_request(URLContext *h, const char *uri)
Send a new HTTP request, reusing the old connection.
Definition http.c:545
#define src
Definition vp8dsp.c:248
unbuffered private I/O API