audio_decoder.h   audio_decoder.h 
skipping to change at line 48 skipping to change at line 48
*/ */
typedef struct audio_decoder_class_s audio_decoder_class_t; typedef struct audio_decoder_class_s audio_decoder_class_t;
typedef struct audio_decoder_s audio_decoder_t; typedef struct audio_decoder_s audio_decoder_t;
struct audio_decoder_class_s { struct audio_decoder_class_s {
/* /*
* open a new instance of this plugin class * open a new instance of this plugin class
*/ */
audio_decoder_t* (*open_plugin) (audio_decoder_class_t *c_this, xine_stre am_t *stream); audio_decoder_t* (*open_plugin) (audio_decoder_class_t *this, xine_stream _t *stream);
/* /*
* return short, human readable identifier for this plugin class * return short, human readable identifier for this plugin class
*/ */
char* (*get_identifier) (audio_decoder_class_t *c_this); char* (*get_identifier) (audio_decoder_class_t *this);
/* /*
* return human readable (verbose = 1 line) description for * return human readable (verbose = 1 line) description for
* this plugin class * this plugin class
*/ */
char* (*get_description) (audio_decoder_class_t *c_this); char* (*get_description) (audio_decoder_class_t *this);
/* /*
* free all class-related resources * free all class-related resources
*/ */
void (*dispose) (audio_decoder_class_t *c_this); void (*dispose) (audio_decoder_class_t *this);
}; };
struct audio_decoder_s { struct audio_decoder_s {
/* /*
* decode data from buf and feed decoded samples to * decode data from buf and feed decoded samples to
* audio output * audio output
*/ */
void (*decode_data) (audio_decoder_t *c_this, buf_element_t *buf); void (*decode_data) (audio_decoder_t *this, buf_element_t *buf);
/* /*
* reset decoder after engine flush (prepare for new * reset decoder after engine flush (prepare for new
* audio data not related to recently decoded data) * audio data not related to recently decoded data)
*/ */
void (*reset) (audio_decoder_t *c_this); void (*reset) (audio_decoder_t *this);
/* /*
* inform decoder that a time reference discontinuity has happened. * inform decoder that a time reference discontinuity has happened.
* that is, it must forget any currently held pts value * that is, it must forget any currently held pts value
*/ */
void (*discontinuity) (audio_decoder_t *c_this); void (*discontinuity) (audio_decoder_t *this);
/* /*
* close down, free all resources * close down, free all resources
*/ */
void (*dispose) (audio_decoder_t *c_this); void (*dispose) (audio_decoder_t *this);
void *node; /* used by plugin loader */ void *node; /* used by plugin loader */
}; };
#endif #endif
 End of changes. 8 change blocks. 
8 lines changed or deleted 8 lines changed or added


 broadcaster.h   broadcaster.h 
skipping to change at line 33 skipping to change at line 33
#ifndef HAVE_BROADCASTER_H #ifndef HAVE_BROADCASTER_H
#define HAVE_BROADCASTER_H #define HAVE_BROADCASTER_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#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_MA LLOC XINE_PROTECTED; 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 *this) XINE_PROTECTED;
int _x_get_broadcaster_port(broadcaster_t *c_this) XINE_PROTECTED; int _x_get_broadcaster_port(broadcaster_t *this) XINE_PROTECTED;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif #endif
 End of changes. 1 change blocks. 
2 lines changed or deleted 2 lines changed or added


 buffer.h   buffer.h 
