VLC 4.0.0-dev
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

◆ vlc_h2_frame_data_get

#define vlc_h2_frame_data_get (   f,
 
)
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

◆ VLC_H2_INIT_WINDOW

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

◆ VLC_H2_MAX_FRAME

#define VLC_H2_MAX_FRAME   1048576 /* Frame size */

◆ VLC_H2_MAX_HEADER_LIST

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

◆ 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 */

◆ VLC_H2_MIN_MAX_FRAME

#define VLC_H2_MIN_MAX_FRAME   16384

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()