xine-lib: xine-lib-1.2.12/include/xine/input_plugin.h File Reference

xine-lib 1.2.12

Data Structures | Macros | Typedefs | Functions
input_plugin.h File Reference
`#include <sys/types.h>`
`#include <xine/attributes.h>`
`#include <xine/os_types.h>`
`#include <xine/xineutils.h>`
`#include <xine/buffer.h>`

Go to the source code of this file.

## Data Structures
struct | input_class_s
struct | input_plugin_s

## Macros
#define | INPUT_PLUGIN_IFACE_VERSION 18
#define | default_input_class_dispose (void (*) (input_class_t *this_gen))free
#define | INPUT_CAP_NOCAP 0x00000000
#define | INPUT_CAP_SEEKABLE 0x00000001
#define | INPUT_CAP_BLOCK 0x00000002
#define | INPUT_CAP_AUDIOLANG 0x00000008
#define | INPUT_CAP_SPULANG 0x00000010
#define | INPUT_CAP_PREVIEW 0x00000040
#define | INPUT_CAP_CHAPTERS 0x00000080
#define | INPUT_CAP_RIP_FORBIDDEN 0x00000100
#define | INPUT_CAP_NO_CACHE 0x00000200
#define | INPUT_CAP_CLONE 0x00000400
#define | INPUT_CAP_SLOW_SEEKABLE 0x00000800
#define | INPUT_IS_SEEKABLE(input) (((input)->get_capabilities(input) & INPUT_CAP_SEEKABLE) != 0)
#define | INPUT_IS_SLOW_SEEKABLE(input) (((input)->get_capabilities(input) & (INPUT_CAP_SEEKABLE | INPUT_CAP_SLOW_SEEKABLE)) != 0)
#define | INPUT_CAP_SIZED_PREVIEW 0x00001000
#define | INPUT_CAP_TIME_SEEKABLE 0x00002000
#define | INPUT_CAP_NEW_MRL 0x00004000
#define | INPUT_CAP_LIVE 0x00008000
#define | INPUT_OPTIONAL_UNSUPPORTED 0
#define | INPUT_OPTIONAL_SUCCESS 1
#define | INPUT_OPTIONAL_DATA_AUDIOLANG 2
#define | INPUT_OPTIONAL_DATA_SPULANG 3
#define | INPUT_OPTIONAL_DATA_PREVIEW 7
#define | INPUT_OPTIONAL_DATA_MIME_TYPE 8
#define | INPUT_OPTIONAL_DATA_DEMUX_MIME_TYPE 9
#define | INPUT_OPTIONAL_DATA_DEMUXER 10
#define | INPUT_OPTIONAL_DATA_CLONE 11
#define | INPUT_OPTIONAL_DATA_SIZED_PREVIEW 12
#define | INPUT_OPTIONAL_DATA_DURATION 13
#define | INPUT_OPTIONAL_DATA_NEW_MRL 14
#define | INPUT_OPTIONAL_DATA_FRAGLIST 15
#define | INPUT_OPTIONAL_DATA_SIDE 16
#define | INPUT_OPTIONAL_DATA_PTSOFFS 17
#define | INPUT_OPTIONAL_DATA_REWIND 18
#define | MAX_MRL_ENTRIES 255
#define | MAX_PREVIEW_SIZE 4096
#define | mrl_unknown (0 << 0)
#define | mrl_dvd (1 << 0)
#define | mrl_vcd (1 << 1)
#define | mrl_net (1 << 2)
#define | mrl_rtp (1 << 3)
#define | mrl_stdin (1 << 4)
#define | mrl_cda (1 << 5)
#define | mrl_file (1 << 6)
#define | mrl_file_fifo (1 << 7)
#define | mrl_file_chardev (1 << 8)
#define | mrl_file_directory (1 << 9)
#define | mrl_file_blockdev (1 << 10)
#define | mrl_file_normal (1 << 11)
#define | mrl_file_symlink (1 << 12)
#define | mrl_file_sock (1 << 13)
#define | mrl_file_exec (1 << 14)
#define | mrl_file_backup (1 << 15)
#define | mrl_file_hidden (1 << 16)
#define | MRL_ZERO(m)
#define | MRL_DUPLICATE(s, d)
#define | MRLS_DUPLICATE(s, d)

## Typedefs
typedef struct input_class_s | input_class_t
typedef struct input_plugin_s | input_plugin_t
typedef struct xine_nbc_st | xine_nbc_t

## Functions
xine_nbc_t * | xine_nbc_init (xine_stream_t *stream)
int64_t | xine_nbc_get_pos_pts (xine_nbc_t *nbc)
void | xine_nbc_close (xine_nbc_t *nbc)

## Macro Definition Documentation

## ◆ default_input_class_dispose

#define default_input_class_dispose (void (*) (input_class_t *this_gen))free

## ◆ INPUT_CAP_AUDIOLANG

#define INPUT_CAP_AUDIOLANG 0x00000008