skipping to change at line 263 skipping to change at line 263
#define BUF_AUDIO_WESTWOOD_SND1 0x03370000 #define BUF_AUDIO_WESTWOOD_SND1 0x03370000
#define BUF_AUDIO_WMALL 0x03380000 #define BUF_AUDIO_WMALL 0x03380000
#define BUF_AUDIO_TRUESPEECH 0x03390000 #define BUF_AUDIO_TRUESPEECH 0x03390000
#define BUF_AUDIO_TTA 0x033A0000 #define BUF_AUDIO_TTA 0x033A0000
#define BUF_AUDIO_SMACKER 0x033B0000 #define BUF_AUDIO_SMACKER 0x033B0000
#define BUF_AUDIO_FLVADPCM 0x033C0000 #define BUF_AUDIO_FLVADPCM 0x033C0000
#define BUF_AUDIO_WAVPACK 0x033D0000 #define BUF_AUDIO_WAVPACK 0x033D0000
#define BUF_AUDIO_MP3ADU 0x033E0000 #define BUF_AUDIO_MP3ADU 0x033E0000
#define BUF_AUDIO_AMR_NB 0x033F0000 #define BUF_AUDIO_AMR_NB 0x033F0000
#define BUF_AUDIO_AMR_WB 0x03400000 #define BUF_AUDIO_AMR_WB 0x03400000
#define BUF_AUDIO_EAC3 0x03410000
/* spu buffer types: */ /* spu buffer types: */
#define BUF_SPU_BASE 0x04000000 #define BUF_SPU_BASE 0x04000000
#define BUF_SPU_DVD 0x04000000 #define BUF_SPU_DVD 0x04000000
#define BUF_SPU_TEXT 0x04010000 #define BUF_SPU_TEXT 0x04010000
#define BUF_SPU_CC 0x04020000 #define BUF_SPU_CC 0x04020000
#define BUF_SPU_DVB 0x04030000 #define BUF_SPU_DVB 0x04030000
#define BUF_SPU_SVCD 0x04040000 #define BUF_SPU_SVCD 0x04040000
#define BUF_SPU_CVD 0x04050000 #define BUF_SPU_CVD 0x04050000
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 demux.h   demux.h 
skipping to change at line 54 skipping to change at line 54
#define METHOD_EXPLICIT 3 #define METHOD_EXPLICIT 3
typedef struct demux_class_s demux_class_t ; typedef struct demux_class_s demux_class_t ;
typedef struct demux_plugin_s demux_plugin_t; typedef struct demux_plugin_s demux_plugin_t;
struct demux_class_s { struct demux_class_s {
/* /*
* open a new instance of this plugin class * open a new instance of this plugin class
*/ */
demux_plugin_t* (*open_plugin) (demux_class_t *c_this, xine_stream_t *str eam, input_plugin_t *input); demux_plugin_t* (*open_plugin) (demux_class_t *this, xine_stream_t *strea m, input_plugin_t *input);
/* /*
* return human readable (verbose = 1 line) description for this plugin * return human readable (verbose = 1 line) description for this plugin
*/ */
const char* (*get_description) (demux_class_t *c_this); const char* (*get_description) (demux_class_t *this);
/* /*
* return human readable identifier for this plugin * return human readable identifier for this plugin
*/ */
const char* (*get_identifier) (demux_class_t *c_this); const char* (*get_identifier) (demux_class_t *this);
/* /*
* return MIME types supported for this plugin * return MIME types supported for this plugin
*/ */
const char* (*get_mimetypes) (demux_class_t *c_this); const char* (*get_mimetypes) (demux_class_t *this);
/* /*
* return ' ' seperated list of file extensions this * return ' ' seperated list of file extensions this
* demuxer is likely to handle * demuxer is likely to handle
* (will be used to filter media files in * (will be used to filter media files in
* file selection dialogs) * file selection dialogs)
*/ */
const char* (*get_extensions) (demux_class_t *c_this); const char* (*get_extensions) (demux_class_t *this);
/* /*
* close down, free all resources * close down, free all resources
*/ */
void (*dispose) (demux_class_t *c_this); void (*dispose) (demux_class_t *this);
}; };
/* /*
* any demux plugin must implement these functions * any demux plugin must implement these functions
*/ */
struct demux_plugin_s { struct demux_plugin_s {
/* /*
* send headers, followed by BUF_CONTROL_HEADERS_DONE down the * send headers, followed by BUF_CONTROL_HEADERS_DONE down the
* fifos, then return. do not start demux thread (yet) * fifos, then return. do not start demux thread (yet)
*/ */
void (*send_headers) (demux_plugin_t *c_this); void (*send_headers) (demux_plugin_t *this);
/* /*
* ask demux to seek * ask demux to seek
* *
* for seekable streams, a start position can be specified * for seekable streams, a start position can be specified
* *
* start_pos : position in input source (0..65535) * start_pos : position in input source (0..65535)
* this is defined as most convenient to demuxer, can be * this is defined as most convenient to demuxer, can be
* either time or offset based. * either time or offset based.
* start_time : position measured in miliseconds from stream start * start_time : position measured in miliseconds from stream start
* playing : true if this is a new seek within an already playing stream * playing : true if this is a new seek within an already playing stream
* false if playback of this stream has not started yet * false if playback of this stream has not started yet
* *
* if both parameters are !=0 start_pos will be used * if both parameters are !=0 start_pos will be used
* for non-seekable streams both values will be ignored * for non-seekable streams both values will be ignored
* *
* returns the demux status (like get_status, but immediately after * returns the demux status (like get_status, but immediately after
* starting the demuxer) * starting the demuxer)
*/ */
int (*seek) (demux_plugin_t *c_this, int (*seek) (demux_plugin_t *this,
off_t start_pos, int start_time, int playing ); off_t start_pos, int start_time, int playing );
/* /*
* send a chunk of data down to decoder fifos * send a chunk of data down to decoder fifos
* *
* the meaning of "chunk" is specific to every demux, usually * the meaning of "chunk" is specific to every demux, usually
* it involves parsing one unit of data from stream. * it involves parsing one unit of data from stream.
* *
* this function will be called from demux loop and should return * this function will be called from demux loop and should return
* the demux current status * the demux current status
*/ */
int (*send_chunk) (demux_plugin_t *c_this); int (*send_chunk) (demux_plugin_t *this);
/* /*
* free resources * free resources
*/ */
void (*dispose) (demux_plugin_t *c_this) ; void (*dispose) (demux_plugin_t *this) ;
/* /*
* returns DEMUX_OK or DEMUX_FINISHED * returns DEMUX_OK or DEMUX_FINISHED
*/ */
int (*get_status) (demux_plugin_t *c_this) ; int (*get_status) (demux_plugin_t *this) ;
/* /*
* gets stream length in miliseconds (might be estimated) * gets stream length in miliseconds (might be estimated)
* may return 0 for non-seekable streams * may return 0 for non-seekable streams
*/ */
int (*get_stream_length) (demux_plugin_t *c_this); int (*get_stream_length) (demux_plugin_t *this);
/* /*
* return capabilities of demuxed stream * return capabilities of demuxed stream
*/ */
uint32_t (*get_capabilities) (demux_plugin_t *c_this); uint32_t (*get_capabilities) (demux_plugin_t *this);
/* /*
* request optional data from input plugin. * request optional data from input plugin.
*/ */
int (*get_optional_data) (demux_plugin_t *c_this, void *data, int data_ty pe); int (*get_optional_data) (demux_plugin_t *this, void *data, int data_type );
/* /*
* "backwards" link to plugin class * "backwards" link to plugin class
*/ */
demux_class_t *demux_class; demux_class_t *demux_class;
void *node; /* used by plugin loader */ void *node; /* used by plugin loader */
} ; } ;
 End of changes. 14 change blocks. 
14 lines changed or deleted 14 lines changed or added


 input_plugin.h   input_plugin.h 
