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_tstream
 
xine_nbc_tnbc
 
input_plugin_tin1
 
uint32_t caps1
 
int last_err
 
struct hls_input_plugin_smain_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: