VLC 4.0.0-dev
Loading...
Searching...
No Matches
Collaboration diagram for HTTP/2 frames:

Data Structures

struct  vlc_h2_frame
struct  vlc_h2_parser_cbs

Macros

#define VLC_H2_MAX_HEADER_TABLE   4096 /* Header (compression) table size */
#define VLC_H2_MAX_STREAMS   0 /* Concurrent peer-initiated streams */
#define VLC_H2_INIT_WINDOW   1048575 /* Initial congestion window size */
#define VLC_H2_MAX_FRAME   1048576 /* Frame size */
#define VLC_H2_MAX_HEADER_LIST   65536 /* Header (decompressed) list size */
#define VLC_H2_DEFAULT_MAX_HEADER_TABLE   4096
#define VLC_H2_DEFAULT_INIT_WINDOW   65535
#define VLC_H2_MIN_MAX_FRAME   16384
#define VLC_H2_DEFAULT_MAX_FRAME   16384
#define VLC_H2_MAX_MAX_FRAME   16777215
#define VLC_H2_MAX_HEADERS   255
#define vlc_h2_frame_data_get(f, l)

Enumerations

enum  vlc_h2_error {
  VLC_H2_NO_ERROR , VLC_H2_PROTOCOL_ERROR , VLC_H2_INTERNAL_ERROR , VLC_H2_FLOW_CONTROL_ERROR ,
  VLC_H2_SETTINGS_TIMEOUT , VLC_H2_STREAM_CLOSED , VLC_H2_FRAME_SIZE_ERROR , VLC_H2_REFUSED_STREAM ,
  VLC_H2_CANCEL , VLC_H2_COMPRESSION_ERROR , VLC_H2_CONNECT_ERROR , VLC_H2_ENHANCE_YOUR_CALM ,
  VLC_H2_INADEQUATE_SECURITY , VLC_H2_HTTP_1_1_REQUIRED
}
enum  vlc_h2_setting {
  VLC_H2_SETTING_HEADER_TABLE_SIZE = 0x0001 , VLC_H2_SETTING_ENABLE_PUSH , VLC_H2_SETTING_MAX_CONCURRENT_STREAMS , VLC_H2_SETTING_INITIAL_WINDOW_SIZE ,
  VLC_H2_SETTING_MAX_FRAME_SIZE , VLC_H2_SETTING_MAX_HEADER_LIST_SIZE
}

Functions

size_t vlc_h2_frame_size (const struct vlc_h2_frame *)
struct vlc_h2_framevlc_h2_frame_headers (uint_fast32_t stream_id, uint_fast32_t mtu, bool eos, unsigned count, const char *const headers[][2])
struct vlc_h2_framevlc_h2_frame_data (uint_fast32_t stream_id, const void *buf, size_t len, bool eos)
struct vlc_h2_framevlc_h2_frame_rst_stream (uint_fast32_t stream_id, uint_fast32_t error_code)
struct vlc_h2_framevlc_h2_frame_settings (void)
struct vlc_h2_framevlc_h2_frame_settings_ack (void)
struct vlc_h2_framevlc_h2_frame_ping (uint64_t opaque)
struct vlc_h2_framevlc_h2_frame_pong (uint64_t opaque)
struct vlc_h2_framevlc_h2_frame_goaway (uint_fast32_t last_stream_id, uint_fast32_t error_code)
struct vlc_h2_framevlc_h2_frame_window_update (uint_fast32_t stream_id, uint_fast32_t credit)
void vlc_h2_frame_dump (void *, const struct vlc_h2_frame *, const char *)
const char * vlc_h2_strerror (uint_fast32_t)
const char * vlc_h2_setting_name (uint_fast16_t)
struct vlc_h2_parservlc_h2_parse_init (void *ctx, const struct vlc_h2_parser_cbs *cbs)
int vlc_h2_parse (struct vlc_h2_parser *, struct vlc_h2_frame *)
void vlc_h2_parse_destroy (struct vlc_h2_parser *)
const uint8_t * vlc_h2_frame_data_get (const struct vlc_h2_frame *f, size_t *restrict len)

Detailed Description

Macro Definition Documentation

◆ VLC_H2_DEFAULT_INIT_WINDOW

#define VLC_H2_DEFAULT_INIT_WINDOW   65535

◆ VLC_H2_DEFAULT_MAX_FRAME

#define VLC_H2_DEFAULT_MAX_FRAME   16384

◆ VLC_H2_DEFAULT_MAX_HEADER_TABLE

#define VLC_H2_DEFAULT_MAX_HEADER_TABLE   4096

Referenced by vlc_h2_frame_settings().

◆ vlc_h2_frame_data_get

#define vlc_h2_frame_data_get ( f,
l )
Value:
_Generic((f), \
const struct vlc_h2_frame *: (vlc_h2_frame_data_get)(f, l), \
struct vlc_h2_frame *: (uint8_t *)(vlc_h2_frame_data_get)(f, l))
#define vlc_h2_frame_data_get(f, l)
Definition h2frame.h:131
Definition h2frame.h:31

