xine-lib: hls_input_plugin_s Struct Reference

xine-lib 1.2.13-20230125hg15249

Public Types | Data Fields
hls_input_plugin_s Struct Reference

## Public Types
enum | { LIST_VOD , LIST_LIVE_BUMP , LIST_LIVE_REGET }

## Data Fields
input_plugin_t | input_plugin
xine_stream_t * | stream
xine_nbc_t * | nbc
input_plugin_t * | in1
uint32_t | caps1
int | last_err
struct hls_input_plugin_s * | main_input
unsigned int | side_index
unsigned int | num_sides
struct { |
pthread_mutex_t mutex |
time_t avail_start |
time_t play_start |
struct timespec play_systime |
int lag |
uint32_t type |
int init |
int refs |
} | sync |
struct { |
xine_mfrag_list_t * list |
uint64_t * input_offs |
uint32_t * mrl_offs |
off_t pos |
off_t size |
int64_t pts |
uint32_t num |
uint32_t current |
} | frag |
char * | list_buf
uint32_t | list_bsize
enum hls_input_plugin_s:: { ... } | list_type
uint32_t | list_seq
uint32_t | prev_size1
uint32_t | prev_size2
struct timespec | frag_dur
struct timespec | next_stop
int | rewind
struct { |
uint32_t num |
uint32_t mrl [20] |
uint32_t group [20] |
uint32_t ref [20] |
multirate_pref_t pref [20] |
} | items |
const char * | list_strtype
const char * | list_strseq
hls_byterange_t | list_rangeinit
char | list_mrl [4096]
char | item_mrl [4096]
char | prev_item_mrl [4096]
char | side_mrl [1][4096]
size_t | bump_pos
size_t | bump_size
uint32_t | bump_seq
char | pad1 [4]
char | bump1 [4096]
char | pad2 [4]
char | bump2 [4096]
char | preview [32<< 10]

## Member Enumeration Documentation

## ◆ anonymous enum

anonymous enum

Enumerator
LIST_VOD |
LIST_LIVE_BUMP |
LIST_LIVE_REGET |

## Field Documentation

## ◆ avail_start

time_t hls_input_plugin_s::avail_start

## ◆ bump1

char hls_input_plugin_s::bump1[4096]

## ◆ bump2

char hls_input_plugin_s::bump2[4096]

## ◆ bump_pos

size_t hls_input_plugin_s::bump_pos

## ◆ bump_seq

uint32_t hls_input_plugin_s::bump_seq

## ◆ bump_size

size_t hls_input_plugin_s::bump_size

## ◆ caps1

uint32_t hls_input_plugin_s::caps1

Referenced by hls_get_side().

## ◆ current

uint32_t hls_input_plugin_s::current

Referenced by hls_get_side().

## ◆ [struct]

struct { ... } hls_input_plugin_s::frag

set by main input, used by sides

Referenced by hls_get_side().

## ◆ frag_dur

struct timespec hls_input_plugin_s::frag_dur

<< for read (), 0 after leaving that range.

## ◆ group

uint32_t hls_input_plugin_s::group[20]

## ◆ in1

input_plugin_t* hls_input_plugin_s::in1

Referenced by hls_get_side().

## ◆ init

int hls_input_plugin_s::init

Referenced by hls_get_side().

## ◆ input_offs

uint64_t* hls_input_plugin_s::input_offs

TJ. A mrl may contain multiple fragments. I have seen .m3u8 that merely index a single fragment .mp4 file. In theory, this may also skip and reorder fragments like a edit list, so we need to store the given offsets here (cannot assume 0 or or the list generated values).

Referenced by hls_get_side().

## ◆ input_plugin

input_plugin_t hls_input_plugin_s::input_plugin

Referenced by hls_get_side().

## ◆ item_mrl

char hls_input_plugin_s::item_mrl[4096]

Referenced by hls_get_side().

## ◆ [struct]

struct { ... } hls_input_plugin_s::items

Referenced by hls_get_side().

## ◆ lag

int hls_input_plugin_s::lag

## ◆ last_err

