41 #include <sys/types.h> 46 #define BUF_MAX_CALLBACKS 5 62 #define BUF_MAJOR_MASK 0xFF000000 63 #define BUF_DECODER_MASK 0x00FF0000 69 #define BUF_CONTROL_BASE 0x01000000 70 #define BUF_CONTROL_START 0x01000000 71 #define BUF_CONTROL_END 0x01010000 72 #define BUF_CONTROL_QUIT 0x01020000 73 #define BUF_CONTROL_DISCONTINUITY 0x01030000 74 #define BUF_CONTROL_NOP 0x01040000 75 #define BUF_CONTROL_AUDIO_CHANNEL 0x01050000 76 #define BUF_CONTROL_SPU_CHANNEL 0x01060000 77 #define BUF_CONTROL_NEWPTS 0x01070000 78 #define BUF_CONTROL_RESET_DECODER 0x01080000 79 #define BUF_CONTROL_HEADERS_DONE 0x01090000 80 #define BUF_CONTROL_FLUSH_DECODER 0x010a0000 81 #define BUF_CONTROL_RESET_TRACK_MAP 0x010b0000 89 #define BUF_VIDEO_BASE 0x02000000 90 #define BUF_VIDEO_UNKNOWN 0x02ff0000 91 #define BUF_VIDEO_MPEG 0x02000000 92 #define BUF_VIDEO_MPEG4 0x02010000 93 #define BUF_VIDEO_CINEPAK 0x02020000 94 #define BUF_VIDEO_SORENSON_V1 0x02030000 95 #define BUF_VIDEO_MSMPEG4_V2 0x02040000 96 #define BUF_VIDEO_MSMPEG4_V3 0x02050000 97 #define BUF_VIDEO_MJPEG 0x02060000 98 #define BUF_VIDEO_IV50 0x02070000 99 #define BUF_VIDEO_IV41 0x02080000 100 #define BUF_VIDEO_IV32 0x02090000 101 #define BUF_VIDEO_IV31 0x020a0000 102 #define BUF_VIDEO_ATIVCR1 0x020b0000 103 #define BUF_VIDEO_ATIVCR2 0x020c0000 104 #define BUF_VIDEO_I263 0x020d0000 105 #define BUF_VIDEO_RV10 0x020e0000 106 #define BUF_VIDEO_RGB 0x02100000 107 #define BUF_VIDEO_YUY2 0x02110000 108 #define BUF_VIDEO_JPEG 0x02120000 109 #define BUF_VIDEO_WMV7 0x02130000 110 #define BUF_VIDEO_WMV8 0x02140000 111 #define BUF_VIDEO_MSVC 0x02150000 112 #define BUF_VIDEO_DV 0x02160000 113 #define BUF_VIDEO_REAL 0x02170000 114 #define BUF_VIDEO_VP31 0x02180000 115 #define BUF_VIDEO_H263 0x02190000 116 #define BUF_VIDEO_3IVX 0x021A0000 117 #define BUF_VIDEO_CYUV 0x021B0000 118 #define BUF_VIDEO_DIVX5 0x021C0000 119 #define BUF_VIDEO_XVID 0x021D0000 120 #define BUF_VIDEO_SMC 0x021E0000 121 #define BUF_VIDEO_RPZA 0x021F0000 122 #define BUF_VIDEO_QTRLE 0x02200000 123 #define BUF_VIDEO_MSRLE 0x02210000 124 #define BUF_VIDEO_DUCKTM1 0x02220000 125 #define BUF_VIDEO_FLI 0x02230000 126 #define BUF_VIDEO_ROQ 0x02240000 127 #define BUF_VIDEO_SORENSON_V3 0x02250000 128 #define BUF_VIDEO_MSMPEG4_V1 0x02260000 129 #define BUF_VIDEO_MSS1 0x02270000 130 #define BUF_VIDEO_IDCIN 0x02280000 131 #define BUF_VIDEO_PGVV 0x02290000 132 #define BUF_VIDEO_ZYGO 0x022A0000 133 #define BUF_VIDEO_TSCC 0x022B0000 134 #define BUF_VIDEO_YVU9 0x022C0000 135 #define BUF_VIDEO_VQA 0x022D0000 136 #define BUF_VIDEO_GREY 0x022E0000 137 #define BUF_VIDEO_XXAN 0x022F0000 138 #define BUF_VIDEO_WC3 0x02300000 139 #define BUF_VIDEO_YV12 0x02310000 140 #define BUF_VIDEO_SEGA 0x02320000 141 #define BUF_VIDEO_RV20 0x02330000 142 #define BUF_VIDEO_RV30 0x02340000 143 #define BUF_VIDEO_MVI2 0x02350000 144 #define BUF_VIDEO_UCOD 0x02360000 145 #define BUF_VIDEO_WMV9 0x02370000 146 #define BUF_VIDEO_INTERPLAY 0x02380000 147 #define BUF_VIDEO_RV40 0x02390000 148 #define BUF_VIDEO_PSX_MDEC 0x023A0000 149 #define BUF_VIDEO_YUV_FRAMES 0x023B0000 150 #define BUF_VIDEO_HUFFYUV 0x023C0000 151 #define BUF_VIDEO_IMAGE 0x023D0000 152 #define BUF_VIDEO_THEORA 0x023E0000 153 #define BUF_VIDEO_4XM 0x023F0000 154 #define BUF_VIDEO_I420 0x02400000 155 #define BUF_VIDEO_VP4 0x02410000 156 #define BUF_VIDEO_VP5 0x02420000 157 #define BUF_VIDEO_VP6 0x02430000 158 #define BUF_VIDEO_VMD 0x02440000 159 #define BUF_VIDEO_MSZH 0x02450000 160 #define BUF_VIDEO_ZLIB 0x02460000 161 #define BUF_VIDEO_8BPS 0x02470000 162 #define BUF_VIDEO_ASV1 0x02480000 163 #define BUF_VIDEO_ASV2 0x02490000 164 #define BUF_VIDEO_BITPLANE 0x024A0000 165 #define BUF_VIDEO_BITPLANE_BR1 0x024B0000 166 #define BUF_VIDEO_FLV1 0x024C0000 167 #define BUF_VIDEO_H264 0x024D0000 168 #define BUF_VIDEO_MJPEG_B 0x024E0000 169 #define BUF_VIDEO_H261 0x024F0000 170 #define BUF_VIDEO_AASC 0x02500000 171 #define BUF_VIDEO_LOCO 0x02510000 172 #define BUF_VIDEO_QDRW 0x02520000 173 #define BUF_VIDEO_QPEG 0x02530000 174 #define BUF_VIDEO_ULTI 0x02540000 175 #define BUF_VIDEO_WNV1 0x02550000 176 #define BUF_VIDEO_XL 0x02560000 177 #define BUF_VIDEO_RT21 0x02570000 178 #define BUF_VIDEO_FPS1 0x02580000 179 #define BUF_VIDEO_DUCKTM2 0x02590000 180 #define BUF_VIDEO_CSCD 0x025A0000 181 #define BUF_VIDEO_ALGMM 0x025B0000 182 #define BUF_VIDEO_ZMBV 0x025C0000 183 #define BUF_VIDEO_AVS 0x025D0000 184 #define BUF_VIDEO_SMACKER 0x025E0000 185 #define BUF_VIDEO_NUV 0x025F0000 186 #define BUF_VIDEO_KMVC 0x02600000 187 #define BUF_VIDEO_FLASHSV 0x02610000 188 #define BUF_VIDEO_CAVS 0x02620000 189 #define BUF_VIDEO_VP6F 0x02630000 190 #define BUF_VIDEO_THEORA_RAW 0x02640000 191 #define BUF_VIDEO_VC1 0x02650000 192 #define BUF_VIDEO_VMNC 0x02660000 193 #define BUF_VIDEO_SNOW 0x02670000 194 #define BUF_VIDEO_VP8 0x02680000 195 #define BUF_VIDEO_VP9 0x02690000 196 #define BUF_VIDEO_HEVC 0x026A0000 204 #define BUF_AUDIO_BASE 0x03000000 205 #define BUF_AUDIO_UNKNOWN 0x03ff0000 206 #define BUF_AUDIO_A52 0x03000000 207 #define BUF_AUDIO_MPEG 0x03010000 208 #define BUF_AUDIO_LPCM_BE 0x03020000 209 #define BUF_AUDIO_LPCM_LE 0x03030000 210 #define BUF_AUDIO_WMAV1 0x03040000 211 #define BUF_AUDIO_DTS 0x03050000 212 #define BUF_AUDIO_MSADPCM 0x03060000 213 #define BUF_AUDIO_MSIMAADPCM 0x03070000 214 #define BUF_AUDIO_MSGSM 0x03080000 215 #define BUF_AUDIO_VORBIS 0x03090000 216 #define BUF_AUDIO_IMC 0x030a0000 217 #define BUF_AUDIO_LH 0x030b0000 218 #define BUF_AUDIO_VOXWARE 0x030c0000 219 #define BUF_AUDIO_ACELPNET 0x030d0000 220 #define BUF_AUDIO_AAC 0x030e0000 221 #define BUF_AUDIO_DNET 0x030f0000 222 #define BUF_AUDIO_VIVOG723 0x03100000 223 #define BUF_AUDIO_DK3ADPCM 0x03110000 224 #define BUF_AUDIO_DK4ADPCM 0x03120000 225 #define BUF_AUDIO_ROQ 0x03130000 226 #define BUF_AUDIO_QTIMAADPCM 0x03140000 227 #define BUF_AUDIO_MAC3 0x03150000 228 #define BUF_AUDIO_MAC6 0x03160000 229 #define BUF_AUDIO_QDESIGN1 0x03170000 230 #define BUF_AUDIO_QDESIGN2 0x03180000 231 #define BUF_AUDIO_QCLP 0x03190000 232 #define BUF_AUDIO_SMJPEG_IMA 0x031A0000 233 #define BUF_AUDIO_VQA_IMA 0x031B0000 234 #define BUF_AUDIO_MULAW 0x031C0000 235 #define BUF_AUDIO_ALAW 0x031D0000 236 #define BUF_AUDIO_GSM610 0x031E0000 237 #define BUF_AUDIO_EA_ADPCM 0x031F0000 238 #define BUF_AUDIO_WMAV2 0x03200000 239 #define BUF_AUDIO_COOK 0x03210000 240 #define BUF_AUDIO_ATRK 0x03220000 241 #define BUF_AUDIO_14_4 0x03230000 242 #define BUF_AUDIO_28_8 0x03240000 243 #define BUF_AUDIO_SIPRO 0x03250000 244 #define BUF_AUDIO_WMAPRO 0x03260000 245 #define BUF_AUDIO_WMAV3 BUF_AUDIO_WMAPRO 246 #define BUF_AUDIO_INTERPLAY 0x03270000 247 #define BUF_AUDIO_XA_ADPCM 0x03280000 248 #define BUF_AUDIO_WESTWOOD 0x03290000 249 #define BUF_AUDIO_DIALOGIC_IMA 0x032A0000 250 #define BUF_AUDIO_NSF 0x032B0000 251 #define BUF_AUDIO_FLAC 0x032C0000 252 #define BUF_AUDIO_DV 0x032D0000 253 #define BUF_AUDIO_WMAV 0x032E0000 254 #define BUF_AUDIO_SPEEX 0x032F0000 255 #define BUF_AUDIO_RAWPCM 0x03300000 256 #define BUF_AUDIO_4X_ADPCM 0x03310000 257 #define BUF_AUDIO_VMD 0x03320000 258 #define BUF_AUDIO_XAN_DPCM 0x03330000 259 #define BUF_AUDIO_ALAC 0x03340000 260 #define BUF_AUDIO_MPC 0x03350000 261 #define BUF_AUDIO_SHORTEN 0x03360000 262 #define BUF_AUDIO_WESTWOOD_SND1 0x03370000 263 #define BUF_AUDIO_WMALL 0x03380000 264 #define BUF_AUDIO_TRUESPEECH 0x03390000 265 #define BUF_AUDIO_TTA 0x033A0000 266 #define BUF_AUDIO_SMACKER 0x033B0000 267 #define BUF_AUDIO_FLVADPCM 0x033C0000 268 #define BUF_AUDIO_WAVPACK 0x033D0000 269 #define BUF_AUDIO_MP3ADU 0x033E0000 270 #define BUF_AUDIO_AMR_NB 0x033F0000 271 #define BUF_AUDIO_AMR_WB 0x03400000 272 #define BUF_AUDIO_EAC3 0x03410000 273 #define BUF_AUDIO_AAC_LATM 0x03420000 274 #define BUF_AUDIO_ADPCM_G726 0x03430000 275 #define BUF_AUDIO_OPUS 0x03440000 276 #define BUF_AUDIO_TRUEHD 0x03450000 283 #define BUF_SPU_BASE 0x04000000 284 #define BUF_SPU_DVD 0x04000000 285 #define BUF_SPU_TEXT 0x04010000 286 #define BUF_SPU_CC 0x04020000 287 #define BUF_SPU_DVB 0x04030000 288 #define BUF_SPU_SVCD 0x04040000 289 #define BUF_SPU_CVD 0x04050000 290 #define BUF_SPU_OGM 0x04060000 291 #define BUF_SPU_CMML 0x04070000 292 #define BUF_SPU_HDMV 0x04080000 299 #define BUF_DEMUX_BLOCK 0x05000000 331 #define BUF_NUM_DEC_INFO 5 364 #define BUF_FLAG_KEYFRAME 0x0001 367 #define BUF_FLAG_FRAME_START 0x0002 368 #define BUF_FLAG_FRAME_END 0x0004 372 #define BUF_FLAG_HEADER 0x0008 377 #define BUF_FLAG_PREVIEW 0x0010 380 #define BUF_FLAG_END_USER 0x0020 383 #define BUF_FLAG_END_STREAM 0x0040 386 #define BUF_FLAG_FRAMERATE 0x0080 389 #define BUF_FLAG_SEEK 0x0100 392 #define BUF_FLAG_SPECIAL 0x0200 398 #define BUF_FLAG_STDHEADER 0x0400 402 #define BUF_FLAG_ASPECT 0x0800 405 #define BUF_FLAG_GAPLESS_SW 0x1000 413 #define BUF_FLAG_AUDIO_PADDING 0x2000 418 #define BUF_FLAG_COLOR_MATRIX 0x4000 423 #define BUF_FLAG_MERGE 0x8000 459 #define BUF_SPECIAL_PALETTE 1 476 #define BUF_SPECIAL_ASPECT 3 486 #define BUF_SPECIAL_DECODER_CONFIG 4 500 #define BUF_SPECIAL_STSD_ATOM 5 510 #define BUF_SPECIAL_LPCM_CONFIG 6 521 #define BUF_SPECIAL_CHARSET_ENCODING 7 531 #define BUF_SPECIAL_SPU_DVD_SUBTYPE 8 534 #define SPU_DVD_SUBTYPE_CLUT 1 535 #define SPU_DVD_SUBTYPE_PACKAGE 2 536 #define SPU_DVD_SUBTYPE_VOBSUB_PACKAGE 3 537 #define SPU_DVD_SUBTYPE_NAV 4 550 #define BUF_SPECIAL_SPU_DVB_DESCRIPTOR 9 560 #define BUF_SPECIAL_RV_CHUNK_TABLE 10 752 return memcmp(ptr, tag, 4) == 0;
uint32_t type
Definition: buffer.h:359
int fifo_num_waiters
Definition: buffer.h:660
buf_element_t * buffer_pool_top
Definition: buffer.h:638
fifo_buffer_t * _x_fifo_buffer_new(int num_buffers, uint32_t buf_size)
Allocate and initialise new (empty) FIFO buffers.
Definition: buffer.c:740
int32_t size
Definition: buffer.h:340
void(* alloc_cb[5])(fifo_buffer_t *fifo, void *data_cb)
Definition: buffer.h:645
unsigned char g
Definition: buffer.h:574
void(* register_alloc_cb)(fifo_buffer_t *fifo, void(*cb)(fifo_buffer_t *fifo, void *), void *cb_data)
Definition: buffer.h:628
void(* unregister_get_cb)(fifo_buffer_t *fifo, void(*cb)(fifo_buffer_t *fifo, buf_element_t *buf, void *))
Definition: buffer.h:633
uint32_t(* data_size)(fifo_buffer_t *fifo)
Definition: buffer.h:603
buf_element_t * first
Definition: buffer.h:580
int64_t pts
Definition: buffer.h:342
uint32_t _x_formattag_to_buf_audio(uint32_t formattag)
Returns the BUF_AUDIO_xxx for the given formattag.
Definition: buffer_types.c:1291
int buffer_pool_large_wait
Definition: buffer.h:659
char lang[4]
Definition: buffer.h:566
buf_element_t * last
Definition: buffer.h:580
buf_element_t * next
Definition: buffer.h:335
void _x_waveformatex_le2me(xine_waveformatex *wavex)
Definition: buffer_types.c:1380
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:829
#define XINE_PACKED
Definition: attributes.h:125
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:629
void(* insert)(fifo_buffer_t *fifo, buf_element_t *buf)
Definition: buffer.h:625
uint32_t _x_fourcc_to_buf_video(uint32_t fourcc_int)
Returns the BUF_VIDEO_xxx for the given fourcc.
Definition: buffer_types.c:1257
const char * _x_buf_video_name(uint32_t buf_type)
Returns video codec name given the buffer type.
Definition: buffer_types.c:1277
uint32_t decoder_info[5]
Definition: buffer.h:350
void * alloc_cb_data[5]
Definition: buffer.h:648
void(* dispose)(fifo_buffer_t *fifo)
Definition: buffer.h:605
int buffer_pool_num_waiters
Definition: buffer.h:658
void * source
Definition: buffer.h:356
void(* get_cb[5])(fifo_buffer_t *fifo, buf_element_t *buf, void *data_cb)
Definition: buffer.h:647
unsigned char r
Definition: buffer.h:574
void _x_bmiheader_le2me(xine_bmiheader *bih)
Definition: buffer_types.c:1363
long comp_page_id
Definition: buffer.h:567
pthread_cond_t not_empty
Definition: buffer.h:587
pthread_mutex_t buffer_pool_mutex
Definition: buffer.h:639
int(* num_free)(fifo_buffer_t *fifo)
Definition: buffer.h:601
void * get_cb_data[5]
Definition: buffer.h:650
int fifo_size
Definition: buffer.h:582
void * buffer_pool_base
Definition: buffer.h:644
int buffer_pool_buf_size
Definition: buffer.h:643
unsigned char * mem
Definition: buffer.h:337
int buffer_pool_capacity
Definition: buffer.h:642
uint32_t decoder_flags
Definition: buffer.h:347
int64_t disc_off
Definition: buffer.h:343
void(* register_get_cb)(fifo_buffer_t *fifo, void(*cb)(fifo_buffer_t *fifo, buf_element_t *buf, void *), void *cb_data)
Definition: buffer.h:630
unsigned char * content
Definition: buffer.h:338
#define XINE_PROTECTED
Definition: attributes.h:73
void * put_cb_data[5]
Definition: buffer.h:649
int buffer_pool_num_free
Definition: buffer.h:641
void * fifo_empty_cb_data
Definition: buffer.h:584
int(* size)(fifo_buffer_t *fifo)
Definition: buffer.h:599
void(* put_cb[5])(fifo_buffer_t *fifo, buf_element_t *buf, void *data_cb)
Definition: buffer.h:646
unsigned char b
Definition: buffer.h:574
void(* put)(fifo_buffer_t *fifo, buf_element_t *buf)
Definition: buffer.h:593
void * decoder_info_ptr[5]
Definition: buffer.h:352
pthread_mutex_t mutex
Definition: buffer.h:586
#define BUF_MAX_CALLBACKS
Definition: buffer.h:46
void(* clear)(fifo_buffer_t *fifo)
Definition: buffer.h:597
#define BUF_NUM_DEC_INFO
Definition: buffer.h:331
uint32_t fifo_data_size
Definition: buffer.h:583
void(* unregister_put_cb)(fifo_buffer_t *fifo, void(*cb)(fifo_buffer_t *fifo, buf_element_t *buf, void *))
Definition: buffer.h:632
const char * _x_buf_audio_name(uint32_t buf_type)
Returns audio codec name given the buffer type.
Definition: buffer_types.c:1311
void(* free_buffer)(buf_element_t *buf)
Definition: buffer.h:354
long aux_page_id
Definition: buffer.h:568
void(* unregister_alloc_cb)(fifo_buffer_t *fifo, void(*cb)(fifo_buffer_t *fifo, void *))
Definition: buffer.h:631
int32_t max_size
Definition: buffer.h:341
pthread_cond_t buffer_pool_cond_not_empty
Definition: buffer.h:640
static __inline int _x_is_fourcc(const void *ptr, const void *tag)
Definition: buffer.h:751
extra_info_t * extra_info
Definition: buffer.h:345