xine-lib: xine-lib-1.2.13/include/xine/xine_internal.h Source File

xine-lib 1.2.13-20230125hg15249

xine_internal.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2000-2022 the xine project
3 *
4 * This file is part of xine, a free video player.
5 *
6 * xine is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * xine is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
19 */
20
21#ifndef HAVE_XINE_INTERNAL_H
22#define HAVE_XINE_INTERNAL_H
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
28/*
29 * include public part of xine header
30 */
31
32#include <xine.h>
33#include <xine/tickets.h>
34#include <xine/refcounter.h>
35#include <xine/input_plugin.h>
36#include <xine/demux.h>
37#include <xine/video_out.h>
38#include <xine/audio_out.h>
39#include <xine/metronom.h>
40#include <xine/osd.h>
41#include <xine/xineintl.h>
42#include <xine/plugin_catalog.h>
43#include <xine/video_decoder.h>
44#include <xine/audio_decoder.h>
45#include <xine/spu_decoder.h>
46#include <xine/scratch.h>
47#include <xine/broadcaster.h>
48#include <xine/io_helper.h>
49#include <xine/info_helper.h>
50#include <xine/alphablend.h>
51
52#define XINE_MAX_EVENT_LISTENERS 50
53#define XINE_MAX_EVENT_TYPES 100
54#define XINE_MAX_TICKET_HOLDER_THREADS 64
55
56/* used by plugin loader */
57#define XINE_VERSION_CODE XINE_MAJOR_VERSION*10000+XINE_MINOR_VERSION*100+XINE_SUB_VERSION
58
59
60/*
61 * log constants
62 */
63
64#define XINE_LOG_MSG 0 /* warnings, errors, ... */
65#define XINE_LOG_PLUGIN 1
66#define XINE_LOG_TRACE 2
67#define XINE_LOG_NUM 3 /* # of log buffers defined */
68
69#define XINE_STREAM_INFO_MAX 99
70
71/*
72 * the "big" xine struct, holding everything together
73 */
74
75#ifndef XDG_BASEDIR_H
76/* present here for internal convenience only */
77 typedef struct { void *reserved; } xdgHandle;
78#endif
79
80 struct xine_s {
81
82 config_values_t *config;
83
84 plugin_catalog_t *plugin_catalog;
85
86 int verbosity;
87
88 int demux_strategy;
89 const char *save_path;
90
91 /* log output that may be presented to the user */
92 scratch_buffer_t *log_buffers[XINE_LOG_NUM];
93
94 xine_list_t *streams;
95 pthread_mutex_t streams_lock;
96
97 metronom_clock_t *clock;
98
100 xdgHandle basedir_handle;
101};
102
103/*
104 * xine event queue
105 */
106
107 struct xine_event_queue_s {
108 xine_list_t *events;
109 pthread_mutex_t lock;
110 pthread_cond_t new_event;
111 pthread_cond_t events_processed;
112 xine_stream_t *stream;
113 pthread_t *listener_thread;
114 void *user_data;
115 xine_event_listener_cb_t callback;
116 int callback_running;
117};
118
119/*
120 * xine_stream - per-stream parts of the xine engine
121 */
122
123 struct xine_stream_s {
124
125 /* reference to xine context */
126 xine_t *xine;
127
128 /* metronom instance used by current stream */
129 metronom_t *metronom;
130
131 /* demuxers use input_plugin to read data */
132 input_plugin_t *input_plugin;
133
134 /* used by video decoders, may change by port rewire */
135 xine_video_port_t * volatile video_out;
136
137 /* demuxers send data to video decoders using this fifo */
138 fifo_buffer_t *video_fifo;
139
140 /* used by audio decoders, may change by port rewire */
141 xine_audio_port_t * volatile audio_out;
142
143 /* demuxers send data to audio decoders using this fifo */
144 fifo_buffer_t *audio_fifo;
145
146 /* provide access to osd api */
147 osd_renderer_t *osd_renderer;
148
149 /* master/slave streams */
150 xine_stream_t *master; /* usually a pointer to itself */
151 xine_stream_t *slave;
152
153 /* input_dvd uses this one. is it possible to add helper functions instead? */
154 spu_decoder_t *spu_decoder_plugin;
155
156 /* dxr3 use this one, should be possible to fix to use the port instead */
157 vo_driver_t *video_driver;
158
159 /* these definitely should be made private! */
160 int audio_channel_auto;
161 int spu_decoder_streamtype;
162 int spu_channel_user;
163 int spu_channel_auto;
164 int spu_channel_letterbox;
165 int spu_channel;
166
167 /* current content detection method, see METHOD_BY_xxx */
168 int content_detection_method;
169};
170
171/* when explicitly noted, some functions accept an anonymous stream,
172 * which is a valid stream that does not want to be addressed. */
173#define XINE_ANON_STREAM ((xine_stream_t *)-1)
174
175 typedef struct
176{
177 int total;
178 int ready;
179 int avail;
180}
181 xine_query_buffers_data_t;
182
183 typedef struct
184{
185 xine_query_buffers_data_t vi;
186 xine_query_buffers_data_t ai;
187 xine_query_buffers_data_t vo;
188 xine_query_buffers_data_t ao;
189}
190 xine_query_buffers_t;
191
192/*
193 * private function prototypes:
194 */
195
196int _x_query_network_timeout (xine_t *xine) XINE_PROTECTED;
197int _x_query_buffers(xine_stream_t *stream, xine_query_buffers_t *query) XINE_PROTECTED;
198int _x_query_buffer_usage(xine_stream_t *stream, int *num_video_buffers, int *num_audio_buffers, int *num_video_frames, int *num_audio_frames) XINE_PROTECTED;
199int _x_lock_port_rewiring(xine_t *xine, int ms_to_time_out) XINE_PROTECTED;
200void _x_unlock_port_rewiring(xine_t *xine) XINE_PROTECTED;
201int _x_lock_frontend(xine_stream_t *stream, int ms_to_time_out) XINE_PROTECTED;
202void _x_unlock_frontend(xine_stream_t *stream) XINE_PROTECTED;
203int _x_query_unprocessed_osd_events(xine_stream_t *stream) XINE_PROTECTED;
204int _x_demux_seek(xine_stream_t *stream, off_t start_pos, int start_time, int playing) XINE_PROTECTED;
205int _x_continue_stream_processing(xine_stream_t *stream) XINE_PROTECTED;
206void _x_trigger_relaxed_frame_drop_mode(xine_stream_t *stream) XINE_PROTECTED;
207void _x_reset_relaxed_frame_drop_mode(xine_stream_t *stream) XINE_PROTECTED;
208
209void _x_handle_stream_end (xine_stream_t *stream, int non_user) XINE_PROTECTED;
210
211/* report message to UI. usually these are async errors */
212
213int _x_message(xine_stream_t *stream, int type, ...) XINE_SENTINEL XINE_PROTECTED;
214
215/* flush the message queues */
216
217void _x_flush_events_queues (xine_stream_t *stream) XINE_PROTECTED;
218
219/* extra_info operations */
220void _x_extra_info_reset( extra_info_t *extra_info ) XINE_PROTECTED;
221
222void _x_extra_info_merge (extra_info_t *dst, const extra_info_t *src) XINE_PROTECTED;
223
224void _x_get_current_info (xine_stream_t *stream, extra_info_t *extra_info, int size) XINE_PROTECTED;
225
226
233int _x_keyframes_set (xine_stream_t *stream, xine_keyframes_entry_t *list, int size) XINE_PROTECTED;
234
241int _x_keyframes_add (xine_stream_t *stream, xine_keyframes_entry_t *pos) XINE_PROTECTED;
242
243
244/* demuxer helper functions from demux.c */
245
246/*
247 * Flush audio and video buffers. It is called from demuxers on
248 * seek/stop, and may be useful when user input changes a stream and
249 * xine-lib has cached buffers that have yet to be played.
250 *
251 * warning: after clearing decoders fifos an absolute discontinuity
252 * indication must be sent. relative discontinuities are likely
253 * to cause "jumps" on metronom.
254 */
255void _x_demux_flush_engine (xine_stream_t *stream) XINE_PROTECTED;
256
257void _x_demux_control_nop (xine_stream_t *stream, uint32_t flags) XINE_PROTECTED;
258void _x_demux_control_newpts (xine_stream_t *stream, int64_t pts, uint32_t flags) XINE_PROTECTED;
259void _x_demux_control_headers_done (xine_stream_t *stream) XINE_PROTECTED;
260void _x_demux_control_start (xine_stream_t *stream) XINE_PROTECTED;
261void _x_demux_control_end (xine_stream_t *stream, uint32_t flags) XINE_PROTECTED;
262int _x_demux_start_thread (xine_stream_t *stream) XINE_PROTECTED;
263int _x_demux_called_from (xine_stream_t *stream) XINE_PROTECTED;
264int _x_demux_stop_thread (xine_stream_t *stream) XINE_PROTECTED;
265int _x_demux_read_header (input_plugin_t *input, void *buffer, off_t size) XINE_PROTECTED;
266int _x_demux_read_stream_header (xine_stream_t *stream, input_plugin_t *input, void *buffer, size_t size) XINE_PROTECTED;
267int _x_demux_check_extension (const char *mrl, const char *extensions);
268
269off_t _x_read_abort (xine_stream_t *stream, int fd, char *buf, off_t todo) XINE_PROTECTED;
270
271int _x_action_pending (xine_stream_t *stream) XINE_PROTECTED;
272
273void _x_action_raise (xine_stream_t *stream) XINE_PROTECTED;
274void _x_action_lower (xine_stream_t *stream) XINE_PROTECTED;
275
276void _x_demux_send_data(fifo_buffer_t *fifo, uint8_t *data, int size,
277 int64_t pts, uint32_t type, uint32_t decoder_flags,
278 int input_normpos, int input_time, int total_time,
279 uint32_t frame_number) XINE_PROTECTED;
280
281int _x_demux_read_send_data(fifo_buffer_t *fifo, input_plugin_t *input,
282 int size, int64_t pts, uint32_t type,
283 uint32_t decoder_flags, off_t input_normpos,
284 int input_time, int total_time,
285 uint32_t frame_number) XINE_USED XINE_PROTECTED;
286
287void _x_demux_send_mrl_reference (xine_stream_t *stream, int alternative,
288 const char *mrl, const char *title,
289 int start_time, int duration) XINE_PROTECTED;
290
291/*
292 * MRL escaped-character decoding (overwrites the source string)
293 */
294void _x_mrl_unescape(char *mrl) XINE_PROTECTED;
295
296/*
297 * Return a copy of mrl without authentication credentials
298 */
299char *_x_mrl_remove_auth(const char *mrl) XINE_PROTECTED;
300
301/*
302 * plugin_loader functions
303 *
304 */
305
306/* allow input plugins to use other input plugins */
307 input_plugin_t *_x_find_input_plugin (xine_stream_t *stream, const char *mrl) XINE_PROTECTED;
308void _x_free_input_plugin (xine_stream_t *stream, input_plugin_t *input) XINE_PROTECTED;
309
310/* on-demand loading of generic modules / sub-plugins */
311struct xine_module_s; /* xine_module.h */
312struct xine_module_s *_x_find_module(xine_t *xine, const char *type, const char *id, unsigned sub_type, const void *params) XINE_PROTECTED;
313void _x_free_module(xine_t *xine, struct xine_module_s **pmodule) XINE_PROTECTED;
314
315/* on-demand loading of audio/video/spu decoder plugins */
316
317 video_decoder_t *_x_get_video_decoder (xine_stream_t *stream, uint8_t stream_type) XINE_PROTECTED;
318void _x_free_video_decoder (xine_stream_t *stream, video_decoder_t *decoder) XINE_PROTECTED;
319 audio_decoder_t *_x_get_audio_decoder (xine_stream_t *stream, uint8_t stream_type) XINE_PROTECTED;
320void _x_free_audio_decoder (xine_stream_t *stream, audio_decoder_t *decoder) XINE_PROTECTED;
321 spu_decoder_t *_x_get_spu_decoder (xine_stream_t *stream, uint8_t stream_type) XINE_PROTECTED;
322void _x_free_spu_decoder (xine_stream_t *stream, spu_decoder_t *decoder) XINE_PROTECTED;
323/* check for decoder availability - but don't try to initialize it */
324int _x_decoder_available (xine_t *xine, uint32_t buftype) XINE_PROTECTED;
325
326/* on-demand loading of demux plugins */
327 demux_plugin_t *_x_find_demux_plugin (xine_stream_t *stream, input_plugin_t *input) XINE_PROTECTED;
328 demux_plugin_t *_x_find_demux_plugin_by_name (xine_stream_t *stream, const char *name, input_plugin_t *input) XINE_PROTECTED;
329void _x_free_demux_plugin (xine_stream_t *stream, demux_plugin_t **demux) XINE_PROTECTED;
330
331/*
332 * load_video_output_plugin
333 *
334 * load a specific video output plugin
335 */
336
337 vo_driver_t *_x_load_video_output_plugin(xine_t *this_gen,
338 const char *id, int visual_type,
339 const void *visual) XINE_PROTECTED;
340
341/*
342 * audio output plugin dynamic loading stuff
343 */
344
345/*
346 * load_audio_output_plugin
347 *
348 * load a specific audio output plugin
349 */
350
351 ao_driver_t *_x_load_audio_output_plugin (xine_t *self, const char *id) XINE_PROTECTED;
352
353
354void _x_set_speed (xine_stream_t *stream, int speed) XINE_PROTECTED;
355
356int _x_get_speed (xine_stream_t *stream) XINE_PROTECTED;
357
358/* set when pauseing with port ticket granted, for XINE_PARAM_VO_SINGLE_STEP. */
359/* special values for fine speed. */
360# define XINE_LIVE_PAUSE_ON 0x7ffffffd
361# define XINE_LIVE_PAUSE_OFF 0x7ffffffc
362void _x_set_fine_speed (xine_stream_t *stream, int speed) XINE_PROTECTED;
363
364int _x_get_fine_speed (xine_stream_t *stream) XINE_PROTECTED;
365
366void _x_select_spu_channel (xine_stream_t *stream, int channel) XINE_PROTECTED;
367
368int _x_get_audio_channel (xine_stream_t *stream) XINE_PROTECTED;
369
370int _x_get_spu_channel (xine_stream_t *stream) XINE_PROTECTED;
371
372int _x_get_video_streamtype (xine_stream_t *) XINE_PROTECTED;
373
374/*
375 * internal events
376 */
377
378/* sent by dvb frontend to inform ts demuxer of new pids */
379#define XINE_EVENT_PIDS_CHANGE 0x80000000
380/* sent by BluRay input plugin to inform ts demuxer about end of clip */
381#define XINE_EVENT_END_OF_CLIP 0x80000001
382
383/*
384 * pids change event - inform ts demuxer of new pids
385 */
386 typedef struct {
387 int vpid; /* video program id */
388 int apid; /* audio program id */
389} xine_pids_data_t;
390
391#ifdef __cplusplus
392}
393#endif
394
395#endif
396
alphablend.h
audio_decoder.h
audio_out.h
broadcaster.h
demux.h
input
static int input(void)
Definition goomsl_lex.c:1495
XINE_USED
#define XINE_USED
Definition attributes.h:60
XINE_PROTECTED
#define XINE_PROTECTED
Definition attributes.h:75
XINE_SENTINEL
#define XINE_SENTINEL
Definition attributes.h:81
video_out.h
info_helper.h
input_plugin.h
io_helper.h
metronom.h
osd.h
plugin_catalog.h
refcounter.h
scratch.h
spu_decoder.h
ao_driver_s
Definition audio_out.h:43
audio_decoder_s
Definition audio_decoder.h:73
config_values_s
Definition configfile.h:83
demux_plugin_s
Definition demux.h:96
extra_info_s
Structure to pass information from input or demuxer plugins to output frames (past decoder).
Definition buffer.h:318
fifo_buffer_s
Definition buffer.h:593
input_plugin_s
Definition input_plugin.h:90
metronom_clock_s
Definition metronom.h:199
metronom_s
Definition metronom.h:71
osd_renderer_s
Definition osd.h:82
plugin_catalog_s
Definition plugin_catalog.h:53
scratch_buffer_s
Definition scratch.h:35
spu_decoder_s
Definition spu_decoder.h:74
video_decoder_s
Definition video_decoder.h:73
vo_driver_t
Definition video_out.h:50
xdgHandle
Definition xine_internal.h:77
xdgHandle::reserved
void * reserved
Definition xine_internal.h:77
xine_audio_port_s
Definition audio_out.h:172
xine_event_queue_s
Definition xine_internal.h:107
xine_event_queue_s::events_processed
pthread_cond_t events_processed
Definition xine_internal.h:111
xine_event_queue_s::listener_thread
pthread_t * listener_thread
Definition xine_internal.h:113
xine_event_queue_s::lock
pthread_mutex_t lock
Definition xine_internal.h:109
xine_event_queue_s::events
xine_list_t * events
Definition xine_internal.h:108
xine_event_queue_s::new_event
pthread_cond_t new_event
Definition xine_internal.h:110
xine_event_queue_s::stream
xine_stream_t * stream
Definition xine_internal.h:112
xine_event_queue_s::user_data
void * user_data
Definition xine_internal.h:114
xine_event_queue_s::callback_running
int callback_running
Definition xine_internal.h:116
xine_event_queue_s::callback
xine_event_listener_cb_t callback
Definition xine_internal.h:115
xine_keyframes_entry_t
Definition xine.h:244
xine_list_s
Definition list.c:51
xine_module_s
Definition xine_module.h:62
xine_pids_data_t
Definition xine_internal.h:386
xine_pids_data_t::vpid
int vpid
Definition xine_internal.h:387
xine_pids_data_t::apid
int apid
Definition xine_internal.h:388
xine_query_buffers_data_t
Definition xine_internal.h:176
xine_query_buffers_data_t::avail
int avail
Definition xine_internal.h:179
xine_query_buffers_data_t::total
int total
Definition xine_internal.h:177
xine_query_buffers_data_t::ready
int ready
Definition xine_internal.h:178
xine_query_buffers_t
Definition xine_internal.h:184
xine_query_buffers_t::vi
xine_query_buffers_data_t vi
Definition xine_internal.h:185
xine_query_buffers_t::ai
xine_query_buffers_data_t ai
Definition xine_internal.h:186
xine_query_buffers_t::vo
xine_query_buffers_data_t vo
Definition xine_internal.h:187
xine_query_buffers_t::ao
xine_query_buffers_data_t ao
Definition xine_internal.h:188
xine_s
Definition xine_internal.h:80
xine_s::verbosity
int verbosity
Definition xine_internal.h:86
xine_s::config
config_values_t * config
Definition xine_internal.h:82
xine_s::streams_lock
pthread_mutex_t streams_lock
Definition xine_internal.h:95
xine_s::basedir_handle
xdgHandle basedir_handle
Definition xine_internal.h:100
xine_s::demux_strategy
int demux_strategy
Definition xine_internal.h:88
xine_s::clock
metronom_clock_t * clock
Definition xine_internal.h:97
xine_s::save_path
const char * save_path
Definition xine_internal.h:89
xine_s::log_buffers
scratch_buffer_t * log_buffers[3]
Definition xine_internal.h:92
xine_s::streams
xine_list_t * streams
Definition xine_internal.h:94
xine_s::plugin_catalog
plugin_catalog_t * plugin_catalog
Definition xine_internal.h:84
xine_stream_s
Definition xine_internal.h:123
xine_stream_s::audio_out
xine_audio_port_t *volatile audio_out
Definition xine_internal.h:141
xine_stream_s::spu_channel_user
int spu_channel_user
Definition xine_internal.h:162
xine_stream_s::input_plugin
input_plugin_t * input_plugin
Definition xine_internal.h:132
xine_stream_s::audio_fifo
fifo_buffer_t * audio_fifo
Definition xine_internal.h:144
xine_stream_s::slave
xine_stream_t * slave
Definition xine_internal.h:151
xine_stream_s::video_out
xine_video_port_t *volatile video_out
Definition xine_internal.h:135
xine_stream_s::video_fifo
fifo_buffer_t * video_fifo
Definition xine_internal.h:138
xine_stream_s::master
xine_stream_t * master
Definition xine_internal.h:150
xine_stream_s::metronom
metronom_t * metronom
Definition xine_internal.h:129
xine_stream_s::audio_channel_auto
int audio_channel_auto
Definition xine_internal.h:160
xine_stream_s::xine
xine_t * xine
Definition xine_internal.h:126
xine_stream_s::spu_channel_letterbox
int spu_channel_letterbox
Definition xine_internal.h:164
xine_stream_s::osd_renderer
osd_renderer_t * osd_renderer
Definition xine_internal.h:147
xine_stream_s::spu_decoder_streamtype
int spu_decoder_streamtype
Definition xine_internal.h:161
xine_stream_s::content_detection_method
int content_detection_method
Definition xine_internal.h:168
xine_stream_s::spu_channel_auto
int spu_channel_auto
Definition xine_internal.h:163
xine_stream_s::spu_decoder_plugin
spu_decoder_t * spu_decoder_plugin
Definition xine_internal.h:154
xine_stream_s::video_driver
vo_driver_t * video_driver
Definition xine_internal.h:157
xine_stream_s::spu_channel
int spu_channel
Definition xine_internal.h:165
xine_video_port_s
Definition video_out.h:187
tickets.h
video_decoder.h
name
const char * name
Definition xine.c:1575
type
_xine_arg_type_t type
Definition xine.c:1574
xine.h
xine_event_listener_cb_t
void(* xine_event_listener_cb_t)(void *user_data, const xine_event_t *event)
Definition xine.h:2283
_x_find_demux_plugin_by_name
demux_plugin_t * _x_find_demux_plugin_by_name(xine_stream_t *stream, const char *name, input_plugin_t *input)
Definition load_plugins.c:2276
_x_free_spu_decoder
void _x_free_spu_decoder(xine_stream_t *stream, spu_decoder_t *decoder)
Definition load_plugins.c:3205
_x_extra_info_merge
void _x_extra_info_merge(extra_info_t *dst, const extra_info_t *src)
Definition xine.c:140
_x_get_spu_decoder
spu_decoder_t * _x_get_spu_decoder(xine_stream_t *stream, uint8_t stream_type)
Definition load_plugins.c:3148
_x_lock_port_rewiring
int _x_lock_port_rewiring(xine_t *xine, int ms_to_time_out)
Definition xine.c:3800
_x_mrl_remove_auth
char * _x_mrl_remove_auth(const char *mrl)
Definition xine.c:1495
_x_get_video_decoder
video_decoder_t * _x_get_video_decoder(xine_stream_t *stream, uint8_t stream_type)
Definition load_plugins.c:2890
_x_query_buffers
int _x_query_buffers(xine_stream_t *stream, xine_query_buffers_t *query)
Definition xine.c:3747
_x_find_demux_plugin
demux_plugin_t * _x_find_demux_plugin(xine_stream_t *stream, input_plugin_t *input)
Definition load_plugins.c:2175
_x_demux_start_thread
int _x_demux_start_thread(xine_stream_t *stream)
Definition demux.c:575
_x_load_audio_output_plugin
ao_driver_t * _x_load_audio_output_plugin(xine_t *self, const char *id)
Definition load_plugins.c:2680
_x_select_spu_channel
void _x_select_spu_channel(xine_stream_t *stream, int channel)
Definition xine.c:3043
_x_mrl_unescape
void _x_mrl_unescape(char *mrl)
Definition xine.c:1441
_x_set_speed
void _x_set_speed(xine_stream_t *stream, int speed)
Definition xine.c:3181
_x_demux_control_nop
void _x_demux_control_nop(xine_stream_t *stream, uint32_t flags)
Definition demux.c:318
_x_get_speed
int _x_get_speed(xine_stream_t *stream)
Definition xine.c:3189
_x_load_video_output_plugin
vo_driver_t * _x_load_video_output_plugin(xine_t *this_gen, const char *id, int visual_type, const void *visual)
Definition load_plugins.c:2543
_x_demux_stop_thread
int _x_demux_stop_thread(xine_stream_t *stream)
Definition demux.c:610
_x_free_input_plugin
void _x_free_input_plugin(xine_stream_t *stream, input_plugin_t *input)
Definition load_plugins.c:2156
_x_decoder_available
int _x_decoder_available(xine_t *xine, uint32_t buftype)
Definition load_plugins.c:3044
_x_demux_read_send_data
int _x_demux_read_send_data(fifo_buffer_t *fifo, input_plugin_t *input, int size, int64_t pts, uint32_t type, uint32_t decoder_flags, off_t input_normpos, int input_time, int total_time, uint32_t frame_number) XINE_USED
Definition demux.c:897
_x_keyframes_add
int _x_keyframes_add(xine_stream_t *stream, xine_keyframes_entry_t *pos)
Register a stream keyframe to seek index.
Definition xine.c:3940
_x_query_buffer_usage
int _x_query_buffer_usage(xine_stream_t *stream, int *num_video_buffers, int *num_audio_buffers, int *num_video_frames, int *num_audio_frames)
Definition xine.c:3697
_x_demux_send_data
void _x_demux_send_data(fifo_buffer_t *fifo, uint8_t *data, int size, int64_t pts, uint32_t type, uint32_t decoder_flags, int input_normpos, int input_time, int total_time, uint32_t frame_number)
Definition demux.c:851
_x_free_module
void _x_free_module(xine_t *xine, struct xine_module_s **pmodule)
Definition load_plugins.c:2079
_x_unlock_frontend
void _x_unlock_frontend(xine_stream_t *stream)
Definition xine.c:3818
_x_get_spu_channel
int _x_get_spu_channel(xine_stream_t *stream)
Definition xine.c:3582
_x_query_network_timeout
int _x_query_network_timeout(xine_t *xine)
Definition xine.c:2872
_x_demux_control_headers_done
void _x_demux_control_headers_done(xine_stream_t *stream)
Definition demux.c:184
_x_extra_info_reset
void _x_extra_info_reset(extra_info_t *extra_info)
Definition xine.c:136
_x_action_raise
void _x_action_raise(xine_stream_t *stream)
Definition demux.c:824
_x_message
int _x_message(xine_stream_t *stream, int type,...) XINE_SENTINEL
Definition xine_interface.c:1091
_x_free_demux_plugin
void _x_free_demux_plugin(xine_stream_t *stream, demux_plugin_t **demux)
Definition load_plugins.c:2406
_x_demux_read_header
int _x_demux_read_header(input_plugin_t *input, void *buffer, off_t size)
Definition demux.c:704
_x_free_audio_decoder
void _x_free_audio_decoder(xine_stream_t *stream, audio_decoder_t *decoder)
Definition load_plugins.c:3031
_x_demux_called_from
int _x_demux_called_from(xine_stream_t *stream)
Definition demux.c:567
_x_query_unprocessed_osd_events
int _x_query_unprocessed_osd_events(xine_stream_t *stream)
Definition xine.c:3824
_x_get_audio_decoder
audio_decoder_t * _x_get_audio_decoder(xine_stream_t *stream, uint8_t stream_type)
Definition load_plugins.c:2968
_x_get_current_info
void _x_get_current_info(xine_stream_t *stream, extra_info_t *extra_info, int size)
Definition xine.c:3084
_x_demux_seek
int _x_demux_seek(xine_stream_t *stream, off_t start_pos, int start_time, int playing)
Definition demux.c:992
_x_action_pending
int _x_action_pending(xine_stream_t *stream)
Definition demux.c:804
XINE_LOG_NUM
#define XINE_LOG_NUM
Definition xine_internal.h:67
_x_get_fine_speed
int _x_get_fine_speed(xine_stream_t *stream)
Definition xine.c:3177
_x_lock_frontend
int _x_lock_frontend(xine_stream_t *stream, int ms_to_time_out)
Definition xine.c:3812
_x_get_video_streamtype
int _x_get_video_streamtype(xine_stream_t *)
Definition xine.c:3588
_x_demux_read_stream_header
int _x_demux_read_stream_header(xine_stream_t *stream, input_plugin_t *input, void *buffer, size_t size)
Definition demux.c:651
_x_demux_flush_engine
void _x_demux_flush_engine(xine_stream_t *stream)
Definition demux.c:61
_x_find_module
struct xine_module_s * _x_find_module(xine_t *xine, const char *type, const char *id, unsigned sub_type, const void *params)
Definition load_plugins.c:2041
_x_demux_control_start
void _x_demux_control_start(xine_stream_t *stream)
Definition demux.c:256
_x_read_abort
off_t _x_read_abort(xine_stream_t *stream, int fd, char *buf, off_t todo)
Definition demux.c:750
_x_demux_control_end
void _x_demux_control_end(xine_stream_t *stream, uint32_t flags)
Definition demux.c:295
_x_free_video_decoder
void _x_free_video_decoder(xine_stream_t *stream, video_decoder_t *decoder)
Definition load_plugins.c:2954
_x_flush_events_queues
void _x_flush_events_queues(xine_stream_t *stream)
Definition events.c:698
_x_handle_stream_end
void _x_handle_stream_end(xine_stream_t *stream, int non_user)
Definition xine.c:111
_x_demux_control_newpts
void _x_demux_control_newpts(xine_stream_t *stream, int64_t pts, uint32_t flags)
Definition demux.c:126
_x_keyframes_set
int _x_keyframes_set(xine_stream_t *stream, xine_keyframes_entry_t *list, int size)
Register a list of stream keyframes.
Definition xine.c:4026
_x_action_lower
void _x_action_lower(xine_stream_t *stream)
Definition demux.c:832
_x_get_audio_channel
int _x_get_audio_channel(xine_stream_t *stream)
Definition audio_decoder.c:626
_x_demux_check_extension
int _x_demux_check_extension(const char *mrl, const char *extensions)
Definition demux.c:708
_x_reset_relaxed_frame_drop_mode
void _x_reset_relaxed_frame_drop_mode(xine_stream_t *stream)
Definition xine.c:3864
_x_find_input_plugin
input_plugin_t * _x_find_input_plugin(xine_stream_t *stream, const char *mrl)
Definition load_plugins.c:2100
_x_unlock_port_rewiring
void _x_unlock_port_rewiring(xine_t *xine)
Definition xine.c:3806
_x_demux_send_mrl_reference
void _x_demux_send_mrl_reference(xine_stream_t *stream, int alternative, const char *mrl, const char *title, int start_time, int duration)
Definition demux.c:945
_x_trigger_relaxed_frame_drop_mode
void _x_trigger_relaxed_frame_drop_mode(xine_stream_t *stream)
Definition xine.c:3856
_x_continue_stream_processing
int _x_continue_stream_processing(xine_stream_t *stream)
Definition xine.c:3849
_x_set_fine_speed
void _x_set_fine_speed(xine_stream_t *stream, int speed)
Definition xine.c:3116
xineintl.h