## ◆ INPUT_CAP_BLOCK

#define INPUT_CAP_BLOCK 0x00000002

## ◆ INPUT_CAP_CHAPTERS

#define INPUT_CAP_CHAPTERS 0x00000080

## ◆ INPUT_CAP_CLONE

#define INPUT_CAP_CLONE 0x00000400

## ◆ INPUT_CAP_LIVE

#define INPUT_CAP_LIVE 0x00008000

## ◆ INPUT_CAP_NEW_MRL

#define INPUT_CAP_NEW_MRL 0x00004000

## ◆ INPUT_CAP_NO_CACHE

#define INPUT_CAP_NO_CACHE 0x00000200

## ◆ INPUT_CAP_NOCAP

#define INPUT_CAP_NOCAP 0x00000000

## ◆ INPUT_CAP_PREVIEW

#define INPUT_CAP_PREVIEW 0x00000040

## ◆ INPUT_CAP_RIP_FORBIDDEN

#define INPUT_CAP_RIP_FORBIDDEN 0x00000100

## ◆ INPUT_CAP_SEEKABLE

#define INPUT_CAP_SEEKABLE 0x00000001

## ◆ INPUT_CAP_SIZED_PREVIEW

#define INPUT_CAP_SIZED_PREVIEW 0x00001000

## ◆ INPUT_CAP_SLOW_SEEKABLE

#define INPUT_CAP_SLOW_SEEKABLE 0x00000800

## ◆ INPUT_CAP_SPULANG

#define INPUT_CAP_SPULANG 0x00000010

## ◆ INPUT_CAP_TIME_SEEKABLE

#define INPUT_CAP_TIME_SEEKABLE 0x00002000

## ◆ INPUT_IS_SEEKABLE

#define INPUT_IS_SEEKABLE | ( |  | input | ) | (((input)->get_capabilities(input) & INPUT_CAP_SEEKABLE) != 0)

## ◆ INPUT_IS_SLOW_SEEKABLE

#define INPUT_IS_SLOW_SEEKABLE | ( |  | input | ) | (((input)->get_capabilities(input) & (INPUT_CAP_SEEKABLE | INPUT_CAP_SLOW_SEEKABLE)) != 0)

## ◆ INPUT_OPTIONAL_DATA_AUDIOLANG

#define INPUT_OPTIONAL_DATA_AUDIOLANG 2

## ◆ INPUT_OPTIONAL_DATA_CLONE

#define INPUT_OPTIONAL_DATA_CLONE 11

## ◆ INPUT_OPTIONAL_DATA_DEMUX_MIME_TYPE

#define INPUT_OPTIONAL_DATA_DEMUX_MIME_TYPE 9

## ◆ INPUT_OPTIONAL_DATA_DEMUXER

#define INPUT_OPTIONAL_DATA_DEMUXER 10

## ◆ INPUT_OPTIONAL_DATA_DURATION

#define INPUT_OPTIONAL_DATA_DURATION 13

## ◆ INPUT_OPTIONAL_DATA_FRAGLIST

#define INPUT_OPTIONAL_DATA_FRAGLIST 15

## ◆ INPUT_OPTIONAL_DATA_MIME_TYPE

#define INPUT_OPTIONAL_DATA_MIME_TYPE 8

## ◆ INPUT_OPTIONAL_DATA_NEW_MRL

#define INPUT_OPTIONAL_DATA_NEW_MRL 14

## ◆ INPUT_OPTIONAL_DATA_PREVIEW

#define INPUT_OPTIONAL_DATA_PREVIEW 7

## ◆ INPUT_OPTIONAL_DATA_PTSOFFS

#define INPUT_OPTIONAL_DATA_PTSOFFS 17

## ◆ INPUT_OPTIONAL_DATA_REWIND

#define INPUT_OPTIONAL_DATA_REWIND 18

## ◆ INPUT_OPTIONAL_DATA_SIDE

#define INPUT_OPTIONAL_DATA_SIDE 16

## ◆ INPUT_OPTIONAL_DATA_SIZED_PREVIEW

#define INPUT_OPTIONAL_DATA_SIZED_PREVIEW 12

## ◆ INPUT_OPTIONAL_DATA_SPULANG

#define INPUT_OPTIONAL_DATA_SPULANG 3

## ◆ INPUT_OPTIONAL_SUCCESS

#define INPUT_OPTIONAL_SUCCESS 1

## ◆ INPUT_OPTIONAL_UNSUPPORTED

#define INPUT_OPTIONAL_UNSUPPORTED 0

## ◆ INPUT_PLUGIN_IFACE_VERSION

#define INPUT_PLUGIN_IFACE_VERSION 18

## ◆ MAX_MRL_ENTRIES

#define MAX_MRL_ENTRIES 255

## ◆ MAX_PREVIEW_SIZE

#define MAX_PREVIEW_SIZE 4096

## ◆ mrl_cda

#define mrl_cda (1 << 5)

## ◆ MRL_DUPLICATE