skipping to change at line 49 skipping to change at line 49
typedef struct input_class_s input_class_t ; typedef struct input_class_s input_class_t ;
typedef struct input_plugin_s input_plugin_t; typedef struct input_plugin_s input_plugin_t;
struct input_class_s { struct input_class_s {
/* /*
* create a new instance of this plugin class * create a new instance of this plugin class
* return NULL if the plugin does'nt handle the given mrl * return NULL if the plugin does'nt handle the given mrl
*/ */
input_plugin_t* (*get_instance) (input_class_t *c_this, xine_stream_t *st ream, const char *mrl); input_plugin_t* (*get_instance) (input_class_t *this, xine_stream_t *stre am, const char *mrl);
/* /*
* return short, human readable identifier for this plugin class * return short, human readable identifier for this plugin class
* The returned string should not be malloc'd as it is not freed. * The returned string should not be malloc'd as it is not freed.
*/ */
const char* (*get_identifier) (input_class_t *c_this); const char* (*get_identifier) (input_class_t *this);
/* /*
* return human readable (verbose = 1 line) description for * return human readable (verbose = 1 line) description for
* this plugin class * this plugin class
*/ */
const char* (*get_description) (input_class_t *c_this); const char* (*get_description) (input_class_t *this);
/* /*
* ls function, optional: may be NULL * ls function, optional: may be NULL
* return value: NULL => filename is a file, **char=> filename is a dir * return value: NULL => filename is a file, **char=> filename is a dir
*/ */
xine_mrl_t ** (*get_dir) (input_class_t *c_this, const char *filename, in t *nFiles); xine_mrl_t ** (*get_dir) (input_class_t *this, const char *filename, int *nFiles);
/* /*
* generate autoplay list, optional: may be NULL * generate autoplay list, optional: may be NULL
* return value: list of MRLs * return value: list of MRLs
*/ */
char ** (*get_autoplay_list) (input_class_t *c_this, int *num_files); char ** (*get_autoplay_list) (input_class_t *this, int *num_files);
/* /*
* close down, free all resources * close down, free all resources
*/ */
void (*dispose) (input_class_t *c_this); void (*dispose) (input_class_t *this);
/* /*
* eject/load the media (if possible), optional: may be NULL * eject/load the media (if possible), optional: may be NULL
* *
* returns 0 for temporary failures * returns 0 for temporary failures
*/ */
int (*eject_media) (input_class_t *c_this); int (*eject_media) (input_class_t *this);
}; };
struct input_plugin_s { struct input_plugin_s {
/* /*
* open the stream * open the stream
* return 0 if an error occured * return 0 if an error occured
*/ */
int (*open) (input_plugin_t *c_this); int (*open) (input_plugin_t *this);
/* /*
* return capabilities of the current playable entity. See * return capabilities of the current playable entity. See
* get_current_pos below for a description of a "playable entity" * get_current_pos below for a description of a "playable entity"
* Capabilities a created by "OR"ing a mask of constants listed * Capabilities a created by "OR"ing a mask of constants listed
* below which start "INPUT_CAP". * below which start "INPUT_CAP".
* *
* depending on the values set, some of the functions below * depending on the values set, some of the functions below
* will or will not get called or should (not) be able to * will or will not get called or should (not) be able to
* do certain tasks. * do certain tasks.
* *
* for example if INPUT_CAP_SEEKABLE is set, * for example if INPUT_CAP_SEEKABLE is set,
* the seek() function is expected to work fully at any time. * the seek() function is expected to work fully at any time.
* however, if the flag is not set, the seek() function should * however, if the flag is not set, the seek() function should
* make a best-effort attempt to seek, e.g. at least * make a best-effort attempt to seek, e.g. at least
* relative forward seeking should work. * relative forward seeking should work.
*/ */
uint32_t (*get_capabilities) (input_plugin_t *c_this); uint32_t (*get_capabilities) (input_plugin_t *this);
/* /*
* read nlen bytes, return number of bytes read * read nlen bytes, return number of bytes read
* Should block until some bytes available for read; * Should block until some bytes available for read;
* a return value of 0 indicates no data available * a return value of 0 indicates no data available
*/ */
off_t (*read) (input_plugin_t *c_this, char *buf, off_t nlen); off_t (*read) (input_plugin_t *this, char *buf, off_t nlen);
/* /*
* read one block, return newly allocated block (or NULL on failure) * read one block, return newly allocated block (or NULL on failure)
* for blocked input sources len must be == blocksize * for blocked input sources len must be == blocksize
* the fifo parameter is only used to get access to the buffer_pool_alloc function * the fifo parameter is only used to get access to the buffer_pool_alloc function
*/ */
buf_element_t *(*read_block)(input_plugin_t *c_this, fifo_buffer_t *fifo, off_t len); buf_element_t *(*read_block)(input_plugin_t *this, fifo_buffer_t *fifo, o ff_t len);
/* /*
* seek position, return new position * seek position, return new position
* *
* if seeking failed, -1 is returned * if seeking failed, -1 is returned
*/ */
off_t (*seek) (input_plugin_t *c_this, off_t offset, int origin); off_t (*seek) (input_plugin_t *this, off_t offset, int origin);
/* /*
* seek to time position, return new position * seek to time position, return new position
* time_offset is given in miliseconds * time_offset is given in miliseconds
* *
* if seeking failed, -1 is returned * if seeking failed, -1 is returned
* *
* note: only SEEK_SET (0) is currently supported as origin * note: only SEEK_SET (0) is currently supported as origin
* note: may be NULL is not supported * note: may be NULL is not supported
*/ */
off_t (*seek_time) (input_plugin_t *c_this, int time_offset, int origin); off_t (*seek_time) (input_plugin_t *this, int time_offset, int origin);
/* /*
* get current position in stream. * get current position in stream.
* *
*/ */
off_t (*get_current_pos) (input_plugin_t *c_this); off_t (*get_current_pos) (input_plugin_t *this);
/* /*
* get current time position in stream in miliseconds. * get current time position in stream in miliseconds.
* *
* note: may be NULL is not supported * note: may be NULL is not supported
*/ */
int (*get_current_time) (input_plugin_t *c_this); int (*get_current_time) (input_plugin_t *this);
/* /*
* return number of bytes in the next playable entity or -1 if the * return number of bytes in the next playable entity or -1 if the
* input is unlimited, as would be the case in a network stream. * input is unlimited, as would be the case in a network stream.
* *
* A "playable entity" tends to be the entities listed in a playback * A "playable entity" tends to be the entities listed in a playback
* list or the units on which playback control generally works on. * list or the units on which playback control generally works on.
* It might be the number of bytes in a VCD "segment" or "track" (if * It might be the number of bytes in a VCD "segment" or "track" (if
* the track has no "entry" subdivisions), or the number of bytes in * the track has no "entry" subdivisions), or the number of bytes in
* a PS (Program Segment or "Chapter") of a DVD. If there are no * a PS (Program Segment or "Chapter") of a DVD. If there are no
* subdivisions of the input medium and it is considered one * subdivisions of the input medium and it is considered one
* indivisible entity, it would be the byte count of that entity; * indivisible entity, it would be the byte count of that entity;
* for example, the length in bytes of an MPEG file. * for example, the length in bytes of an MPEG file.
* This length information is used, for example when in setting the * This length information is used, for example when in setting the
* absolute or relative play position or possibly calculating the * absolute or relative play position or possibly calculating the
* bit rate. * bit rate.
*/ */
off_t (*get_length) (input_plugin_t *c_this); off_t (*get_length) (input_plugin_t *this);
/* /*
* return block size in bytes of next complete playable entity (if * return block size in bytes of next complete playable entity (if
* supported, 0 otherwise). See the description above under * supported, 0 otherwise). See the description above under
* get_length for a description of a "complete playable entity". * get_length for a description of a "complete playable entity".
* *
* this block size is only used for mpeg streams stored on * this block size is only used for mpeg streams stored on
* a block oriented storage media, e.g. DVDs and VCDs, to speed * a block oriented storage media, e.g. DVDs and VCDs, to speed
* up the demuxing process. only set this (and the INPUT_CAP_BLOCK * up the demuxing process. only set this (and the INPUT_CAP_BLOCK
* flag) if this is the case for your input plugin. * flag) if this is the case for your input plugin.
* *
* make this function simply return 0 if unsure. * make this function simply return 0 if unsure.
*/ */
uint32_t (*get_blocksize) (input_plugin_t *c_this); uint32_t (*get_blocksize) (input_plugin_t *this);
/* /*
* return current MRL * return current MRL
*/ */
const char * (*get_mrl) (input_plugin_t *c_this); const char * (*get_mrl) (input_plugin_t *this);
/* /*
* request optional data from input plugin. * request optional data from input plugin.
*/ */
int (*get_optional_data) (input_plugin_t *c_this, void *data, int data_ty pe); int (*get_optional_data) (input_plugin_t *this, void *data, int data_type );
/* /*
* close stream, free instance resources * close stream, free instance resources
*/ */
void (*dispose) (input_plugin_t *c_this); void (*dispose) (input_plugin_t *this);
/* /*
* "backward" link to input plugin class struct * "backward" link to input plugin class struct
*/ */
input_class_t *input_class; input_class_t *input_class;
void *node; /* used by plugin loader */ void *node; /* used by plugin loader */
}; };
 End of changes. 20 change blocks. 
