Go to the documentation of this file.
35 #define RTMPT_DEFAULT_PORT 80
36 #define RTMPTS_DEFAULT_PORT RTMPS_DEFAULT_PORT
216 "Cache-Control: no-cache\r\n"
217 "Content-type: application/x-fcs\r\n"
218 "User-Agent: Shockwave Flash\r\n");
261 #define OFFSET(x) offsetof(RTMP_HTTPContext, x)
262 #define DEC AV_OPT_FLAG_DECODING_PARAM
277 .
name =
"ffrtmphttp",
285 .default_whitelist =
"https,http,tcp,tls",
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel sample they are references to shared objects When the negotiation mechanism computes the intersection of the formats supported at each end of a all references to both lists are replaced with a reference to the intersection And when a single format is eventually chosen for a link amongst the remaining all references to the list are updated That means that if a filter requires that its input and output have the same format amongst a supported all it has to do is use a reference to the same list of formats query_formats can leave some formats unset and return AVERROR(EAGAIN) to cause the negotiation mechanism toagain later. That can be used by filters with complex requirements to use the format negotiated on one link to set the formats supported on another. Frame references ownership and permissions
#define URL_PROTOCOL_FLAG_NETWORK
static const AVOption ffrtmphttp_options[]
#define AVERROR_EOF
End of file.
#define AVIO_FLAG_READ_WRITE
read-write pseudo flag
static av_const int av_isspace(int c)
Locale-independent conversion of ASCII isspace.
int nb_bytes_read
number of bytes read since the last request
#define RTMPT_DEFAULT_PORT
int ffurl_close(URLContext *h)
char host[256]
hostname of the server
int ffurl_connect(URLContext *uc, AVDictionary **options)
Connect an URLContext that has been allocated by ffurl_alloc.
int av_opt_set(void *obj, const char *name, const char *val, int search_flags)
int out_capacity
current output buffer capacity
static int rtmp_http_close(URLContext *h)
int initialized
flag indicating when the http context is initialized
int ff_url_join(char *str, int size, const char *proto, const char *authorization, const char *hostname, int port, const char *fmt,...)
int av_usleep(unsigned usec)
Sleep for a period of time.
int port
port to connect (default is 80)
int ff_http_do_new_request(URLContext *h, const char *uri)
Send a new HTTP request, reusing the old connection.
#define LIBAVUTIL_VERSION_INT
Describe the class of an AVClass context structure.
const char * protocol_whitelist
int av_opt_set_bin(void *obj, const char *name, const uint8_t *val, int len, int search_flags)
const char * av_default_item_name(void *ptr)
Return the context name.
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated Undefined Behavior must not occur in a C it is not safe even if the output of undefined operations is unused The unsafety may seem nit picking but Optimizing compilers have in fact optimized code on the assumption that no undefined Behavior occurs Optimizing code based on wrong assumptions can and has in some cases lead to effects beyond the output of computations The signed integer overflow problem in speed critical code Code which is highly optimized and works with signed integers sometimes has the problem that often the output of the computation does not c
int seq
sequence ID used for all requests
#define RTMPTS_DEFAULT_PORT
static int rtmp_http_send_cmd(URLContext *h, const char *cmd)
int av_reallocp(void *ptr, size_t size)
Allocate, reallocate, or free a block of memory through a pointer to a pointer.
int ffurl_alloc(URLContext **puc, const char *filename, int flags, const AVIOInterruptCB *int_cb)
Create a URLContext for accessing to the resource indicated by url, but do not initiate the connectio...
void av_url_split(char *proto, int proto_size, char *authorization, int authorization_size, char *hostname, int hostname_size, int *port_ptr, char *path, int path_size, const char *url)
Split a URL string into components.
uint8_t * out_data
output buffer
FFmpeg currently uses a custom build this text attempts to document some of its obscure features and options Makefile the full command issued by make and its output will be shown on the screen DBG Preprocess x86 external assembler files to a dbg asm file in the object which then gets compiled Helps in developing those assembler files DESTDIR Destination directory for the install useful to prepare packages or install FFmpeg in cross environments GEN Set to ‘1’ to generate the missing or mismatched references Makefile builds all the libraries and the executables fate Run the fate test note that you must have installed it fate list List all fate regression test targets install Install headers
static int rtmp_http_open(URLContext *h, const char *uri, int flags)
const char * class_name
The name of the class; usually it is the same name as the context structure type to which the AVClass...
static int rtmp_http_write(URLContext *h, const uint8_t *buf, int size)
int out_size
current output buffer size
int ffurl_read(URLContext *h, unsigned char *buf, int size)
Read up to size bytes from the resource accessed by h, and store the read bytes in buf.
static const AVClass ffrtmphttp_class
URLContext * stream
HTTP stream.
char * av_strdup(const char *s)
Duplicate a string.
int tls
use Transport Security Layer (RTMPTS)
static int rtmp_http_read(URLContext *h, uint8_t *buf, int size)
#define AVIO_FLAG_NONBLOCK
Use non-blocking mode.
const URLProtocol ff_ffrtmphttp_protocol
char client_id[64]
client ID used for all requests except the first one
#define flags(name, subs,...)
int finishing
flag indicating when the client closes the connection