int hls_input_plugin_s::last_err

## ◆ list

xine_mfrag_list_t* hls_input_plugin_s::list

The intelligent seek manager.

Referenced by hls_get_side().

## ◆ list_bsize

uint32_t hls_input_plugin_s::list_bsize

Referenced by hls_get_side().

## ◆ list_buf

char* hls_input_plugin_s::list_buf

Referenced by hls_get_side().

## ◆ list_mrl

char hls_input_plugin_s::list_mrl[4096]

Referenced by hls_get_side().

## ◆ list_rangeinit

hls_byterange_t hls_input_plugin_s::list_rangeinit

## ◆ list_seq

uint32_t hls_input_plugin_s::list_seq

Referenced by hls_get_side().

## ◆ list_strseq

const char* hls_input_plugin_s::list_strseq

Referenced by hls_get_side().

## ◆ list_strtype

const char* hls_input_plugin_s::list_strtype

Referenced by hls_get_side().

## ◆ []

enum { ... } hls_input_plugin_s::list_type

## ◆ main_input

struct hls_input_plugin_s* hls_input_plugin_s::main_input

## ◆ mrl

uint32_t hls_input_plugin_s::mrl[20]

## ◆ mrl_offs

uint32_t* hls_input_plugin_s::mrl_offs

<< bytes + 1, or 0 if unset

Referenced by hls_get_side().

## ◆ mutex

pthread_mutex_t hls_input_plugin_s::mutex

Referenced by hls_get_side().

## ◆ nbc

xine_nbc_t* hls_input_plugin_s::nbc

Referenced by hls_get_side().

## ◆ next_stop

struct timespec hls_input_plugin_s::next_stop

<< != 0 if fixed duration live frags

## ◆ num

uint32_t hls_input_plugin_s::num

Referenced by hls_get_side().

## ◆ num_sides

unsigned int hls_input_plugin_s::num_sides

<< 0 .. 3

## ◆ pad1

char hls_input_plugin_s::pad1[4]

## ◆ pad2

char hls_input_plugin_s::pad2[4]

## ◆ play_start

time_t hls_input_plugin_s::play_start

## ◆ play_systime

struct timespec hls_input_plugin_s::play_systime

<< seconds since 1970

## ◆ pos

off_t hls_input_plugin_s::pos

<< offs into list_buf

Referenced by hls_get_side().

## ◆ pref

multirate_pref_t hls_input_plugin_s::pref[20]

## ◆ prev_item_mrl

char hls_input_plugin_s::prev_item_mrl[4096]

Referenced by hls_get_side().

## ◆ prev_size1

uint32_t hls_input_plugin_s::prev_size1

Referenced by hls_get_side().

## ◆ prev_size2

uint32_t hls_input_plugin_s::prev_size2

<< the actual preview bytes, for INPUT_OPTIONAL_DATA_[SIZED]_PREVIEW.

Referenced by hls_get_side().

## ◆ preview

char hls_input_plugin_s::preview[32<< 10]

## ◆ pts

int64_t hls_input_plugin_s::pts

Referenced by hls_get_side().

## ◆ ref

uint32_t hls_input_plugin_s::ref[20]

## ◆ refs

int hls_input_plugin_s::refs

Referenced by hls_get_side(), and hls_input_dispose().

## ◆ rewind

int hls_input_plugin_s::rewind

<< live timeline emulation

## ◆ side_index

unsigned int hls_input_plugin_s::side_index

Referenced by hls_get_side().

## ◆ side_mrl

char hls_input_plugin_s::side_mrl[1][4096]

## ◆ size

off_t hls_input_plugin_s::size

Referenced by hls_get_side().

## ◆ stream

xine_stream_t* hls_input_plugin_s::stream

Referenced by hls_get_side().

## ◆ [struct]

struct { ... } hls_input_plugin_s::sync

Referenced by hls_get_side().

## ◆ type

uint32_t hls_input_plugin_s::type

pts

The documentation for this struct was generated from the following file:

- xine-lib-1.2.13/src/input/input_hls.c