Referenced by vlc_h2_frame_data_get(), vlc_h2_stream_data(), and vlc_h2_stream_read().

◆ VLC_H2_INIT_WINDOW

#define VLC_H2_INIT_WINDOW   1048575 /* Initial congestion window size */

◆ VLC_H2_MAX_FRAME

◆ VLC_H2_MAX_HEADER_LIST

#define VLC_H2_MAX_HEADER_LIST   65536 /* Header (decompressed) list size */

Referenced by vlc_h2_frame_settings().

◆ VLC_H2_MAX_HEADER_TABLE

#define VLC_H2_MAX_HEADER_TABLE   4096 /* Header (compression) table size */

◆ VLC_H2_MAX_HEADERS

#define VLC_H2_MAX_HEADERS   255

◆ VLC_H2_MAX_MAX_FRAME

#define VLC_H2_MAX_MAX_FRAME   16777215

◆ VLC_H2_MAX_STREAMS

#define VLC_H2_MAX_STREAMS   0 /* Concurrent peer-initiated streams */

Referenced by vlc_h2_frame_settings().

◆ VLC_H2_MIN_MAX_FRAME

#define VLC_H2_MIN_MAX_FRAME   16384

Referenced by vlc_h2_setting().

Enumeration Type Documentation

◆ vlc_h2_error

Enumerator
VLC_H2_NO_ERROR 
VLC_H2_PROTOCOL_ERROR 
VLC_H2_INTERNAL_ERROR 
VLC_H2_FLOW_CONTROL_ERROR 
VLC_H2_SETTINGS_TIMEOUT 
VLC_H2_STREAM_CLOSED 
VLC_H2_FRAME_SIZE_ERROR 
VLC_H2_REFUSED_STREAM 
VLC_H2_CANCEL 
VLC_H2_COMPRESSION_ERROR 
VLC_H2_CONNECT_ERROR 
VLC_H2_ENHANCE_YOUR_CALM 
VLC_H2_INADEQUATE_SECURITY 
VLC_H2_HTTP_1_1_REQUIRED 

◆ vlc_h2_setting

Enumerator
VLC_H2_SETTING_HEADER_TABLE_SIZE 
VLC_H2_SETTING_ENABLE_PUSH 
VLC_H2_SETTING_MAX_CONCURRENT_STREAMS 
VLC_H2_SETTING_INITIAL_WINDOW_SIZE 
VLC_H2_SETTING_MAX_FRAME_SIZE 
VLC_H2_SETTING_MAX_HEADER_LIST_SIZE 

Function Documentation

◆ vlc_h2_frame_data()

struct vlc_h2_frame * vlc_h2_frame_data ( uint_fast32_t stream_id,
const void * buf,
size_t len,
bool eos )

◆ vlc_h2_frame_data_get()

const uint8_t * vlc_h2_frame_data_get ( const struct vlc_h2_frame * f,
size_t *restrict len )

◆ vlc_h2_frame_dump()

void vlc_h2_frame_dump ( void * opaque,
const struct vlc_h2_frame * f,
const char * msg )

◆ vlc_h2_frame_goaway()

struct vlc_h2_frame * vlc_h2_frame_goaway ( uint_fast32_t last_stream_id,
uint_fast32_t error_code )

◆ vlc_h2_frame_headers()

struct vlc_h2_frame * vlc_h2_frame_headers ( uint_fast32_t stream_id,
uint_fast32_t mtu,
bool eos,
unsigned count,
const char *const headers[][2] )

◆ vlc_h2_frame_ping()

struct vlc_h2_frame * vlc_h2_frame_ping ( uint64_t opaque)

◆ vlc_h2_frame_pong()

struct vlc_h2_frame * vlc_h2_frame_pong ( uint64_t opaque)

◆ vlc_h2_frame_rst_stream()

struct vlc_h2_frame * vlc_h2_frame_rst_stream ( uint_fast32_t stream_id,
uint_fast32_t error_code )

◆ vlc_h2_frame_settings()

◆ vlc_h2_frame_settings_ack()

struct vlc_h2_frame * vlc_h2_frame_settings_ack ( void )

◆ vlc_h2_frame_size()

size_t vlc_h2_frame_size ( const struct vlc_h2_frame * f)

◆ vlc_h2_frame_window_update()

struct vlc_h2_frame * vlc_h2_frame_window_update ( uint_fast32_t stream_id,
uint_fast32_t credit )

◆ vlc_h2_parse()

int vlc_h2_parse ( struct vlc_h2_parser * p,
struct vlc_h2_frame * f )

◆ vlc_h2_parse_destroy()

void vlc_h2_parse_destroy ( struct vlc_h2_parser * p)

References hpack_decode_destroy(), and p.

Referenced by cleanup_parser(), and vlc_h2_recv_thread().

◆ vlc_h2_parse_init()

struct vlc_h2_parser * vlc_h2_parse_init ( void * ctx,
const struct vlc_h2_parser_cbs * cbs )

◆ vlc_h2_setting_name()

◆ vlc_h2_strerror()