20 lines changed or deleted 20 lines changed or added


 osd.h   osd.h 
skipping to change at line 85 skipping to change at line 85
struct osd_renderer_s { struct osd_renderer_s {
/* /*
* open a new osd object. this will allocated an empty (all zero) drawing * open a new osd object. this will allocated an empty (all zero) drawing
* area where graphic primitives may be used. * area where graphic primitives may be used.
* It is ok to specify big width and height values. The render will keep * It is ok to specify big width and height values. The render will keep
* track of the smallest changed area to not generate too big overlays. * track of the smallest changed area to not generate too big overlays.
* A default palette is initialized (i sugest keeping color 0 as transpar ent * A default palette is initialized (i sugest keeping color 0 as transpar ent
* for the sake of simplicity) * for the sake of simplicity)
*/ */
osd_object_t* (*new_object) (osd_renderer_t *c_this, int width, int heigh t); osd_object_t* (*new_object) (osd_renderer_t *this, int width, int height) ;
/* /*
* free osd object * free osd object
*/ */
void (*free_object) (osd_object_t *osd_to_close); void (*free_object) (osd_object_t *osd_to_close);
/* /*
* send the osd to be displayed at given pts (0=now) * send the osd to be displayed at given pts (0=now)
* the object is not changed. there may be subsequent drawing on it. * the object is not changed. there may be subsequent drawing on it.
*/ */
skipping to change at line 187 skipping to change at line 187
* get width and height of how text will be renderized * get width and height of how text will be renderized
*/ */
int (*get_text_size) (osd_object_t *osd, const char *text, int (*get_text_size) (osd_object_t *osd, const char *text,
int *width, int *height); int *width, int *height);
/* /*
* close osd rendering engine * close osd rendering engine
* loaded fonts are unloaded * loaded fonts are unloaded
* osd objects are closed * osd objects are closed
*/ */
void (*close) (osd_renderer_t *c_this); void (*close) (osd_renderer_t *this);
/* /*
* clear an osd object (empty drawing area) * clear an osd object (empty drawing area)
*/ */
void (*clear) (osd_object_t *osd ); void (*clear) (osd_object_t *osd );
/* /*
* paste a bitmap with optional palette mapping * paste a bitmap with optional palette mapping
*/ */
void (*draw_bitmap) (osd_object_t *osd, uint8_t *bitmap, void (*draw_bitmap) (osd_object_t *osd, uint8_t *bitmap,
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 plugin_catalog.h   plugin_catalog.h 
skipping to change at line 90 skipping to change at line 90
}; };
typedef struct plugin_catalog_s plugin_catalog_t; typedef struct plugin_catalog_s plugin_catalog_t;
/* /*
* load plugins into catalog * load plugins into catalog
* *
* all input+demux plugins will be fully loaded+initialized * all input+demux plugins will be fully loaded+initialized
* decoder plugins are loaded on demand * decoder plugins are loaded on demand
* video/audio output plugins have special load/probe functions * video/audio output plugins have special load/probe functions
*/ */
void _x_scan_plugins (xine_t *c_this) XINE_PROTECTED; void _x_scan_plugins (xine_t *this) XINE_PROTECTED;
/* /*
* dispose all currently loaded plugins (shutdown) * dispose all currently loaded plugins (shutdown)
*/ */
void _x_dispose_plugins (xine_t *c_this) XINE_PROTECTED; void _x_dispose_plugins (xine_t *this) XINE_PROTECTED;
#endif #endif
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 post.h   post.h 
skipping to change at line 52 skipping to change at line 52
typedef struct post_class_s post_class_t; typedef struct post_class_s post_class_t;
typedef struct post_plugin_s post_plugin_t; typedef struct post_plugin_s post_plugin_t;
typedef struct post_in_s post_in_t; typedef struct post_in_s post_in_t;
typedef struct post_out_s post_out_t; typedef struct post_out_s post_out_t;
struct post_class_s { struct post_class_s {
/* /*
* open a new instance of this plugin class * open a new instance of this plugin class
*/ */
post_plugin_t* (*open_plugin) (post_class_t *c_this, int inputs, post_plugin_t* (*open_plugin) (post_class_t *this, int inputs,
xine_audio_port_t **audio_target, xine_audio_port_t **audio_target,
xine_video_port_t **video_target); xine_video_port_t **video_target);
/* /*
* return short, human readable identifier for this plugin class * return short, human readable identifier for this plugin class
*/ */
char* (*get_identifier) (post_class_t *c_this); char* (*get_identifier) (post_class_t *this);
/* /*
* return human readable (verbose = 1 line) description for * return human readable (verbose = 1 line) description for
* this plugin class * this plugin class
*/ */
char* (*get_description) (post_class_t *c_this); char* (*get_description) (post_class_t *this);
/* /*
* free all class-related resources * free all class-related resources
*/ */
void (*dispose) (post_class_t *c_this); void (*dispose) (post_class_t *this);
}; };
struct post_plugin_s { struct post_plugin_s {
/* public part of the plugin */ /* public part of the plugin */
xine_post_t xine_post; xine_post_t xine_post;
/* /*
* the connections announced by the plugin * the connections announced by the plugin
* the plugin must fill these with xine_post_{in,out}_t on init * the plugin must fill these with xine_post_{in,out}_t on init
*/ */
xine_list_t *input; xine_list_t *input;
xine_list_t *output; xine_list_t *output;
/* /*
* close down, free all resources * close down, free all resources
*/ */
void (*dispose) (post_plugin_t *c_this); void (*dispose) (post_plugin_t *this);
/* has dispose been called */ /* has dispose been called */
int dispose_pending; int dispose_pending;
/* plugins don't have to init the stuff below */ /* plugins don't have to init the stuff below */
/* /*
* the running ticket * the running ticket
* *
* the plugin must assure to check for ticket revocation in * the plugin must assure to check for ticket revocation in
 End of changes. 5 change blocks. 
5 lines changed or deleted 5 lines changed or added


 scratch.h   scratch.h 
skipping to change at line 36 skipping to change at line 36
#include <stdarg.h> #include <stdarg.h>
#include <pthread.h> #include <pthread.h>
typedef struct scratch_buffer_s scratch_buffer_t; typedef struct scratch_buffer_s scratch_buffer_t;
#define SCRATCH_LINE_LEN_MAX 1024 #define SCRATCH_LINE_LEN_MAX 1024
struct scratch_buffer_s { struct scratch_buffer_s {
void XINE_FORMAT_PRINTF(2, 0) void XINE_FORMAT_PRINTF(2, 0)
(*scratch_printf) (scratch_buffer_t *c_this, const char *for mat, va_list ap); (*scratch_printf) (scratch_buffer_t *this, const char *forma t, va_list ap);
char **(*get_content) (scratch_buffer_t *c_this); char **(*get_content) (scratch_buffer_t *this);
void (*dispose) (scratch_buffer_t *c_this); void (*dispose) (scratch_buffer_t *this);
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;
}; };
 End of changes. 3 change blocks. 
3 lines changed or deleted 3 lines changed or added


 spu_decoder.h   spu_decoder.h 
skipping to change at line 49 skipping to change at line 49
*/ */
typedef struct spu_decoder_class_s spu_decoder_class_t; typedef struct spu_decoder_class_s spu_decoder_class_t;
typedef struct spu_decoder_s spu_decoder_t; typedef struct spu_decoder_s spu_decoder_t;
struct spu_decoder_class_s { struct spu_decoder_class_s {
/* /*
* open a new instance of this plugin class * open a new instance of this plugin class
*/ */
spu_decoder_t* (*open_plugin) (spu_decoder_class_t *c_this, xine_stream_t *stream); spu_decoder_t* (*open_plugin) (spu_decoder_class_t *this, xine_stream_t * stream);
/* /*
* return short, human readable identifier for this plugin class * return short, human readable identifier for this plugin class
*/ */
char* (*get_identifier) (spu_decoder_class_t *c_this); char* (*get_identifier) (spu_decoder_class_t *this);
/* /*
* return human readable (verbose = 1 line) description for * return human readable (verbose = 1 line) description for
* this plugin class * this plugin class
*/ */
char* (*get_description) (spu_decoder_class_t *c_this); char* (*get_description) (spu_decoder_class_t *this);
/* /*
* free all class-related resources * free all class-related resources
*/ */
void (*dispose) (spu_decoder_class_t *c_this); void (*dispose) (spu_decoder_class_t *this);
}; };
struct spu_decoder_s { struct spu_decoder_s {
/* /*
* decode data from buf and feed the overlay to overlay manager * decode data from buf and feed the overlay to overlay manager
*/ */
void (*decode_data) (spu_decoder_t *c_this, buf_element_t *buf); void (*decode_data) (spu_decoder_t *this, buf_element_t *buf);
/* /*
* reset decoder after engine flush (prepare for new * reset decoder after engine flush (prepare for new
* SPU data not related to recently decoded data) * SPU data not related to recently decoded data)
*/ */
void (*reset) (spu_decoder_t *c_this); void (*reset) (spu_decoder_t *this);
/* /*
* inform decoder that a time reference discontinuity has happened. * inform decoder that a time reference discontinuity has happened.
* that is, it must forget any currently held pts value * that is, it must forget any currently held pts value
*/ */
void (*discontinuity) (spu_decoder_t *c_this); void (*discontinuity) (spu_decoder_t *this);
/* /*
* close down, free all resources * close down, free all resources
*/ */
void (*dispose) (spu_decoder_t *c_this); void (*dispose) (spu_decoder_t *this);
/* /*
* When the SPU decoder also handles data used in user interaction, * When the SPU decoder also handles data used in user interaction,
* you can query the related information here. The typical example * you can query the related information here. The typical example
* for this is DVD NAV packets which are handled by the SPU decoder * for this is DVD NAV packets which are handled by the SPU decoder
* and can be received readily parsed from here. * and can be received readily parsed from here.
* The caller and the decoder must agree on the structure which is * The caller and the decoder must agree on the structure which is
* passed here. * passed here.
* This function pointer may be NULL, if the plugin does not have * This function pointer may be NULL, if the plugin does not have
* such functionality. * such functionality.
*/ */
int (*get_interact_info) (spu_decoder_t *c_this, void *data); int (*get_interact_info) (spu_decoder_t *this, void *data);
/* /*
* When the SPU decoder also handles menu overlays for user inter- * When the SPU decoder also handles menu overlays for user inter-
* action, you can set a menu button here. The typical example for * action, you can set a menu button here. The typical example for
* this is DVD menus. * this is DVD menus.
* This function pointer may be NULL, if the plugin does not have * This function pointer may be NULL, if the plugin does not have
* such functionality. * such functionality.
*/ */
void (*set_button) (spu_decoder_t *this_gen, int32_t button, int32_t mode ); void (*set_button) (spu_decoder_t *this_gen, int32_t button, int32_t mode );
 End of changes. 9 change blocks. 
9 lines changed or deleted 9 lines changed or added


