alphablend.h   alphablend.h 
skipping to change at line 42 skipping to change at line 42
int buffer_size; int buffer_size;
int disable_exact_blending; int disable_exact_blending;
int offset_x, offset_y; int offset_x, offset_y;
} alphablend_t; } alphablend_t;
void _x_alphablend_init(alphablend_t *extra_data, xine_t *xine) XINE_PROTEC TED; void _x_alphablend_init(alphablend_t *extra_data, xine_t *xine) XINE_PROTEC TED;
void _x_alphablend_free(alphablend_t *extra_data) XINE_PROTECTED; void _x_alphablend_free(alphablend_t *extra_data) XINE_PROTECTED;
/* _MSC_VER port changes */ #if !SUPPORT_ATTRIBUTE_PACKED
#undef ATTRIBUTE_PACKED
#undef PRAGMA_PACK_BEGIN
#undef PRAGMA_PACK_END
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) || defined(__IC
C)
#define ATTRIBUTE_PACKED __attribute__ ((packed))
#define PRAGMA_PACK 0
#endif
#if !defined(ATTRIBUTE_PACKED)
#define ATTRIBUTE_PACKED
#define PRAGMA_PACK 1
#endif
#if PRAGMA_PACK
#pragma pack(8) #pragma pack(8)
#endif #endif
typedef struct { /* CLUT == Color LookUp Table */ typedef struct { /* CLUT == Color LookUp Table */
uint8_t cb; uint8_t cb;
uint8_t cr; uint8_t cr;
uint8_t y; uint8_t y;
uint8_t foo; uint8_t foo;
} ATTRIBUTE_PACKED clut_t; } XINE_PACKED clut_t;
#if PRAGMA_PACK #if !SUPPORT_ATTRIBUTE_PACKED
#pragma pack() #pragma pack()
#endif #endif
#define XX44_PALETTE_SIZE 32 #define XX44_PALETTE_SIZE 32
typedef struct { typedef struct {
unsigned size; unsigned size;
unsigned max_used; unsigned max_used;
uint32_t cluts[XX44_PALETTE_SIZE]; uint32_t cluts[XX44_PALETTE_SIZE];
/* cache palette entries for both colors and hili_colors */ /* cache palette entries for both colors and hili_colors */
 End of changes. 3 change blocks. 
19 lines changed or deleted 3 lines changed or added


 array.h   array.h 
skipping to change at line 30 skipping to change at line 30
* Array that can grow automatically when you add elements. * Array that can grow automatically when you add elements.
* Inserting an element in the middle of the array implies memory moves. * Inserting an element in the middle of the array implies memory moves.
*/ */
#ifndef XINE_ARRAY_H #ifndef XINE_ARRAY_H
#define XINE_ARRAY_H #define XINE_ARRAY_H
/* Array type */ /* Array type */
typedef struct xine_array_s xine_array_t; typedef struct xine_array_s xine_array_t;
/* Constructor */ /* Constructor */
xine_array_t *xine_array_new(size_t initial_size) XINE_PROTECTED; xine_array_t *xine_array_new(size_t initial_size) XINE_MALLOC XINE_PROTECTE D;
/* Destructor */ /* Destructor */
void xine_array_delete(xine_array_t *array) XINE_PROTECTED; void xine_array_delete(xine_array_t *array) XINE_PROTECTED;
/* Returns the number of element stored in the array */ /* Returns the number of element stored in the array */
size_t xine_array_size(const xine_array_t *array) XINE_PROTECTED; size_t xine_array_size(const xine_array_t *array) XINE_PROTECTED;
/* Removes all elements from an array */ /* Removes all elements from an array */
void xine_array_clear(xine_array_t *array) XINE_PROTECTED; void xine_array_clear(xine_array_t *array) XINE_PROTECTED;
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 attributes.h   attributes.h 
skipping to change at line 35 skipping to change at line 35
#ifndef ATTRIBUTE_H_ #ifndef ATTRIBUTE_H_
#define ATTRIBUTE_H_ #define ATTRIBUTE_H_
#ifdef ATTRIBUTE_ALIGNED_MAX #ifdef ATTRIBUTE_ALIGNED_MAX
#define ATTR_ALIGN(align) __attribute__ ((__aligned__ ((ATTRIBUTE_ALIGNED_M AX < align) ? ATTRIBUTE_ALIGNED_MAX : align))) #define ATTR_ALIGN(align) __attribute__ ((__aligned__ ((ATTRIBUTE_ALIGNED_M AX < align) ? ATTRIBUTE_ALIGNED_MAX : align)))
#else #else
#define ATTR_ALIGN(align) #define ATTR_ALIGN(align)
#endif #endif
/* disable GNU __attribute__ extension, when not compiling with GNU C */
#if defined(__GNUC__) || defined (__ICC)
#ifndef ATTRIBUTE_PACKED
#define ATTRIBUTE_PACKED 1
#endif
#else
#undef ATTRIBUTE_PACKED
#ifndef __attribute__
#define __attribute__(x) /**/
#endif /* __attribute __*/
#endif
#ifdef XINE_COMPILE #ifdef XINE_COMPILE
# include "configure.h" # include "configure.h"
#else
# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95 )
# define SUPPORT_ATTRIBUTE_PACKED 1
# endif
# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3 )
# define SUPPORT_ATTRIBUTE_DEPRECATED 1
# define SUPPORT_ATTRIBUTE_FORMAT 1
# define SUPPORT_ATTRIBUTE_FORMAT_ARG 1
# define SUPPORT_ATTRIBUTE_MALLOC 1
# define SUPPORT_ATTRIBUTE_UNUSED 1
# define SUPPORT_ATTRIBUTE_CONST 1
# endif
# if __GNUC__ >= 4
# define SUPPORT_ATTRIBUTE_VISIBILITY_DEFAULT 1
# if __ELF__
# define SUPPORT_ATTRIBUTE_VISIBILITY_PROTECTED 1
# endif
# define SUPPORT_ATTRIBUTE_SENTINEL 1
# endif
#endif #endif
/* Export protected only for libxine functions */ /* Export protected only for libxine functions */
#if defined(XINE_LIBRARY_COMPILE) && defined(SUPPORT_ATTRIBUTE_VISIBILITY_P ROTECTED) #if defined(XINE_LIBRARY_COMPILE) && defined(SUPPORT_ATTRIBUTE_VISIBILITY_P ROTECTED)
# define XINE_PROTECTED __attribute__((__visibility__("protected"))) # define XINE_PROTECTED __attribute__((__visibility__("protected")))
#elif defined(XINE_LIBRARY_COMPILE) && defined(SUPPORT_ATTRIBUTE_VISIBILITY _DEFAULT) #elif defined(XINE_LIBRARY_COMPILE) && defined(SUPPORT_ATTRIBUTE_VISIBILITY _DEFAULT)
# define XINE_PROTECTED __attribute__((__visibility__("default"))) # define XINE_PROTECTED __attribute__((__visibility__("default")))
#else #else
# define XINE_PROTECTED # define XINE_PROTECTED
#endif #endif
#ifdef SUPPORT_ATTRIBUTE_SENTINEL #ifdef SUPPORT_ATTRIBUTE_SENTINEL
# define XINE_SENTINEL __attribute__((__sentinel__)) # define XINE_SENTINEL __attribute__((__sentinel__))
#else #else
# define XINE_SENTINEL # define XINE_SENTINEL
#endif #endif
#ifdef SUPPORT_ATTRIBUTE_DEPRECATED
# define XINE_DEPRECATED __attribute__((__deprecated__))
#else
# define XINE_DEPRECATED
#endif
#ifndef __attr_unused #ifndef __attr_unused
# ifdef SUPPORT_ATTRIBUTE_UNUSED # ifdef SUPPORT_ATTRIBUTE_UNUSED
# define __attr_unused __attribute__((__unused__)) # define __attr_unused __attribute__((__unused__))
# else # else
# define __attr_unused # define __attr_unused
# endif # endif
#endif #endif
/* Format attributes */ /* Format attributes */
#ifdef SUPPORT_ATTRIBUTE_FORMAT #ifdef SUPPORT_ATTRIBUTE_FORMAT
# define XINE_FORMAT_PRINTF(fmt,var) __attribute__((__format__(__printf__, fmt, var))) # define XINE_FORMAT_PRINTF(fmt,var) __attribute__((__format__(__printf__, fmt, var)))
#else #else
# define XINE_FORMAT_PRINTF(fmt,var) # define XINE_FORMAT_PRINTF(fmt,var)
#endif #endif
#ifdef SUPPORT_ATTRIBUTE_FORMAT_ARG #ifdef SUPPORT_ATTRIBUTE_FORMAT_ARG
# define XINE_FORMAT_PRINTF_ARG(fmt) __attribute__((__format_arg__(fmt))) # define XINE_FORMAT_PRINTF_ARG(fmt) __attribute__((__format_arg__(fmt)))
#else #else
# define XINE_FORMAT_PRINTF_ARG(fmt) # define XINE_FORMAT_PRINTF_ARG(fmt)
#endif #endif
#ifdef SUPPORT_ATTRIBUTE_MALLOC
# define XINE_MALLOC __attribute__((__malloc__))
#else
# define XINE_MALLOC
#endif
#ifdef SUPPORT_ATTRIBUTE_PACKED
# define XINE_PACKED __attribute__((__packed__))
#else
# define XINE_PACKED
#endif
#ifdef SUPPORT_ATTRIBUTE_CONST
# define XINE_CONST __attribute__((__const__))
#else
# define XINE_CONST
#endif
#endif /* ATTRIBUTE_H_ */ #endif /* ATTRIBUTE_H_ */
 End of changes. 4 change blocks. 
12 lines changed or deleted 45 lines changed or added


 audio_out.h   audio_out.h 
skipping to change at line 260 skipping to change at line 260
* free all class-related resources * free all class-related resources
*/ */
void (*dispose) (audio_driver_class_t *); void (*dispose) (audio_driver_class_t *);
}; };
/* /*
* this initiates the audio_out sync routines * this initiates the audio_out sync routines
* found in ./src/xine-engine/audio_out.c * found in ./src/xine-engine/audio_out.c
*/ */
xine_audio_port_t *_x_ao_new_port (xine_t *xine, ao_driver_t *driver, int g rab_only) XINE_PROTECTED; xine_audio_port_t *_x_ao_new_port (xine_t *xine, ao_driver_t *driver, int g rab_only) XINE_MALLOC XINE_PROTECTED;
/* /*
* audio output modes + capabilities * audio output modes + capabilities
*/ */
#define AO_CAP_NOCAP 0x00000000 /* driver has no capabilities */ #define AO_CAP_NOCAP 0x00000000 /* driver has no capabilities */
#define AO_CAP_MODE_A52 0x00000001 /* driver supports A/52 output */ #define AO_CAP_MODE_A52 0x00000001 /* driver supports A/52 output */
#define AO_CAP_MODE_AC5 0x00000002 /* driver supports AC5 output */ #define AO_CAP_MODE_AC5 0x00000002 /* driver supports AC5 output */
/* 1 sample == 2 bytes (C) */ /* 1 sample == 2 bytes (C) */
#define AO_CAP_MODE_MONO 0x00000004 /* driver supports mono output */ #define AO_CAP_MODE_MONO 0x00000004 /* driver supports mono output */
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 broadcaster.h   broadcaster.h 
skipping to change at line 36 skipping to change at line 36
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"
#endif #endif
typedef struct broadcaster_s broadcaster_t; typedef struct broadcaster_s broadcaster_t;
broadcaster_t *_x_init_broadcaster(xine_stream_t *stream, int port) XINE_PR OTECTED; broadcaster_t *_x_init_broadcaster(xine_stream_t *stream, int port) XINE_MA LLOC XINE_PROTECTED;
void _x_close_broadcaster(broadcaster_t *c_this) XINE_PROTECTED; void _x_close_broadcaster(broadcaster_t *c_this) XINE_PROTECTED;
int _x_get_broadcaster_port(broadcaster_t *c_this) XINE_PROTECTED; int _x_get_broadcaster_port(broadcaster_t *c_this) XINE_PROTECTED;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif #endif
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 buffer.h   buffer.h 
skipping to change at line 603 skipping to change at line 603
void *put_cb_data[BUF_MAX_CALLBACKS]; void *put_cb_data[BUF_MAX_CALLBACKS];
void *get_cb_data[BUF_MAX_CALLBACKS]; void *get_cb_data[BUF_MAX_CALLBACKS];
} ; } ;
/* /*
* allocate and initialize new (empty) fifo buffer, * allocate and initialize new (empty) fifo buffer,
* init buffer pool for it: * init buffer pool for it:
* allocate num_buffers of buf_size bytes each * allocate num_buffers of buf_size bytes each
*/ */
fifo_buffer_t *_x_fifo_buffer_new (int num_buffers, uint32_t buf_size) XINE fifo_buffer_t *_x_fifo_buffer_new (int num_buffers, uint32_t buf_size) XINE
_PROTECTED; _MALLOC XINE_PROTECTED;
fifo_buffer_t *_x_dummy_fifo_buffer_new (int num_buffers, uint32_t buf_size fifo_buffer_t *_x_dummy_fifo_buffer_new (int num_buffers, uint32_t buf_size
) XINE_PROTECTED; ) XINE_MALLOC XINE_PROTECTED;
/* return BUF_VIDEO_xxx given the fourcc /* return BUF_VIDEO_xxx given the fourcc
* fourcc_int must be read in machine endianness * fourcc_int must be read in machine endianness
* example: fourcc_int = *(uint32_t *)fourcc_char; * example: fourcc_int = *(uint32_t *)fourcc_char;
*/ */
uint32_t _x_fourcc_to_buf_video( uint32_t fourcc_int ) XINE_PROTECTED; uint32_t _x_fourcc_to_buf_video( uint32_t fourcc_int ) XINE_PROTECTED;
/* return codec name given BUF_VIDEO_xxx */ /* return codec name given BUF_VIDEO_xxx */
char * _x_buf_video_name( uint32_t buf_type ) XINE_PROTECTED; char * _x_buf_video_name( uint32_t buf_type ) XINE_PROTECTED;
/* return BUF_AUDIO_xxx given the formattag */ /* return BUF_AUDIO_xxx given the formattag */
uint32_t _x_formattag_to_buf_audio( uint32_t formattag ) XINE_PROTECTED; uint32_t _x_formattag_to_buf_audio( uint32_t formattag ) XINE_PROTECTED;
/* return codec name given BUF_AUDIO_xxx */ /* return codec name given BUF_AUDIO_xxx */
char * _x_buf_audio_name( uint32_t buf_type ) XINE_PROTECTED; char * _x_buf_audio_name( uint32_t buf_type ) XINE_PROTECTED;
#ifndef ATTRIBUTE_PACKED #ifndef SUPPORT_ATTRIBUTE_PACKED
/* no attribute packed? let's try with pragma pack as a last resort */ /* no attribute packed? let's try with pragma pack as a last resort */
#pragma pack(2) #pragma pack(2)
#endif #endif
/* this is xine version of BITMAPINFOHEADER /* this is xine version of BITMAPINFOHEADER
* - should be safe to compile on 64bits machines * - should be safe to compile on 64bits machines
* - will always use machine endian format, so demuxers reading * - will always use machine endian format, so demuxers reading
* stuff from win32 formats must use the function below. * stuff from win32 formats must use the function below.
*/ */
typedef struct __attribute__((__packed__)) { typedef struct XINE_PACKED {
int32_t biSize; int32_t biSize;
int32_t biWidth; int32_t biWidth;
int32_t biHeight; int32_t biHeight;
int16_t biPlanes; int16_t biPlanes;
int16_t biBitCount; int16_t biBitCount;
uint32_t biCompression; uint32_t biCompression;
int32_t biSizeImage; int32_t biSizeImage;
int32_t biXPelsPerMeter; int32_t biXPelsPerMeter;
int32_t biYPelsPerMeter; int32_t biYPelsPerMeter;
int32_t biClrUsed; int32_t biClrUsed;
int32_t biClrImportant; int32_t biClrImportant;
} xine_bmiheader; } xine_bmiheader;
/* this is xine version of WAVEFORMATEX /* this is xine version of WAVEFORMATEX
* (the same comments from xine_bmiheader) * (the same comments from xine_bmiheader)
*/ */
typedef struct __attribute__((__packed__)) { typedef struct XINE_PACKED {
int16_t wFormatTag; int16_t wFormatTag;
int16_t nChannels; int16_t nChannels;
int32_t nSamplesPerSec; int32_t nSamplesPerSec;
int32_t nAvgBytesPerSec; int32_t nAvgBytesPerSec;
int16_t nBlockAlign; int16_t nBlockAlign;
int16_t wBitsPerSample; int16_t wBitsPerSample;
int16_t cbSize; int16_t cbSize;
} xine_waveformatex; } xine_waveformatex;
#ifndef ATTRIBUTE_PACKED #ifndef SUPPORT_ATTRIBUTE_PACKED
#pragma pack() #pragma pack()
#endif #endif
/* convert xine_bmiheader struct from little endian */ /* convert xine_bmiheader struct from little endian */
void _x_bmiheader_le2me( xine_bmiheader *bih ) XINE_PROTECTED; void _x_bmiheader_le2me( xine_bmiheader *bih ) XINE_PROTECTED;
/* convert xine_waveformatex struct from little endian */ /* convert xine_waveformatex struct from little endian */
void _x_waveformatex_le2me( xine_waveformatex *wavex ) XINE_PROTECTED; void _x_waveformatex_le2me( xine_waveformatex *wavex ) XINE_PROTECTED;
#ifdef __cplusplus #ifdef __cplusplus
 End of changes. 5 change blocks. 
8 lines changed or deleted 8 lines changed or added


 configfile.h   configfile.h 
skipping to change at line 202 skipping to change at line 202
/* /*
* current config file's version number * current config file's version number
*/ */
int current_version; int current_version;
}; };
/* /*
* allocate and init a new xine config object * allocate and init a new xine config object
*/ */
config_values_t *_x_config_init (void) XINE_PROTECTED; config_values_t *_x_config_init (void) XINE_MALLOC XINE_PROTECTED;
/* /*
* interpret stream_setup part of mrls for config value changes * interpret stream_setup part of mrls for config value changes
*/ */
int _x_config_change_opt(config_values_t *config, const char *opt) XINE_PRO TECTED; int _x_config_change_opt(config_values_t *config, const char *opt) XINE_PRO TECTED;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 input_plugin.h   input_plugin.h 
skipping to change at line 325 skipping to change at line 325
#define mrl_file_normal (1 << 11) #define mrl_file_normal (1 << 11)
#define mrl_file_symlink (1 << 12) #define mrl_file_symlink (1 << 12)
#define mrl_file_sock (1 << 13) #define mrl_file_sock (1 << 13)
#define mrl_file_exec (1 << 14) #define mrl_file_exec (1 << 14)
#define mrl_file_backup (1 << 15) #define mrl_file_backup (1 << 15)
#define mrl_file_hidden (1 << 16) #define mrl_file_hidden (1 << 16)
/* /*
* Freeing/zeroing all of entries of given mrl. * Freeing/zeroing all of entries of given mrl.
*/ */
#define MRL_ZERO(m) { #define MRL_ZERO(m) { \
\ if((m)) { \
if((m)) { free((m)->origin); \
\ free((m)->mrl); \
if((m)->origin) free((m)->link); \
\ (m)->origin = NULL;
free((m)->origin); \
\ (m)->mrl = NULL;
if((m)->mrl) \
\ (m)->link = NULL;
free((m)->mrl); \
\ (m)->type = 0; \
if((m)->link) (m)->size = (off_t) 0; \
\ } \
free((m)->link); }
\
(m)->origin = NULL;
\
(m)->mrl = NULL;
\
(m)->link = NULL;
\
(m)->type = 0;
\
(m)->size = (off_t) 0;
\
}
\
}
/* /*
* Duplicate two mrls entries (s = source, d = destination). * Duplicate two mrls entries (s = source, d = destination).
*/ */
#define MRL_DUPLICATE(s, d) { #define MRL_DUPLICATE(s, d) { \
\ _x_assert((s) != NULL); \
_x_assert((s) != NULL); _x_assert((d) != NULL); \
\ \
_x_assert((d) != NULL); free((d)->origin); \
\ (d)->origin = (s)->origin ? strdup((s)->origin) : NULL; \
\
\ free((d)->mrl); \
if((s)->origin) { (d)->mrl = (s)->mrl ? strdup((s)->mrl) : NULL; \
\ \
if((d)->origin) { free((d)->link); \
\ (d)->link = (s)->link ? strdup((s)->link) : NULL; \
(d)->origin = (char *) realloc((d)->origin, strlen((s)->origin) + 1); \
\ (d)->type = (s)->type; \
sprintf((d)->origin, "%s", (s)->origin); (d)->size = (s)->size; \
\ }
}
\
else
\
(d)->origin = strdup((s)->origin);
\
}
\
else
\
(d)->origin = NULL;
\
\
if((s)->mrl) {
\
if((d)->mrl) {
\
(d)->mrl = (char *) realloc((d)->mrl, strlen((s)->mrl) + 1);
\
sprintf((d)->mrl, "%s", (s)->mrl);
\
}
\
else
\
(d)->mrl = strdup((s)->mrl);
\
}
\
else
\
(d)->mrl = NULL;
\
\
if((s)->link) {
\
if((d)->link) {
\
(d)->link = (char *) realloc((d)->link, strlen((s)->link) + 1);
\
sprintf((d)->link, "%s", (s)->link);
\
}
\
else
\
(d)->link = strdup((s)->link);
\
}
\
else
\
(d)->link = NULL;
\
\
(d)->type = (s)->type;
\
(d)->size = (s)->size;
\
}
/* /*
* Duplicate two arrays of mrls (s = source, d = destination). * Duplicate two arrays of mrls (s = source, d = destination).
*/ */
#define MRLS_DUPLICATE(s, d) { \ #define MRLS_DUPLICATE(s, d) { \
int i = 0; \ int i = 0; \
\ \
_x_assert((s) != NULL); \ _x_assert((s) != NULL); \
_x_assert((d) != NULL); \ _x_assert((d) != NULL); \
\ \
 End of changes. 2 change blocks. 
108 lines changed or deleted 31 lines changed or added


 list.h   list.h 
skipping to change at line 51 skipping to change at line 51
#ifndef XINE_LIST_H #ifndef XINE_LIST_H
#define XINE_LIST_H #define XINE_LIST_H
/* Doubly-linked list type */ /* Doubly-linked list type */
typedef struct xine_list_s xine_list_t; typedef struct xine_list_s xine_list_t;
/* List iterator */ /* List iterator */
typedef void* xine_list_iterator_t; typedef void* xine_list_iterator_t;
/* Constructor */ /* Constructor */
xine_list_t *xine_list_new(void) XINE_PROTECTED; xine_list_t *xine_list_new(void) XINE_MALLOC XINE_PROTECTED;
/* Destructor */ /* Destructor */
void xine_list_delete(xine_list_t *list) XINE_PROTECTED; void xine_list_delete(xine_list_t *list) XINE_PROTECTED;
/* Returns the number of element stored in the list */ /* Returns the number of element stored in the list */
unsigned int xine_list_size(xine_list_t *list) XINE_PROTECTED; unsigned int xine_list_size(xine_list_t *list) XINE_PROTECTED;
/* Returns true if the number of elements is zero, false otherwise */ /* Returns true if the number of elements is zero, false otherwise */
unsigned int xine_list_empty(xine_list_t *list) XINE_PROTECTED; unsigned int xine_list_empty(xine_list_t *list) XINE_PROTECTED;
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 metronom.h   metronom.h 
skipping to change at line 226 skipping to change at line 226
* metronom options * metronom options
*/ */
#define METRONOM_AV_OFFSET 2 #define METRONOM_AV_OFFSET 2
#define METRONOM_ADJ_VPTS_OFFSET 3 #define METRONOM_ADJ_VPTS_OFFSET 3
#define METRONOM_FRAME_DURATION 4 #define METRONOM_FRAME_DURATION 4
#define METRONOM_SPU_OFFSET 5 #define METRONOM_SPU_OFFSET 5
#define METRONOM_VPTS_OFFSET 6 #define METRONOM_VPTS_OFFSET 6
#define METRONOM_PREBUFFER 7 #define METRONOM_PREBUFFER 7
metronom_t *_x_metronom_init (int have_video, int have_audio, xine_t *xine) XINE_PROTECTED; metronom_t *_x_metronom_init (int have_video, int have_audio, xine_t *xine) XINE_MALLOC XINE_PROTECTED;
/* FIXME: reorder this structure on the next cleanup to remove the dummies */ /* FIXME: reorder this structure on the next cleanup to remove the dummies */
struct metronom_clock_s { struct metronom_clock_s {
/* /*
* set/get options for clock, constants see below * set/get options for clock, constants see below
*/ */
void (*set_option) (metronom_clock_t *self, int option, int64_t value); void (*set_option) (metronom_clock_t *self, int option, int64_t value);
int64_t (*get_option) (metronom_clock_t *self, int option); int64_t (*get_option) (metronom_clock_t *self, int option);
skipping to change at line 318 skipping to change at line 318
#endif #endif
int speed; int speed;
#ifdef METRONOM_CLOCK_INTERNAL #ifdef METRONOM_CLOCK_INTERNAL
pthread_mutex_t lock; pthread_mutex_t lock;
pthread_cond_t cancel; pthread_cond_t cancel;
#endif #endif
}; };
metronom_clock_t *_x_metronom_clock_init(xine_t *xine) XINE_PROTECTED; metronom_clock_t *_x_metronom_clock_init(xine_t *xine) XINE_MALLOC XINE_PRO TECTED;
/* /*
* clock options * clock options
*/ */
#define CLOCK_SCR_ADJUSTABLE 1 #define CLOCK_SCR_ADJUSTABLE 1
/* /*
* SCR (system clock reference) plugins * SCR (system clock reference) plugins
*/ */
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 osd.h   osd.h 
skipping to change at line 228 skipping to change at line 228
osd_font_t *fonts; /* loaded fonts */ osd_font_t *fonts; /* loaded fonts */
int textpalette; /* default textpalette */ int textpalette; /* default textpalette */
xine_stream_t *stream; xine_stream_t *stream;
}; };
/* /*
* initialize the osd rendering engine * initialize the osd rendering engine
*/ */
osd_renderer_t *_x_osd_renderer_init( xine_stream_t *stream ); osd_renderer_t *_x_osd_renderer_init( xine_stream_t *stream ) XINE_MALLOC;
/* /*
* The size of a text palette * The size of a text palette
*/ */
#define TEXT_PALETTE_SIZE 11 #define TEXT_PALETTE_SIZE 11
/* /*
* Preassigned color indices for rendering text * Preassigned color indices for rendering text
* (more can be added, not exceeding OVL_PALETTE_SIZE) * (more can be added, not exceeding OVL_PALETTE_SIZE)
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 pool.h   pool.h 
skipping to change at line 39 skipping to change at line 39
* object_size: sizeof(your struct) * object_size: sizeof(your struct)
* create_object: function called to create an object (can be NULL) * create_object: function called to create an object (can be NULL)
* prepare_object: function called to prepare an object to returned to th e client (can be NULL) * prepare_object: function called to prepare an object to returned to th e client (can be NULL)
* return_object: function called to prepare an object to returned to th e pool (can be NULL) * return_object: function called to prepare an object to returned to th e pool (can be NULL)
* delete_object: function called to delete an object (can be NULL) * delete_object: function called to delete an object (can be NULL)
*/ */
xine_pool_t *xine_pool_new(size_t object_size, xine_pool_t *xine_pool_new(size_t object_size,
void (create_object)(void *object), void (create_object)(void *object),
void (prepare_object)(void *object), void (prepare_object)(void *object),
void (return_object)(void *object), void (return_object)(void *object),
void (delete_object)(void *object)) XINE_PROTECT ED; void (delete_object)(void *object)) XINE_MALLOC XINE_PROTECTED;
/* Deletes a pool */ /* Deletes a pool */
void xine_pool_delete(xine_pool_t *pool) XINE_PROTECTED; void xine_pool_delete(xine_pool_t *pool) XINE_PROTECTED;
/* Get an object from the pool */ /* Get an object from the pool */
void *xine_pool_get(xine_pool_t *pool) XINE_PROTECTED; void *xine_pool_get(xine_pool_t *pool) XINE_PROTECTED;
/* Returns an object to the pool */ /* Returns an object to the pool */
void xine_pool_put(xine_pool_t *pool, void *object) XINE_PROTECTED; void xine_pool_put(xine_pool_t *pool, void *object) XINE_PROTECTED;
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 refcounter.h   refcounter.h 
skipping to change at line 38 skipping to change at line 38
typedef struct { typedef struct {
pthread_mutex_t lock; pthread_mutex_t lock;
int count; int count;
void* object; /* referenced object */ void* object; /* referenced object */
void (*destructor)(void *); /* object destructor */ void (*destructor)(void *); /* object destructor */
} refcounter_t; } refcounter_t;
typedef void (*refcounter_destructor)(void*); typedef void (*refcounter_destructor)(void*);
refcounter_t* _x_new_refcounter(void *object, refcounter_destructor destruc tor) XINE_PROTECTED; refcounter_t* _x_new_refcounter(void *object, refcounter_destructor destruc tor) XINE_MALLOC XINE_PROTECTED;
int _x_refcounter_inc(refcounter_t *refcounter) XINE_PROTECTED; int _x_refcounter_inc(refcounter_t *refcounter) XINE_PROTECTED;
int _x_refcounter_dec(refcounter_t *refcounter) XINE_PROTECTED; int _x_refcounter_dec(refcounter_t *refcounter) XINE_PROTECTED;
void _x_refcounter_dispose(refcounter_t *refcounter) XINE_PROTECTED; void _x_refcounter_dispose(refcounter_t *refcounter) XINE_PROTECTED;
#endif /* HAVE_REFCOUNTER_H */ #endif /* HAVE_REFCOUNTER_H */
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 ring_buffer.h   ring_buffer.h 
skipping to change at line 25 skipping to change at line 25
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
* *
* Fifo + Ring Buffer * Fifo + Ring Buffer
*/ */
typedef struct xine_ring_buffer_s xine_ring_buffer_t; typedef struct xine_ring_buffer_s xine_ring_buffer_t;
/* Creates a new ring buffer */ /* Creates a new ring buffer */
xine_ring_buffer_t *xine_ring_buffer_new(size_t size) XINE_PROTECTED; xine_ring_buffer_t *xine_ring_buffer_new(size_t size) XINE_MALLOC XINE_PROT ECTED;
/* Deletes a ring buffer */ /* Deletes a ring buffer */
void xine_ring_buffer_delete(xine_ring_buffer_t *ring_buffer) XINE_PROTECTE D; void xine_ring_buffer_delete(xine_ring_buffer_t *ring_buffer) XINE_PROTECTE D;
/* Returns a new chunk of the specified size */ /* Returns a new chunk of the specified size */
/* Might block if the ring buffer is full */ /* Might block if the ring buffer is full */
void *xine_ring_buffer_alloc(xine_ring_buffer_t *ring_buffer, size_t size) XINE_PROTECTED; void *xine_ring_buffer_alloc(xine_ring_buffer_t *ring_buffer, size_t size) XINE_PROTECTED;
/* Put a chunk into the ring */ /* Put a chunk into the ring */
void xine_ring_buffer_put(xine_ring_buffer_t *ring_buffer, void *chunk) XIN E_PROTECTED; void xine_ring_buffer_put(xine_ring_buffer_t *ring_buffer, void *chunk) XIN E_PROTECTED;
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 scratch.h   scratch.h 
skipping to change at line 54 skipping to change at line 54
char **lines; char **lines;
char **ordered; char **ordered;
int num_lines; int num_lines;
int cur; int cur;
pthread_mutex_t lock; pthread_mutex_t lock;
}; };
scratch_buffer_t *_x_new_scratch_buffer (int num_lines) XINE_PROTECTED; scratch_buffer_t *_x_new_scratch_buffer (int num_lines) XINE_MALLOC XINE_PR OTECTED;
#endif #endif
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 sorted_array.h   sorted_array.h 
skipping to change at line 66 skipping to change at line 66
#include "array.h" #include "array.h"
/* Array type */ /* Array type */
typedef struct xine_sarray_s xine_sarray_t; typedef struct xine_sarray_s xine_sarray_t;
/* Array element comparator */ /* Array element comparator */
typedef int (*xine_sarray_comparator_t)(void*, void*); typedef int (*xine_sarray_comparator_t)(void*, void*);
/* Constructor */ /* Constructor */
xine_sarray_t *xine_sarray_new(size_t initial_size, xine_sarray_comparator_ t comparator) XINE_PROTECTED; xine_sarray_t *xine_sarray_new(size_t initial_size, xine_sarray_comparator_ t comparator) XINE_MALLOC XINE_PROTECTED;
/* Destructor */ /* Destructor */
void xine_sarray_delete(xine_sarray_t *sarray) XINE_PROTECTED; void xine_sarray_delete(xine_sarray_t *sarray) XINE_PROTECTED;
/* Returns the number of element stored in the array */ /* Returns the number of element stored in the array */
size_t xine_sarray_size(const xine_sarray_t *sarray) XINE_PROTECTED; size_t xine_sarray_size(const xine_sarray_t *sarray) XINE_PROTECTED;
/* Removes all elements from an array */ /* Removes all elements from an array */
void xine_sarray_clear(xine_sarray_t *sarray) XINE_PROTECTED; void xine_sarray_clear(xine_sarray_t *sarray) XINE_PROTECTED;
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 video_out.h   video_out.h 
skipping to change at line 446 skipping to change at line 446
int (*redraw_needed) (video_overlay_manager_t *this_gen, int64_t vpts ); int (*redraw_needed) (video_overlay_manager_t *this_gen, int64_t vpts );
void (*multiple_overlay_blend) (video_overlay_manager_t *this_gen, int64_ t vpts, void (*multiple_overlay_blend) (video_overlay_manager_t *this_gen, int64_ t vpts,
vo_driver_t *output, vo_frame_t *vo_img, int enabled); vo_driver_t *output, vo_frame_t *vo_img, int enabled);
}; };
/* /*
* build a video_out_port from * build a video_out_port from
* a given video driver * a given video driver
*/ */
xine_video_port_t *_x_vo_new_port (xine_t *xine, vo_driver_t *driver, int g rabonly) XINE_PROTECTED; xine_video_port_t *_x_vo_new_port (xine_t *xine, vo_driver_t *driver, int g rabonly) XINE_MALLOC XINE_PROTECTED;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif #endif
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 video_overlay.h   video_overlay.h 
skipping to change at line 101 skipping to change at line 101
typedef struct video_overlay_event_s { typedef struct video_overlay_event_s {
uint32_t event_type; /* Show SPU, Show OSD, Hide etc. */ uint32_t event_type; /* Show SPU, Show OSD, Hide etc. */
int64_t vpts; /* Time when event will action. 0 means action now */ int64_t vpts; /* Time when event will action. 0 means action now */
/* Once video_out blend_yuv etc. can take rle_elem_t with Colour, blend and length information. /* Once video_out blend_yuv etc. can take rle_elem_t with Colour, blend and length information.
* we can remove clut and blend from this structure. * we can remove clut and blend from this structure.
* This will allow for many more colours for OSD. * This will allow for many more colours for OSD.
*/ */
video_overlay_object_t object; /* The image data. */ video_overlay_object_t object; /* The image data. */
} video_overlay_event_t; } video_overlay_event_t;
video_overlay_manager_t *_x_video_overlay_new_manager(xine_t *) XINE_PROTEC TED; video_overlay_manager_t *_x_video_overlay_new_manager(xine_t *) XINE_MALLOC XINE_PROTECTED;
#endif #endif
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 xine.h   xine.h 
skipping to change at line 89 skipping to change at line 89
* xine opaque data types * * xine opaque data types *
*********************************************************************/ *********************************************************************/
typedef struct xine_s xine_t; typedef struct xine_s xine_t;
typedef struct xine_stream_s xine_stream_t; typedef struct xine_stream_s xine_stream_t;
typedef struct xine_audio_port_s xine_audio_port_t; typedef struct xine_audio_port_s xine_audio_port_t;
typedef struct xine_video_port_s xine_video_port_t; typedef struct xine_video_port_s xine_video_port_t;
#ifndef XINE_DISABLE_DEPRECATED_FEATURES #ifndef XINE_DISABLE_DEPRECATED_FEATURES
/* convenience types: simple player UIs might want to call ports drivers */ /* convenience types: simple player UIs might want to call ports drivers */
typedef xine_audio_port_t xine_ao_driver_t; typedef xine_audio_port_t xine_ao_driver_t XINE_DEPRECATED;
typedef xine_video_port_t xine_vo_driver_t; typedef xine_video_port_t xine_vo_driver_t XINE_DEPRECATED;
#endif #endif
/********************************************************************* /*********************************************************************
* global engine handling * * global engine handling *
*********************************************************************/ *********************************************************************/
/* /*
* version information * version information
*/ */
skipping to change at line 112 skipping to change at line 112
const char *xine_get_version_string (void) XINE_PROTECTED; const char *xine_get_version_string (void) XINE_PROTECTED;
void xine_get_version (int *major, int *minor, int *sub) XINE_PROTECTED; void xine_get_version (int *major, int *minor, int *sub) XINE_PROTECTED;
/* compare given version to libxine version, /* compare given version to libxine version,
return 1 if compatible, 0 otherwise */ return 1 if compatible, 0 otherwise */
int xine_check_version (int major, int minor, int sub) XINE_PROTECTED; int xine_check_version (int major, int minor, int sub) XINE_PROTECTED;
/* static info - which libxine release this header came from */ /* static info - which libxine release this header came from */
#define XINE_MAJOR_VERSION 1 #define XINE_MAJOR_VERSION 1
#define XINE_MINOR_VERSION 1 #define XINE_MINOR_VERSION 1
#define XINE_SUB_VERSION 12 #define XINE_SUB_VERSION 13
#define XINE_VERSION "1.1.12" #define XINE_VERSION "1.1.13"
/* /*
* pre-init the xine engine * pre-init the xine engine
* *
* will first malloc and init a xine_t, create an empty config * will first malloc and init a xine_t, create an empty config
* system, then scan through all installed plugins and add them * system, then scan through all installed plugins and add them
* to an internal list for later use. * to an internal list for later use.
* *
* to fully init the xine engine, you have to load config values * to fully init the xine engine, you have to load config values
* (either using your own storage method and calling * (either using your own storage method and calling
skipping to change at line 258 skipping to change at line 258
*/ */
int xine_play (xine_stream_t *stream, int start_pos, int start_time) XINE_ PROTECTED; int xine_play (xine_stream_t *stream, int start_pos, int start_time) XINE_ PROTECTED;
/* /*
* set xine to a trick mode for fast forward, backwards playback, * set xine to a trick mode for fast forward, backwards playback,
* low latency seeking. Please note that this works only with some * low latency seeking. Please note that this works only with some
* input plugins. mode constants see below. * input plugins. mode constants see below.
* *
* returns 1 if OK, 0 on error (use xine_get_error for details) * returns 1 if OK, 0 on error (use xine_get_error for details)
*/ */
int xine_trick_mode (xine_stream_t *stream, int mode, int value) XINE_PROT ECTED; int xine_trick_mode (xine_stream_t *stream, int mode, int value) XINE_PROT ECTED XINE_DEPRECATED;
/* trick modes */ /* trick modes */
#define XINE_TRICK_MODE_OFF 0 #define XINE_TRICK_MODE_OFF 0
#define XINE_TRICK_MODE_SEEK_TO_POSITION 1 #define XINE_TRICK_MODE_SEEK_TO_POSITION 1
#define XINE_TRICK_MODE_SEEK_TO_TIME 2 #define XINE_TRICK_MODE_SEEK_TO_TIME 2
#define XINE_TRICK_MODE_FAST_FORWARD 3 #define XINE_TRICK_MODE_FAST_FORWARD 3
#define XINE_TRICK_MODE_FAST_REWIND 4 #define XINE_TRICK_MODE_FAST_REWIND 4
/* /*
* stop stream playback * stop stream playback
skipping to change at line 428 skipping to change at line 428
* to hold the image data. Use a NULL pointer to retrieve the * to hold the image data. Use a NULL pointer to retrieve the
* necessary parameters for calculating the buffer size. Be * necessary parameters for calculating the buffer size. Be
* aware that the image can change between two successive calls * aware that the image can change between two successive calls
* so you better pause the stream. * so you better pause the stream.
* *
* xine_get_current_frame_s() requires to specify the buffer * xine_get_current_frame_s() requires to specify the buffer
* size and it returns the needed / used size. It won't copy * size and it returns the needed / used size. It won't copy
* image data into a too small buffer. * image data into a too small buffer.
* *
* xine_get_current_frame_alloc() takes care of allocating * xine_get_current_frame_alloc() takes care of allocating
* a buffer on it's own, so image data can be retrieved by * a buffer on its own, so image data can be retrieved by
* a single call without the need to pause the stream. * a single call without the need to pause the stream.
* *
* xine_get_current_frame_data() passes the parameters of the
* previously mentioned functions plus further information in
* a structure and can work like the _s or _alloc function
* respectively depending on the passed flags.
*
* all functions return 1 on success, 0 failure. * all functions return 1 on success, 0 failure.
*/ */
int xine_get_current_frame (xine_stream_t *stream, int xine_get_current_frame (xine_stream_t *stream,
int *width, int *height, int *width, int *height,
int *ratio_code, int *format, int *ratio_code, int *format,
uint8_t *img) XINE_PROTECTED; uint8_t *img) XINE_PROTECTED;
int xine_get_current_frame_s (xine_stream_t *stream, int xine_get_current_frame_s (xine_stream_t *stream,
int *width, int *height, int *width, int *height,
int *ratio_code, int *format, int *ratio_code, int *format,
uint8_t *img, int *size) XINE_PROTECTED; uint8_t *img, int *img_size) XINE_PROTECTED;
int xine_get_current_frame_alloc (xine_stream_t *stream, int xine_get_current_frame_alloc (xine_stream_t *stream,
int *width, int *height, int *width, int *height,
int *ratio_code, int *format, int *ratio_code, int *format,
uint8_t **img, int *size) XINE_PROTECTED; uint8_t **img, int *img_size) XINE_PROTECTED;
typedef struct {
int width;
int height;
int crop_left;
int crop_right;
int crop_top;
int crop_bottom;
int ratio_code;
int interlaced;
int format;
int img_size;
uint8_t *img;
} xine_current_frame_data_t;
#define XINE_FRAME_DATA_ALLOCATE_IMG (1<<0)
int xine_get_current_frame_data (xine_stream_t *stream,
xine_current_frame_data_t *data,
int flags) XINE_PROTECTED;
/* xine image formats */ /* xine image formats */
#define XINE_IMGFMT_YV12 (('2'<<24)|('1'<<16)|('V'<<8)|'Y') #define XINE_IMGFMT_YV12 (('2'<<24)|('1'<<16)|('V'<<8)|'Y')
#define XINE_IMGFMT_YUY2 (('2'<<24)|('Y'<<16)|('U'<<8)|'Y') #define XINE_IMGFMT_YUY2 (('2'<<24)|('Y'<<16)|('U'<<8)|'Y')
#define XINE_IMGFMT_XVMC (('C'<<24)|('M'<<16)|('v'<<8)|'X') #define XINE_IMGFMT_XVMC (('C'<<24)|('M'<<16)|('v'<<8)|'X')
#define XINE_IMGFMT_XXMC (('C'<<24)|('M'<<16)|('x'<<8)|'X') #define XINE_IMGFMT_XXMC (('C'<<24)|('M'<<16)|('x'<<8)|'X')
/* get current xine's virtual presentation timestamp (1/90000 sec) /* get current xine's virtual presentation timestamp (1/90000 sec)
* note: this is mostly internal data. * note: this is mostly internal data.
* one can use vpts with xine_osd_show() and xine_osd_hide(). * one can use vpts with xine_osd_show() and xine_osd_hide().
skipping to change at line 535 skipping to change at line 561
/* /*
* maybe future aproach: * maybe future aproach:
*/ */
int xine_get_video_frame (xine_stream_t *stream, int xine_get_video_frame (xine_stream_t *stream,
int timestamp, /* msec */ int timestamp, /* msec */
int *width, int *height, int *width, int *height,
int *ratio_code, int *ratio_code,
int *duration, /* msec */ int *duration, /* msec */
int *format, int *format,
uint8_t *img) XINE_PROTECTED; uint8_t *img) XINE_PROTECTED XINE_DEPRECATED;
/* TODO: xine_get_audio_frame */ /* TODO: xine_get_audio_frame */
#endif #endif
/********************************************************************* /*********************************************************************
* post plugin handling * * post plugin handling *
*********************************************************************/ *********************************************************************/
/* /*
skipping to change at line 1087 skipping to change at line 1113
/* unload unused plugins */ /* unload unused plugins */
void xine_plugins_garbage_collector(xine_t *self) XINE_PROTECTED; void xine_plugins_garbage_collector(xine_t *self) XINE_PROTECTED;
/********************************************************************* /*********************************************************************
* visual specific gui <-> xine engine communication * * visual specific gui <-> xine engine communication *
*********************************************************************/ *********************************************************************/
#ifndef XINE_DISABLE_DEPRECATED_FEATURES #ifndef XINE_DISABLE_DEPRECATED_FEATURES
/* talk to video output driver - old method */ /* talk to video output driver - old method */
int xine_gui_send_vo_data (xine_stream_t *self, int xine_gui_send_vo_data (xine_stream_t *self,
int type, void *data) XINE_PROTECTED; int type, void *data) XINE_PROTECTED XINE_DEPR ECATED;
#endif #endif
/* new (preferred) method to talk to video driver. */ /* new (preferred) method to talk to video driver. */
int xine_port_send_gui_data (xine_video_port_t *vo, int xine_port_send_gui_data (xine_video_port_t *vo,
int type, void *data) XINE_PROTECTED; int type, void *data) XINE_PROTECTED;
typedef struct { typedef struct {
/* area of that drawable to be used by video */ /* area of that drawable to be used by video */
int x,y,w,h; int x,y,w,h;
skipping to change at line 1122 skipping to change at line 1148
/* drawable to display the video in/on */ /* drawable to display the video in/on */
unsigned long d; /* Drawable */ unsigned long d; /* Drawable */
void *user_data; void *user_data;
/* /*
* dest size callback * dest size callback
* *
* this will be called by the video driver to find out * this will be called by the video driver to find out
* how big the video output area size will be for a * how big the video output area size will be for a
* given video size. The ui should _not_ adjust it's * given video size. The ui should _not_ adjust its
* video out area, just do some calculations and return * video out area, just do some calculations and return
* the size. This will be called for every frame, ui * the size. This will be called for every frame, ui
* implementation should be fast. * implementation should be fast.
* dest_pixel_aspect should be set to the used display pixel aspect. * dest_pixel_aspect should be set to the used display pixel aspect.
* NOTE: Semantics has changed: video_width and video_height * NOTE: Semantics has changed: video_width and video_height
* are no longer pixel aspect corrected. Get the old semantics * are no longer pixel aspect corrected. Get the old semantics
* in the UI with * in the UI with
* *dest_pixel_aspect = display_pixel_aspect; * *dest_pixel_aspect = display_pixel_aspect;
* if (video_pixel_aspect >= display_pixel_aspect) * if (video_pixel_aspect >= display_pixel_aspect)
* video_width = video_width * video_pixel_aspect / display_pixel_as pect + .5; * video_width = video_width * video_pixel_aspect / display_pixel_as pect + .5;
skipping to change at line 1146 skipping to change at line 1172
void (*dest_size_cb) (void *user_data, void (*dest_size_cb) (void *user_data,
int video_width, int video_height, int video_width, int video_height,
double video_pixel_aspect, double video_pixel_aspect,
int *dest_width, int *dest_height, int *dest_width, int *dest_height,
double *dest_pixel_aspect); double *dest_pixel_aspect);
/* /*
* frame output callback * frame output callback
* *
* this will be called by the video driver for every frame * this will be called by the video driver for every frame
* it's about to draw. ui can adapt it's size if necessary * it's about to draw. ui can adapt its size if necessary
* here. * here.
* note: the ui doesn't have to adjust itself to this * note: the ui doesn't have to adjust itself to this
* size, this is just to be taken as a hint. * size, this is just to be taken as a hint.
* ui must return the actual size of the video output * ui must return the actual size of the video output
* area and the video output driver will do it's best * area and the video output driver will do its best
* to adjust the video frames to that size (while * to adjust the video frames to that size (while
* preserving aspect ratio and stuff). * preserving aspect ratio and stuff).
* dest_x, dest_y: offset inside window * dest_x, dest_y: offset inside window
* dest_width, dest_height: available drawing space * dest_width, dest_height: available drawing space
* dest_pixel_aspect: display pixel aspect * dest_pixel_aspect: display pixel aspect
* win_x, win_y: window absolute screen position * win_x, win_y: window absolute screen position
* NOTE: Semantics has changed: video_width and video_height * NOTE: Semantics has changed: video_width and video_height
* are no longer pixel aspect corrected. Get the old semantics * are no longer pixel aspect corrected. Get the old semantics
* in the UI with * in the UI with
* *dest_pixel_aspect = display_pixel_aspect; * *dest_pixel_aspect = display_pixel_aspect;
skipping to change at line 1222 skipping to change at line 1248
/* window to display the video in / on */ /* window to display the video in / on */
unsigned int window; /* xcb_window_t */ unsigned int window; /* xcb_window_t */
void *user_data; void *user_data;
/* /*
* dest size callback * dest size callback
* *
* this will be called by the video driver to find out * this will be called by the video driver to find out
* how big the video output area size will be for a * how big the video output area size will be for a
* given video size. The ui should _not_ adjust it's * given video size. The ui should _not_ adjust its
* video out area, just do some calculations and return * video out area, just do some calculations and return
* the size. This will be called for every frame, ui * the size. This will be called for every frame, ui
* implementation should be fast. * implementation should be fast.
* dest_pixel_aspect should be set to the used display pixel aspect. * dest_pixel_aspect should be set to the used display pixel aspect.
* NOTE: Semantics has changed: video_width and video_height * NOTE: Semantics has changed: video_width and video_height
* are no longer pixel aspect corrected. Get the old semantics * are no longer pixel aspect corrected. Get the old semantics
* in the UI with * in the UI with
* *dest_pixel_aspect = display_pixel_aspect; * *dest_pixel_aspect = display_pixel_aspect;
* if (video_pixel_aspect >= display_pixel_aspect) * if (video_pixel_aspect >= display_pixel_aspect)
* video_width = video_width * video_pixel_aspect / display_pixel_as pect + .5; * video_width = video_width * video_pixel_aspect / display_pixel_as pect + .5;
skipping to change at line 1246 skipping to change at line 1272
void (*dest_size_cb) (void *user_data, void (*dest_size_cb) (void *user_data,
int video_width, int video_height, int video_width, int video_height,
double video_pixel_aspect, double video_pixel_aspect,
int *dest_width, int *dest_height, int *dest_width, int *dest_height,
double *dest_pixel_aspect); double *dest_pixel_aspect);
/* /*
* frame output callback * frame output callback
* *
* this will be called by the video driver for every frame * this will be called by the video driver for every frame
* it's about to draw. ui can adapt it's size if necessary * it's about to draw. ui can adapt its size if necessary
* here. * here.
* note: the ui doesn't have to adjust itself to this * note: the ui doesn't have to adjust itself to this
* size, this is just to be taken as a hint. * size, this is just to be taken as a hint.
* ui must return the actual size of the video output * ui must return the actual size of the video output
* area and the video output driver will do it's best * area and the video output driver will do its best
* to adjust the video frames to that size (while * to adjust the video frames to that size (while
* preserving aspect ratio and stuff). * preserving aspect ratio and stuff).
* dest_x, dest_y: offset inside window * dest_x, dest_y: offset inside window
* dest_width, dest_height: available drawing space * dest_width, dest_height: available drawing space
* dest_pixel_aspect: display pixel aspect * dest_pixel_aspect: display pixel aspect
* win_x, win_y: window absolute screen position * win_x, win_y: window absolute screen position
* NOTE: Semantics has changed: video_width and video_height * NOTE: Semantics has changed: video_width and video_height
* are no longer pixel aspect corrected. Get the old semantics * are no longer pixel aspect corrected. Get the old semantics
* in the UI with * in the UI with
* *dest_pixel_aspect = display_pixel_aspect; * *dest_pixel_aspect = display_pixel_aspect;
skipping to change at line 1303 skipping to change at line 1329
} raw_overlay_t; } raw_overlay_t;
/* this is the visual data struct any raw gui /* this is the visual data struct any raw gui
* must supply to the xine_open_video_driver call * must supply to the xine_open_video_driver call
* ("data" parameter) * ("data" parameter)
*/ */
typedef struct { typedef struct {
void *user_data; void *user_data;
/* OR'ed frame_format /* OR'ed frame_format
* a frontend must at least support rgb * Unsupported frame formats are converted to rgb.
* a frontend supporting yuv must support both yv12 and yuy2 * XINE_VORAW_RGB is always assumed by the driver, even if not set.
* then possible combinations are: * So a frontend must at least support rgb.
* XINE_VORAW_RGB ( rgb )
* XINE_VORAW_YV12|XINE_VORAW_YUY2|XINE_VORAW_RGB ( yv12, yuy2 and rg
b )
*
* Be aware that rgb requires more cpu than yuv, * Be aware that rgb requires more cpu than yuv,
* so avoid its usage for video playback. * so avoid its usage for video playback.
* However, it's usefull for single frame capture (e.g. thumbs) * However, it's useful for single frame capture (e.g. thumbs)
*/ */
int supported_formats; int supported_formats;
/* raw output callback /* raw output callback
* this will be called by the video driver for every frame * this will be called by the video driver for every frame
* *
* If frame_format==XINE_VORAW_YV12, data0 points to frame_width*frame_he ight Y values * If frame_format==XINE_VORAW_YV12, data0 points to frame_width*frame_he ight Y values
* data1 points to (frame_width/2)*(fra me_height/2) U values * data1 points to (frame_width/2)*(fra me_height/2) U values
* data2 points to (frame_width/2)*(fra me_height/2) V values * data2 points to (frame_width/2)*(fra me_height/2) V values
* *
skipping to change at line 1608 skipping to change at line 1631
/* get next config item (iterate through the items) */ /* get next config item (iterate through the items) */
int xine_config_get_next_entry (xine_t *self, xine_cfg_entry_t *entry) XIN E_PROTECTED; int xine_config_get_next_entry (xine_t *self, xine_cfg_entry_t *entry) XIN E_PROTECTED;
/* search for a config entry by key */ /* search for a config entry by key */
int xine_config_lookup_entry (xine_t *self, const char *key, int xine_config_lookup_entry (xine_t *self, const char *key,
xine_cfg_entry_t *entry) XINE_PROTECTED; xine_cfg_entry_t *entry) XINE_PROTECTED;
/* /*
* update a config entry (which was returned from lookup_entry() ) * update a config entry (which was returned from lookup_entry() )
* *
* xine will make a deep copy of the data in the entry into it's internal * xine will make a deep copy of the data in the entry into its internal
* config database. * config database.
*/ */
void xine_config_update_entry (xine_t *self, void xine_config_update_entry (xine_t *self,
const xine_cfg_entry_t *entry) XINE_PROTECTED ; const xine_cfg_entry_t *entry) XINE_PROTECTED ;
/* /*
* translation of old configuration entry names * translation of old configuration entry names
*/ */
typedef struct { typedef struct {
const char *old_name, *new_name; const char *old_name, *new_name;
skipping to change at line 1999 skipping to change at line 2022
int skipped_threshold; int skipped_threshold;
int discarded_frames; int discarded_frames;
int discarded_threshold; int discarded_threshold;
} xine_dropped_frames_t; } xine_dropped_frames_t;
/* /*
* Defined message types for XINE_EVENT_UI_MESSAGE * Defined message types for XINE_EVENT_UI_MESSAGE
* This is the mechanism to report async errors from engine. * This is the mechanism to report async errors from engine.
* *
* If frontend knows about the XINE_MSG_xxx type it may safely * If frontend knows about the XINE_MSG_xxx type it may safely
* ignore the 'explanation' field and provide it's own custom * ignore the 'explanation' field and provide its own custom
* dialog to the 'parameters'. * dialogue to the 'parameters'.
* *
* right column specifies the usual parameters. * right column specifies the usual parameters.
*/ */
#define XINE_MSG_NO_ERROR 0 /* (messages to UI) */ #define XINE_MSG_NO_ERROR 0 /* (messages to UI) */
#define XINE_MSG_GENERAL_WARNING 1 /* (warning message) */ #define XINE_MSG_GENERAL_WARNING 1 /* (warning message) */
#define XINE_MSG_UNKNOWN_HOST 2 /* (host name) */ #define XINE_MSG_UNKNOWN_HOST 2 /* (host name) */
#define XINE_MSG_UNKNOWN_DEVICE 3 /* (device name) */ #define XINE_MSG_UNKNOWN_DEVICE 3 /* (device name) */
#define XINE_MSG_NETWORK_UNREACHABLE 4 /* none */ #define XINE_MSG_NETWORK_UNREACHABLE 4 /* none */
#define XINE_MSG_CONNECTION_REFUSED 5 /* (host name) */ #define XINE_MSG_CONNECTION_REFUSED 5 /* (host name) */
skipping to change at line 2176 skipping to change at line 2199
/********************************************************************* /*********************************************************************
* TV-mode API, to make it possible to use nvtvd to view movies * * TV-mode API, to make it possible to use nvtvd to view movies *
*********************************************************************/ *********************************************************************/
/* These functions are just dummies to maintain API compatibility. /* These functions are just dummies to maintain API compatibility.
* You should use libnvtvsimple in your frontend instead. */ * You should use libnvtvsimple in your frontend instead. */
typedef enum { typedef enum {
XINE_TVSYSTEM_PAL = 0, XINE_TVSYSTEM_PAL = 0,
XINE_TVSYSTEM_NTSC XINE_TVSYSTEM_NTSC
} xine_tvsystem; } xine_tvsystem XINE_DEPRECATED;
/* connect to nvtvd server and save current TV and X settings */ /* connect to nvtvd server and save current TV and X settings */
int xine_tvmode_init (xine_t *self) XINE_PROTECTED; int xine_tvmode_init (xine_t *self) XINE_PROTECTED XINE_DEPRECATED;
/* Turn tvmode on/off (1/0)*/ /* Turn tvmode on/off (1/0)*/
int xine_tvmode_use(xine_t *self, int use_tvmode) XINE_PROTECTED; int xine_tvmode_use(xine_t *self, int use_tvmode) XINE_PROTECTED XINE_DEPRE CATED;
/* Set which tv system to use: XINE_TVSYSTEM_PAL or XINE_TVSYSTEM_NTSC */ /* Set which tv system to use: XINE_TVSYSTEM_PAL or XINE_TVSYSTEM_NTSC */
void xine_tvmode_set_tvsystem(xine_t *self, xine_tvsystem system) XINE_PROT ECTED; void xine_tvmode_set_tvsystem(xine_t *self, xine_tvsystem system) XINE_PROT ECTED XINE_DEPRECATED;
/* try to change TV state if enabled /* try to change TV state if enabled
* type select 'regular' (0) or 'TV' (1) state * type select 'regular' (0) or 'TV' (1) state
* width frame width the mode should match best or 0 if unknown * width frame width the mode should match best or 0 if unknown
* height frame height the mode should match best or 0 if unknown * height frame height the mode should match best or 0 if unknown
* fps frame rate the mode should match best or 0 if unknown * fps frame rate the mode should match best or 0 if unknown
* returns: finally selected state * returns: finally selected state
*/ */
int xine_tvmode_switch (xine_t *self, int type, int width, int height, doub le fps) XINE_PROTECTED; int xine_tvmode_switch (xine_t *self, int type, int width, int height, doub le fps) XINE_PROTECTED XINE_DEPRECATED;
/* adapt (maximum) output size to visible area if necessary and return pixe l /* adapt (maximum) output size to visible area if necessary and return pixe l
* aspect and real frame rate if available * aspect and real frame rate if available
*/ */
void xine_tvmode_size (xine_t *self, int *width, int *height, void xine_tvmode_size (xine_t *self, int *width, int *height,
double *pixelratio, double *fps) XINE_PROTECTED; double *pixelratio, double *fps) XINE_PROTECTED XINE_ DEPRECATED;
/* restore old TV and X settings and close nvtvd connection */ /* restore old TV and X settings and close nvtvd connection */
void xine_tvmode_exit (xine_t *self) XINE_PROTECTED; void xine_tvmode_exit (xine_t *self) XINE_PROTECTED XINE_DEPRECATED;
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif #endif
 End of changes. 26 change blocks. 
34 lines changed or deleted 56 lines changed or added


 xine_internal.h   xine_internal.h 
skipping to change at line 118 skipping to change at line 118
int verbosity; int verbosity;
xine_list_t *streams; xine_list_t *streams;
pthread_mutex_t streams_lock; pthread_mutex_t streams_lock;
metronom_clock_t *clock; metronom_clock_t *clock;
#ifdef XINE_ENGINE_INTERNAL #ifdef XINE_ENGINE_INTERNAL
xine_ticket_t *port_ticket; xine_ticket_t *port_ticket;
pthread_mutex_t log_lock; pthread_mutex_t log_lock;
xine_log_cb_t log_cb;
void *log_cb_user_data;
#endif #endif
}; };
/* /*
* xine thread tickets * xine thread tickets
*/ */
struct xine_ticket_s { struct xine_ticket_s {
/* the ticket owner must assure to check for ticket revocation in /* the ticket owner must assure to check for ticket revocation in
skipping to change at line 388 skipping to change at line 391
/* flush the message queues */ /* flush the message queues */
void _x_flush_events_queues (xine_stream_t *stream) XINE_PROTECTED; void _x_flush_events_queues (xine_stream_t *stream) XINE_PROTECTED;
/* find and instantiate input and demux plugins */ /* find and instantiate input and demux plugins */
input_plugin_t *_x_find_input_plugin (xine_stream_t *stream, const char *mr l) XINE_PROTECTED; input_plugin_t *_x_find_input_plugin (xine_stream_t *stream, const char *mr l) XINE_PROTECTED;
demux_plugin_t *_x_find_demux_plugin (xine_stream_t *stream, input_plugin_t *input) XINE_PROTECTED; demux_plugin_t *_x_find_demux_plugin (xine_stream_t *stream, input_plugin_t *input) XINE_PROTECTED;
demux_plugin_t *_x_find_demux_plugin_by_name (xine_stream_t *stream, const char *name, input_plugin_t *input) XINE_PROTECTED; demux_plugin_t *_x_find_demux_plugin_by_name (xine_stream_t *stream, const char *name, input_plugin_t *input) XINE_PROTECTED;
demux_plugin_t *_x_find_demux_plugin_last_probe(xine_stream_t *stream, cons t char *last_demux_name, input_plugin_t *input) XINE_PROTECTED; demux_plugin_t *_x_find_demux_plugin_last_probe(xine_stream_t *stream, cons t char *last_demux_name, input_plugin_t *input) XINE_PROTECTED;
input_plugin_t *_x_rip_plugin_get_instance (xine_stream_t *stream, const ch input_plugin_t *_x_rip_plugin_get_instance (xine_stream_t *stream, const ch
ar *filename) XINE_PROTECTED; ar *filename) XINE_MALLOC XINE_PROTECTED;
input_plugin_t *_x_cache_plugin_get_instance (xine_stream_t *stream, int re input_plugin_t *_x_cache_plugin_get_instance (xine_stream_t *stream, int re
adahead_size) XINE_PROTECTED; adahead_size) XINE_MALLOC XINE_PROTECTED;
void _x_free_input_plugin (xine_stream_t *stream, input_plugin_t *input) XI NE_PROTECTED; void _x_free_input_plugin (xine_stream_t *stream, input_plugin_t *input) XI NE_PROTECTED;
void _x_free_demux_plugin (xine_stream_t *stream, demux_plugin_t *demux) XI NE_PROTECTED; void _x_free_demux_plugin (xine_stream_t *stream, demux_plugin_t *demux) XI NE_PROTECTED;
/* create decoder fifos and threads */ /* create decoder fifos and threads */
int _x_video_decoder_init (xine_stream_t *stream) XINE_PROTECTED; int _x_video_decoder_init (xine_stream_t *stream) XINE_PROTECTED;
void _x_video_decoder_shutdown (xine_stream_t *stream) XINE_PROTECTED; void _x_video_decoder_shutdown (xine_stream_t *stream) XINE_PROTECTED;
int _x_audio_decoder_init (xine_stream_t *stream) XINE_PROTECTED; int _x_audio_decoder_init (xine_stream_t *stream) XINE_PROTECTED;
void _x_audio_decoder_shutdown (xine_stream_t *stream) XINE_PROTECTED; void _x_audio_decoder_shutdown (xine_stream_t *stream) XINE_PROTECTED;
 End of changes. 2 change blocks. 
4 lines changed or deleted 7 lines changed or added


 xineutils.h   xineutils.h 
skipping to change at line 126 skipping to change at line 126
#define MM_ACCEL_SPARC_VIS 0x01000000 #define MM_ACCEL_SPARC_VIS 0x01000000
#define MM_ACCEL_SPARC_VIS2 0x00800000 #define MM_ACCEL_SPARC_VIS2 0x00800000
/* x86 compat defines */ /* x86 compat defines */
#define MM_MMX MM_ACCEL_X86_MMX #define MM_MMX MM_ACCEL_X86_MMX
#define MM_3DNOW MM_ACCEL_X86_3DNOW #define MM_3DNOW MM_ACCEL_X86_3DNOW
#define MM_MMXEXT MM_ACCEL_X86_MMXEXT #define MM_MMXEXT MM_ACCEL_X86_MMXEXT
#define MM_SSE MM_ACCEL_X86_SSE #define MM_SSE MM_ACCEL_X86_SSE
#define MM_SSE2 MM_ACCEL_X86_SSE2 #define MM_SSE2 MM_ACCEL_X86_SSE2
uint32_t xine_mm_accel (void) XINE_PROTECTED; uint32_t xine_mm_accel (void) XINE_CONST XINE_PROTECTED;
#if defined(ARCH_X86) || defined(ARCH_X86_64) #if defined(ARCH_X86) || defined(ARCH_X86_64)
typedef union { typedef union {
int64_t q; /* Quadword (64-bit) value */ int64_t q; /* Quadword (64-bit) value */
uint64_t uq; /* Unsigned Quadword */ uint64_t uq; /* Unsigned Quadword */
int d[2]; /* 2 Doubleword (32-bit) values */ int d[2]; /* 2 Doubleword (32-bit) values */
unsigned int ud[2]; /* 2 Unsigned Doubleword */ unsigned int ud[2]; /* 2 Unsigned Doubleword */
short w[4]; /* 4 Word (16-bit) values */ short w[4]; /* 4 Word (16-bit) values */
unsigned short uw[4]; /* 4 Unsigned Word */ unsigned short uw[4]; /* 4 Unsigned Word */
skipping to change at line 611 skipping to change at line 611
void xine_profiler_init (void) XINE_PROTECTED; void xine_profiler_init (void) XINE_PROTECTED;
int xine_profiler_allocate_slot (const char *label) XINE_PROTECTED; int xine_profiler_allocate_slot (const char *label) XINE_PROTECTED;
void xine_profiler_start_count (int id) XINE_PROTECTED; void xine_profiler_start_count (int id) XINE_PROTECTED;
void xine_profiler_stop_count (int id) XINE_PROTECTED; void xine_profiler_stop_count (int id) XINE_PROTECTED;
void xine_profiler_print_results (void) XINE_PROTECTED; void xine_profiler_print_results (void) XINE_PROTECTED;
/* /*
* Allocate and clean memory size_t 'size', then return the pointer * Allocate and clean memory size_t 'size', then return the pointer
* to the allocated memory. * to the allocated memory.
*/ */
#if !defined(__GNUC__) || __GNUC__ < 3 void *xine_xmalloc(size_t size) XINE_MALLOC XINE_DEPRECATED XINE_PROTECTED;
void *xine_xmalloc(size_t size) XINE_PROTECTED;
#else
void *xine_xmalloc(size_t size) __attribute__ ((__malloc__)) XINE_PROTECTED
;
#endif
/* /*
* Same as above, but memory is aligned to 'alignement'. * Same as above, but memory is aligned to 'alignement'.
* **base is used to return pointer to un-aligned memory, use * **base is used to return pointer to un-aligned memory, use
* this to free the mem chunk * this to free the mem chunk
*/ */
void *xine_xmalloc_aligned(size_t alignment, size_t size, void **base) XINE _PROTECTED; void *xine_xmalloc_aligned(size_t alignment, size_t size, void **base) XINE _PROTECTED;
/* /*
* Get user home directory. * Get user home directory.
*/ */
const char *xine_get_homedir(void) XINE_PROTECTED; const char *xine_get_homedir(void) XINE_PROTECTED;
#if defined(WIN32) || defined(__CYGWIN__) #if defined(WIN32) || defined(__CYGWIN__)
/* /*
* Get other xine directories. * Get other xine directories.
*/ */
const char *xine_get_pluginroot(void) XINE_PROTECTED;
const char *xine_get_plugindir(void) XINE_PROTECTED; const char *xine_get_plugindir(void) XINE_PROTECTED;
const char *xine_get_fontdir(void) XINE_PROTECTED; const char *xine_get_fontdir(void) XINE_PROTECTED;
const char *xine_get_localedir(void) XINE_PROTECTED; const char *xine_get_localedir(void) XINE_PROTECTED;
#endif #endif
/* /*
* Clean a string (remove spaces and '=' at the begin, * Clean a string (remove spaces and '=' at the begin,
* and '\n', '\r' and spaces at the end. * and '\n', '\r' and spaces at the end.
*/ */
char *xine_chomp (char *str) XINE_PROTECTED; char *xine_chomp (char *str) XINE_PROTECTED;
/* /*
* A thread-safe usecond sleep * A thread-safe usecond sleep
*/ */
void xine_usec_sleep(unsigned usec) XINE_PROTECTED; void xine_usec_sleep(unsigned usec) XINE_PROTECTED;
/* /*
* Some string functions * Some string functions
*/ */
void xine_strdupa(char *dest, char *src) XINE_PROTECTED; void xine_strdupa(char *dest, char *src) XINE_PROTECTED XINE_DEPRECATED;
#define xine_strdupa(d, s) do { \ #define xine_strdupa(d, s) do { \
(d) = NULL; \ (d) = NULL; \
if((s) != NULL) { \ if((s) != NULL) { \
(d) = (char *) alloca(strlen((s)) + 1); \ (d) = (char *) alloca(strlen((s)) + 1); \
strcpy((d), (s)); \ strcpy((d), (s)); \
} \ } \
} while(0) } while(0)
/* compatibility macros */ /* compatibility macros */
#define xine_strpbrk(S, ACCEPT) strpbrk((S), (ACCEPT)) #define xine_strpbrk(S, ACCEPT) strpbrk((S), (ACCEPT))
skipping to change at line 946 skipping to change at line 943
LOG_MODULE, __XINE_FUNCTION__, __LINE__, dtime); \ LOG_MODULE, __XINE_FUNCTION__, __LINE__, dtime); \
} while(0) } while(0)
#else #else
# define XINE_PROFILE(function) function # define XINE_PROFILE(function) function
# define XINE_PROFILE_ACCUMULATE(function) function # define XINE_PROFILE_ACCUMULATE(function) function
#endif /* DEBUG */ #endif /* DEBUG */
/** /**
* get encoding of current locale * get encoding of current locale
*/ */
char *xine_get_system_encoding(void) XINE_PROTECTED; char *xine_get_system_encoding(void) XINE_MALLOC XINE_PROTECTED;
/* /*
* guess default encoding for the subtitles * guess default encoding for the subtitles
*/ */
const char *xine_guess_spu_encoding(void) XINE_PROTECTED; const char *xine_guess_spu_encoding(void) XINE_PROTECTED;
/* /*
* use the best clock reference (API compatible with gettimeofday) * use the best clock reference (API compatible with gettimeofday)
* note: it will be a monotonic clock, if available. * note: it will be a monotonic clock, if available.
*/ */
int xine_monotonic_clock(struct timeval *tv, struct timezone *tz) XINE_PROT ECTED; int xine_monotonic_clock(struct timeval *tv, struct timezone *tz) XINE_PROT ECTED;
/**
* append to a string, reallocating
* normally, updates & returns *dest
* on error, *dest is unchanged & NULL is returned.
*/
char *xine_strcat_realloc (char **dest, char *append) XINE_PROTECTED;
/* don't harm following code */ /* don't harm following code */
#ifdef extern #ifdef extern
# undef extern # undef extern
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif #endif
 End of changes. 6 change blocks. 
9 lines changed or deleted 12 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/