21 #ifndef HAVE_XINE_INTERNAL_H 22 #define HAVE_XINE_INTERNAL_H 51 #define XINE_MAX_EVENT_LISTENERS 50 52 #define XINE_MAX_EVENT_TYPES 100 53 #define XINE_MAX_TICKET_HOLDER_THREADS 64 56 #define XINE_VERSION_CODE XINE_MAJOR_VERSION*10000+XINE_MINOR_VERSION*100+XINE_SUB_VERSION 63 #define XINE_LOG_MSG 0 64 #define XINE_LOG_PLUGIN 1 65 #define XINE_LOG_TRACE 2 66 #define XINE_LOG_NUM 3 68 #define XINE_STREAM_INFO_MAX 99 103 #ifdef XINE_ENGINE_INTERNAL 105 pthread_mutex_t log_lock;
108 void *log_cb_user_data;
114 pthread_mutex_t pause_mutex;
116 # define XINE_LIVE_PAUSE_ON 0x7ffffffd 117 # define XINE_LIVE_PAUSE_OFF 0x7ffffffc 149 #ifdef XINE_ENGINE_INTERNAL 161 int (*acquire_nonblocking)(
xine_ticket_t *
self,
int irrevocable);
165 void (*release_nonblocking)(
xine_ticket_t *
self,
int irrevocable);
167 int (*lock_port_rewiring)(
xine_ticket_t *
self,
int ms_timeout);
172 pthread_mutex_t lock;
173 pthread_mutex_t revoke_lock;
174 pthread_cond_t issued;
175 pthread_cond_t revoked;
177 int irrevocable_tickets;
178 int pending_revocations;
180 pthread_t atomic_revoker_thread;
181 pthread_mutex_t port_rewiring_lock;
186 unsigned holder_thread_count;
257 #ifdef XINE_ENGINE_INTERNAL 263 pthread_mutex_t speed_change_lock;
264 uint32_t ignore_speed_change:1;
265 uint32_t video_thread_created:1;
266 uint32_t audio_thread_created:1;
272 uint32_t first_frame_flag:2;
273 uint32_t demux_action_pending:1;
274 uint32_t demux_thread_created:1;
275 uint32_t demux_thread_running:1;
276 uint32_t slave_is_subtitle:1;
277 uint32_t emergency_brake:1;
280 uint32_t early_finish_event:1;
281 uint32_t gapless_switch:1;
282 uint32_t keep_ao_driver_open:1;
283 uint32_t finished_naturally:1;
289 pthread_t video_thread;
292 int video_decoder_streamtype;
295 uint32_t audio_track_map[50];
296 int audio_track_map_entries;
298 int audio_decoder_streamtype;
299 pthread_t audio_thread;
308 int audio_channel_user;
313 uint32_t spu_track_map[50];
314 int spu_track_map_entries;
318 int spu_channel_pan_scan;
322 pthread_mutex_t frontend_lock;
326 pthread_mutex_t info_mutex;
329 pthread_mutex_t meta_mutex;
334 pthread_mutex_t first_frame_lock;
335 pthread_cond_t first_frame_reached;
338 pthread_mutex_t counter_lock;
339 pthread_cond_t counter_changed;
340 int header_count_audio;
341 int header_count_video;
342 int finished_count_audio;
343 int finished_count_video;
347 pthread_mutex_t event_queues_lock;
350 pthread_t demux_thread;
351 pthread_mutex_t demux_lock;
352 pthread_mutex_t demux_action_lock;
353 pthread_cond_t demux_resume;
354 pthread_mutex_t demux_mutex;
357 pthread_mutex_t current_extra_info_lock;
358 int video_seek_count;
360 int delay_finish_event;
374 int index_size, index_used, index_lastadd;
375 pthread_mutex_t index_mutex;
381 #define XINE_ANON_STREAM ((xine_stream_t *)-1) 482 int64_t pts, uint32_t type, uint32_t decoder_flags,
483 int input_normpos,
int input_time,
int total_time,
487 int size, int64_t pts, uint32_t type,
488 uint32_t decoder_flags, off_t input_normpos,
489 int input_time,
int total_time,
493 const
char *mrl, const
char *title,
563 #define XINE_EVENT_PIDS_CHANGE 0x80000000 565 #define XINE_EVENT_END_OF_CLIP 0x80000001 xine_query_buffers_data_t vi
Definition: xine_internal.h:393
input_plugin_t * input_plugin
Definition: xine_internal.h:219
int _x_demux_seek(xine_stream_t *stream, off_t start_pos, int start_time, int playing)
Definition: xine.c:2663
int _x_query_unprocessed_osd_events(xine_stream_t *stream)
Definition: xine.c:2644
xine_video_port_t * video_out
Definition: xine_internal.h:222
void _x_demux_flush_engine(xine_stream_t *stream)
Definition: demux.c:61
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)
Definition: demux.c:695
xine_query_buffers_data_t ai
Definition: xine_internal.h:394
void _x_extra_info_merge(extra_info_t *dst, extra_info_t *src)
Definition: xine.c:119
#define XINE_STREAM_INFO_MAX
Definition: xine_internal.h:68
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:649
Definition: xine_internal.h:194
vo_driver_t * _x_load_video_output_plugin(xine_t *this_gen, const char *id, int visual_type, void *visual)
Definition: load_plugins.c:1864
int _x_lock_port_rewiring(xine_t *xine, int ms_to_time_out)
Definition: xine.c:2625
xine_audio_port_t * audio_out
Definition: xine_internal.h:228
int _x_action_pending(xine_stream_t *stream)
Definition: demux.c:619
Definition: xine_internal.h:391
int spu_channel_auto
Definition: xine_internal.h:250
void _x_mrl_unescape(char *mrl)
Definition: xine.c:868
char * save_path
Definition: xine_internal.h:90
void * reserved
Definition: xine_internal.h:78
Definition: xine_internal.h:125
int audio_channel_auto
Definition: xine_internal.h:247
int _x_decoder_available(xine_t *xine, uint32_t buftype)
Definition: load_plugins.c:2403
int ready
Definition: xine_internal.h:386
pthread_cond_t events_processed
Definition: xine_internal.h:198
int callback_running
Definition: xine_internal.h:203
void _x_handle_stream_end(xine_stream_t *stream, int non_user)
Definition: xine.c:92
void _x_unlock_frontend(xine_stream_t *stream)
Definition: xine.c:2639
int verbosity
Definition: xine_internal.h:87
int _x_message(xine_stream_t *stream, int type,...) XINE_SENTINEL
Definition: xine_interface.c:976
int avail
Definition: xine_internal.h:387
Definition: xine_internal.h:78
void _x_free_spu_decoder(xine_stream_t *stream, spu_decoder_t *decoder)
Definition: load_plugins.c:2564
int _x_keyframes_set(xine_stream_t *stream, xine_keyframes_entry_t *list, int size)
Register a list of stream keyframes.
Definition: xine.c:2838
int spu_channel_user
Definition: xine_internal.h:249
int spu_channel_letterbox
Definition: xine_internal.h:251
fifo_buffer_t * audio_fifo
Definition: xine_internal.h:231
void _x_set_speed(xine_stream_t *stream, int speed)
Definition: xine.c:2097
void _x_trigger_relaxed_frame_drop_mode(xine_stream_t *stream)
Definition: xine.c:2676
Definition: configfile.h:83
void(* renew)(xine_ticket_t *self, int irrevocable)
Definition: xine_internal.h:147
void _x_flush_events_queues(xine_stream_t *stream)
Definition: xine.c:916
void _x_demux_control_start(xine_stream_t *stream)
Definition: demux.c:262
void(* xine_event_listener_cb_t)(void *user_data, const xine_event_t *event)
Definition: xine.h:2190
void * user_data
Definition: xine_internal.h:201
xine_stream_t * stream
Definition: xine_internal.h:199
int demux_strategy
Definition: xine_internal.h:89
void(* xine_log_cb_t)(void *user_data, int section)
Definition: xine.h:921
spu_decoder_t * _x_get_spu_decoder(xine_stream_t *stream, uint8_t stream_type)
Definition: load_plugins.c:2507
int _x_get_speed(xine_stream_t *stream)
Definition: xine.c:2105
Definition: plugin_catalog.h:53
xine_stream_t * slave
Definition: xine_internal.h:238
int spu_decoder_streamtype
Definition: xine_internal.h:248
void _x_demux_control_headers_done(xine_stream_t *stream)
Definition: demux.c:195
int _x_demux_stop_thread(xine_stream_t *stream)
Definition: demux.c:456
xine_stream_t * master
Definition: xine_internal.h:237
void _x_demux_control_nop(xine_stream_t *stream, uint32_t flags)
Definition: demux.c:301
ao_driver_t * _x_load_audio_output_plugin(xine_t *self, const char *id)
Definition: load_plugins.c:2039
void(* release)(xine_ticket_t *self, int irrevocable)
Definition: xine_internal.h:141
xine_query_buffers_data_t ao
Definition: xine_internal.h:396
pthread_mutex_t streams_lock
Definition: xine_internal.h:96
int _x_demux_check_extension(const char *mrl, const char *extensions)
Definition: demux.c:517
Definition: spu_decoder.h:75
void _x_free_video_decoder(xine_stream_t *stream, video_decoder_t *decoder)
Definition: load_plugins.c:2313
xine_list_t * events
Definition: xine_internal.h:195
xine_event_listener_cb_t callback
Definition: xine_internal.h:202
Definition: broadcaster.c:82
char * _x_mrl_remove_auth(const char *mrl)
Definition: xine.c:885
Definition: video_out.h:50
plugin_catalog_t * plugin_catalog
Definition: xine_internal.h:85
Definition: xine_internal.h:210
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:2534
int _x_get_audio_channel(xine_stream_t *stream)
Definition: audio_decoder.c:552
Definition: metronom.h:71
metronom_t * metronom
Definition: xine_internal.h:216
Definition: refcounter.h:27
Definition: video_out.h:177
#define XINE_SENTINEL
Definition: attributes.h:79
Definition: audio_out.h:45
void _x_free_audio_decoder(xine_stream_t *stream, audio_decoder_t *decoder)
Definition: load_plugins.c:2390
pthread_cond_t new_event
Definition: xine_internal.h:197
void _x_reset_relaxed_frame_drop_mode(xine_stream_t *stream)
Definition: xine.c:2683
int _x_lock_frontend(xine_stream_t *stream, int ms_to_time_out)
Definition: xine.c:2635
int apid
Definition: xine_internal.h:572
static int input(void)
Definition: goomsl_lex.c:1495
int _x_demux_read_header(input_plugin_t *input, void *buffer, off_t size)
Definition: demux.c:494
osd_renderer_t * osd_renderer
Definition: xine_internal.h:234
xine_query_buffers_data_t vo
Definition: xine_internal.h:395
pthread_t * listener_thread
Definition: xine_internal.h:200
#define XINE_PROTECTED
Definition: attributes.h:73
void(* acquire)(xine_ticket_t *self, int irrevocable)
Definition: xine_internal.h:138
config_values_t * config
Definition: xine_internal.h:83
int ticket_revoked
Definition: xine_internal.h:133
Definition: xine_internal.h:570
int content_detection_method
Definition: xine_internal.h:255
int _x_demux_start_thread(xine_stream_t *stream)
Definition: demux.c:425
void _x_unlock_port_rewiring(xine_t *xine)
Definition: xine.c:2630
Definition: metronom.h:237
Definition: xine_internal.h:81
int _x_query_buffers(xine_stream_t *stream, xine_query_buffers_t *query)
Definition: xine.c:2578
int total
Definition: xine_internal.h:385
void _x_extra_info_reset(extra_info_t *extra_info)
Definition: xine.c:115
int _x_keyframes_add(xine_stream_t *stream, xine_keyframes_entry_t *pos)
Register a stream keyframe to seek index.
Definition: xine.c:2756
xine_list_t * streams
Definition: xine_internal.h:95
metronom_clock_t * clock
Definition: xine_internal.h:98
#define XINE_LOG_NUM
Definition: xine_internal.h:66
void _x_set_fine_speed(xine_stream_t *stream, int speed)
Definition: xine.c:2076
fifo_buffer_t * video_fifo
Definition: xine_internal.h:225
off_t _x_read_abort(xine_stream_t *stream, int fd, char *buf, off_t todo)
Definition: demux.c:559
xdgHandle basedir_handle
Definition: xine_internal.h:101
void _x_demux_control_newpts(xine_stream_t *stream, int64_t pts, uint32_t flags)
Definition: demux.c:150
xine_t * xine
Definition: xine_internal.h:213
int _x_continue_stream_processing(xine_stream_t *stream)
Definition: xine.c:2670
spu_decoder_t * spu_decoder_plugin
Definition: xine_internal.h:241
Definition: xine_internal.h:383
void _x_action_raise(xine_stream_t *stream)
Definition: demux.c:624
void _x_demux_control_end(xine_stream_t *stream, uint32_t flags)
Definition: demux.c:282
scratch_buffer_t * log_buffers[3]
Definition: xine_internal.h:93
int _x_get_fine_speed(xine_stream_t *stream)
Definition: xine.c:2093
Definition: audio_decoder.h:75
Definition: video_decoder.h:75
pthread_mutex_t lock
Definition: xine_internal.h:196
int _x_get_spu_channel(xine_stream_t *stream)
Definition: xine.c:2436
int vpid
Definition: xine_internal.h:571
video_decoder_t * _x_get_video_decoder(xine_stream_t *stream, uint8_t stream_type)
Definition: load_plugins.c:2249
audio_decoder_t * _x_get_audio_decoder(xine_stream_t *stream, uint8_t stream_type)
Definition: load_plugins.c:2327
vo_driver_t * video_driver
Definition: xine_internal.h:244
Definition: audio_out.h:178
void _x_action_lower(xine_stream_t *stream)
Definition: demux.c:632
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:743
int spu_channel
Definition: xine_internal.h:252
void _x_get_current_info(xine_stream_t *stream, extra_info_t *extra_info, int size)
Definition: xine.c:2060
void _x_select_spu_channel(xine_stream_t *stream, int channel)
Definition: xine.c:1997