#include "libavutil/avstring.h"
#include "avformat.h"
#include "internal.h"
#include "network.h"
#include "http.h"
#include "os_support.h"
#include "httpauth.h"
#include "url.h"
#include "libavutil/opt.h"
Go to the source code of this file.
Data Structures | |
struct | HTTPContext |
Defines | |
#define | BUFFER_SIZE 4096 |
#define | MAX_REDIRECTS 8 |
#define | OFFSET(x) offsetof(HTTPContext, x) |
#define | D AV_OPT_FLAG_DECODING_PARAM |
#define | E AV_OPT_FLAG_ENCODING_PARAM |
#define | DEC AV_OPT_FLAG_DECODING_PARAM |
#define | HTTP_CLASS(flavor) |
Functions | |
HTTP_CLASS (http) | |
HTTP_CLASS (https) | |
static int | http_connect (URLContext *h, const char *path, const char *local_path, const char *hoststr, const char *auth, const char *proxyauth, int *new_location) |
void | ff_http_init_auth_state (URLContext *dest, const URLContext *src) |
Initialize the authentication state based on another HTTP URLContext. | |
static int | http_open_cnx (URLContext *h) |
int | ff_http_do_new_request (URLContext *h, const char *uri) |
Send a new HTTP request, reusing the old connection. | |
static int | http_open (URLContext *h, const char *uri, int flags) |
static int | http_getc (HTTPContext *s) |
static int | http_get_line (HTTPContext *s, char *line, int line_size) |
static int | process_line (URLContext *h, char *line, int line_count, int *new_location) |
static int | has_header (const char *str, const char *header) |
static int | http_read_header (URLContext *h, int *new_location) |
static int | http_buf_read (URLContext *h, uint8_t *buf, int size) |
static int | http_read (URLContext *h, uint8_t *buf, int size) |
static int | http_write (URLContext *h, const uint8_t *buf, int size) |
static int | http_shutdown (URLContext *h, int flags) |
static int | http_close (URLContext *h) |
static int64_t | http_seek (URLContext *h, int64_t off, int whence) |
static int | http_get_file_handle (URLContext *h) |
Variables | |
static const AVOption | options [] |
#define HTTP_CLASS | ( | flavor | ) |
Value:
static const AVClass flavor ## _context_class = {\ .class_name = #flavor,\ .item_name = av_default_item_name,\ .option = options,\ .version = LIBAVUTIL_VERSION_INT,\ }
#define MAX_REDIRECTS 8 |
#define OFFSET | ( | x | ) | offsetof(HTTPContext, x) |
int ff_http_do_new_request | ( | URLContext * | h, | |
const char * | uri | |||
) |
Send a new HTTP request, reusing the old connection.
h | pointer to the resource | |
uri | uri used to perform the request |
Definition at line 196 of file http.c.
Referenced by rtmp_http_send_cmd().
void ff_http_init_auth_state | ( | URLContext * | dest, | |
const URLContext * | src | |||
) |
Initialize the authentication state based on another HTTP URLContext.
This can be used to pre-initialize the authentication parameters if they are known beforehand, to avoid having to do an initial failing request just to get the parameters.
dest | URL context whose authentication state gets updated | |
src | URL context whose authentication state gets copied |
static int has_header | ( | const char * | str, | |
const char * | header | |||
) | [inline, static] |
static int http_buf_read | ( | URLContext * | h, | |
uint8_t * | buf, | |||
int | size | |||
) | [static] |
HTTP_CLASS | ( | https | ) |
HTTP_CLASS | ( | http | ) |
static int http_close | ( | URLContext * | h | ) | [static] |
static int http_connect | ( | URLContext * | h, | |
const char * | path, | |||
const char * | local_path, | |||
const char * | hoststr, | |||
const char * | auth, | |||
const char * | proxyauth, | |||
int * | new_location | |||
) | [static] |
static int http_get_file_handle | ( | URLContext * | h | ) | [static] |
static int http_get_line | ( | HTTPContext * | s, | |
char * | line, | |||
int | line_size | |||
) | [static] |
static int http_getc | ( | HTTPContext * | s | ) | [static] |
static int http_open | ( | URLContext * | h, | |
const char * | uri, | |||
int | flags | |||
) | [static] |
static int http_open_cnx | ( | URLContext * | h | ) | [static] |
Definition at line 99 of file http.c.
Referenced by ff_http_do_new_request(), http_open(), and http_seek().
static int http_read | ( | URLContext * | h, | |
uint8_t * | buf, | |||
int | size | |||
) | [static] |
static int http_read_header | ( | URLContext * | h, | |
int * | new_location | |||
) | [static] |
static int64_t http_seek | ( | URLContext * | h, | |
int64_t | off, | |||
int | whence | |||
) | [static] |
static int http_shutdown | ( | URLContext * | h, | |
int | flags | |||
) | [static] |
static int http_write | ( | URLContext * | h, | |
const uint8_t * | buf, | |||
int | size | |||
) | [static] |
static int process_line | ( | URLContext * | h, | |
char * | line, | |||
int | line_count, | |||
int * | new_location | |||
) | [static] |
Initial value:
{ {"chunked_post", "use chunked transfer-encoding for posts", OFFSET(chunked_post), AV_OPT_TYPE_INT, {.i64 = 1}, 0, 1, E }, {"headers", "custom HTTP headers, can override built in default headers", OFFSET(headers), AV_OPT_TYPE_STRING, { 0 }, 0, 0, D|E }, {"user-agent", "override User-Agent header", OFFSET(user_agent), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, DEC}, {"multiple_requests", "use persistent connections", OFFSET(multiple_requests), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, D|E }, {"post_data", "custom HTTP post data", OFFSET(post_data), AV_OPT_TYPE_BINARY, .flags = D|E }, {NULL} }