 video_decoder.h   video_decoder.h 
skipping to change at line 48 skipping to change at line 48
*/ */
typedef struct video_decoder_class_s video_decoder_class_t; typedef struct video_decoder_class_s video_decoder_class_t;
typedef struct video_decoder_s video_decoder_t; typedef struct video_decoder_s video_decoder_t;
struct video_decoder_class_s { struct video_decoder_class_s {
/* /*
* open a new instance of this plugin class * open a new instance of this plugin class
*/ */
video_decoder_t* (*open_plugin) (video_decoder_class_t *c_this, xine_stre am_t *stream); video_decoder_t* (*open_plugin) (video_decoder_class_t *this, xine_stream _t *stream);
/* /*
* return short, human readable identifier for this plugin class * return short, human readable identifier for this plugin class
*/ */
char* (*get_identifier) (video_decoder_class_t *c_this); char* (*get_identifier) (video_decoder_class_t *this);
/* /*
* return human readable (verbose = 1 line) description for * return human readable (verbose = 1 line) description for
* this plugin class * this plugin class
*/ */
char* (*get_description) (video_decoder_class_t *c_this); char* (*get_description) (video_decoder_class_t *this);
/* /*
* free all class-related resources * free all class-related resources
*/ */
void (*dispose) (video_decoder_class_t *c_this); void (*dispose) (video_decoder_class_t *this);
}; };
struct video_decoder_s { struct video_decoder_s {
/* /*
* decode data from buf and feed decoded frames to * decode data from buf and feed decoded frames to
* video output * video output
*/ */
void (*decode_data) (video_decoder_t *c_this, buf_element_t *buf); void (*decode_data) (video_decoder_t *this, buf_element_t *buf);
/* /*
* reset decoder after engine flush (prepare for new * reset decoder after engine flush (prepare for new
* video data not related to recently decoded data) * video data not related to recently decoded data)
*/ */
void (*reset) (video_decoder_t *c_this); void (*reset) (video_decoder_t *this);
/* /*
* inform decoder that a time reference discontinuity has happened. * inform decoder that a time reference discontinuity has happened.
* that is, it must forget any currently held pts value * that is, it must forget any currently held pts value
*/ */
void (*discontinuity) (video_decoder_t *c_this); void (*discontinuity) (video_decoder_t *this);
/* /*
* flush out any frames that are still stored in the decoder * flush out any frames that are still stored in the decoder
*/ */
void (*flush) (video_decoder_t *c_this); void (*flush) (video_decoder_t *this);
/* /*
* close down, free all resources * close down, free all resources
*/ */
void (*dispose) (video_decoder_t *c_this); void (*dispose) (video_decoder_t *this);
void *node; /*used by plugin loader */ void *node; /*used by plugin loader */
}; };
#endif #endif
 End of changes. 9 change blocks. 
9 lines changed or deleted 9 lines changed or added


