Go to the documentation of this file.
24 #if defined(HAVE_CONFIG_H) && !defined(__XINE_LIB_CONFIG_H__)
25 # error config.h not included
28 #define always_inline inline
33 #define _X_ABE_16(x) (be2me_16(*(const uint16_t*)(x)))
34 #define _X_ABE_32(x) (be2me_32(*(const uint32_t*)(x)))
35 #define _X_ABE_64(x) (be2me_64(*(const uint64_t*)(x)))
36 #define _X_ALE_16(x) (le2me_16(*(const uint16_t*)(x)))
37 #define _X_ALE_32(x) (le2me_32(*(const uint32_t*)(x)))
38 #define _X_ALE_64(x) (le2me_64(*(const uint64_t*)(x)))
40 #define _X_BE_16(x) (((uint16_t)(((const uint8_t*)(x))[0]) << 8) | \
41 ((uint16_t)((const uint8_t*)(x))[1]))
42 #define _X_BE_24(x) (((uint32_t)(((const uint8_t*)(x))[0]) << 16) | \
43 ((uint32_t)(((const uint8_t*)(x))[1]) << 8) | \
44 ((uint32_t)(((const uint8_t*)(x))[2])))
45 #define _X_BE_32(x) (((uint32_t)(((const uint8_t*)(x))[0]) << 24) | \
46 ((uint32_t)(((const uint8_t*)(x))[1]) << 16) | \
47 ((uint32_t)(((const uint8_t*)(x))[2]) << 8) | \
48 ((uint32_t)((const uint8_t*)(x))[3]))
49 #define _X_BE_64(x) (((uint64_t)(((const uint8_t*)(x))[0]) << 56) | \
50 ((uint64_t)(((const uint8_t*)(x))[1]) << 48) | \
51 ((uint64_t)(((const uint8_t*)(x))[2]) << 40) | \
52 ((uint64_t)(((const uint8_t*)(x))[3]) << 32) | \
53 ((uint64_t)(((const uint8_t*)(x))[4]) << 24) | \
54 ((uint64_t)(((const uint8_t*)(x))[5]) << 16) | \
55 ((uint64_t)(((const uint8_t*)(x))[6]) << 8) | \
56 ((uint64_t)((const uint8_t*)(x))[7]))
58 #define _X_LE_16(x) (((uint16_t)(((const uint8_t*)(x))[1]) << 8) | \
59 ((uint16_t)((const uint8_t*)(x))[0]))
60 #define _X_LE_24(x) (((uint32_t)(((const uint8_t*)(x))[2]) << 16) | \
61 ((uint32_t)(((const uint8_t*)(x))[1]) << 8) | \
62 ((uint32_t)(((const uint8_t*)(x))[0])))
63 #define _X_LE_32(x) (((uint32_t)(((const uint8_t*)(x))[3]) << 24) | \
64 ((uint32_t)(((const uint8_t*)(x))[2]) << 16) | \
65 ((uint32_t)(((const uint8_t*)(x))[1]) << 8) | \
66 ((uint32_t)((const uint8_t*)(x))[0]))
67 #define _X_LE_64(x) (((uint64_t)(((const uint8_t*)(x))[7]) << 56) | \
68 ((uint64_t)(((const uint8_t*)(x))[6]) << 48) | \
69 ((uint64_t)(((const uint8_t*)(x))[5]) << 40) | \
70 ((uint64_t)(((const uint8_t*)(x))[4]) << 32) | \
71 ((uint64_t)(((const uint8_t*)(x))[3]) << 24) | \
72 ((uint64_t)(((const uint8_t*)(x))[2]) << 16) | \
73 ((uint64_t)(((const uint8_t*)(x))[1]) << 8) | \
74 ((uint64_t)((const uint8_t*)(x))[0]))
77 #if defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ > 3)) || defined(__clang__)
84 # ifdef WORDS_BIGENDIAN
85 # define _X_LE_24(x) ({ int32_t tempi; __builtin_memcpy (&tempi, (x), 3); (uint32_t)(__builtin_bswap32 (tempi)) & 0xffffff; })
86 # define _X_LE_32(x) ({ int32_t tempi; __builtin_memcpy (&tempi, (x), 4); (uint32_t)(__builtin_bswap32 (tempi)); })
87 # define _X_LE_64(x) ({ int64_t tempi; __builtin_memcpy (&tempi, (x), 8); (uint64_t)(__builtin_bswap64 (tempi)); })
88 # define _X_BE_24(x) ({ uint32_t tempi; __builtin_memcpy (&tempi, (x), 3); tempi >> 8; })
89 # define _X_BE_32(x) ({ uint32_t tempi; __builtin_memcpy (&tempi, (x), 4); tempi; })
90 # define _X_BE_64(x) ({ uint64_t tempi; __builtin_memcpy (&tempi, (x), 8); tempi; })
92 # define _X_BE_24(x) ({ int32_t tempi; __builtin_memcpy (&tempi, (x), 3); (uint32_t)(__builtin_bswap32 (tempi)) >> 8; })
93 # define _X_BE_32(x) ({ int32_t tempi; __builtin_memcpy (&tempi, (x), 4); (uint32_t)(__builtin_bswap32 (tempi)); })
94 # define _X_BE_64(x) ({ int64_t tempi; __builtin_memcpy (&tempi, (x), 8); (uint64_t)(__builtin_bswap64 (tempi)); })
95 # define _X_LE_24(x) ({ uint32_t tempi; __builtin_memcpy (&tempi, (x), 3); tempi & 0xffffff; })
96 # define _X_LE_32(x) ({ uint32_t tempi; __builtin_memcpy (&tempi, (x), 4); tempi; })
97 # define _X_LE_64(x) ({ uint64_t tempi; __builtin_memcpy (&tempi, (x), 8); tempi; })
99 # if defined(ARCH_X86)
103 # define _X_BE_16(x) ({ \
105 __builtin_memcpy (&tempi, (x), 2); \
106 __asm__ __volatile__ ( \
113 # define _X_LE_16(x) ({ uint16_t tempi; __builtin_memcpy (&tempi, (x), 2); tempi; })
117 #ifdef WORDS_BIGENDIAN
118 #define _X_ME_16(x) _X_BE_16(x)
119 #define _X_ME_32(x) _X_BE_32(x)
120 #define _X_ME_64(x) _X_BE_64(x)
121 #define _X_AME_16(x) _X_ABE_16(x)
122 #define _X_AME_32(x) _X_ABE_32(x)
123 #define _X_AME_64(x) _X_ABE_64(x)
125 #define _X_ME_16(x) _X_LE_16(x)
126 #define _X_ME_32(x) _X_LE_32(x)
127 #define _X_ME_64(x) _X_LE_64(x)
128 #define _X_AME_16(x) _X_ALE_16(x)
129 #define _X_AME_32(x) _X_ALE_32(x)
130 #define _X_AME_64(x) _X_ALE_64(x)
133 #define BE_FOURCC( ch0, ch1, ch2, ch3 ) \
134 ( (uint32_t)(unsigned char)(ch3) | \
135 ( (uint32_t)(unsigned char)(ch2) << 8 ) | \
136 ( (uint32_t)(unsigned char)(ch1) << 16 ) | \
137 ( (uint32_t)(unsigned char)(ch0) << 24 ) )
139 #define LE_FOURCC( ch0, ch1, ch2, ch3 ) \
140 ( (uint32_t)(unsigned char)(ch0) | \
141 ( (uint32_t)(unsigned char)(ch1) << 8 ) | \
142 ( (uint32_t)(unsigned char)(ch2) << 16 ) | \
143 ( (uint32_t)(unsigned char)(ch3) << 24 ) )
145 #ifdef WORDS_BIGENDIAN
146 #define ME_FOURCC BE_FOURCC
148 #define ME_FOURCC LE_FOURCC
Definition: xine_internal.h:80
static void broadcaster_data_write(broadcaster_t *this, const void *buf, int len)
Definition: broadcaster.c:173
static void ao_flush(xine_audio_port_t *this_gen)
Definition: audio_out.c:2693
Definition: audio_out.c:201
uint32_t color[256]
Definition: video_out.h:492
static void * audio_decoder_loop(void *stream_gen)
Definition: audio_decoder.c:46
metronom_clock_t * clock
Definition: audio_out.c:225
uint32_t audio_loop_running
Definition: audio_out.c:211
uint32_t first_frame_flag
Definition: xine_private.h:511
#define AO_MAX_GAP
Definition: audio_out.h:351
int32_t size
Definition: buffer.h:343
xine_t * xine
Definition: xine_internal.h:126
int finished_count_video
Definition: xine_private.h:519
int num_frames
Definition: audio_out.h:150
#define XINE_STREAM_INFO_AUDIO_HANDLED
Definition: xine.h:1021
double output_frame_excess
Definition: audio_out.c:254
int header_count_audio
Definition: xine_private.h:516
int ptoffs
Definition: audio_out.c:279
void * xine_mallocz_aligned(size_t size)
Definition: utils.c:856
uint32_t emergency_brake
Definition: xine_private.h:439
static int ao_streams_unregister(aos_t *this, xine_stream_private_t *s)
Definition: audio_out.c:427
#define BLEND_BYTE(dst, src, o)
Definition: alphablend.c:47
Definition: xine_internal.h:123
static void ao_fill_gap(aos_t *this, int64_t pts_len)
Definition: audio_out.c:951
static void ao_out_fifo_signal(aos_t *this)
Definition: audio_out.c:629
#define DISC_STREAMSEEK
Definition: metronom.h:68
Definition: metronom.h:199
#define XINE_FINE_SPEED_NORMAL
Definition: xine.h:372
#define AUDIO_BUF_SIZE
Definition: audio_out.c:96
#define AO_CAP_MODE_4_1CHANNEL
Definition: audio_out.h:293
#define BUF_CONTROL_RESET_TRACK_MAP
Definition: buffer.h:80
xine_stream_t * stream
Definition: broadcaster.c:83
#define AO_CTRL_FLUSH_BUFFERS
Definition: audio_out.h:348
#define AO_CAP_NO_UNPAUSE
Definition: audio_out.h:315
uint32_t(* get_capabilities)(ao_driver_t *)
Definition: audio_out.h:52
void xine_free_audio_frame(xine_audio_port_t *this_gen, xine_audio_frame_t *frame)
Definition: audio_out.c:2040
static void ao_streams_close(aos_t *this)
Definition: audio_out.c:390
pthread_mutex_t driver_lock
Definition: audio_out.c:209
void _x_blend_rgb24(uint8_t *img, vo_overlay_t *img_overl, int img_width, int img_height, int dst_width, int dst_height, alphablend_t *extra_data)
Definition: alphablend.c:727
xine_list_t * xine_list_new(void)
Definition: list.c:72
int discard_buffers
Definition: audio_out.c:280
xine_list_t * connections
Definition: broadcaster.c:86
static void video_put_cb(fifo_buffer_t *fifo, buf_element_t *buf, void *this_gen)
Definition: broadcaster.c:295
static void ao_close(xine_audio_port_t *this_gen, xine_stream_t *stream)
Definition: audio_out.c:2286
void(* discontinuity)(audio_decoder_t *this_gen)
Definition: audio_decoder.h:91
static void blend_yuv_exact(uint8_t *dst_cr, uint8_t *dst_cb, int src_width, uint8_t *(*blend_yuv_data)[3][2])
Definition: alphablend.c:1064
void(* reset)(audio_decoder_t *this_gen)
Definition: audio_decoder.h:85
video_decoder_t * video_decoder_plugin
Definition: xine_private.h:452
void _x_audio_out_resample_6channel(int16_t *last_sample, int16_t *input_samples, uint32_t in_samples, int16_t *output_samples, uint32_t out_samples)
Definition: resample.c:242
void(* handle_audio_discontinuity)(metronom_t *self, int type, int64_t disc_off)
Definition: metronom.h:147
int valid
Definition: audio_out.c:145
#define BUF_FLAG_HEADER
Definition: buffer.h:375
int av_sync_method_conf
Definition: audio_out.c:244
int xine_socket_cloexec(int domain, int type, int protocol)
Definition: utils.c:837
#define AO_CAP_MODE_A52
Definition: audio_out.h:278
int alpha
Definition: audio_out.c:161
static uint8_t *(* blend_yuy2_grow_extra_data(alphablend_t *extra_data, int osd_width))[3]
Definition: alphablend.c:1564
static void ao_streams_register(aos_t *this, xine_stream_private_t *s)
Definition: audio_out.c:402
void xine_profiler_start_count(int id)
Definition: monitor.c:88
uint8_t cb
Definition: alphablend.h:45
#define BUF_NUM_DEC_INFO
Definition: buffer.h:334
#define AO_CAP_MODE_4CHANNEL
Definition: audio_out.h:285
audio_fifo_t out_fifo
Definition: audio_out.c:260
int audio_decoder_streamtype
Definition: xine_private.h:459
void * buffer
Definition: alphablend.h:31
#define AO_CAP_MIXER_VOL
Definition: audio_out.h:308
void xine_list_push_back(xine_list_t *list, void *value)
Definition: list.c:162
pthread_cond_t driver_action_cond
Definition: audio_out.c:223
int fifo_size
Definition: buffer.h:585
void xine_list_delete(xine_list_t *list)
Definition: list.c:108
#define RESAMPLE_REDUCE_GAP_THRESHOLD
Definition: audio_out.c:135
pthread_cond_t empty
Definition: audio_out.c:194
void *(* xine_fast_memcpy)(void *to, const void *from, size_t len)
Definition: memcpy.c:60
int num_anon_streams
Definition: audio_out.c:230
#define NUM_AUDIO_BUFFERS
Definition: audio_out.c:95
int xine_get_next_audio_frame(xine_audio_port_t *this_gen, xine_audio_frame_t *frame)
Definition: audio_out.c:1964
int ei_read
Definition: audio_out.c:327
void _x_alphablend_init(alphablend_t *extra_data, xine_t *xine)
Definition: alphablend.c:2161
ao_format_t output
Definition: audio_out.c:252
#define RESAMPLE_SYNC_WINDOW
Definition: audio_out.c:133
#define xine_rwlock_init_default(l)
Definition: xine_private.h:224
int ei_write
Definition: audio_out.c:326
Definition: alphablend.h:30
fifo_buffer_t * _x_fifo_buffer_new(int num_buffers, uint32_t buf_size)
Allocate and initialise new (empty) FIFO buffers.
Definition: buffer.c:873
static audio_buffer_t * swap_frame_buffers(aos_t *this)
Definition: audio_out.c:1073
metronom_clock_t * clock
Definition: xine_internal.h:97
static void ao_fifo_close(audio_fifo_t *fifo)
Definition: audio_out.c:540
uint32_t decoder_info[5]
Definition: buffer.h:353
#define DEMUX_OK
Definition: demux.h:33
pthread_mutex_t driver_action_lock
Definition: audio_out.c:222
pthread_mutex_t first_frame_lock
Definition: xine_private.h:504
#define LOG_RESAMPLE_SYNC
Definition: audio_out.c:84
int resend_max
Definition: audio_out.c:315
uint32_t force_rate
Definition: audio_out.c:257
uint32_t hili_color[256]
Definition: video_out.h:501
void _x_extra_info_merge(extra_info_t *dst, extra_info_t *src)
Definition: xine.c:122
xine_stream_t s
Definition: xine_private.h:432
#define SYNC_GAP_RATE_LOG2
Definition: audio_out.c:122
uint32_t do_compress
Definition: audio_out.c:214
int(* register_enum)(config_values_t *self, const char *key, int def_value, char **values, const char *description, const char *help, int exp_level, xine_config_cb_t changed_cb, void *cb_data)
Definition: configfile.h:135
int(* set_property)(ao_driver_t *, int property, int value)
Definition: audio_out.h:113
#define BUF_CONTROL_HEADERS_DONE
Definition: buffer.h:78
static int ao_status(xine_audio_port_t *this_gen, xine_stream_t *stream, uint32_t *bits, uint32_t *rate, int *mode)
Definition: audio_out.c:2703
#define XINE_STREAM_INFO_IGNORE_AUDIO
Definition: xine.h:1026
uint32_t do_equ
Definition: audio_out.c:217
static int xx44_paletteIndex(xx44_palette_t *p, int color, uint32_t clut)
Definition: alphablend.c:1973
#define ME_FOURCC
Definition: bswap.h:148
#define EQ_BANDS
Definition: audio_out.c:152
void * xine_list_next_value(xine_list_t *list, xine_list_iterator_t *ite)
Definition: list.c:197
int mem_size
Definition: audio_out.h:149
Definition: audio_out.h:144
static void ao_exit(xine_audio_port_t *this_gen)
Definition: audio_out.c:2364
#define AO_PROP_EQ_30HZ
Definition: audio_out.h:325
uint32_t grab_only
Definition: audio_out.c:212
uint32_t out_pts_per_kframe
Definition: audio_out.c:240
int num_waiters
Definition: audio_out.c:198
pthread_cond_t first_frame_reached
Definition: xine_private.h:505
#define xine_rwlock_t
Definition: xine_private.h:223
static audio_buffer_t * ao_fifo_pop_int(audio_fifo_t *fifo)
Definition: audio_out.c:616
int xine_profiler_allocate_slot(const char *label)
Definition: monitor.c:51
int lookup_cache[256 *2]
Definition: alphablend.h:60
int stream_info[XINE_STREAM_INFO_MAX]
Definition: xine_private.h:496
#define INT_TO_SCALED(i)
Definition: alphablend.c:108
buf_element_t *(* buffer_pool_alloc)(fifo_buffer_t *self)
Definition: buffer.h:617
static void ao_update_ptoffs(void *this_gen, xine_cfg_entry_t *entry)
Definition: audio_out.c:2752
#define AO_CAP_MODE_STEREO
Definition: audio_out.h:283
static int xine_refs_add(xine_refs_t *refs, int n)
Definition: xine_private.h:125
void(* put)(fifo_buffer_t *fifo, buf_element_t *buf)
Definition: buffer.h:596
#define AO_PROP_DRIVER_DELAY
Definition: audio_out.h:341
static int sock_data_write(xine_t *xine, int socket, const void *buf_gen, int len)
Definition: broadcaster.c:126
void _x_dispose_xx44_palette(xx44_palette_t *p)
Definition: alphablend.c:1936
uint32_t amp_mute
Definition: audio_out.c:216
#define DISC_STREAMSTART
Definition: metronom.h:65
void(* decode_data)(audio_decoder_t *this_gen, buf_element_t *buf)
Definition: audio_decoder.h:79
int _x_message(xine_stream_t *stream, int type,...)
Definition: xine_interface.c:1000
void _x_blend_xx44(uint8_t *dst_img, vo_overlay_t *img_overl, int dst_width, int dst_height, int dst_pitch, alphablend_t *extra_data, xx44_palette_t *palette, int ia44)
Definition: alphablend.c:2008
#define AO_CAP_MODE_MONO
Definition: audio_out.h:281
int hili_bottom
Definition: video_out.h:498
static void blend_yuy2_exact(uint8_t *dst_cr, uint8_t *dst_cb, int src_width, uint8_t *(*blend_yuy2_data)[3])
Definition: alphablend.c:1481
#define AO_PROP_BUFS_TOTAL
Definition: audio_out.h:339
#define AO_CAP_MODE_5_1CHANNEL
Definition: audio_out.h:297
#define lprintf(...)
Definition: xineutils.h:620
#define AO_PROP_NUM_STREAMS
Definition: audio_out.h:337
int hili_top
Definition: video_out.h:497
void _x_alphablend_free(alphablend_t *extra_data)
Definition: alphablend.c:2180
int(* register_num)(config_values_t *self, const char *key, int def_value, const char *description, const char *help, int exp_level, xine_config_cb_t changed_cb, void *cb_data)
Definition: configfile.h:145
struct xine_stream_private_st * side_streams[4]
Definition: xine_private.h:489
int disable_exact_blending
Definition: alphablend.h:34
void _x_audio_out_resample_stereotomono(int16_t *input_samples, int16_t *output_samples, uint32_t frames)
Definition: resample.c:351
Definition: video_out.h:472
#define AO_PROP_COMPRESSOR
Definition: audio_out.h:321
xine_audio_port_t *volatile audio_out
Definition: xine_internal.h:141
#define AO_CTRL_PLAY_RESUME
Definition: audio_out.h:347
buf_element_t * next
Definition: buffer.h:338
#define METRONOM_ADJ_VPTS_OFFSET
Definition: metronom.h:173
uint8_t hili_trans[256]
Definition: video_out.h:502
int offset_y
Definition: alphablend.h:36
void _x_blend_yuy2(uint8_t *dst_img, vo_overlay_t *img_overl, int dst_width, int dst_height, int dst_pitch, alphablend_t *extra_data)
Definition: alphablend.c:1602
int beta
Definition: audio_out.c:160
int16_t * mem
Definition: audio_out.h:148
#define SYNC_BUF_INTERVAL
Definition: audio_out.c:121
void _x_free_audio_decoder(xine_stream_t *stream, audio_decoder_t *ad)
Definition: load_plugins.c:2793
void _x_init_xx44_palette(xx44_palette_t *p, unsigned num_entries)
Definition: alphablend.c:1931
#define AO_PROP_CLOCK_SPEED
Definition: audio_out.h:338
#define AO_PROP_MIXER_VOL
Definition: audio_out.h:318
int audio_channel_auto
Definition: xine_internal.h:160
double resample_sync_factor
Definition: audio_out.c:246
double last_factor
Definition: audio_out.c:140
int resend_wrap
Definition: audio_out.c:314
#define XINE_STREAM_INFO_AUDIO_SAMPLERATE
Definition: xine.h:1018
void xine_usec_sleep(unsigned usec)
Definition: utils.c:546
pthread_mutex_t lock
Definition: broadcaster.c:89
#define BUF_CONTROL_NOP
Definition: buffer.h:73
void _x_free_audio_driver(xine_t *xine, ao_driver_t **pdriver)
Definition: load_plugins.c:2532
#define SCALED_TO_INT(sc)
Definition: alphablend.c:109
#define XINE_META_INFO_AUDIOCODEC
Definition: xine.h:1069
static void ao_put_buffer(xine_audio_port_t *this_gen, audio_buffer_t *buf, xine_stream_t *stream)
Definition: audio_out.c:2230
int _x_ao_mode2channels(int mode)
Definition: audio_out.c:1082
void _x_blend_rgb32(uint8_t *img, vo_overlay_t *img_overl, int img_width, int img_height, int dst_width, int dst_height, alphablend_t *extra_data)
Definition: alphablend.c:899
#define DISC_ABSOLUTE
Definition: metronom.h:67
int _x_get_audio_channel(xine_stream_t *s)
Definition: audio_decoder.c:603
#define RESAMPLE_MAX_CHANNELS
Definition: resample.h:31
int num_null_streams
Definition: audio_out.c:229
int num_buffers
Definition: audio_out.c:196
int64_t last_avg_gap
Definition: audio_out.c:144
#define OVL_PALETTE_SIZE
Definition: video_out.h:280
static void user_data(vdpau_mpeg4_decoder_t *this_gen, uint8_t *buffer, int len)
Definition: vdpau_mpeg4.c:695
#define llprintf(cat,...)
Definition: xineutils.h:642
pthread_mutex_t streams_lock
Definition: audio_out.c:234
static void ao_out_fifo_manual_flush(aos_t *this)
Definition: audio_out.c:847
int64_t pts
Definition: buffer.h:345
#define BUFTYPE_BASE(type)
uint8_t y
Definition: alphablend.h:47
xine_audio_port_t * _x_ao_new_port(xine_t *xine, ao_driver_t *driver, int grab_only)
Initialise the audio_out sync routines.
Definition: audio_out.c:2764
#define EQ_REAL(x)
Definition: audio_out.c:157
double compression_factor_max
Definition: audio_out.c:290
int(* get_status)(demux_plugin_t *this_gen)
Definition: demux.h:149
unsigned max_used
Definition: alphablend.h:57
pthread_mutex_t step_mutex
Definition: audio_out.c:284
metronom_t * metronom
Definition: xine_internal.h:129
int resend_write
Definition: audio_out.c:313
static int ao_get_property(xine_audio_port_t *this_gen, int property)
Definition: audio_out.c:2457
int hili_right
Definition: video_out.h:500
static void ao_free_fifo_append(aos_t *this, audio_buffer_t *buf)
Definition: audio_out.c:603
#define AO_PROP_PCM_VOL
Definition: audio_out.h:319
int running
Definition: broadcaster.c:91
#define XINE_STREAM_INFO_AUDIO_BITRATE
Definition: xine.h:1019
#define BUF_CONTROL_BASE
Definition: buffer.h:68
NULL
Definition: xine_plugin.c:78
#define AO_PROP_EQ_500HZ
Definition: audio_out.h:329
extra_info_t * current_extra_info
Definition: xine_private.h:541
static void ao_driver_unlock(aos_t *this)
Definition: audio_out.c:352
void xine_event_send(xine_stream_t *s, const xine_event_t *event)
Definition: events.c:194
extra_info_t * extra_info
Definition: audio_out.h:157
#define BLEND_COLOR(dst, src, mask, o)
Definition: alphablend.c:45
#define XINE_VERBOSITY_LOG
Definition: xine.h:425
uint64_t last_vpts
Definition: audio_out.c:143
#define _x_assert(exp)
Definition: xineutils.h:550
void(* unregister_put_cb)(fifo_buffer_t *fifo, void(*cb)(fifo_buffer_t *fifo, buf_element_t *buf, void *))
Definition: buffer.h:635
void _x_audio_out_resample_mono(int16_t *last_sample, int16_t *input_samples, uint32_t in_samples, int16_t *output_samples, uint32_t out_samples)
Definition: resample.c:32
static int ao_change_settings(aos_t *this, xine_stream_t *stream, uint32_t bits, uint32_t rate, int mode)
Definition: audio_out.c:2094
static void mem_blend16(uint16_t *mem, uint16_t clr, uint8_t o, int len)
Definition: alphablend.c:58
static void _x_freep(void *ptr)
Definition: xineutils.h:263
#define BUF_CONTROL_DISCONTINUITY
Definition: buffer.h:72
#define EQ_CHANNELS
Definition: audio_out.c:153
#define XINE_PARAM_VO_SINGLE_STEP
Definition: xine.h:394
#define saturate(v)
Definition: alphablend.c:2187
uint32_t in_channels
Definition: audio_out.c:239
resample_sync_t resample_sync_info
Definition: audio_out.c:245
static uint8_t *(* blend_yuv_grow_extra_data(alphablend_t *extra_data, int osd_width))[3]
Definition: alphablend.c:1114
static void memblend_xx44(uint8_t *mem, uint8_t val, register size_t size, uint8_t mask)
Definition: alphablend.c:1995
int16_t * zero_space
Definition: audio_out.c:277
#define INT8_MIN
Definition: goomsl_lex.c:53
#define _x_abort()
Definition: xine_mpeg2new_decoder.c:50
#define INT16_MIN
Definition: goomsl_lex.c:56
config_values_t * config
Definition: xine_internal.h:82
demux_plugin_t * demux_plugin
Definition: xine_private.h:448
#define AO_PROP_DISCARD_BUFFERS
Definition: audio_out.h:322
#define xine_rwlock_rdlock(l)
Definition: xine_private.h:225
int resend_frame_size
Definition: audio_out.c:312
#define AO_PROP_BUFS_IN_FIFO
Definition: audio_out.h:323
void _x_stream_info_set(xine_stream_t *s, int info, int value)
Definition: info_helper.c:79
int _x_set_socket_close_on_exec(int s)
Definition: utils.c:805
uint32_t resend_rate
Definition: audio_out.c:309
uint32_t cluts[32]
Definition: alphablend.h:58
#define _BUFSIZ
Definition: broadcaster.c:80
static void send_buf(broadcaster_t *this, const char *from, buf_element_t *buf)
Definition: broadcaster.c:264
static int ao_open(xine_audio_port_t *this_gen, xine_stream_t *s, uint32_t bits, uint32_t rate, int mode)
Definition: audio_out.c:2157
#define _(String)
Definition: vcdplayer.h:39
static const sIIRCoefficients iir_cf[]
Definition: audio_out.c:165
void xine_profiler_stop_count(int id)
Definition: monitor.c:96
int wake_now
Definition: audio_out.c:267
Definition: configfile.h:83
void _x_close_broadcaster(broadcaster_t *this_gen)
Definition: broadcaster.c:381
void _x_audio_decoder_shutdown(xine_stream_t *s)
Definition: audio_decoder.c:578
int64_t disc_off
Definition: buffer.h:346
pthread_mutex_t mutex
Definition: audio_out.c:192
rle_elem_t * rle
Definition: video_out.h:474
uint16_t len
Definition: video_out.h:459
#define AO_CAP_8BITS
Definition: audio_out.h:311
extra_info_t * audio_decoder_extra_info
Definition: xine_private.h:462
int dropped
Definition: audio_out.c:282
int header_count_video
Definition: xine_private.h:517
int num_rle
Definition: video_out.h:476
fifo_buffer_t * video_fifo
Definition: xine_internal.h:138
uint32_t out_channels
Definition: audio_out.c:242
audio_buffer_t ** add
Definition: audio_out.c:190
static int XINE_FORMAT_PRINTF(3, 4)
Definition: broadcaster.c:153
Definition: xine_private.h:400
#define XX44_PALETTE_SIZE
Definition: alphablend.h:53
#define RESEND_BUF_SIZE
Definition: audio_out.c:305
int64_t(* got_audio_samples)(metronom_t *self, int64_t pts, int nsamples)
Definition: metronom.h:108
static void ao_eq_update(aos_t *this)
Definition: audio_out.c:1207
#define AO_PROP_EQ_125HZ
Definition: audio_out.h:327
static void * ao_loop(void *this_gen)
Definition: audio_out.c:1590
uint32_t driver_open
Definition: audio_out.c:218
int(* register_range)(config_values_t *self, const char *key, int def_value, int min, int max, const char *description, const char *help, int exp_level, xine_config_cb_t changed_cb, void *cb_data)
Definition: configfile.h:125
#define AO_CAP_MODE_5CHANNEL
Definition: audio_out.h:295
audio_fifo_t free_fifo
Definition: audio_out.c:259
int video_seek_count
Definition: xine_private.h:543
Declaration of internal, private functions for xine-lib.
int slow_fast_audio
Definition: audio_out.c:273
#define XINE_LOG_MSG
Definition: xine_internal.h:64
int window
Definition: audio_out.c:141
#define INT16_MAX
Definition: goomsl_lex.c:65
#define XINE_STREAM_INFO_AUDIO_BITS
Definition: xine.h:1017
#define AO_PROP_PTS_IN_FIFO
Definition: audio_out.h:342
int seek_count3
Definition: audio_out.c:321
uint32_t resend_speed
Definition: audio_out.c:308
int reduce_gap
Definition: audio_out.c:142
void _x_meta_info_set_utf8(xine_stream_t *s, int info, const char *str)
Definition: info_helper.c:341
static void colorToPalette(const uint32_t *icolor, unsigned char *palette_p, unsigned num_xvmc_components, const char *xvmc_components)
Definition: alphablend.c:1941
static int ao_update_resample_factor(aos_t *this)
Definition: audio_out.c:2051
int(* get_property)(xine_audio_port_t *, int property)
Definition: audio_out.h:179
static void ao_update_slow_fast(void *this_gen, xine_cfg_entry_t *entry)
Definition: audio_out.c:2758
static audio_buffer_t * ao_free_fifo_get(aos_t *this)
Definition: audio_out.c:786
const char * _x_buf_audio_name(uint32_t buf_type)
Returns audio codec name given the buffer type.
Definition: buffer_types.c:594
int resample_sync_method
Definition: audio_out.c:248
double compression_factor
Definition: audio_out.c:289
Definition: audio_out.c:188
int resend_mode
Definition: audio_out.c:311
broadcaster_t * _x_init_broadcaster(xine_stream_t *stream, int port)
Definition: broadcaster.c:313
int64_t resend_vpts
Definition: audio_out.c:307
int64_t vpts
Definition: audio_out.h:152
void _x_audio_out_resample_stereo(int16_t *last_sample, int16_t *input_samples, uint32_t in_samples, int16_t *output_samples, uint32_t out_samples)
Definition: resample.c:70
#define XINE_VERBOSITY_DEBUG
Definition: xine.h:426
int width
Definition: video_out.h:479
static void ao_resend_store(aos_t *this, audio_buffer_t *buf)
Definition: audio_out.c:925
static int ao_set_property(xine_audio_port_t *this_gen, int property, int value)
Definition: audio_out.c:2535
#define AO_CAP_PCM_VOL
Definition: audio_out.h:309
uint32_t pts_in_out_fifo
Definition: audio_out.c:261
void(* register_speed_change_callback)(metronom_clock_t *self, xine_speed_change_cb_t *callback, void *user_data)
Definition: metronom.h:287
#define xine_rwlock_unlock(l)
Definition: xine_private.h:231
audio_decoder_t * _x_get_audio_decoder(xine_stream_t *stream, uint8_t stream_type)
Definition: load_plugins.c:2730
static audio_buffer_t * ao_out_fifo_get(aos_t *this, audio_buffer_t *buf)
Definition: audio_out.c:637
void _x_audio_out_resample_monotostereo(int16_t *input_samples, int16_t *output_samples, uint32_t frames)
Definition: resample.c:339
static void ensure_buffer_size(audio_buffer_t *buf, int bytes_per_frame, int frames)
Definition: audio_out.c:1061
int _x_ao_channels2mode(int channels)
Definition: audio_out.c:1098
static void audio_put_cb(fifo_buffer_t *fifo, buf_element_t *buf, void *this_gen)
Definition: broadcaster.c:304
Definition: audio_out.c:139
#define BUFTYPE_SUB(type)
void xine_nbc_event(xine_stream_private_t *stream, uint32_t type)
Definition: net_buf_ctrl.c:352
uint32_t audio_thread_created
Definition: xine_private.h:437
ao_format_t format
Definition: audio_out.h:161
fifo_buffer_t * _x_dummy_fifo_buffer_new(int num_buffers, uint32_t buf_size)
Allocate and initialise new dummy FIFO buffers.
Definition: buffer.c:965
#define AUDIO_TRACK_MAP_MAX
#define BUF_CONTROL_END
Definition: buffer.h:70
#define AUDIO_TRACK_MAP_END
uint32_t audio_type
Definition: xine_private.h:464
pthread_cond_t done_stepping
Definition: audio_out.c:285
int _x_get_broadcaster_port(broadcaster_t *this_gen)
Definition: broadcaster.c:412
#define AUDIO_TRACK_MAP_MASK
static void mem_blend8(uint8_t *mem, uint8_t val, uint8_t o, size_t sz)
Definition: alphablend.c:49
Definition: broadcaster.c:82
int _x_audio_decoder_init(xine_stream_t *s)
Definition: audio_decoder.c:499
uint32_t resend_bits
Definition: audio_out.c:310
#define RESAMPLE_MAX_GAP_DIFF
Definition: audio_out.c:134
int port
Definition: broadcaster.c:84
#define xine_freep_aligned(xinefreepptr)
Definition: xineutils.h:294
#define PTR_IN_RANGE(_ptr, _start, _size)
Definition: xine_private.h:393
#define AO_PROP_CLOSE_DEVICE
Definition: audio_out.h:335
static void audio_filter_equalize(aos_t *this, int16_t *data, int num_frames)
Definition: audio_out.c:1260
int64_t recent_gap[8]
Definition: audio_out.c:144
#define AO_PROP_EQ_2000HZ
Definition: audio_out.h:331
audio_decoder_t * audio_decoder_plugin
Definition: xine_private.h:461
static audio_buffer_t * prepare_samples(aos_t *this, audio_buffer_t *buf)
Definition: audio_out.c:1302
int num_value
Definition: xine.h:1653
int audio_track_map_entries
Definition: xine_private.h:457
int hili_left
Definition: video_out.h:499
Definition: audio_out.h:43
uint8_t trans[256]
Definition: video_out.h:493
int(* get_property)(ao_driver_t *, int property)
Definition: audio_out.h:111
#define DISC_RELATIVE
Definition: metronom.h:66
int seek_count1
Definition: audio_out.c:268
xine_private_t * xine
Definition: audio_out.c:226
static void ao_force_unref_all(aos_t *this, int lock)
Definition: audio_out.c:499
pthread_t manager_thread
Definition: broadcaster.c:88
Definition: audio_out.h:172
enable disable number of frames of telecine pattern sync required before mode change make frames evenly spaced for film mode(24 fps)" ) PARAM_ITEM( POST_PARAM_TYPE_BOOL
int resample_conf
Definition: audio_out.c:256
pthread_mutex_t current_extra_info_lock
Definition: xine_private.h:542
#define abs(x)
Definition: xine_ogg_demuxer.c:349
#define BUF_CONTROL_AUDIO_CHANNEL
Definition: buffer.h:74
void _x_clear_xx44_palette(xx44_palette_t *p)
Definition: alphablend.c:1916
#define AO_PROP_EQ_4000HZ
Definition: audio_out.h:332
void(* free_buffer)(buf_element_t *buf)
Definition: buffer.h:357
Definition: audio_out.c:159
pthread_t audio_thread
Definition: xine_private.h:460
int num_driver_actions
Definition: audio_out.c:220
audio_buffer_t * first
Definition: audio_out.c:189
int driver_caps
Definition: audio_out.c:306
int streams_size
Definition: audio_out.c:232
void _x_blend_yuv(uint8_t *dst_base[3], vo_overlay_t *img_overl, int dst_width, int dst_height, int dst_pitches[3], alphablend_t *extra_data)
Definition: alphablend.c:1155
static void ao_update_av_sync_method(void *this_gen, xine_cfg_entry_t *entry)
Definition: audio_out.c:2731
static void audio_filter_compress(aos_t *this, int16_t *mem, int num_frames)
Definition: audio_out.c:1113
static int now(void)
Definition: xine_goom.c:382
static void ao_out_fifo_reref_append(aos_t *this, audio_buffer_t *buf, int is_first)
Definition: audio_out.c:553
void * decoder_info_ptr[5]
Definition: buffer.h:355
#define EI_RING_SIZE
Definition: audio_out.c:325
static int xine_refs_sub(xine_refs_t *refs, int n)
Definition: xine_private.h:134
uint32_t _x_stream_info_get(xine_stream_t *s, int info)
Definition: info_helper.c:100
#define BUF_CONTROL_START
Definition: buffer.h:69
#define INT8_MAX
Definition: goomsl_lex.c:62
static void ao_driver_lock(aos_t *this)
Definition: audio_out.c:333
unsigned size
Definition: alphablend.h:56
static uint32_t ao_get_capabilities(xine_audio_port_t *this_gen)
Definition: audio_out.c:2438
#define BUF_AUDIO_BASE
Definition: buffer.h:206
static void audio_filter_amp(aos_t *this, void *buf, int num_frames)
Definition: audio_out.c:1156
#define AO_PROP_EQ_16000HZ
Definition: audio_out.h:334
void(* register_put_cb)(fifo_buffer_t *fifo, void(*cb)(fifo_buffer_t *fifo, buf_element_t *buf, void *), void *cb_data)
Definition: buffer.h:632
#define BUF_CONTROL_NEWPTS
Definition: buffer.h:76
unsigned char * content
Definition: buffer.h:341
int x
Definition: video_out.h:477
#define SCHED_OTHER
Definition: video_decoder.c:48
xine_audio_port_t ao
Definition: audio_out.c:203
#define XINE_ANON_STREAM
Definition: xine_internal.h:173
uint32_t audio_step
Definition: audio_out.c:238
xine_ticket_t * port_ticket
Definition: xine_private.h:403
#define AO_CTRL_PLAY_PAUSE
Definition: audio_out.h:346
static int resample_rate_adjust(aos_t *this, int64_t gap, audio_buffer_t *buf)
Definition: audio_out.c:1457
static rle_elem_t * rle_img_advance_line(rle_elem_t *rle, rle_elem_t *rle_limit, int w)
Definition: alphablend.c:113
#define XINE_STREAM_INFO_AUDIO_CHANNELS
Definition: xine.h:1016
pthread_t audio_thread
Definition: audio_out.c:236
#define STREAMS_DEFAULT_SIZE
Definition: audio_out.c:228
static void ao_out_fifo_loop_flush(aos_t *this)
Definition: audio_out.c:867
fifo_buffer_t * audio_fifo
Definition: xine_internal.h:144
#define XINE_EVENT_UI_CHANNELS_CHANGED
Definition: xine.h:1815
static int sock_check_opened(int socket)
Definition: broadcaster.c:97
#define xine_rwlock_wrlock(l)
Definition: xine_private.h:228
int finished_count_audio
Definition: xine_private.h:518
void(* dispose)(fifo_buffer_t *fifo)
Definition: buffer.h:608
void _x_free_buf_elements(buf_element_t *head)
Free chained list of buffer elements.
Definition: buffer.c:974
int(* get_gap_tolerance)(ao_driver_t *self_gen)
Definition: audio_out.h:79
void _x_audio_out_resample_4channel(int16_t *last_sample, int16_t *input_samples, uint32_t in_samples, int16_t *output_samples, uint32_t out_samples)
Definition: resample.c:115
#define AO_PROP_BUFS_FREE
Definition: audio_out.h:340
int dreqs_wait
Definition: audio_out.c:208
int speed
Definition: metronom.h:284
static void ao_resend_fill(aos_t *this, int64_t pts_len, int64_t end_time)
Definition: audio_out.c:997
static void * manager_loop(void *this_gen)
Definition: broadcaster.c:214
static void ao_streams_open(aos_t *this)
Definition: audio_out.c:378
ao_driver_t * driver
Definition: audio_out.c:206
void(* set_audio_rate)(metronom_t *self, int64_t pts_per_smpls)
Definition: metronom.h:79
void _x_xx44_to_xvmc_palette(const xx44_palette_t *p, unsigned char *xvmc_palette, unsigned first_xx44_entry, unsigned num_xx44_entries, unsigned num_xvmc_components, const char *xvmc_components)
Definition: alphablend.c:1958
int num_streams
Definition: audio_out.c:231
#define XINE_STREAM_INFO_AUDIO_MODE
Definition: xine.h:1031
uint32_t decoder_flags
Definition: buffer.h:350
static int ao_control(xine_audio_port_t *this_gen, int cmd,...)
Definition: audio_out.c:2671
#define AO_PROP_EQ_8000HZ
Definition: audio_out.h:333
static void ao_unref_obsolete(aos_t *this)
Definition: audio_out.c:457
int gamma
Definition: audio_out.c:162
void _x_audio_out_resample_8to16(int8_t *input_samples, int16_t *output_samples, uint32_t samples)
Definition: resample.c:315
static void ao_resend_init(aos_t *this)
Definition: audio_out.c:887
pthread_mutex_t info_lock
Definition: xine_private.h:495
int type
Definition: xine.h:1929
#define SYNC_TIME_INTERVAL
Definition: audio_out.c:120
#define BUF_FLAG_GAPLESS_SW
Definition: buffer.h:408
uint32_t keep_ao_driver_open
Definition: xine_private.h:444
#define BUF_FLAG_SEEK
Definition: buffer.h:392
#define AO_PROP_EQ_250HZ
Definition: audio_out.h:328
xine_refs_t refs
Definition: xine_private.h:556
#define AO_CAP_NOCAP
Definition: audio_out.h:277
#define BUF_CONTROL_RESET_DECODER
Definition: buffer.h:77
#define XINE_SPEED_PAUSE
Definition: xine.h:364
#define BUF_AUDIO_UNKNOWN
Definition: buffer.h:207
void xine_list_remove(xine_list_t *list, xine_list_iterator_t position)
Definition: list.c:246
int dreqs_all
Definition: audio_out.c:207
Definition: alphablend.h:55
uint32_t type
Definition: buffer.h:362
uint16_t color
Definition: video_out.h:460
void _x_clut_yuv2rgb(uint32_t *clut, int num_items, int color_matrix)
Definition: alphablend.c:2189
pthread_mutex_t counter_lock
Definition: xine_private.h:514
uint64_t window_duration
Definition: audio_out.c:143
double frame_rate_factor
Definition: audio_out.c:253
uint32_t do_amp
Definition: audio_out.c:215
int step
Definition: audio_out.c:283
#define xine_rwlock_destroy(l)
Definition: xine_private.h:232
static void ao_ticket_revoked(void *user_data, int flags)
Definition: audio_out.c:778
pthread_cond_t not_empty
Definition: audio_out.c:193
int y
Definition: video_out.h:478
int data_length
Definition: xine.h:1927
void xine_log(xine_t *this_gen, int buf, const char *format,...)
Definition: xine.c:3340
int use_wake_time
Definition: audio_out.c:266
static void mem_blend24(uint8_t *mem, uint8_t r, uint8_t g, uint8_t b, uint8_t o, int len)
Definition: alphablend.c:69
uint8_t * resend_buf
Definition: audio_out.c:316
#define sat16(v)
Definition: audio_out.c:1258
Definition: alphablend.h:44
void _x_extra_info_reset(extra_info_t *extra_info)
Definition: xine.c:118
int offset_x
Definition: alphablend.h:36
static audio_buffer_t * ao_get_buffer(xine_audio_port_t *this_gen)
Definition: audio_out.c:2217
#define AO_PROP_AMP_MUTE
Definition: audio_out.h:336
static void mem_blend32(uint8_t *mem, const uint8_t *src, uint8_t o, int len)
Definition: alphablend.c:82
#define XINE_VERBOSITY_NONE
Definition: xine.h:424
int msock
Definition: broadcaster.c:85
static void alphablend_disable_exact_osd_alpha_blending_changed(void *user_data, xine_cfg_entry_t *entry)
Definition: alphablend.c:2154
xine_stream_t * stream
Definition: audio_out.h:159
#define XINE_NBC_EVENT_AUDIO_DRY
Definition: xine_private.h:575
void _x_audio_out_resample_16to8(int16_t *input_samples, int8_t *output_samples, uint32_t samples)
Definition: resample.c:327
int gap_tolerance
Definition: audio_out.c:250
#define FP_FRBITS
Definition: audio_out.c:155
static int input(void)
Definition: goomsl_lex.c:1495
uint32_t out_frames_per_kpts
Definition: audio_out.c:241
int audio_channel_user
Definition: xine_private.h:469
void(* close)(ao_driver_t *)
Definition: audio_out.h:95
audio_buffer_t * next
Definition: audio_out.h:146
const char * _x_meta_info_get(xine_stream_t *s, int info)
Definition: info_helper.c:414
unsigned int buffer_size
Definition: alphablend.h:32
double amp_factor
Definition: audio_out.c:291
#define QLEN
Definition: broadcaster.c:79
void _x_blend_rgb16(uint8_t *img, vo_overlay_t *img_overl, int img_width, int img_height, int dst_width, int dst_height, alphablend_t *extra_data)
Definition: alphablend.c:560
static void ao_fifo_open(audio_fifo_t *fifo)
Definition: audio_out.c:527
uint32_t early_finish_event
Definition: xine_private.h:442
pthread_mutex_t current_speed_lock
Definition: audio_out.c:271
void xine_free_aligned(void *ptr)
Definition: utils.c:882
pthread_cond_t counter_changed
Definition: xine_private.h:515
int num_buffers_max
Definition: audio_out.c:197
#define BUF_CONTROL_QUIT
Definition: buffer.h:71
int last_gap
Definition: audio_out.c:300
uint32_t do_resample
Definition: audio_out.c:213
#define AO_PROP_EQ_1000HZ
Definition: audio_out.h:330
int seek_count2
Definition: audio_out.c:320
uint32_t current_speed
Definition: audio_out.c:272
#define AO_CAP_MODE_AC5
Definition: audio_out.h:279
#define XINE_MSG_AUDIO_OUT_UNAVAILABLE
Definition: xine.h:2202
uint32_t video_thread_created
Definition: xine_private.h:436
#define AO_PROP_AMP
Definition: audio_out.h:324
#define xprintf(xine, verbose,...)
Definition: xineutils.h:664
buf_element_t *(* tget)(fifo_buffer_t *fifo, xine_ticket_t *ticket)
Definition: buffer.h:669
#define AO_PROP_EQ_60HZ
Definition: audio_out.h:326
ao_driver_t * _x_load_audio_output_plugin(xine_t *this, const char *id)
Definition: load_plugins.c:2442
Definition: xine_private.h:431
static void ao_flush_driver(aos_t *this)
Definition: audio_out.c:356
int last_sgap
Definition: audio_out.c:301
Definition: video_out.h:458
int64_t last_audio_vpts
Definition: audio_out.c:270
int height
Definition: video_out.h:480
static int xine_gettime(struct timespec *ts)
Definition: xine_private.h:238
uint8_t cr
Definition: alphablend.h:46
int(* register_bool)(config_values_t *self, const char *key, int def_value, const char *description, const char *help, int exp_level, xine_config_cb_t changed_cb, void *cb_data)
Definition: configfile.h:154
uint8_t * base_samp
Definition: audio_out.c:318
static void ao_speed_change_cb(void *this_gen, int new_speed)
Definition: audio_out.c:2319