FFmpeg
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  */
49 int 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  */
62 int ff_http_do_new_request2(URLContext *h, const char *uri, AVDictionary **options);
63 
65 
66 static 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 */
ff_http_do_new_request2
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
AVERROR_HTTP_OTHER_4XX
#define AVERROR_HTTP_OTHER_4XX
Definition: error.h:83
ff_http_get_new_location
const char * ff_http_get_new_location(URLContext *h)
Definition: http.c:615
AVERROR_HTTP_SERVER_ERROR
#define AVERROR_HTTP_SERVER_ERROR
Definition: error.h:84
AVDictionary
Definition: dict.c:32
AVERROR_HTTP_UNAUTHORIZED
#define AVERROR_HTTP_UNAUTHORIZED
Definition: error.h:79
AVERROR_HTTP_NOT_FOUND
#define AVERROR_HTTP_NOT_FOUND
Definition: error.h:81
ff_http_do_new_request
int ff_http_do_new_request(URLContext *h, const char *uri)
Send a new HTTP request, reusing the old connection.
Definition: http.c:545
AVERROR_HTTP_TOO_MANY_REQUESTS
#define AVERROR_HTTP_TOO_MANY_REQUESTS
Definition: error.h:82
options
Definition: swscale.c:50
AVERROR_HTTP_BAD_REQUEST
#define AVERROR_HTTP_BAD_REQUEST
Definition: error.h:78
ff_http_init_auth_state
void ff_http_init_auth_state(URLContext *dest, const URLContext *src)
Initialize the authentication state based on another HTTP URLContext.
Definition: http.c:239
error.h
URLContext
Definition: url.h:35
url.h
AVERROR_HTTP_FORBIDDEN
#define AVERROR_HTTP_FORBIDDEN
Definition: error.h:80
ff_http_averror
static int ff_http_averror(int status_code, int default_averror)
Definition: http.h:66
h
h
Definition: vp9dsp_template.c:2070
src
#define src
Definition: vp8dsp.c:248