 video_out.h   video_out.h 
skipping to change at line 236 skipping to change at line 236
#define VO_PROP_HUE 2 #define VO_PROP_HUE 2
#define VO_PROP_SATURATION 3 #define VO_PROP_SATURATION 3
#define VO_PROP_CONTRAST 4 #define VO_PROP_CONTRAST 4
#define VO_PROP_BRIGHTNESS 5 #define VO_PROP_BRIGHTNESS 5
#define VO_PROP_COLORKEY 6 #define VO_PROP_COLORKEY 6
#define VO_PROP_AUTOPAINT_COLORKEY 7 #define VO_PROP_AUTOPAINT_COLORKEY 7
#define VO_PROP_ZOOM_X 8 #define VO_PROP_ZOOM_X 8
#define VO_PROP_PAN_SCAN 9 #define VO_PROP_PAN_SCAN 9
#define VO_PROP_TVMODE 10 #define VO_PROP_TVMODE 10
#define VO_PROP_MAX_NUM_FRAMES 11 #define VO_PROP_MAX_NUM_FRAMES 11
#define VO_PROP_GAMMA 12
#define VO_PROP_ZOOM_Y 13 #define VO_PROP_ZOOM_Y 13
#define VO_PROP_DISCARD_FRAMES 14 /* not used by drivers */ #define VO_PROP_DISCARD_FRAMES 14 /* not used by drivers */
#define VO_PROP_WINDOW_WIDTH 15 /* read-only */ #define VO_PROP_WINDOW_WIDTH 15 /* read-only */
#define VO_PROP_WINDOW_HEIGHT 16 /* read-only */ #define VO_PROP_WINDOW_HEIGHT 16 /* read-only */
#define VO_PROP_BUFS_IN_FIFO 17 /* read-only */ #define VO_PROP_BUFS_IN_FIFO 17 /* read-only */
#define VO_PROP_NUM_STREAMS 18 /* read-only */ #define VO_PROP_NUM_STREAMS 18 /* read-only */
#define VO_PROP_OUTPUT_WIDTH 19 /* read-only */ #define VO_PROP_OUTPUT_WIDTH 19 /* read-only */
#define VO_PROP_OUTPUT_HEIGHT 20 /* read-only */ #define VO_PROP_OUTPUT_HEIGHT 20 /* read-only */
#define VO_PROP_OUTPUT_XOFFSET 21 /* read-only */ #define VO_PROP_OUTPUT_XOFFSET 21 /* read-only */
#define VO_PROP_OUTPUT_YOFFSET 22 /* read-only */ #define VO_PROP_OUTPUT_YOFFSET 22 /* read-only */
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 xine.h   xine.h 
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 18 #define XINE_SUB_VERSION 19
#define XINE_VERSION "1.1.18.1" #define XINE_VERSION "1.1.19"
/* /*
* 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 367 skipping to change at line 367
/* normal speed value for XINE_PARAM_FINE_SPEED parameter */ /* normal speed value for XINE_PARAM_FINE_SPEED parameter */
#define XINE_FINE_SPEED_NORMAL 1000000 #define XINE_FINE_SPEED_NORMAL 1000000
/* video parameters */ /* video parameters */
#define XINE_PARAM_VO_DEINTERLACE 0x01000000 /* bool */ #define XINE_PARAM_VO_DEINTERLACE 0x01000000 /* bool */
#define XINE_PARAM_VO_ASPECT_RATIO 0x01000001 /* see below */ #define XINE_PARAM_VO_ASPECT_RATIO 0x01000001 /* see below */
#define XINE_PARAM_VO_HUE 0x01000002 /* 0..65535 */ #define XINE_PARAM_VO_HUE 0x01000002 /* 0..65535 */
#define XINE_PARAM_VO_SATURATION 0x01000003 /* 0..65535 */ #define XINE_PARAM_VO_SATURATION 0x01000003 /* 0..65535 */
#define XINE_PARAM_VO_CONTRAST 0x01000004 /* 0..65535 */ #define XINE_PARAM_VO_CONTRAST 0x01000004 /* 0..65535 */
#define XINE_PARAM_VO_BRIGHTNESS 0x01000005 /* 0..65535 */ #define XINE_PARAM_VO_BRIGHTNESS 0x01000005 /* 0..65535 */
#define XINE_PARAM_VO_GAMMA 0x0100000c /* 0..65535 */
#define XINE_PARAM_VO_ZOOM_X 0x01000008 /* percent */ #define XINE_PARAM_VO_ZOOM_X 0x01000008 /* percent */
#define XINE_PARAM_VO_ZOOM_Y 0x0100000d /* percent */ #define XINE_PARAM_VO_ZOOM_Y 0x0100000d /* percent */
#define XINE_PARAM_VO_PAN_SCAN 0x01000009 /* bool */ #define XINE_PARAM_VO_PAN_SCAN 0x01000009 /* bool */
#define XINE_PARAM_VO_TVMODE 0x0100000a /* ??? */ #define XINE_PARAM_VO_TVMODE 0x0100000a /* ??? */
#define XINE_PARAM_VO_WINDOW_WIDTH 0x0100000f /* readonly */ #define XINE_PARAM_VO_WINDOW_WIDTH 0x0100000f /* readonly */
#define XINE_PARAM_VO_WINDOW_HEIGHT 0x01000010 /* readonly */ #define XINE_PARAM_VO_WINDOW_HEIGHT 0x01000010 /* readonly */
#define XINE_PARAM_VO_CROP_LEFT 0x01000020 /* crop frame pixels */ #define XINE_PARAM_VO_CROP_LEFT 0x01000020 /* crop frame pixels */
#define XINE_PARAM_VO_CROP_RIGHT 0x01000021 /* crop frame pixels */ #define XINE_PARAM_VO_CROP_RIGHT 0x01000021 /* crop frame pixels */
#define XINE_PARAM_VO_CROP_TOP 0x01000022 /* crop frame pixels */ #define XINE_PARAM_VO_CROP_TOP 0x01000022 /* crop frame pixels */
#define XINE_PARAM_VO_CROP_BOTTOM 0x01000023 /* crop frame pixels */ #define XINE_PARAM_VO_CROP_BOTTOM 0x01000023 /* crop frame pixels */
skipping to change at line 999 skipping to change at line 1000
#define XINE_META_INFO_ARRANGER 16 #define XINE_META_INFO_ARRANGER 16
#define XINE_META_INFO_LYRICIST 17 #define XINE_META_INFO_LYRICIST 17
#define XINE_META_INFO_AUTHOR 18 #define XINE_META_INFO_AUTHOR 18
#define XINE_META_INFO_CONDUCTOR 19 #define XINE_META_INFO_CONDUCTOR 19
#define XINE_META_INFO_PERFORMER 20 #define XINE_META_INFO_PERFORMER 20
#define XINE_META_INFO_ENSEMBLE 21 #define XINE_META_INFO_ENSEMBLE 21
#define XINE_META_INFO_OPUS 22 #define XINE_META_INFO_OPUS 22
#define XINE_META_INFO_PART 23 #define XINE_META_INFO_PART 23
#define XINE_META_INFO_PARTNUMBER 24 #define XINE_META_INFO_PARTNUMBER 24
#define XINE_META_INFO_LOCATION 25 #define XINE_META_INFO_LOCATION 25
/* post-1.1.18.1 */
#define XINE_META_INFO_DISCNUMBER 26
/********************************************************************* /*********************************************************************
* plugin management / autoplay / mrl browsing * * plugin management / autoplay / mrl browsing *
*********************************************************************/ *********************************************************************/
/* /*
* note: the pointers to strings or string arrays returned * note: the pointers to strings or string arrays returned
* by some of these functions are pointers to statically * by some of these functions are pointers to statically
* alloced internal xine memory chunks. * alloced internal xine memory chunks.
* they're only valid between xine function calls * they're only valid between xine function calls
skipping to change at line 1704 skipping to change at line 1707
#define XINE_EVENT_FRAME_FORMAT_CHANGE 5 /* e.g. aspect ratio change dur ing dvd playback */ #define XINE_EVENT_FRAME_FORMAT_CHANGE 5 /* e.g. aspect ratio change dur ing dvd playback */
#define XINE_EVENT_AUDIO_LEVEL 6 /* report current audio level ( l/r/mute) */ #define XINE_EVENT_AUDIO_LEVEL 6 /* report current audio level ( l/r/mute) */
#define XINE_EVENT_QUIT 7 /* last event sent when stream is disposed */ #define XINE_EVENT_QUIT 7 /* last event sent when stream is disposed */
#define XINE_EVENT_PROGRESS 8 /* index creation/network conne ctions */ #define XINE_EVENT_PROGRESS 8 /* index creation/network conne ctions */
#define XINE_EVENT_MRL_REFERENCE 9 /* (deprecated) demuxer->fronte nd: MRL reference(s) for the real stream */ #define XINE_EVENT_MRL_REFERENCE 9 /* (deprecated) demuxer->fronte nd: MRL reference(s) for the real stream */
#define XINE_EVENT_UI_NUM_BUTTONS 10 /* number of buttons for intera ctive menus */ #define XINE_EVENT_UI_NUM_BUTTONS 10 /* number of buttons for intera ctive menus */
#define XINE_EVENT_SPU_BUTTON 11 /* the mouse pointer enter/leav e a button */ #define XINE_EVENT_SPU_BUTTON 11 /* the mouse pointer enter/leav e a button */
#define XINE_EVENT_DROPPED_FRAMES 12 /* number of dropped frames is too high */ #define XINE_EVENT_DROPPED_FRAMES 12 /* number of dropped frames is too high */
#define XINE_EVENT_MRL_REFERENCE_EXT 13 /* demuxer->frontend: MRL refer ence(s) for the real stream */ #define XINE_EVENT_MRL_REFERENCE_EXT 13 /* demuxer->frontend: MRL refer ence(s) for the real stream */
#define XINE_EVENT_AUDIO_AMP_LEVEL 14 /* report current audio amp lev el (l/r/mute) */ #define XINE_EVENT_AUDIO_AMP_LEVEL 14 /* report current audio amp lev el (l/r/mute) */
#define XINE_EVENT_NBC_STATS 15 /* nbc buffer status */
/* input events coming from frontend */ /* input events coming from frontend */
#define XINE_EVENT_INPUT_MOUSE_BUTTON 101 #define XINE_EVENT_INPUT_MOUSE_BUTTON 101
#define XINE_EVENT_INPUT_MOUSE_MOVE 102 #define XINE_EVENT_INPUT_MOUSE_MOVE 102
#define XINE_EVENT_INPUT_MENU1 103 #define XINE_EVENT_INPUT_MENU1 103
#define XINE_EVENT_INPUT_MENU2 104 #define XINE_EVENT_INPUT_MENU2 104
#define XINE_EVENT_INPUT_MENU3 105 #define XINE_EVENT_INPUT_MENU3 105
#define XINE_EVENT_INPUT_MENU4 106 #define XINE_EVENT_INPUT_MENU4 106
#define XINE_EVENT_INPUT_MENU5 107 #define XINE_EVENT_INPUT_MENU5 107
#define XINE_EVENT_INPUT_MENU6 108 #define XINE_EVENT_INPUT_MENU6 108
skipping to change at line 1886 skipping to change at line 1890
/* /*
* index generation / buffering * index generation / buffering
*/ */
typedef struct { typedef struct {
const char *description; /* e.g. "connecting..." */ const char *description; /* e.g. "connecting..." */
int percent; int percent;
} xine_progress_data_t; } xine_progress_data_t;
/* /*
* nbc buffer status
*/
typedef struct {
int v_percent; /* fill of video buffer */
int64_t v_remaining; /* remaining time in ms till underrun *
/
int64_t v_bitrate; /* current bitrate */
int v_in_disc; /* in discontinuity */
int a_percent; /* like video, but for audio */
int64_t a_remaining;
int64_t a_bitrate;
int a_in_disc;
int buffering; /* currently filling buffer */
int enabled; /* buffer disabled by engine */
int type; /* 0=buffer put, 1=buffer get */
} xine_nbc_stats_data_t;
/*
* mrl reference data is sent by demuxers when a reference stream is found. * mrl reference data is sent by demuxers when a reference stream is found.
* this stream just contains pointers (urls) to the real data, which are * this stream just contains pointers (urls) to the real data, which are
* passed to frontend using this event type. (examples: .asx, .mov and .ram ) * passed to frontend using this event type. (examples: .asx, .mov and .ram )
* *
* ideally, frontends should add these mrls to a "hierarchical playlist". * ideally, frontends should add these mrls to a "hierarchical playlist".
* that is, instead of the original file, the ones provided here should be * that is, instead of the original file, the ones provided here should be
* played instead. on pratice, just using a simple playlist should work. * played instead. on pratice, just using a simple playlist should work.
* *
* mrl references should be played in the same order they are received, jus t * mrl references should be played in the same order they are received, jus t
* after the current stream finishes. * after the current stream finishes.
 End of changes. 5 change blocks. 
2 lines changed or deleted 24 lines changed or added


 xine_internal.h   xine_internal.h 
skipping to change at line 481 skipping to change at line 481
void _x_free_spu_decoder (xine_stream_t *stream, spu_decoder_ t *decoder) XINE_PROTECTED; void _x_free_spu_decoder (xine_stream_t *stream, spu_decoder_ t *decoder) XINE_PROTECTED;
/* check for decoder availability - but don't try to initialize it */ /* check for decoder availability - but don't try to initialize it */
int _x_decoder_available (xine_t *xine, uint32_t buftype) XIN E_PROTECTED; int _x_decoder_available (xine_t *xine, uint32_t buftype) XIN E_PROTECTED;
/* /*
* load_video_output_plugin * load_video_output_plugin
* *
* load a specific video output plugin * load a specific video output plugin
*/ */
vo_driver_t *_x_load_video_output_plugin(xine_t *c_this, vo_driver_t *_x_load_video_output_plugin(xine_t *this,
char *id, int visual_type, void *vi sual) XINE_PROTECTED; char *id, int visual_type, void *vi sual) XINE_PROTECTED;
/* /*
* audio output plugin dynamic loading stuff * audio output plugin dynamic loading stuff
*/ */
/* /*
* load_audio_output_plugin * load_audio_output_plugin
* *
* load a specific audio output plugin * load a specific audio output plugin
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 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/