#define MRL_DUPLICATE | ( |  | s,
|  |  | d
| ) |  |

Value:
{ \
_x_assert((s) != NULL); \
_x_assert((d) != NULL); \
\
free((d)->origin); \
(d)->origin = (s)->origin ? strdup((s)->origin) : NULL; \
\
free((d)->mrl); \
(d)->mrl = (s)->mrl ? strdup((s)->mrl) : NULL; \
\
free((d)->link); \
(d)->link = (s)->link ? strdup((s)->link) : NULL; \
\
(d)->type = (s)->type; \
(d)->size = (s)->size; \
}
type
_xine_arg_type_t type
Definition: xine.c:1568
NULL
NULL
Definition: xine_plugin.c:78

## ◆ mrl_dvd

#define mrl_dvd (1 << 0)

## ◆ mrl_file

#define mrl_file (1 << 6)

## ◆ mrl_file_backup

#define mrl_file_backup (1 << 15)

## ◆ mrl_file_blockdev

#define mrl_file_blockdev (1 << 10)

## ◆ mrl_file_chardev

#define mrl_file_chardev (1 << 8)

## ◆ mrl_file_directory

#define mrl_file_directory (1 << 9)

## ◆ mrl_file_exec

#define mrl_file_exec (1 << 14)

## ◆ mrl_file_fifo

#define mrl_file_fifo (1 << 7)

## ◆ mrl_file_hidden

#define mrl_file_hidden (1 << 16)

## ◆ mrl_file_normal

#define mrl_file_normal (1 << 11)

## ◆ mrl_file_sock

#define mrl_file_sock (1 << 13)

## ◆ mrl_file_symlink

#define mrl_file_symlink (1 << 12)

## ◆ mrl_net

#define mrl_net (1 << 2)

## ◆ mrl_rtp

#define mrl_rtp (1 << 3)

## ◆ mrl_stdin

#define mrl_stdin (1 << 4)

## ◆ mrl_unknown

#define mrl_unknown (0 << 0)

## ◆ mrl_vcd

#define mrl_vcd (1 << 1)

## ◆ MRL_ZERO

#define MRL_ZERO | ( |  | m | ) |

Value:
{ \
if((m)) { \
free((m)->origin); \
free((m)->mrl); \
free((m)->link); \
(m)->origin = NULL; \
(m)->mrl = NULL; \
(m)->link = NULL; \
(m)->type = 0; \
(m)->size = (off_t) 0; \
} \
}

## ◆ MRLS_DUPLICATE

#define MRLS_DUPLICATE | ( |  | s,
|  |  | d
| ) |  |

Value:
{ \
int i = 0; \
\
_x_assert((s) != NULL); \
_x_assert((d) != NULL); \
\
while((s) != NULL) { \
d[i] = (xine_mrl_t *) malloc(sizeof(xine_mrl_t)); \
MRL_DUPLICATE(s[i], d[i]); \
i++; \
} \
}
xine_mrl_s
Definition: xine.h:1113

## Typedef Documentation

## ◆ input_class_t

typedef struct input_class_s input_class_t

## ◆ input_plugin_t

typedef struct input_plugin_s input_plugin_t

## ◆ xine_nbc_t

typedef struct xine_nbc_st xine_nbc_t

## Function Documentation

## ◆ xine_nbc_close()

void xine_nbc_close | ( | xine_nbc_t * | nbc | ) |

References xine_stream_private_st::counter, xine_stream_private_st::lock, xine_stream_private_st::nbc, nbc_alloc_cb(), nbc_get_cb(), nbc_put_cb(), xine_stream_private_st::nbc_refs, NULL, xine_stream_private_st::refs, fifo_buffer_s::unregister_alloc_cb, fifo_buffer_s::unregister_get_cb, fifo_buffer_s::unregister_put_cb, xine_refs_sub(), XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by hls_input_dispose(), and xine_nbc_event().

## ◆ xine_nbc_get_pos_pts()

int64_t xine_nbc_get_pos_pts | ( | xine_nbc_t * | nbc | ) |

Referenced by hls_live_start(), and hls_live_wait().

## ◆ xine_nbc_init()

xine_nbc_t * xine_nbc_init | ( | xine_stream_t * | stream | ) |

References _x_get_fine_speed(), xine_stream_s::audio_fifo, BUF_AUDIO_BASE, BUF_VIDEO_BASE, xine_s::config, xine_stream_private_st::counter, DEFAULT_HIGH_WATER_MARK, xine_stream_private_st::lock, config_values_s::lookup_entry, lprintf, xine_stream_private_st::nbc, nbc_alloc_cb(), nbc_get_cb(), nbc_put_cb(), xine_stream_private_st::nbc_refs, nbc_stats_reset(), NULL, cfg_entry_s::num_default, xine_stream_private_st::refs, xine_stream_private_st::s, xine_stream_private_st::side_streams, xine_stream_s::video_fifo, xine_stream_s::xine, xine_refs_add(), XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by hls_input_get_instance().