VLC 4.0.0-dev
|
Data Structures | |
struct | vlc_h2_queue |
struct | vlc_h2_output |
Macros | |
#define | VLC_H2_MAX_QUEUE (1u << 24) |
Functions | |
static int | vlc_h2_output_queue (struct vlc_h2_output *out, struct vlc_h2_queue *q, struct vlc_h2_frame *f) |
Queues one outgoing HTTP/2. More... | |
int | vlc_h2_output_send_prio (struct vlc_h2_output *out, struct vlc_h2_frame *f) |
int | vlc_h2_output_send (struct vlc_h2_output *out, struct vlc_h2_frame *f) |
static struct vlc_h2_frame * | vlc_h2_output_dequeue (struct vlc_h2_output *out) |
Dequeues one outgoing HTTP/2. More... | |
static void | vlc_h2_output_flush_unlocked (struct vlc_h2_output *out) |
static ssize_t | vlc_https_send (vlc_tls_t *tls, const void *buf, size_t len) |
Sends bytes to a connection. More... | |
static int | vlc_h2_frame_send (struct vlc_tls *tls, struct vlc_h2_frame *f) |
Sends one HTTP/2 frame through TLS. More... | |
static void * | vlc_h2_output_thread (void *data) |
Output thread. More... | |
static void * | vlc_h2_client_output_thread (void *data) |
struct vlc_h2_output * | vlc_h2_output_create (struct vlc_tls *tls, bool client) |
void | vlc_h2_output_destroy (struct vlc_h2_output *out) |
#define VLC_H2_MAX_QUEUE (1u << 24) |
|
static |
References vlc_h2_output::failed, vlc_h2_output::lock, vlc_h2_output::tls, vlc_h2_output_thread(), vlc_https_send(), vlc_mutex_lock(), vlc_mutex_unlock(), and vlc_thread_set_name().
Referenced by vlc_h2_output_create().
|
static |
Sends one HTTP/2 frame through TLS.
This function sends a whole HTTP/2 frame through a TLS session, then releases the memory used by the frame.
The caller must "own" the write side of the TLS session.
References vlc_h2_frame::data, vlc_cleanup_pop, vlc_cleanup_push, vlc_h2_frame_size(), and vlc_https_send().
Referenced by vlc_h2_output_thread().
|
static |
Dequeues one outgoing HTTP/2.
References vlc_h2_output::closing, vlc_h2_queue::first, vlc_h2_queue::last, vlc_h2_output::lock, vlc_h2_frame::next, vlc_h2_output::prio, vlc_h2_output::queue, vlc_h2_output::size, unlikely, vlc_cond_wait(), vlc_h2_frame_size(), vlc_mutex_lock(), vlc_mutex_unlock(), vlc_restorecancel(), vlc_savecancel(), and vlc_h2_output::wait.
Referenced by vlc_h2_output_thread().
|
static |
References vlc_h2_queue::first, vlc_h2_output::prio, and vlc_h2_output::queue.
Referenced by vlc_h2_output_destroy(), and vlc_h2_output_thread().
|
static |
Queues one outgoing HTTP/2.
References vlc_h2_output::failed, vlc_h2_queue::last, vlc_h2_output::lock, vlc_h2_frame::next, vlc_h2_output::size, unlikely, vlc_cond_signal(), vlc_h2_frame_size(), VLC_H2_MAX_QUEUE, vlc_mutex_lock(), vlc_mutex_unlock(), and vlc_h2_output::wait.
Referenced by vlc_h2_output_send(), and vlc_h2_output_send_prio().
|
static |
Output thread.
References vlc_h2_output::failed, vlc_h2_queue::first, vlc_h2_queue::last, vlc_h2_output::lock, vlc_h2_output::prio, vlc_h2_output::queue, vlc_h2_output::tls, vlc_h2_frame_send(), vlc_h2_output_dequeue(), vlc_h2_output_flush_unlocked(), vlc_mutex_lock(), vlc_mutex_unlock(), and vlc_thread_set_name().
Referenced by vlc_h2_client_output_thread(), and vlc_h2_output_create().
|
static |
Sends bytes to a connection.
References count, pollfd::events, pollfd::fd, vlc_tls::ops, poll(), POLLOUT, vlc_restorecancel(), vlc_savecancel(), vlc_tls_GetPollFD(), and vlc_tls_operations::writev.
Referenced by vlc_h2_client_output_thread(), and vlc_h2_frame_send().