xine-lib  1.2.9
xine_private.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2000-2017 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 
29 #ifndef XINE_PRIVATE_H__
30 #define XINE_PRIVATE_H__
31 
32 #ifndef XINE_LIBRARY_COMPILE
33 # error xine_private.h is for libxine private use only!
34 #endif
35 
36 #include <config.h>
37 #include <xine/xine_internal.h>
38 
39 #if SUPPORT_ATTRIBUTE_VISIBILITY_INTERNAL
40 # define INTERNAL __attribute__((visibility("internal")))
41 #elif SUPPORT_ATTRIBUTE_VISIBILITY_DEFAULT
42 # define INTERNAL __attribute__((__visibility__("default")))
43 #else
44 # define INTERNAL
45 #endif
46 
47 #if defined (__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6 ))
48 # define XINE_DISABLE_DEPRECATION_WARNINGS _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
49 # define XINE_ENABLE_DEPRECATION_WARNINGS _Pragma("GCC diagnostic warning \"-Wdeprecated-declarations\"")
50 #else
51 # define XINE_DISABLE_DEPRECATION_WARNINGS
52 # define XINE_ENABLE_DEPRECATION_WARNINGS
53 #endif
54 
55 #ifdef __cplusplus
56 extern "C" {
57 #endif
58 
73 int _x_scan_plugins (xine_t *this) INTERNAL;
74 
81 
82 void _x_free_video_driver (xine_t *xine, vo_driver_t **driver) INTERNAL;
83 void _x_free_audio_driver (xine_t *xine, ao_driver_t **driver) INTERNAL;
84 
86 
90 input_plugin_t *_x_find_input_plugin (xine_stream_t *stream, const char *mrl) INTERNAL;
94 input_plugin_t *_x_rip_plugin_get_instance (xine_stream_t *stream, const char *filename) INTERNAL;
99 
101 
108 
112 
117 
122 
124 
125 
126 #if defined(HAVE_PTHREAD_RWLOCK)
127 # define xine_rwlock_t pthread_rwlock_t
128 # define xine_rwlock_init_default(l) pthread_rwlock_init (l, NULL)
129 # define xine_rwlock_rdlock(l) pthread_rwlock_rdlock (l)
130 # define xine_rwlock_tryrdlock(l) pthread_rwlock_tryrdlock (l)
131 # define xine_rwlock_timedrdlock(l,t) pthread_rwlock_timedrdlock (l, t)
132 # define xine_rwlock_wrlock(l) pthread_rwlock_wrlock (l)
133 # define xine_rwlock_trywrlock(l) pthread_rwlock_trywrlock (l)
134 # define xine_rwlock_timedwrlock(l,t) pthread_rwlock_timedwrlock (l, t)
135 # define xine_rwlock_unlock(l) pthread_rwlock_unlock (l)
136 # define xine_rwlock_destroy(l) pthread_rwlock_destroy (l)
137 #else
138 # define xine_rwlock_t pthread_mutex_t
139 # define xine_rwlock_init_default(l) pthread_mutex_init (l, NULL)
140 # define xine_rwlock_rdlock(l) pthread_mutex_lock (l)
141 # define xine_rwlock_tryrdlock(l) pthread_mutex_trylock (l)
142 # define xine_rwlock_timedrdlock(l,t) pthread_mutex_timedlock (l, t)
143 # define xine_rwlock_wrlock(l) pthread_mutex_lock (l)
144 # define xine_rwlock_trywrlock(l) pthread_mutex_trylock (l)
145 # define xine_rwlock_timedwrlock(l,t) pthread_mutex_timedlock (l, t)
146 # define xine_rwlock_unlock(l) pthread_mutex_unlock (l)
147 # define xine_rwlock_destroy(l) pthread_mutex_destroy (l)
148 #endif
149 
150 
151 #ifdef __cplusplus
152 }
153 #endif
154 
155 #endif
156 
157 
input_plugin_t * _x_rip_plugin_get_instance(xine_stream_t *stream, const char *filename)
Definition: input_rip.c:549
demux_plugin_t * _x_find_demux_plugin(xine_stream_t *stream, input_plugin_t *input)
Definition: load_plugins.c:1597
input_plugin_t * _x_cache_plugin_get_instance(xine_stream_t *stream)
Definition: input_cache.c:351
void _x_free_audio_driver(xine_t *xine, ao_driver_t **driver)
Definition: load_plugins.c:2131
int _x_video_decoder_init(xine_stream_t *stream)
Definition: video_decoder.c:513
demux_plugin_t * _x_find_demux_plugin_last_probe(xine_stream_t *stream, const char *last_demux_name, input_plugin_t *input)
Definition: load_plugins.c:1669
Definition: demux.h:97
void xine_probe_fast_memcpy(xine_t *xine)
Benchmark available memcpy methods.
Definition: memcpy.c:716
void _x_audio_decoder_shutdown(xine_stream_t *stream)
Definition: audio_decoder.c:532
void _x_free_video_driver(xine_t *xine, vo_driver_t **driver)
Definition: load_plugins.c:2148
Definition: video_out.h:50
Definition: xine_internal.h:210
Definition: audio_out.h:45
demux_plugin_t * _x_find_demux_plugin_by_name(xine_stream_t *stream, const char *name, input_plugin_t *input)
Definition: load_plugins.c:1622
#define INTERNAL
Definition: xine_private.h:44
static int input(void)
Definition: goomsl_lex.c:1495
int _x_set_socket_close_on_exec(int s)
Definition: utils.c:805
Definition: input_plugin.h:92
int _x_audio_decoder_init(xine_stream_t *stream)
Definition: audio_decoder.c:467
const char * name
Definition: asfheader.h:137
void _x_free_input_plugin(xine_stream_t *stream, input_plugin_t *input)
Definition: load_plugins.c:1490
Definition: xine_internal.h:81
int _x_scan_plugins(xine_t *this)
Load plugins into catalog.
Definition: load_plugins.c:1369
input_plugin_t * _x_find_input_plugin(xine_stream_t *stream, const char *mrl)
Definition: load_plugins.c:1461
void _x_dispose_plugins(xine_t *this)
Dispose (shutdown) all currently loaded plugins.
Definition: load_plugins.c:3008
void _x_free_demux_plugin(xine_stream_t *stream, demux_plugin_t *demux)
Definition: load_plugins.c:1751
void _x_video_decoder_shutdown(xine_stream_t *stream)
Definition: video_decoder.c:575
int _x_set_file_close_on_exec(int fd)
Make file descriptors and sockets uninheritable.
Definition: utils.c:796