diff options
author | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-12-21 12:56:44 +0000 |
---|---|---|
committer | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-12-21 12:56:44 +0000 |
commit | 5f31761a4fa6995592cdd536c52f6ddac8151a89 (patch) | |
tree | aeec46d8f80b411df280cc2cc6bc124c2dbd6756 | |
parent | eafb4f823a16426e7b2b30ada1b3cca47d8eeb3c (diff) | |
download | xine-lib-5f31761a4fa6995592cdd536c52f6ddac8151a89.tar.gz xine-lib-5f31761a4fa6995592cdd536c52f6ddac8151a89.tar.bz2 |
- add buf->decoder_info_ptr: portability for systems where pointer has
different sizeof than integer.
- add extra_info structure to pass informations from input/demuxers down
to the output frame. this can be used, for example, to pass the frame
number of a frame (when known by decoder). also, immediate benefict is
that we now have a slider which really shows the current position of
the playing stream. new fields can be added to extra_info keeping
binary compatibility
- bumpy everybody's api versions
CVS patchset: 3603
CVS date: 2002/12/21 12:56:44
104 files changed, 542 insertions, 424 deletions
diff --git a/src/audio_out/audio_alsa_out.c b/src/audio_out/audio_alsa_out.c index 7ed2363fa..8509ce6e6 100644 --- a/src/audio_out/audio_alsa_out.c +++ b/src/audio_out/audio_alsa_out.c @@ -26,7 +26,7 @@ * (c) 2001 James Courtier-Dutton <James@superbug.demon.co.uk> * * - * $Id: audio_alsa_out.c,v 1.84 2002/11/20 11:57:38 mroi Exp $ + * $Id: audio_alsa_out.c,v 1.85 2002/12/21 12:56:46 miguelfreitas Exp $ */ #ifdef HAVE_CONFIG_H @@ -65,7 +65,7 @@ #define LOG_DEBUG */ -#define AO_OUT_ALSA_IFACE_VERSION 6 +#define AO_OUT_ALSA_IFACE_VERSION 7 #define BUFFER_TIME 1000*1000 #define PERIOD_TIME 100*1000 diff --git a/src/audio_out/audio_arts_out.c b/src/audio_out/audio_arts_out.c index 97b5af9b8..9b93f0ea4 100644 --- a/src/audio_out/audio_arts_out.c +++ b/src/audio_out/audio_arts_out.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: audio_arts_out.c,v 1.19 2002/12/15 16:38:04 jkeil Exp $ + * $Id: audio_arts_out.c,v 1.20 2002/12/21 12:56:46 miguelfreitas Exp $ */ #ifndef __sun /* _XOPEN_SOURCE causes build prob's on sunos */ @@ -43,7 +43,7 @@ #include "xineutils.h" #include "audio_out.h" -#define AO_OUT_ARTS_IFACE_VERSION 6 +#define AO_OUT_ARTS_IFACE_VERSION 7 #define AUDIO_NUM_FRAGMENTS 15 #define AUDIO_FRAGMENT_SIZE 8192 diff --git a/src/audio_out/audio_esd_out.c b/src/audio_out/audio_esd_out.c index 1cbd6bb94..b0ddaaf9b 100644 --- a/src/audio_out/audio_esd_out.c +++ b/src/audio_out/audio_esd_out.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: audio_esd_out.c,v 1.23 2002/11/26 02:37:35 guenter Exp $ + * $Id: audio_esd_out.c,v 1.24 2002/12/21 12:56:46 miguelfreitas Exp $ */ #ifdef HAVE_CONFIG_H @@ -39,7 +39,7 @@ #include "audio_out.h" #include "metronom.h" -#define AO_OUT_ESD_IFACE_VERSION 6 +#define AO_OUT_ESD_IFACE_VERSION 7 #define GAP_TOLERANCE 5000 diff --git a/src/audio_out/audio_oss_out.c b/src/audio_out/audio_oss_out.c index ae5a4d74e..3097a8a71 100644 --- a/src/audio_out/audio_oss_out.c +++ b/src/audio_out/audio_oss_out.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: audio_oss_out.c,v 1.83 2002/11/28 08:03:23 guenter Exp $ + * $Id: audio_oss_out.c,v 1.84 2002/12/21 12:56:46 miguelfreitas Exp $ * * 20-8-2001 First implementation of Audio sync and Audio driver separation. * Copyright (C) 2001 James Courtier-Dutton James@superbug.demon.co.uk @@ -87,7 +87,7 @@ # define AFMT_AC3 0x00000400 #endif -#define AO_OUT_OSS_IFACE_VERSION 6 +#define AO_OUT_OSS_IFACE_VERSION 7 #define AUDIO_NUM_FRAGMENTS 15 #define AUDIO_FRAGMENT_SIZE 8192 diff --git a/src/audio_out/audio_sun_out.c b/src/audio_out/audio_sun_out.c index 24f1644c1..5371d8a7d 100644 --- a/src/audio_out/audio_sun_out.c +++ b/src/audio_out/audio_sun_out.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: audio_sun_out.c,v 1.27 2002/11/20 11:57:40 mroi Exp $ + * $Id: audio_sun_out.c,v 1.28 2002/12/21 12:56:46 miguelfreitas Exp $ */ #ifdef HAVE_CONFIG_H @@ -59,7 +59,7 @@ #define AUDIO_PRECISION_16 16 #endif -#define AO_SUN_IFACE_VERSION 6 +#define AO_SUN_IFACE_VERSION 7 #define GAP_TOLERANCE 5000 #define GAP_NONRT_TOLERANCE AO_MAX_GAP diff --git a/src/demuxers/demux.h b/src/demuxers/demux.h index a7ba002ab..5a3efc58f 100644 --- a/src/demuxers/demux.h +++ b/src/demuxers/demux.h @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux.h,v 1.26 2002/11/28 10:21:05 petli Exp $ + * $Id: demux.h,v 1.27 2002/12/21 12:56:46 miguelfreitas Exp $ */ #ifndef HAVE_DEMUX_H @@ -32,7 +32,7 @@ #include "input_plugin.h" #endif -#define DEMUXER_PLUGIN_IFACE_VERSION 18 +#define DEMUXER_PLUGIN_IFACE_VERSION 19 #define DEMUX_OK 0 #define DEMUX_FINISHED 1 diff --git a/src/demuxers/demux_aiff.c b/src/demuxers/demux_aiff.c index 0f790db56..2cf3dd285 100644 --- a/src/demuxers/demux_aiff.c +++ b/src/demuxers/demux_aiff.c @@ -19,7 +19,7 @@ * * AIFF File Demuxer by Mike Melanson (melanson@pcisys.net) * - * $Id: demux_aiff.c,v 1.19 2002/12/08 21:43:50 miguelfreitas Exp $ + * $Id: demux_aiff.c,v 1.20 2002/12/21 12:56:44 miguelfreitas Exp $ * */ @@ -205,9 +205,9 @@ static int demux_aiff_send_chunk (demux_plugin_t *this_gen) { while (remaining_sample_bytes) { buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo); buf->type = this->audio_type; - buf->input_pos = current_file_pos; - buf->input_length = this->data_size; - buf->input_time = current_pts / 90000; + buf->extra_info->input_pos = current_file_pos; + buf->extra_info->input_length = this->data_size; + buf->extra_info->input_time = current_pts / 90000; buf->pts = current_pts; if (remaining_sample_bytes > buf->max_size) @@ -467,6 +467,6 @@ static void *init_plugin (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 18, "aiff", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 19, "aiff", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/demuxers/demux_asf.c b/src/demuxers/demux_asf.c index b8f88113f..b2487f8af 100644 --- a/src/demuxers/demux_asf.c +++ b/src/demuxers/demux_asf.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_asf.c,v 1.90 2002/12/18 03:41:59 guenter Exp $ + * $Id: demux_asf.c,v 1.91 2002/12/21 12:56:44 miguelfreitas Exp $ * * demultiplexer for asf streams * @@ -760,16 +760,16 @@ static void asf_send_buffer_nodefrag (demux_asf_t *this, asf_stream_t *stream, buf = stream->fifo->buffer_pool_alloc (stream->fifo); this->input->read (this->input, buf->content, bufsize); - buf->input_pos = this->input->get_current_pos (this->input); + buf->extra_info->input_pos = this->input->get_current_pos (this->input); if (this->rate) - buf->input_time = buf->input_pos / this->rate; + buf->extra_info->input_time = buf->extra_info->input_pos / this->rate; else - buf->input_time = 0; + buf->extra_info->input_time = 0; #ifdef LOG printf ("demux_asf: input pos is %lld, input time is %d\n", - buf->input_pos, - buf->input_time); + buf->extra_info->input_pos, + buf->extra_info->input_time); #endif buf->pts = timestamp * 90; @@ -859,11 +859,11 @@ static void asf_send_buffer_defrag (demux_asf_t *this, asf_stream_t *stream, buf = stream->fifo->buffer_pool_alloc (stream->fifo); xine_fast_memcpy (buf->content, p, bufsize); - buf->input_pos = this->input->get_current_pos (this->input); + buf->extra_info->input_pos = this->input->get_current_pos (this->input); if (this->rate) - buf->input_time = buf->input_pos / this->rate; + buf->extra_info->input_time = buf->extra_info->input_pos / this->rate; else - buf->input_time = 0; + buf->extra_info->input_time = 0; buf->pts = stream->timestamp * 90 + stream->ts_per_kbyte * (p-stream->buffer) / 1024; @@ -1548,6 +1548,6 @@ static void *init_class (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 18, "asf", XINE_VERSION_CODE, NULL, init_class }, + { PLUGIN_DEMUX, 19, "asf", XINE_VERSION_CODE, NULL, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/demuxers/demux_avi.c b/src/demuxers/demux_avi.c index 8c9cb1a76..d9aa203bc 100644 --- a/src/demuxers/demux_avi.c +++ b/src/demuxers/demux_avi.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_avi.c,v 1.139 2002/12/13 21:13:18 guenter Exp $ + * $Id: demux_avi.c,v 1.140 2002/12/21 12:56:44 miguelfreitas Exp $ * * demultiplexer for avi streams * @@ -1089,8 +1089,8 @@ static int demux_avi_next (demux_avi_t *this, int decoder_flags) { return 0; } - buf->input_time = audio_pts / 90000; - buf->input_pos = this->input->get_current_pos(this->input); + buf->extra_info->input_time = audio_pts / 90000; + buf->extra_info->input_pos = this->input->get_current_pos(this->input); buf->type = audio->audio_type | i; @@ -1113,8 +1113,8 @@ static int demux_avi_next (demux_avi_t *this, int decoder_flags) { buf->size = AVI_read_video (this, this->avi, buf->mem, 2048, &buf->decoder_flags); buf->type = this->avi->video_type; - buf->input_time = video_pts / 90000; - buf->input_pos = this->input->get_current_pos(this->input); + buf->extra_info->input_time = video_pts / 90000; + buf->extra_info->input_pos = this->input->get_current_pos(this->input); buf->decoder_flags |= decoder_flags; if (buf->size<0) { @@ -1262,7 +1262,7 @@ static void demux_avi_send_headers (demux_plugin_t *this_gen) { buf->decoder_flags = BUF_FLAG_SPECIAL; buf->decoder_info[1] = BUF_SPECIAL_PALETTE; buf->decoder_info[2] = this->avi->palette_count; - buf->decoder_info[3] = (unsigned int)&this->avi->palette; + buf->decoder_info_ptr[2] = &this->avi->palette; buf->size = 0; buf->type = this->avi->video_type; this->video_fifo->put (this->video_fifo, buf); @@ -1639,6 +1639,6 @@ static void *init_class (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 18, "avi", XINE_VERSION_CODE, NULL, init_class }, + { PLUGIN_DEMUX, 19, "avi", XINE_VERSION_CODE, NULL, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/demuxers/demux_cda.c b/src/demuxers/demux_cda.c index 65f753dd3..d597246b1 100644 --- a/src/demuxers/demux_cda.c +++ b/src/demuxers/demux_cda.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_cda.c,v 1.36 2002/12/08 21:43:50 miguelfreitas Exp $ + * $Id: demux_cda.c,v 1.37 2002/12/21 12:56:44 miguelfreitas Exp $ */ #ifdef HAVE_CONFIG_H @@ -79,8 +79,8 @@ static int demux_cda_next (demux_cda_t *this) { len = this->input->get_length(this->input); buf->pts = 0; - buf->input_pos = pos; - buf->input_time = buf->input_pos / this->blocksize; + buf->extra_info->input_pos = pos; + buf->extra_info->input_time = buf->extra_info->input_pos / this->blocksize; buf->type = BUF_CONTROL_NOP; /* Fake */ this->video_fifo->put(this->video_fifo, buf); @@ -292,6 +292,6 @@ static void *init_plugin (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 18, "cda", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 19, "cda", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/demuxers/demux_eawve.c b/src/demuxers/demux_eawve.c index f70e557b1..b6ab8b24d 100644 --- a/src/demuxers/demux_eawve.c +++ b/src/demuxers/demux_eawve.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_eawve.c,v 1.10 2002/12/08 21:43:50 miguelfreitas Exp $ + * $Id: demux_eawve.c,v 1.11 2002/12/21 12:56:45 miguelfreitas Exp $ * * demux_eawve.c, Demuxer plugin for Electronic Arts' WVE file format * @@ -234,8 +234,8 @@ static int demux_eawve_send_chunk(demux_eawve_t *this) buf = this->audio_fifo->buffer_pool_alloc(this->audio_fifo); buf->type = BUF_AUDIO_EA_ADPCM; - buf->input_pos = this->input->get_current_pos(this->input); - buf->input_time = this->sample_counter / 22050; + buf->extra_info->input_pos = this->input->get_current_pos(this->input); + buf->extra_info->input_time = this->sample_counter / 22050; buf->pts = this->sample_counter; buf->pts *= 90000; buf->pts /= 22050; @@ -476,6 +476,6 @@ static void *init_plugin (xine_t *xine, void *data) } plugin_info_t xine_plugin_info[] = { - { PLUGIN_DEMUX, 18, "wve", XINE_VERSION_CODE, NULL, (void*)init_plugin}, + { PLUGIN_DEMUX, 19, "wve", XINE_VERSION_CODE, NULL, (void*)init_plugin}, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/demuxers/demux_elem.c b/src/demuxers/demux_elem.c index 9ed6fb15c..43ef76e0c 100644 --- a/src/demuxers/demux_elem.c +++ b/src/demuxers/demux_elem.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_elem.c,v 1.65 2002/12/20 22:57:48 guenter Exp $ + * $Id: demux_elem.c,v 1.66 2002/12/21 12:56:45 miguelfreitas Exp $ * * demultiplexer for elementary mpeg streams * @@ -98,7 +98,7 @@ static int demux_mpeg_elem_next (demux_mpeg_elem_t *this, int preview_mode) { buf->size = n; buf->pts = 0; - buf->input_pos = this->input->get_current_pos(this->input); + buf->extra_info->input_pos = this->input->get_current_pos(this->input); buf->type = BUF_VIDEO_MPEG; if (preview_mode) @@ -360,6 +360,6 @@ static void *init_plugin (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 18, "elem", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 19, "elem", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/demuxers/demux_film.c b/src/demuxers/demux_film.c index b35666c0f..200db25fc 100644 --- a/src/demuxers/demux_film.c +++ b/src/demuxers/demux_film.c @@ -21,7 +21,7 @@ * For more information on the FILM file format, visit: * http://www.pcisys.net/~melanson/codecs/ * - * $Id: demux_film.c,v 1.46 2002/12/08 21:43:50 miguelfreitas Exp $ + * $Id: demux_film.c,v 1.47 2002/12/21 12:56:45 miguelfreitas Exp $ */ #ifdef HAVE_CONFIG_H @@ -338,10 +338,10 @@ static int demux_film_send_chunk(demux_plugin_t *this_gen) { while (remaining_sample_bytes) { buf = this->video_fifo->buffer_pool_alloc (this->video_fifo); buf->type = this->video_type; - buf->input_pos = + buf->extra_info->input_pos = this->sample_table[i].sample_offset - this->data_start; - buf->input_length = this->data_size; - buf->input_time = this->sample_table[i].pts / 90000; + buf->extra_info->input_length = this->data_size; + buf->extra_info->input_time = this->sample_table[i].pts / 90000; buf->pts = this->sample_table[i].pts; /* set the frame duration */ @@ -414,10 +414,10 @@ static int demux_film_send_chunk(demux_plugin_t *this_gen) { while (remaining_sample_bytes) { buf = this->video_fifo->buffer_pool_alloc (this->video_fifo); buf->type = this->video_type; - buf->input_pos = + buf->extra_info->input_pos = this->sample_table[i].sample_offset - this->data_start; - buf->input_length = this->data_size; - buf->input_time = this->sample_table[i].pts / 90000; + buf->extra_info->input_length = this->data_size; + buf->extra_info->input_time = this->sample_table[i].pts / 90000; buf->pts = this->sample_table[i].pts; /* set the frame duration */ @@ -451,10 +451,10 @@ static int demux_film_send_chunk(demux_plugin_t *this_gen) { while (remaining_sample_bytes) { buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo); buf->type = this->audio_type; - buf->input_pos = + buf->extra_info->input_pos = this->sample_table[i].sample_offset - this->data_start; - buf->input_length = this->data_size; - buf->input_time = this->sample_table[i].pts / 90000; + buf->extra_info->input_length = this->data_size; + buf->extra_info->input_time = this->sample_table[i].pts / 90000; buf->pts = this->sample_table[i].pts; if (remaining_sample_bytes > buf->max_size) @@ -799,6 +799,6 @@ static void *init_plugin (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 18, "film", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 19, "film", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/demuxers/demux_fli.c b/src/demuxers/demux_fli.c index a992aa9cf..8d50b7bd2 100644 --- a/src/demuxers/demux_fli.c +++ b/src/demuxers/demux_fli.c @@ -22,7 +22,7 @@ * avoid while programming a FLI decoder, visit: * http://www.pcisys.net/~melanson/codecs/ * - * $Id: demux_fli.c,v 1.29 2002/12/08 21:43:50 miguelfreitas Exp $ + * $Id: demux_fli.c,v 1.30 2002/12/21 12:56:45 miguelfreitas Exp $ */ #ifdef HAVE_CONFIG_H @@ -169,9 +169,9 @@ static int demux_fli_send_chunk(demux_plugin_t *this_gen) { while (chunk_size) { buf = this->video_fifo->buffer_pool_alloc (this->video_fifo); buf->type = BUF_VIDEO_FLI; - buf->input_pos = current_file_pos; - buf->input_time = pts_counter / 90000; - buf->input_length = this->stream_len; + buf->extra_info->input_pos = current_file_pos; + buf->extra_info->input_time = pts_counter / 90000; + buf->extra_info->input_length = this->stream_len; buf->pts = pts_counter; if (chunk_size > buf->max_size) @@ -414,6 +414,6 @@ static void *init_plugin (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 18, "fli", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 19, "fli", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/demuxers/demux_idcin.c b/src/demuxers/demux_idcin.c index bfd017c9b..d11adbe53 100644 --- a/src/demuxers/demux_idcin.c +++ b/src/demuxers/demux_idcin.c @@ -63,7 +63,7 @@ * - if any bytes exceed 63, do not shift the bytes at all before * transmitting them to the video decoder * - * $Id: demux_idcin.c,v 1.30 2002/12/08 21:43:51 miguelfreitas Exp $ + * $Id: demux_idcin.c,v 1.31 2002/12/21 12:56:45 miguelfreitas Exp $ */ #ifdef HAVE_CONFIG_H @@ -183,7 +183,7 @@ static int demux_idcin_send_chunk(demux_plugin_t *this_gen) { buf->decoder_flags = BUF_FLAG_SPECIAL; buf->decoder_info[1] = BUF_SPECIAL_PALETTE; buf->decoder_info[2] = PALETTE_SIZE; - buf->decoder_info[3] = (unsigned int)&palette; + buf->decoder_info_ptr[2] = &palette; buf->size = 0; buf->type = BUF_VIDEO_IDCIN; this->video_fifo->put (this->video_fifo, buf); @@ -200,9 +200,9 @@ static int demux_idcin_send_chunk(demux_plugin_t *this_gen) { while (remaining_sample_bytes) { buf = this->video_fifo->buffer_pool_alloc (this->video_fifo); buf->type = BUF_VIDEO_IDCIN; - buf->input_pos = this->input->get_current_pos(this->input); - buf->input_length = this->filesize; - buf->input_time = pts_counter / 90000; + buf->extra_info->input_pos = this->input->get_current_pos(this->input); + buf->extra_info->input_length = this->filesize; + buf->extra_info->input_time = pts_counter / 90000; buf->pts = pts_counter; if (remaining_sample_bytes > buf->max_size) @@ -240,9 +240,9 @@ static int demux_idcin_send_chunk(demux_plugin_t *this_gen) { while (remaining_sample_bytes) { buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo); buf->type = BUF_AUDIO_LPCM_LE; - buf->input_pos = this->input->get_current_pos(this->input); - buf->input_length = this->filesize; - buf->input_time = pts_counter / 90000; + buf->extra_info->input_pos = this->input->get_current_pos(this->input); + buf->extra_info->input_length = this->filesize; + buf->extra_info->input_time = pts_counter / 90000; buf->pts = pts_counter; if (remaining_sample_bytes > buf->max_size) @@ -375,7 +375,8 @@ static void demux_idcin_send_headers(demux_plugin_t *this_gen) { buf = this->video_fifo->buffer_pool_alloc (this->video_fifo); buf->decoder_flags = BUF_FLAG_SPECIAL; buf->decoder_info[1] = BUF_SPECIAL_IDCIN_HUFFMAN_TABLE; - buf->decoder_info[2] = (unsigned int)&this->huffman_table; + buf->decoder_info[2] = sizeof(this->huffman_table); + buf->decoder_info_ptr[2] = &this->huffman_table; buf->size = 0; buf->type = BUF_VIDEO_IDCIN; this->video_fifo->put (this->video_fifo, buf); @@ -588,6 +589,6 @@ static void *init_plugin (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 18, "idcin", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 19, "idcin", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/demuxers/demux_mng.c b/src/demuxers/demux_mng.c index 5a16b16c1..5d64d8e37 100644 --- a/src/demuxers/demux_mng.c +++ b/src/demuxers/demux_mng.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_mng.c,v 1.1 2002/12/20 01:47:01 komadori Exp $ + * $Id: demux_mng.c,v 1.2 2002/12/21 12:56:45 miguelfreitas Exp $ * * demux_mng.c, Demuxer plugin for Multiple-image Network Graphics format * @@ -174,8 +174,8 @@ static int demux_mng_send_chunk(demux_mng_t *this) buf->type = BUF_VIDEO_RGB; buf->decoder_flags = BUF_FLAG_FRAMERATE; buf->decoder_info[0] = 90 * this->timer_count; - buf->input_pos = this->input->get_current_pos(this->input); - buf->input_time = this->tick_count / 1000; + buf->extra_info->input_pos = this->input->get_current_pos(this->input); + buf->extra_info->input_time = this->tick_count / 1000; buf->pts = 90 * this->tick_count; if (size > buf->max_size) { @@ -398,6 +398,6 @@ static void *init_plugin(xine_t *xine, void *data) } plugin_info_t xine_plugin_info[] = { - { PLUGIN_DEMUX, 18, "mng", XINE_VERSION_CODE, NULL, (void*)init_plugin}, + { PLUGIN_DEMUX, 19, "mng", XINE_VERSION_CODE, NULL, (void*)init_plugin}, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/demuxers/demux_mpeg.c b/src/demuxers/demux_mpeg.c index 21b23a959..32ed6bf6f 100644 --- a/src/demuxers/demux_mpeg.c +++ b/src/demuxers/demux_mpeg.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_mpeg.c,v 1.99 2002/12/08 21:43:51 miguelfreitas Exp $ + * $Id: demux_mpeg.c,v 1.100 2002/12/21 12:56:45 miguelfreitas Exp $ * * demultiplexer for mpeg 1/2 program streams * reads streams of variable blocksizes @@ -307,7 +307,7 @@ static void parse_mpeg2_packet (demux_mpeg_t *this, int stream_id, int64_t scr) if (this->preview_mode) buf->decoder_flags = BUF_FLAG_PREVIEW; - buf->input_pos = this->input->get_current_pos (this->input); + buf->extra_info->input_pos = this->input->get_current_pos (this->input); if(this->audio_fifo) this->audio_fifo->put (this->audio_fifo, buf); @@ -357,7 +357,7 @@ static void parse_mpeg2_packet (demux_mpeg_t *this, int stream_id, int64_t scr) if (this->preview_mode) buf->decoder_flags = BUF_FLAG_PREVIEW; - buf->input_pos = this->input->get_current_pos(this->input); + buf->extra_info->input_pos = this->input->get_current_pos(this->input); if(this->audio_fifo) this->audio_fifo->put (this->audio_fifo, buf); @@ -402,7 +402,7 @@ static void parse_mpeg2_packet (demux_mpeg_t *this, int stream_id, int64_t scr) if (this->preview_mode) buf->decoder_flags = BUF_FLAG_PREVIEW; - buf->input_pos = this->input->get_current_pos(this->input); + buf->extra_info->input_pos = this->input->get_current_pos(this->input); this->video_fifo->put (this->video_fifo, buf); @@ -527,9 +527,9 @@ static void parse_mpeg1_packet (demux_mpeg_t *this, int stream_id, int64_t scr) if (this->preview_mode) buf->decoder_flags = BUF_FLAG_PREVIEW; - buf->input_pos = this->input->get_current_pos(this->input); + buf->extra_info->input_pos = this->input->get_current_pos(this->input); if (this->rate) - buf->input_time = buf->input_pos / (this->rate * 50); + buf->extra_info->input_time = buf->extra_info->input_pos / (this->rate * 50); if(this->audio_fifo) this->audio_fifo->put (this->audio_fifo, buf); @@ -550,9 +550,9 @@ static void parse_mpeg1_packet (demux_mpeg_t *this, int stream_id, int64_t scr) if (this->preview_mode) buf->decoder_flags = BUF_FLAG_PREVIEW; - buf->input_pos = this->input->get_current_pos(this->input); + buf->extra_info->input_pos = this->input->get_current_pos(this->input); if (this->rate) - buf->input_time = buf->input_pos / (this->rate * 50); + buf->extra_info->input_time = buf->extra_info->input_pos / (this->rate * 50); this->video_fifo->put (this->video_fifo, buf); @@ -1139,6 +1139,6 @@ static void *init_plugin (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 18, "mpeg", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 19, "mpeg", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/demuxers/demux_mpeg_block.c b/src/demuxers/demux_mpeg_block.c index c94957c21..5dd12a282 100644 --- a/src/demuxers/demux_mpeg_block.c +++ b/src/demuxers/demux_mpeg_block.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_mpeg_block.c,v 1.149 2002/12/15 04:58:07 rockyb Exp $ + * $Id: demux_mpeg_block.c,v 1.150 2002/12/21 12:56:45 miguelfreitas Exp $ * * demultiplexer for mpeg 1/2 program streams * @@ -186,10 +186,8 @@ static void demux_mpeg_block_parse_pack (demux_mpeg_block_t *this, int preview_m cbuf->type = buf->type; cbuf->decoder_flags = buf->decoder_flags; - cbuf->decoder_info[0] = buf->decoder_info[0]; - cbuf->decoder_info[1] = buf->decoder_info[1]; - cbuf->decoder_info[2] = buf->decoder_info[2]; - cbuf->decoder_info[3] = buf->decoder_info[3]; + memcpy( cbuf->decoder_info, buf->decoder_info, sizeof(cbuf->decoder_info) ); + memcpy( cbuf->decoder_info_ptr, buf->decoder_info_ptr, sizeof(cbuf->decoder_info_ptr) ); this->audio_fifo->put (this->audio_fifo, cbuf); } @@ -207,11 +205,11 @@ static void demux_mpeg_block_parse_pack (demux_mpeg_block_t *this, int preview_m else buf->decoder_flags = 0; - buf->input_pos = this->input->get_current_pos (this->input); - buf->input_length = this->input->get_length (this->input); + buf->extra_info->input_pos = this->input->get_current_pos (this->input); + buf->extra_info->input_length = this->input->get_length (this->input); if (this->rate) - buf->input_time = buf->input_pos / (this->rate * 50); + buf->extra_info->input_time = buf->extra_info->input_pos / (this->rate * 50); if (p[3] == 0xBA) { /* program stream pack header */ @@ -238,7 +236,7 @@ static void demux_mpeg_block_parse_pack (demux_mpeg_block_t *this, int preview_m this->rate |= (p[11] >> 1); } - buf->input_time = buf->input_pos / (this->rate * 50); + buf->extra_info->input_time = buf->extra_info->input_pos / (this->rate * 50); p += 12; @@ -350,8 +348,8 @@ static void demux_mpeg_block_parse_pack (demux_mpeg_block_t *this, int preview_m buf->decoder_info[1] = BUF_SPECIAL_SPU_DVD_SUBTYPE; buf->decoder_info[2] = SPU_DVD_SUBTYPE_NAV; buf->pts = 0; /* NAV packets do not have PES values */ - buf->input_pos = this->input->get_current_pos(this->input); - buf->input_length = this->input->get_length (this->input); + buf->extra_info->input_pos = this->input->get_current_pos(this->input); + buf->extra_info->input_length = this->input->get_length (this->input); this->video_fifo->put (this->video_fifo, buf); return ; @@ -471,8 +469,8 @@ static void demux_mpeg_block_parse_pack (demux_mpeg_block_t *this, int preview_m if( !preview_mode ) check_newpts( this, pts, PTS_VIDEO ); - buf->input_pos = this->input->get_current_pos(this->input); - buf->input_length = this->input->get_length (this->input); + buf->extra_info->input_pos = this->input->get_current_pos(this->input); + buf->extra_info->input_length = this->input->get_length (this->input); this->video_fifo->put (this->video_fifo, buf); #ifdef LOG @@ -499,8 +497,8 @@ static void demux_mpeg_block_parse_pack (demux_mpeg_block_t *this, int preview_m if( !preview_mode ) check_newpts( this, pts, PTS_AUDIO ); - buf->input_pos = this->input->get_current_pos(this->input); - buf->input_length = this->input->get_length (this->input); + buf->extra_info->input_pos = this->input->get_current_pos(this->input); + buf->extra_info->input_length = this->input->get_length (this->input); if(this->audio_fifo) { this->audio_fifo->put (this->audio_fifo, buf); @@ -566,8 +564,8 @@ static void demux_mpeg_block_parse_pack (demux_mpeg_block_t *this, int preview_m if( !preview_mode ) check_newpts( this, pts, PTS_AUDIO ); - buf->input_pos = this->input->get_current_pos(this->input); - buf->input_length = this->input->get_length (this->input); + buf->extra_info->input_pos = this->input->get_current_pos(this->input); + buf->extra_info->input_length = this->input->get_length (this->input); if(this->audio_fifo) { this->audio_fifo->put (this->audio_fifo, buf); @@ -589,8 +587,8 @@ static void demux_mpeg_block_parse_pack (demux_mpeg_block_t *this, int preview_m if( !preview_mode ) check_newpts( this, pts, PTS_VIDEO ); - buf->input_pos = this->input->get_current_pos(this->input); - buf->input_length = this->input->get_length (this->input); + buf->extra_info->input_pos = this->input->get_current_pos(this->input); + buf->extra_info->input_length = this->input->get_length (this->input); this->video_fifo->put (this->video_fifo, buf); #ifdef LOG @@ -611,8 +609,8 @@ static void demux_mpeg_block_parse_pack (demux_mpeg_block_t *this, int preview_m if( !preview_mode ) check_newpts( this, pts, PTS_AUDIO ); - buf->input_pos = this->input->get_current_pos(this->input); - buf->input_length = this->input->get_length (this->input); + buf->extra_info->input_pos = this->input->get_current_pos(this->input); + buf->extra_info->input_length = this->input->get_length (this->input); if(this->audio_fifo) { this->audio_fifo->put (this->audio_fifo, buf); @@ -1204,6 +1202,6 @@ static void *init_plugin (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 18, "mpeg_block", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 19, "mpeg_block", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/demuxers/demux_mpgaudio.c b/src/demuxers/demux_mpgaudio.c index 57ae0ab9a..0e1685f10 100644 --- a/src/demuxers/demux_mpgaudio.c +++ b/src/demuxers/demux_mpgaudio.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_mpgaudio.c,v 1.85 2002/12/12 12:00:23 guenter Exp $ + * $Id: demux_mpgaudio.c,v 1.86 2002/12/21 12:56:45 miguelfreitas Exp $ * * demultiplexer for mpeg audio (i.e. mp3) streams * @@ -294,13 +294,13 @@ static int demux_mpgaudio_next (demux_mpgaudio_t *this, int decoder_flags) { } buf->pts = 0; - buf->input_pos = this->input->get_current_pos(this->input); + buf->extra_info->input_pos = this->input->get_current_pos(this->input); { int len = this->input->get_length(this->input); if (len>0) - buf->input_time = buf->input_pos * this->stream_length / len; + buf->extra_info->input_time = buf->extra_info->input_pos * this->stream_length / len; else - buf->input_time = pts / 90000; + buf->extra_info->input_time = pts / 90000; } #if 0 buf->pts = pts; @@ -670,6 +670,6 @@ static void *init_class (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 18, "mp3", XINE_VERSION_CODE, NULL, init_class }, + { PLUGIN_DEMUX, 19, "mp3", XINE_VERSION_CODE, NULL, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/demuxers/demux_ogg.c b/src/demuxers/demux_ogg.c index 2531b3fd8..809b1dc58 100644 --- a/src/demuxers/demux_ogg.c +++ b/src/demuxers/demux_ogg.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_ogg.c,v 1.55 2002/12/08 21:43:51 miguelfreitas Exp $ + * $Id: demux_ogg.c,v 1.56 2002/12/21 12:56:45 miguelfreitas Exp $ * * demultiplexer for ogg streams * @@ -250,8 +250,8 @@ static void send_ogg_buf (demux_ogg_t *this, op->granulepos, buf->pts); #endif - buf->input_pos = this->input->get_current_pos (this->input); - buf->input_time = buf->input_pos * 8 / this->avg_bitrate; + buf->extra_info->input_pos = this->input->get_current_pos (this->input); + buf->extra_info->input_time = buf->extra_info->input_pos * 8 / this->avg_bitrate; buf->type = this->buf_types[stream_num] ; buf->decoder_flags = decoder_flags; @@ -299,8 +299,8 @@ static void send_ogg_buf (demux_ogg_t *this, printf ("demux_ogg: video granulepos %lld, pts %lld\n", op->granulepos, buf->pts); #endif - buf->input_pos = this->input->get_current_pos (this->input); - buf->input_time = 0; + buf->extra_info->input_pos = this->input->get_current_pos (this->input); + buf->extra_info->input_time = 0; buf->type = this->buf_types[stream_num] ; done += buf->size; @@ -1071,6 +1071,6 @@ static void *init_class (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 18, "ogg", XINE_VERSION_CODE, NULL, init_class }, + { PLUGIN_DEMUX, 19, "ogg", XINE_VERSION_CODE, NULL, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/demuxers/demux_pes.c b/src/demuxers/demux_pes.c index 18a111799..e09a5926f 100644 --- a/src/demuxers/demux_pes.c +++ b/src/demuxers/demux_pes.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_pes.c,v 1.42 2002/11/09 23:22:32 guenter Exp $ + * $Id: demux_pes.c,v 1.43 2002/12/21 12:56:45 miguelfreitas Exp $ * * demultiplexer for mpeg 2 PES (Packetized Elementary Streams) * reads streams of variable blocksizes @@ -183,7 +183,7 @@ static void parse_mpeg2_packet (demux_pes_t *this, int nID) { if (this->preview_mode) buf->decoder_flags = BUF_FLAG_PREVIEW; - buf->input_pos = this->input->get_current_pos (this->input); + buf->extra_info->input_pos = this->input->get_current_pos (this->input); if(this->audio_fifo) this->audio_fifo->put (this->audio_fifo, buf); @@ -228,7 +228,7 @@ static void parse_mpeg2_packet (demux_pes_t *this, int nID) { if (this->preview_mode) buf->decoder_flags = BUF_FLAG_PREVIEW; - buf->input_pos = this->input->get_current_pos(this->input); + buf->extra_info->input_pos = this->input->get_current_pos(this->input); if(this->audio_fifo) this->audio_fifo->put (this->audio_fifo, buf); @@ -274,7 +274,7 @@ static void parse_mpeg2_packet (demux_pes_t *this, int nID) { if (this->preview_mode) buf->decoder_flags = BUF_FLAG_PREVIEW; - buf->input_pos = this->input->get_current_pos(this->input); + buf->extra_info->input_pos = this->input->get_current_pos(this->input); this->video_fifo->put (this->video_fifo, buf); diff --git a/src/demuxers/demux_qt.c b/src/demuxers/demux_qt.c index 586a2ad08..9f7b64512 100644 --- a/src/demuxers/demux_qt.c +++ b/src/demuxers/demux_qt.c @@ -30,7 +30,7 @@ * build_frame_table * free_qt_info * - * $Id: demux_qt.c,v 1.131 2002/12/21 10:21:29 esnel Exp $ + * $Id: demux_qt.c,v 1.132 2002/12/21 12:56:45 miguelfreitas Exp $ * */ @@ -1877,9 +1877,9 @@ static int demux_qt_send_chunk(demux_plugin_t *this_gen) { while (remaining_sample_bytes) { buf = this->video_fifo->buffer_pool_alloc (this->video_fifo); buf->type = this->qt->video_type; - buf->input_pos = this->qt->frames[i].offset - this->data_start; - buf->input_length = this->data_size; - buf->input_time = this->qt->frames[i].pts / 90000; + buf->extra_info->input_pos = this->qt->frames[i].offset - this->data_start; + buf->extra_info->input_length = this->data_size; + buf->extra_info->input_time = this->qt->frames[i].pts / 90000; buf->pts = this->qt->frames[i].pts; buf->decoder_flags |= BUF_FLAG_FRAMERATE; @@ -1922,8 +1922,8 @@ static int demux_qt_send_chunk(demux_plugin_t *this_gen) { while (remaining_sample_bytes) { buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo); buf->type = this->qt->audio_type; - buf->input_pos = this->qt->frames[i].offset - this->data_start; - buf->input_length = this->data_size; + buf->extra_info->input_pos = this->qt->frames[i].offset - this->data_start; + buf->extra_info->input_length = this->data_size; /* The audio chunk is often broken up into multiple 8K buffers when * it is sent to the audio decoder. Only attach the proper timestamp * to the first buffer. This is for the linear PCM decoder which @@ -1933,15 +1933,15 @@ static int demux_qt_send_chunk(demux_plugin_t *this_gen) { if ((buf->type == BUF_AUDIO_LPCM_BE) || (buf->type == BUF_AUDIO_LPCM_LE)) { if (first_buf) { - buf->input_time = this->qt->frames[i].pts / 90000; + buf->extra_info->input_time = this->qt->frames[i].pts / 90000; buf->pts = this->qt->frames[i].pts; first_buf = 0; } else { - buf->input_time = 0; + buf->extra_info->input_time = 0; buf->pts = 0; } } else { - buf->input_time = this->qt->frames[i].pts / 90000; + buf->extra_info->input_time = this->qt->frames[i].pts / 90000; buf->pts = this->qt->frames[i].pts; } @@ -2075,7 +2075,7 @@ static void demux_qt_send_headers(demux_plugin_t *this_gen) { buf->decoder_flags = BUF_FLAG_SPECIAL; buf->decoder_info[1] = BUF_SPECIAL_PALETTE; buf->decoder_info[2] = this->qt->palette_count; - buf->decoder_info[3] = (unsigned int)&this->qt->palette; + buf->decoder_info_ptr[2] = &this->qt->palette; buf->size = 0; buf->type = this->qt->video_type; this->video_fifo->put (this->video_fifo, buf); @@ -2086,7 +2086,7 @@ static void demux_qt_send_headers(demux_plugin_t *this_gen) { buf->decoder_flags = BUF_FLAG_SPECIAL; buf->decoder_info[1] = BUF_SPECIAL_STSD_ATOM; buf->decoder_info[2] = this->qt->video_stsd_size; - buf->decoder_info[3] = (unsigned int)this->qt->video_stsd; + buf->decoder_info_ptr[2] = this->qt->video_stsd; buf->size = 0; buf->type = this->qt->video_type; this->video_fifo->put (this->video_fifo, buf); @@ -2111,7 +2111,7 @@ static void demux_qt_send_headers(demux_plugin_t *this_gen) { buf->decoder_flags = BUF_FLAG_SPECIAL; buf->decoder_info[1] = BUF_SPECIAL_DECODER_CONFIG; buf->decoder_info[2] = this->qt->audio_decoder_config_len; - buf->decoder_info[3] = (uint32_t)this->qt->audio_decoder_config; + buf->decoder_info_ptr[2] = this->qt->audio_decoder_config; this->audio_fifo->put (this->audio_fifo, buf); } @@ -2120,7 +2120,7 @@ static void demux_qt_send_headers(demux_plugin_t *this_gen) { buf->decoder_flags = BUF_FLAG_SPECIAL; buf->decoder_info[1] = BUF_SPECIAL_STSD_ATOM; buf->decoder_info[2] = this->qt->audio_stsd_size; - buf->decoder_info[3] = (unsigned int)this->qt->audio_stsd; + buf->decoder_info_ptr[2] = this->qt->audio_stsd; buf->size = 0; buf->type = this->qt->audio_type; this->audio_fifo->put (this->audio_fifo, buf); @@ -2429,6 +2429,6 @@ static void *init_plugin (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 18, "quicktime", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 19, "quicktime", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/demuxers/demux_real.c b/src/demuxers/demux_real.c index eae1aa960..7ee6201d3 100644 --- a/src/demuxers/demux_real.c +++ b/src/demuxers/demux_real.c @@ -21,7 +21,7 @@ * For more information regarding the Real file format, visit: * http://www.pcisys.net/~melanson/codecs/ * - * $Id: demux_real.c,v 1.26 2002/12/15 21:23:39 guenter Exp $ + * $Id: demux_real.c,v 1.27 2002/12/21 12:56:45 miguelfreitas Exp $ */ #ifdef HAVE_CONFIG_H @@ -434,8 +434,8 @@ static void real_parse_headers (demux_real_t *this) { buf->size = mdpr->type_specific_len-off; - buf->input_pos = 0 ; - buf->input_time = 0 ; + buf->extra_info->input_pos = 0 ; + buf->extra_info->input_time = 0 ; buf->type = this->audio_buf_type; buf->decoder_flags = BUF_FLAG_HEADER; @@ -486,8 +486,8 @@ static void real_parse_headers (demux_real_t *this) { buf->size = mdpr->type_specific_len; - buf->input_pos = 0 ; - buf->input_time = 0 ; + buf->extra_info->input_pos = 0 ; + buf->extra_info->input_time = 0 ; buf->type = BUF_VIDEO_RV20; buf->decoder_flags = BUF_FLAG_HEADER; @@ -517,8 +517,8 @@ static void real_parse_headers (demux_real_t *this) { buf->size = mdpr->type_specific_len; - buf->input_pos = 0 ; - buf->input_time = 0 ; + buf->extra_info->input_pos = 0 ; + buf->extra_info->input_time = 0 ; buf->type = BUF_VIDEO_RV30; buf->decoder_flags = BUF_FLAG_HEADER; @@ -791,9 +791,9 @@ static int demux_real_send_chunk(demux_plugin_t *this_gen) { buf->content = buf->mem; buf->pts = pts; - buf->input_pos = this->input->get_current_pos (this->input); + buf->extra_info->input_pos = this->input->get_current_pos (this->input); - buf->input_time = buf->input_pos * 8 / this->avg_bitrate ; + buf->extra_info->input_time = buf->extra_info->input_pos * 8 / this->avg_bitrate ; buf->type = this->video_buf_type; check_newpts (this, pts, PTS_VIDEO, 0); @@ -872,8 +872,8 @@ static int demux_real_send_chunk(demux_plugin_t *this_gen) { buf->content = buf->mem; buf->pts = pts; - buf->input_pos = this->input->get_current_pos (this->input); - buf->input_time = buf->input_pos * 8 / this->avg_bitrate ; + buf->extra_info->input_pos = this->input->get_current_pos (this->input); + buf->extra_info->input_time = buf->extra_info->input_pos * 8 / this->avg_bitrate ; buf->type = this->audio_buf_type; buf->decoder_flags = 0; buf->size = size; @@ -1194,6 +1194,6 @@ static void *init_class (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 18, "real", XINE_VERSION_CODE, NULL, init_class }, + { PLUGIN_DEMUX, 19, "real", XINE_VERSION_CODE, NULL, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/demuxers/demux_realaudio.c b/src/demuxers/demux_realaudio.c index 0bf171257..02ae5b97d 100644 --- a/src/demuxers/demux_realaudio.c +++ b/src/demuxers/demux_realaudio.c @@ -19,7 +19,7 @@ * * RealAudio File Demuxer by Mike Melanson (melanson@pcisys.net) * - * $Id: demux_realaudio.c,v 1.7 2002/12/08 21:43:51 miguelfreitas Exp $ + * $Id: demux_realaudio.c,v 1.8 2002/12/21 12:56:45 miguelfreitas Exp $ * */ @@ -143,9 +143,9 @@ static int demux_ra_send_chunk(demux_plugin_t *this_gen) { while (remaining_sample_bytes) { buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo); buf->type = this->audio_type; - buf->input_pos = current_file_pos; - buf->input_length = this->data_size; - buf->input_time = current_pts / 90000; + buf->extra_info->input_pos = current_file_pos; + buf->extra_info->input_length = this->data_size; + buf->extra_info->input_time = current_pts / 90000; buf->pts = current_pts; if (remaining_sample_bytes > buf->max_size) @@ -409,7 +409,7 @@ static void *init_plugin (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 18, "realaudio", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 19, "realaudio", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/demuxers/demux_roq.c b/src/demuxers/demux_roq.c index 89425bd5e..afd8d0e3b 100644 --- a/src/demuxers/demux_roq.c +++ b/src/demuxers/demux_roq.c @@ -21,7 +21,7 @@ * For more information regarding the RoQ file format, visit: * http://www.csse.monash.edu.au/~timf/ * - * $Id: demux_roq.c,v 1.32 2002/12/08 21:43:51 miguelfreitas Exp $ + * $Id: demux_roq.c,v 1.33 2002/12/21 12:56:45 miguelfreitas Exp $ */ #ifdef HAVE_CONFIG_H @@ -218,7 +218,7 @@ static int demux_roq_send_chunk(demux_plugin_t *this_gen) { while (chunk_size) { buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo); buf->type = BUF_AUDIO_ROQ; - buf->input_pos = current_file_pos; + buf->extra_info->input_pos = current_file_pos; buf->pts = audio_pts; if (chunk_size > buf->max_size) @@ -271,7 +271,7 @@ static int demux_roq_send_chunk(demux_plugin_t *this_gen) { while (chunk_size) { buf = this->video_fifo->buffer_pool_alloc (this->video_fifo); buf->type = BUF_VIDEO_ROQ; - buf->input_pos = current_file_pos; + buf->extra_info->input_pos = current_file_pos; buf->pts = video_pts_counter; if (chunk_size > buf->max_size) @@ -530,6 +530,6 @@ static void *init_plugin (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 18, "roq", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 19, "roq", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/demuxers/demux_smjpeg.c b/src/demuxers/demux_smjpeg.c index 0cc9a46c1..6fc9bf53f 100644 --- a/src/demuxers/demux_smjpeg.c +++ b/src/demuxers/demux_smjpeg.c @@ -21,7 +21,7 @@ * For more information on the SMJPEG file format, visit: * http://www.lokigames.com/development/smjpeg.php3 * - * $Id: demux_smjpeg.c,v 1.28 2002/12/08 21:43:51 miguelfreitas Exp $ + * $Id: demux_smjpeg.c,v 1.29 2002/12/21 12:56:45 miguelfreitas Exp $ */ #ifdef HAVE_CONFIG_H @@ -271,9 +271,9 @@ static int demux_smjpeg_send_chunk(demux_plugin_t *this_gen) { buf->type = this->video_type; } - buf->input_pos = current_file_pos; - buf->input_length = this->input_length; - buf->input_time = pts / 90000; + buf->extra_info->input_pos = current_file_pos; + buf->extra_info->input_length = this->input_length; + buf->extra_info->input_time = pts / 90000; buf->pts = pts; if (last_frame_pts) { @@ -558,6 +558,6 @@ static void *init_plugin (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 18, "smjpeg", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 19, "smjpeg", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/demuxers/demux_snd.c b/src/demuxers/demux_snd.c index 87252005c..973527c65 100644 --- a/src/demuxers/demux_snd.c +++ b/src/demuxers/demux_snd.c @@ -19,7 +19,7 @@ * * SND/AU File Demuxer by Mike Melanson (melanson@pcisys.net) * - * $Id: demux_snd.c,v 1.20 2002/12/08 21:43:52 miguelfreitas Exp $ + * $Id: demux_snd.c,v 1.21 2002/12/21 12:56:45 miguelfreitas Exp $ * */ @@ -189,9 +189,9 @@ static int demux_snd_send_chunk(demux_plugin_t *this_gen) { while (remaining_sample_bytes) { buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo); buf->type = this->audio_type; - buf->input_pos = current_file_pos; - buf->input_length = this->data_size; - buf->input_time = current_pts / 90000; + buf->extra_info->input_pos = current_file_pos; + buf->extra_info->input_length = this->data_size; + buf->extra_info->input_time = current_pts / 90000; buf->pts = current_pts; if (remaining_sample_bytes > buf->max_size) @@ -449,6 +449,6 @@ static void *init_plugin (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 18, "snd", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 19, "snd", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/demuxers/demux_ts.c b/src/demuxers/demux_ts.c index 7980edfb2..e4ef198ef 100644 --- a/src/demuxers/demux_ts.c +++ b/src/demuxers/demux_ts.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_ts.c,v 1.70 2002/12/17 16:42:29 jkeil Exp $ + * $Id: demux_ts.c,v 1.71 2002/12/21 12:56:46 miguelfreitas Exp $ * * Demultiplexer for MPEG2 Transport Streams. * @@ -111,7 +111,7 @@ * used to pass control information to the decoder. * * If decoder_info[1] == BUF_SPECIAL_SPU_DVB_DESCRIPTOR then - * decoder_info[2] either points to a spu_dvb_descriptor_t or is 0. + * decoder_info_ptr[2] either points to a spu_dvb_descriptor_t or is NULL. * * If it is 0, the user has disabled the subtitling, or has selected a * channel that is not present in the stream. The decoder should @@ -367,7 +367,8 @@ static void demux_ts_update_spu_channel(demux_ts_t *this) { demux_ts_spu_lang *lang = &this->spu_langs[this->current_spu_channel]; - buf->decoder_info[2] = (uint32_t) &(lang->desc); + buf->decoder_info[2] = sizeof(lang->desc); + buf->decoder_info_ptr[2] = &(lang->desc); this->spu_pid = lang->pid; this->spu_media = lang->media_index; @@ -379,7 +380,7 @@ static void demux_ts_update_spu_channel(demux_ts_t *this) } else { - buf->decoder_info[2] = 0; + buf->decoder_info_ptr[2] = NULL; this->spu_pid = INVALID_PID; @@ -748,7 +749,7 @@ static void demux_ts_buffer_pes(demux_ts_t*this, unsigned char *ts, } m->buf->pts = m->pts; m->buf->decoder_info[0] = 1; - m->buf->input_pos = this->input->get_current_pos(this->input); + m->buf->extra_info->input_pos = this->input->get_current_pos(this->input); m->fifo->put(m->fifo, m->buf); m->buffered_bytes = 0; m->buf = NULL; /* forget about buf -- not our responsibility anymore */ @@ -778,7 +779,7 @@ static void demux_ts_buffer_pes(demux_ts_t*this, unsigned char *ts, m->buf->type = m->type; m->buf->pts = m->pts; m->buf->decoder_info[0] = 1; - m->buf->input_pos = this->input->get_current_pos(this->input); + m->buf->extra_info->input_pos = this->input->get_current_pos(this->input); m->fifo->put(m->fifo, m->buf); m->buffered_bytes = 0; m->buf = m->fifo->buffer_pool_alloc(m->fifo); @@ -2008,6 +2009,6 @@ static void *init_class (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 18, "mpeg-ts", XINE_VERSION_CODE, NULL, init_class }, + { PLUGIN_DEMUX, 19, "mpeg-ts", XINE_VERSION_CODE, NULL, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/demuxers/demux_voc.c b/src/demuxers/demux_voc.c index 4de21ff59..fbab20fb5 100644 --- a/src/demuxers/demux_voc.c +++ b/src/demuxers/demux_voc.c @@ -23,7 +23,7 @@ * It will only play that block if it is PCM data. More variations will be * supported as they are encountered. * - * $Id: demux_voc.c,v 1.20 2002/12/08 21:43:52 miguelfreitas Exp $ + * $Id: demux_voc.c,v 1.21 2002/12/21 12:56:46 miguelfreitas Exp $ * */ @@ -181,9 +181,9 @@ static int demux_voc_send_chunk(demux_plugin_t *this_gen) { while (remaining_sample_bytes) { buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo); buf->type = this->audio_type; - buf->input_pos = current_file_pos; - buf->input_length = this->data_size; - buf->input_time = current_pts / 90000; + buf->extra_info->input_pos = current_file_pos; + buf->extra_info->input_length = this->data_size; + buf->extra_info->input_time = current_pts / 90000; buf->pts = current_pts; if (remaining_sample_bytes > buf->max_size) @@ -437,6 +437,6 @@ static void *init_plugin (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 18, "voc", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 19, "voc", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/demuxers/demux_vqa.c b/src/demuxers/demux_vqa.c index 9b1b32039..c1784765e 100644 --- a/src/demuxers/demux_vqa.c +++ b/src/demuxers/demux_vqa.c @@ -27,7 +27,7 @@ * block needs information from the previous audio block in order to be * decoded, thus making random seeking difficult. * - * $Id: demux_vqa.c,v 1.23 2002/12/08 21:43:52 miguelfreitas Exp $ + * $Id: demux_vqa.c,v 1.24 2002/12/21 12:56:46 miguelfreitas Exp $ */ #ifdef HAVE_CONFIG_H @@ -181,9 +181,9 @@ static int demux_vqa_send_chunk(demux_plugin_t *this_gen) { while (chunk_size) { buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo); buf->type = BUF_AUDIO_VQA_IMA; - buf->input_pos = current_file_pos; - buf->input_length = this->filesize; - buf->input_time = audio_pts / 90000; + buf->extra_info->input_pos = current_file_pos; + buf->extra_info->input_length = this->filesize; + buf->extra_info->input_time = audio_pts / 90000; buf->pts = audio_pts; if (chunk_size > buf->max_size) @@ -222,9 +222,9 @@ static int demux_vqa_send_chunk(demux_plugin_t *this_gen) { while (chunk_size) { buf = this->video_fifo->buffer_pool_alloc (this->video_fifo); buf->type = BUF_VIDEO_VQA; - buf->input_pos = current_file_pos; - buf->input_length = this->filesize; - buf->input_time = this->video_pts / 90000; + buf->extra_info->input_pos = current_file_pos; + buf->extra_info->input_length = this->filesize; + buf->extra_info->input_time = this->video_pts / 90000; buf->pts = this->video_pts; if (chunk_size > buf->max_size) @@ -477,6 +477,6 @@ static void *init_plugin (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 18, "vqa", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 19, "vqa", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/demuxers/demux_wav.c b/src/demuxers/demux_wav.c index 73724cfac..7457f95a2 100644 --- a/src/demuxers/demux_wav.c +++ b/src/demuxers/demux_wav.c @@ -20,7 +20,7 @@ * MS WAV File Demuxer by Mike Melanson (melanson@pcisys.net) * based on WAV specs that are available far and wide * - * $Id: demux_wav.c,v 1.28 2002/12/08 21:43:52 miguelfreitas Exp $ + * $Id: demux_wav.c,v 1.29 2002/12/21 12:56:46 miguelfreitas Exp $ * */ @@ -174,9 +174,9 @@ static int demux_wav_send_chunk(demux_plugin_t *this_gen) { while (remaining_sample_bytes) { buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo); buf->type = this->audio_type; - buf->input_pos = current_file_pos; - buf->input_length = this->data_size; - buf->input_time = current_pts / 90000; + buf->extra_info->input_pos = current_file_pos; + buf->extra_info->input_length = this->data_size; + buf->extra_info->input_time = current_pts / 90000; buf->pts = current_pts; if (remaining_sample_bytes > buf->max_size) @@ -450,6 +450,6 @@ static void *init_plugin (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 18, "wav", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 19, "wav", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/demuxers/demux_wc3movie.c b/src/demuxers/demux_wc3movie.c index b51860825..122b0a4a6 100644 --- a/src/demuxers/demux_wc3movie.c +++ b/src/demuxers/demux_wc3movie.c @@ -22,7 +22,7 @@ * For more information on the MVE file format, visit: * http://www.pcisys.net/~melanson/codecs/ * - * $Id: demux_wc3movie.c,v 1.28 2002/12/08 21:43:52 miguelfreitas Exp $ + * $Id: demux_wc3movie.c,v 1.29 2002/12/21 12:56:46 miguelfreitas Exp $ */ #ifdef HAVE_CONFIG_H @@ -217,8 +217,7 @@ static int demux_mve_send_chunk(demux_plugin_t *this_gen) { buf->decoder_flags = BUF_FLAG_SPECIAL; buf->decoder_info[1] = BUF_SPECIAL_PALETTE; buf->decoder_info[2] = PALETTE_SIZE; - buf->decoder_info[3] = - (unsigned int)&this->palettes[PALETTE_SIZE * palette_number]; + buf->decoder_info_ptr[2] = &this->palettes[PALETTE_SIZE * palette_number]; buf->size = 0; buf->type = BUF_VIDEO_WC3; this->video_fifo->put (this->video_fifo, buf); @@ -230,9 +229,9 @@ static int demux_mve_send_chunk(demux_plugin_t *this_gen) { while (chunk_size) { buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo); buf->type = BUF_AUDIO_LPCM_LE; - buf->input_pos = current_file_pos; - buf->input_length = this->data_size; - buf->input_time = audio_pts / 90000; + buf->extra_info->input_pos = current_file_pos; + buf->extra_info->input_length = this->data_size; + buf->extra_info->input_time = audio_pts / 90000; buf->pts = audio_pts; if (chunk_size > buf->max_size) @@ -259,9 +258,9 @@ static int demux_mve_send_chunk(demux_plugin_t *this_gen) { while (chunk_size) { buf = this->video_fifo->buffer_pool_alloc (this->video_fifo); buf->type = BUF_VIDEO_WC3; - buf->input_pos = current_file_pos; - buf->input_length = this->data_size; - buf->input_time = this->video_pts / 90000; + buf->extra_info->input_pos = current_file_pos; + buf->extra_info->input_length = this->data_size; + buf->extra_info->input_time = this->video_pts / 90000; buf->pts = this->video_pts; if (chunk_size > buf->max_size) @@ -787,6 +786,6 @@ static void *init_plugin (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 18, "wc3movie", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 19, "wc3movie", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/demuxers/demux_yuv4mpeg2.c b/src/demuxers/demux_yuv4mpeg2.c index 41fad5b6e..14c777fde 100644 --- a/src/demuxers/demux_yuv4mpeg2.c +++ b/src/demuxers/demux_yuv4mpeg2.c @@ -22,7 +22,7 @@ * tools, visit: * http://mjpeg.sourceforge.net/ * - * $Id: demux_yuv4mpeg2.c,v 1.13 2002/12/08 21:43:52 miguelfreitas Exp $ + * $Id: demux_yuv4mpeg2.c,v 1.14 2002/12/21 12:56:46 miguelfreitas Exp $ */ #ifdef HAVE_CONFIG_H @@ -206,8 +206,8 @@ static int demux_yuv4mpeg2_send_chunk(demux_plugin_t *this_gen) { while(bytes_remaining) { buf = this->video_fifo->buffer_pool_alloc (this->video_fifo); buf->type = BUF_VIDEO_YV12; - buf->input_pos = current_file_pos; - buf->input_length = this->data_size; + buf->extra_info->input_pos = current_file_pos; + buf->extra_info->input_length = this->data_size; buf->pts = pts; if (bytes_remaining > buf->max_size) @@ -453,6 +453,6 @@ static void *init_plugin (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 18, "yuv4mpeg2", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_DEMUX, 19, "yuv4mpeg2", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/dxr3/dxr3_decode_spu.c b/src/dxr3/dxr3_decode_spu.c index 2ab0ec545..301d60365 100644 --- a/src/dxr3/dxr3_decode_spu.c +++ b/src/dxr3/dxr3_decode_spu.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: dxr3_decode_spu.c,v 1.27 2002/11/21 21:39:43 mroi Exp $ + * $Id: dxr3_decode_spu.c,v 1.28 2002/12/21 12:56:46 miguelfreitas Exp $ */ /* dxr3 spu decoder plugin. @@ -66,7 +66,7 @@ static decoder_info_t dxr3_spudec_info = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_SPU_DECODER, 12, "dxr3-spudec", XINE_VERSION_CODE, &dxr3_spudec_info, &dxr3_spudec_init_plugin }, + { PLUGIN_SPU_DECODER, 13, "dxr3-spudec", XINE_VERSION_CODE, &dxr3_spudec_info, &dxr3_spudec_init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/dxr3/dxr3_decode_video.c b/src/dxr3/dxr3_decode_video.c index c935c9263..998525c97 100644 --- a/src/dxr3/dxr3_decode_video.c +++ b/src/dxr3/dxr3_decode_video.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: dxr3_decode_video.c,v 1.24 2002/12/10 15:30:26 mroi Exp $ + * $Id: dxr3_decode_video.c,v 1.25 2002/12/21 12:56:46 miguelfreitas Exp $ */ /* dxr3 video decoder plugin. @@ -72,7 +72,7 @@ static decoder_info_t dxr3_video_decoder_info = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_DECODER, 13, "dxr3-mpeg2", XINE_VERSION_CODE, &dxr3_video_decoder_info, &dxr3_init_plugin }, + { PLUGIN_VIDEO_DECODER, 14, "dxr3-mpeg2", XINE_VERSION_CODE, &dxr3_video_decoder_info, &dxr3_init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/dxr3/video_out_dxr3.c b/src/dxr3/video_out_dxr3.c index 5d6c68d50..ecdbc48bd 100644 --- a/src/dxr3/video_out_dxr3.c +++ b/src/dxr3/video_out_dxr3.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out_dxr3.c,v 1.64 2002/12/06 01:33:01 miguelfreitas Exp $ + * $Id: video_out_dxr3.c,v 1.65 2002/12/21 12:56:46 miguelfreitas Exp $ */ /* mpeg1 encoding video out plugin for the dxr3. @@ -75,7 +75,7 @@ static vo_info_t vo_info_dxr3 = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_OUT, 13, "dxr3", XINE_VERSION_CODE, &vo_info_dxr3, &dxr3_vo_init_plugin }, + { PLUGIN_VIDEO_OUT, 14, "dxr3", XINE_VERSION_CODE, &vo_info_dxr3, &dxr3_vo_init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/input/input_dvd.c b/src/input/input_dvd.c index b506cb679..42337036b 100644 --- a/src/input/input_dvd.c +++ b/src/input/input_dvd.c @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: input_dvd.c,v 1.122 2002/12/06 18:44:40 miguelfreitas Exp $ + * $Id: input_dvd.c,v 1.123 2002/12/21 12:56:47 miguelfreitas Exp $ * */ @@ -1678,6 +1678,17 @@ static void *init_class (xine_t *xine, void *data) { /* * $Log: input_dvd.c,v $ + * Revision 1.123 2002/12/21 12:56:47 miguelfreitas + * - add buf->decoder_info_ptr: portability for systems where pointer has + * different sizeof than integer. + * - add extra_info structure to pass informations from input/demuxers down + * to the output frame. this can be used, for example, to pass the frame + * number of a frame (when known by decoder). also, immediate benefict is + * that we now have a slider which really shows the current position of + * the playing stream. new fields can be added to extra_info keeping + * binary compatibility + * - bumpy everybody's api versions + * * Revision 1.122 2002/12/06 18:44:40 miguelfreitas * - add still frame hint (untested - i don't have dvd here) * - check mrl before allocating plugin context, so it doesn't get initialized for @@ -1940,6 +1951,6 @@ static void *init_class (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_INPUT, 10, "DVD", XINE_VERSION_CODE, NULL, init_class }, + { PLUGIN_INPUT, 11, "DVD", XINE_VERSION_CODE, NULL, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/input/input_file.c b/src/input/input_file.c index 8da57ae65..edfa9615d 100644 --- a/src/input/input_file.c +++ b/src/input/input_file.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: input_file.c,v 1.69 2002/11/20 11:57:43 mroi Exp $ + * $Id: input_file.c,v 1.70 2002/12/21 12:56:47 miguelfreitas Exp $ */ #ifdef HAVE_CONFIG_H @@ -876,7 +876,7 @@ static void *init_plugin (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_INPUT, 10, "file", XINE_VERSION_CODE, NULL, init_plugin }, + { PLUGIN_INPUT, 11, "file", XINE_VERSION_CODE, NULL, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/input/input_http.c b/src/input/input_http.c index 78cae53ed..9304f90ad 100644 --- a/src/input/input_http.c +++ b/src/input/input_http.c @@ -973,7 +973,7 @@ static void *init_class (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_INPUT, 10, "http", XINE_VERSION_CODE, NULL, init_class }, + { PLUGIN_INPUT, 11, "http", XINE_VERSION_CODE, NULL, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/input/input_mms.c b/src/input/input_mms.c index 22f483942..43b98d31f 100644 --- a/src/input/input_mms.c +++ b/src/input/input_mms.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: input_mms.c,v 1.28 2002/12/13 08:56:53 f1rmb Exp $ + * $Id: input_mms.c,v 1.29 2002/12/21 12:56:47 miguelfreitas Exp $ * * mms input plugin based on work from major mms */ @@ -381,6 +381,6 @@ static void *init_class (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_INPUT, 10, "mms", XINE_VERSION_CODE, NULL, init_class }, + { PLUGIN_INPUT, 11, "mms", XINE_VERSION_CODE, NULL, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/input/input_net.c b/src/input/input_net.c index 5ba2d00b4..0903e2a98 100644 --- a/src/input/input_net.c +++ b/src/input/input_net.c @@ -20,7 +20,7 @@ * Read from a tcp network stream over a lan (put a tweaked mp1e encoder the * other end and you can watch tv anywhere in the house ..) * - * $Id: input_net.c,v 1.38 2002/12/14 23:02:59 holstsn Exp $ + * $Id: input_net.c,v 1.39 2002/12/21 12:56:47 miguelfreitas Exp $ * * how to set up mp1e for use with this plugin: * @@ -421,7 +421,7 @@ static void *init_class (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_INPUT, 10, "tcp", XINE_VERSION_CODE, NULL, init_class }, + { PLUGIN_INPUT, 11, "tcp", XINE_VERSION_CODE, NULL, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/input/input_plugin.h b/src/input/input_plugin.h index df1cdd4be..138fef60d 100644 --- a/src/input/input_plugin.h +++ b/src/input/input_plugin.h @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: input_plugin.h,v 1.41 2002/12/15 22:58:47 guenter Exp $ + * $Id: input_plugin.h,v 1.42 2002/12/21 12:56:47 miguelfreitas Exp $ */ #ifndef HAVE_INPUT_PLUGIN_H @@ -29,7 +29,7 @@ #include "buffer.h" #include "configfile.h" -#define INPUT_PLUGIN_IFACE_VERSION 10 +#define INPUT_PLUGIN_IFACE_VERSION 11 typedef struct input_class_s input_class_t ; typedef struct input_plugin_s input_plugin_t; diff --git a/src/input/input_pnm.c b/src/input/input_pnm.c index b32dd7bf5..cfc73fd2d 100644 --- a/src/input/input_pnm.c +++ b/src/input/input_pnm.c @@ -300,7 +300,7 @@ static void *init_class (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_INPUT, 10, "pnm", XINE_VERSION_CODE, NULL, init_class }, + { PLUGIN_INPUT, 11, "pnm", XINE_VERSION_CODE, NULL, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/input/input_rtsp.c b/src/input/input_rtsp.c index 172358f85..7fd5cf4e7 100644 --- a/src/input/input_rtsp.c +++ b/src/input/input_rtsp.c @@ -313,7 +313,7 @@ static void *init_class (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_INPUT, 10, "rtsp", XINE_VERSION_CODE, NULL, init_class }, + { PLUGIN_INPUT, 11, "rtsp", XINE_VERSION_CODE, NULL, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/input/input_stdin_fifo.c b/src/input/input_stdin_fifo.c index a992b8f1c..a0809f3e1 100644 --- a/src/input/input_stdin_fifo.c +++ b/src/input/input_stdin_fifo.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: input_stdin_fifo.c,v 1.38 2002/12/12 12:00:24 guenter Exp $ + * $Id: input_stdin_fifo.c,v 1.39 2002/12/21 12:56:47 miguelfreitas Exp $ */ #ifdef HAVE_CONFIG_H @@ -388,6 +388,6 @@ static void *init_class (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_INPUT, 10, "stdin", XINE_VERSION_CODE, NULL, init_class }, + { PLUGIN_INPUT, 11, "stdin", XINE_VERSION_CODE, NULL, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/input/input_vcd.c b/src/input/input_vcd.c index c35a8ad66..bc09a33c2 100644 --- a/src/input/input_vcd.c +++ b/src/input/input_vcd.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: input_vcd.c,v 1.59 2002/11/20 11:57:43 mroi Exp $ + * $Id: input_vcd.c,v 1.60 2002/12/21 12:56:47 miguelfreitas Exp $ * */ @@ -1148,6 +1148,6 @@ static void *init_class (xine_t *xine, void *data) { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_INPUT, 10, "VCD", XINE_VERSION_CODE, NULL, init_class }, + { PLUGIN_INPUT, 11, "VCD", XINE_VERSION_CODE, NULL, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/liba52/xine_decoder.c b/src/liba52/xine_decoder.c index 08a1ff664..5b34242cc 100644 --- a/src/liba52/xine_decoder.c +++ b/src/liba52/xine_decoder.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_decoder.c,v 1.42 2002/12/15 16:05:23 mroi Exp $ + * $Id: xine_decoder.c,v 1.43 2002/12/21 12:56:47 miguelfreitas Exp $ * * stuff needed to turn liba52 into a xine decoder plugin */ @@ -691,6 +691,6 @@ static decoder_info_t dec_info_audio = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_AUDIO_DECODER, 12, "a/52", XINE_VERSION_CODE, &dec_info_audio, init_plugin }, + { PLUGIN_AUDIO_DECODER, 13, "a/52", XINE_VERSION_CODE, &dec_info_audio, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libdts/xine_decoder.c b/src/libdts/xine_decoder.c index 0023eaabe..861d4242f 100644 --- a/src/libdts/xine_decoder.c +++ b/src/libdts/xine_decoder.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_decoder.c,v 1.32 2002/11/20 11:57:43 mroi Exp $ + * $Id: xine_decoder.c,v 1.33 2002/12/21 12:56:47 miguelfreitas Exp $ * * 04-09-2001 DTS passtrough (C) Joachim Koenig * 09-12-2001 DTS passthrough inprovements (C) James Courtier-Dutton @@ -283,6 +283,6 @@ static decoder_info_t dec_info_audio = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_AUDIO_DECODER, 12, "dts", XINE_VERSION_CODE, &dec_info_audio, init_plugin }, + { PLUGIN_AUDIO_DECODER, 13, "dts", XINE_VERSION_CODE, &dec_info_audio, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libfaad/xine_decoder.c b/src/libfaad/xine_decoder.c index aabbef006..07e0ae01e 100644 --- a/src/libfaad/xine_decoder.c +++ b/src/libfaad/xine_decoder.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_decoder.c,v 1.14 2002/12/16 19:02:14 miguelfreitas Exp $ + * $Id: xine_decoder.c,v 1.15 2002/12/21 12:56:47 miguelfreitas Exp $ * */ @@ -188,7 +188,7 @@ static void faad_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) { return; } - used = faacDecInit2(this->faac_dec, (void *)buf->decoder_info[3], + used = faacDecInit2(this->faac_dec, buf->decoder_info_ptr[2], buf->decoder_info[2], &this->rate, &this->num_channels); if( used < 0 ) { @@ -387,6 +387,6 @@ static decoder_info_t dec_info_audio = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_AUDIO_DECODER, 12, "faad", XINE_VERSION_CODE, &dec_info_audio, init_plugin }, + { PLUGIN_AUDIO_DECODER, 13, "faad", XINE_VERSION_CODE, &dec_info_audio, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libffmpeg/xine_decoder.c b/src/libffmpeg/xine_decoder.c index c031d57fb..d1899f424 100644 --- a/src/libffmpeg/xine_decoder.c +++ b/src/libffmpeg/xine_decoder.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_decoder.c,v 1.80 2002/12/18 21:35:41 esnel Exp $ + * $Id: xine_decoder.c,v 1.81 2002/12/21 12:56:47 miguelfreitas Exp $ * * xine decoder plugin using ffmpeg * @@ -1046,7 +1046,7 @@ static decoder_info_t dec_info_ffmpeg_audio = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_DECODER, 13, "ffmpegvideo", XINE_VERSION_CODE, &dec_info_ffmpeg_video, init_video_plugin }, - { PLUGIN_AUDIO_DECODER, 12, "ffmpegaudio", XINE_VERSION_CODE, &dec_info_ffmpeg_audio, init_audio_plugin }, + { PLUGIN_VIDEO_DECODER, 14, "ffmpegvideo", XINE_VERSION_CODE, &dec_info_ffmpeg_video, init_video_plugin }, + { PLUGIN_AUDIO_DECODER, 13, "ffmpegaudio", XINE_VERSION_CODE, &dec_info_ffmpeg_audio, init_audio_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/liblpcm/xine_decoder.c b/src/liblpcm/xine_decoder.c index c23b5fe1f..baa6fa007 100644 --- a/src/liblpcm/xine_decoder.c +++ b/src/liblpcm/xine_decoder.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_decoder.c,v 1.38 2002/11/20 11:57:43 mroi Exp $ + * $Id: xine_decoder.c,v 1.39 2002/12/21 12:56:47 miguelfreitas Exp $ * * 31-8-2001 Added LPCM rate sensing. * (c) 2001 James Courtier-Dutton James@superbug.demon.co.uk @@ -247,6 +247,6 @@ static decoder_info_t dec_info_audio = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_AUDIO_DECODER, 12, "pcm", XINE_VERSION_CODE, &dec_info_audio, init_plugin }, + { PLUGIN_AUDIO_DECODER, 13, "pcm", XINE_VERSION_CODE, &dec_info_audio, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libmad/xine_decoder.c b/src/libmad/xine_decoder.c index 9b827a64b..bb974639b 100644 --- a/src/libmad/xine_decoder.c +++ b/src/libmad/xine_decoder.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_decoder.c,v 1.35 2002/11/20 11:57:43 mroi Exp $ + * $Id: xine_decoder.c,v 1.36 2002/12/21 12:56:48 miguelfreitas Exp $ * * stuff needed to turn libmad into a xine decoder plugin */ @@ -344,6 +344,6 @@ static decoder_info_t dec_info_audio = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_AUDIO_DECODER, 12, "mad", XINE_VERSION_CODE, &dec_info_audio, init_plugin }, + { PLUGIN_AUDIO_DECODER, 13, "mad", XINE_VERSION_CODE, &dec_info_audio, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libmpeg2/xine_decoder.c b/src/libmpeg2/xine_decoder.c index ae634fd87..4e8441b07 100644 --- a/src/libmpeg2/xine_decoder.c +++ b/src/libmpeg2/xine_decoder.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_decoder.c,v 1.44 2002/11/20 11:57:44 mroi Exp $ + * $Id: xine_decoder.c,v 1.45 2002/12/21 12:56:48 miguelfreitas Exp $ * * stuff needed to turn libmpeg2 into a xine decoder plugin */ @@ -213,6 +213,6 @@ static decoder_info_t dec_info_mpeg2 = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_DECODER, 13, "mpeg2", XINE_VERSION_CODE, &dec_info_mpeg2, init_plugin }, + { PLUGIN_VIDEO_DECODER, 14, "mpeg2", XINE_VERSION_CODE, &dec_info_mpeg2, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libreal/audio_decoder.c b/src/libreal/audio_decoder.c index 5a160a771..4b08831b3 100644 --- a/src/libreal/audio_decoder.c +++ b/src/libreal/audio_decoder.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: audio_decoder.c,v 1.13 2002/12/17 02:27:26 guenter Exp $ + * $Id: audio_decoder.c,v 1.14 2002/12/21 12:56:48 miguelfreitas Exp $ * * thin layer to use real binary-only codecs in xine * @@ -752,6 +752,6 @@ static decoder_info_t dec_info_audio = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_AUDIO_DECODER, 12, "realadec", XINE_VERSION_CODE, &dec_info_audio, init_class }, + { PLUGIN_AUDIO_DECODER, 13, "realadec", XINE_VERSION_CODE, &dec_info_audio, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libreal/xine_decoder.c b/src/libreal/xine_decoder.c index c19a37a14..0aab36c28 100644 --- a/src/libreal/xine_decoder.c +++ b/src/libreal/xine_decoder.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_decoder.c,v 1.18 2002/12/17 02:27:26 guenter Exp $ + * $Id: xine_decoder.c,v 1.19 2002/12/21 12:56:48 miguelfreitas Exp $ * * thin layer to use real binary-only codecs in xine * @@ -569,6 +569,6 @@ static decoder_info_t dec_info_real = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_DECODER, 13, "real", XINE_VERSION_CODE, &dec_info_real, init_class }, + { PLUGIN_VIDEO_DECODER, 14, "real", XINE_VERSION_CODE, &dec_info_real, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libspucc/xine_decoder.c b/src/libspucc/xine_decoder.c index 84c9d458a..c02cf9e72 100644 --- a/src/libspucc/xine_decoder.c +++ b/src/libspucc/xine_decoder.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_decoder.c,v 1.22 2002/12/09 21:56:29 mroi Exp $ + * $Id: xine_decoder.c,v 1.23 2002/12/21 12:56:48 miguelfreitas Exp $ * * closed caption spu decoder. receive data by events. * @@ -398,6 +398,6 @@ static decoder_info_t spudec_info = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_SPU_DECODER, 12, "spucc", XINE_VERSION_CODE, &spudec_info, &init_spu_decoder_plugin }, + { PLUGIN_SPU_DECODER, 13, "spucc", XINE_VERSION_CODE, &spudec_info, &init_spu_decoder_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libspudec/spu_decoder_api.h b/src/libspudec/spu_decoder_api.h index 68011c1a2..09ce92d88 100644 --- a/src/libspudec/spu_decoder_api.h +++ b/src/libspudec/spu_decoder_api.h @@ -24,7 +24,7 @@ #ifndef HAVE_SPU_API_H #define HAVE_SPU_API_H -#define SPU_DECODER_IFACE_VERSION 12 +#define SPU_DECODER_IFACE_VERSION 13 /* FIXME: Needed for spu_button_t */ /* But will not be on all users's systems. (From the libspudec directory or libdvdread). */ /*#include "nav_types.h" */ diff --git a/src/libspudec/xine_decoder.c b/src/libspudec/xine_decoder.c index 1b863e13f..ccaad726a 100644 --- a/src/libspudec/xine_decoder.c +++ b/src/libspudec/xine_decoder.c @@ -19,7 +19,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_decoder.c,v 1.89 2002/11/26 16:05:00 mroi Exp $ + * $Id: xine_decoder.c,v 1.90 2002/12/21 12:56:48 miguelfreitas Exp $ * * stuff needed to turn libspu into a xine decoder plugin */ @@ -369,6 +369,6 @@ static decoder_info_t dec_info_data = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_SPU_DECODER, 12, "spudec", XINE_VERSION_CODE, &dec_info_data, &init_plugin }, + { PLUGIN_SPU_DECODER, 13, "spudec", XINE_VERSION_CODE, &dec_info_data, &init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libvorbis/xine_decoder.c b/src/libvorbis/xine_decoder.c index df513c221..1d75c5ced 100644 --- a/src/libvorbis/xine_decoder.c +++ b/src/libvorbis/xine_decoder.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_decoder.c,v 1.22 2002/11/20 11:57:45 mroi Exp $ + * $Id: xine_decoder.c,v 1.23 2002/12/21 12:56:48 miguelfreitas Exp $ * * (ogg/)vorbis audio decoder plugin (libvorbis wrapper) for xine */ @@ -333,6 +333,6 @@ static decoder_info_t dec_info_audio = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_AUDIO_DECODER, 12, "vorbis", XINE_VERSION_CODE, &dec_info_audio, init_plugin }, + { PLUGIN_AUDIO_DECODER, 13, "vorbis", XINE_VERSION_CODE, &dec_info_audio, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libw32dll/qt_decoder.c b/src/libw32dll/qt_decoder.c index a3df42950..9175e1b3c 100644 --- a/src/libw32dll/qt_decoder.c +++ b/src/libw32dll/qt_decoder.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: qt_decoder.c,v 1.2 2002/12/21 03:03:16 tmmm Exp $ + * $Id: qt_decoder.c,v 1.3 2002/12/21 12:56:46 miguelfreitas Exp $ * * quicktime video/audio decoder plugin, using win32 dlls * most of this code comes directly from MPlayer @@ -325,7 +325,7 @@ static void qta_init_driver (qta_decoder_t *this, buf_element_t *buf) { printf ("qt_audio: output format:\n"); qta_hexdump (&this->OutputFormatInfo, sizeof (SoundComponentData)); printf ("qt_audio: stsd atom: \n"); - qta_hexdump ((unsigned char *)buf->decoder_info[3], buf->decoder_info[2]); + qta_hexdump ((unsigned char *)buf->decoder_info_ptr[2], buf->decoder_info[2]); #endif error = this->SoundConverterOpen (&this->InputFormatInfo, @@ -867,7 +867,7 @@ static void qtv_init_driver (qtv_decoder_t *this, buf_element_t *buf) { printf ("qt_video: stsd (%d bytes):\n", buf->decoder_info[2]) ; - qtv_hexdump ((unsigned char *)buf->decoder_info[3], buf->decoder_info[2]); + qtv_hexdump ((unsigned char *)buf->decoder_info_ptr[2], buf->decoder_info[2]); #endif { @@ -1176,8 +1176,8 @@ static decoder_info_t qtv_dec_info = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_DECODER, 13, "qtv", XINE_VERSION_CODE, &qtv_dec_info, qtv_init_class }, - { PLUGIN_AUDIO_DECODER, 12, "qta", XINE_VERSION_CODE, &qta_dec_info, qta_init_class }, + { PLUGIN_VIDEO_DECODER, 14, "qtv", XINE_VERSION_CODE, &qtv_dec_info, qtv_init_class }, + { PLUGIN_AUDIO_DECODER, 13, "qta", XINE_VERSION_CODE, &qta_dec_info, qta_init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libw32dll/w32codec.c b/src/libw32dll/w32codec.c index 29bdc093c..86d504d4d 100644 --- a/src/libw32dll/w32codec.c +++ b/src/libw32dll/w32codec.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: w32codec.c,v 1.109 2002/12/18 04:00:49 guenter Exp $ + * $Id: w32codec.c,v 1.110 2002/12/21 12:56:46 miguelfreitas Exp $ * * routines for using w32 codecs * DirectShow support by Miguel Freitas (Nov/2001) @@ -1508,7 +1508,7 @@ static decoder_info_t dec_info_audio = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_DECODER, 13, "win32v", XINE_VERSION_CODE, &dec_info_video, init_video_decoder_class }, - { PLUGIN_AUDIO_DECODER, 12, "win32a", XINE_VERSION_CODE, &dec_info_audio, init_audio_decoder_class }, + { PLUGIN_VIDEO_DECODER, 14, "win32v", XINE_VERSION_CODE, &dec_info_video, init_video_decoder_class }, + { PLUGIN_AUDIO_DECODER, 13, "win32a", XINE_VERSION_CODE, &dec_info_audio, init_audio_decoder_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libxineadec/adpcm.c b/src/libxineadec/adpcm.c index d86a14a29..96ddf1e67 100644 --- a/src/libxineadec/adpcm.c +++ b/src/libxineadec/adpcm.c @@ -24,7 +24,7 @@ * formats can be found here: * http://www.pcisys.net/~melanson/codecs/ * - * $Id: adpcm.c,v 1.24 2002/11/20 11:57:45 mroi Exp $ + * $Id: adpcm.c,v 1.25 2002/12/21 12:56:48 miguelfreitas Exp $ */ #include <stdio.h> @@ -1342,6 +1342,6 @@ static decoder_info_t dec_info_audio = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_AUDIO_DECODER, 12, "adpcm", XINE_VERSION_CODE, &dec_info_audio, init_plugin }, + { PLUGIN_AUDIO_DECODER, 13, "adpcm", XINE_VERSION_CODE, &dec_info_audio, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libxineadec/fooaudio.c b/src/libxineadec/fooaudio.c index 6b9ce9cd6..2d90e8846 100644 --- a/src/libxineadec/fooaudio.c +++ b/src/libxineadec/fooaudio.c @@ -21,7 +21,7 @@ * player. It really works too! It will output a continuous sine wave in * place of the data it should actually send. * - * $Id: fooaudio.c,v 1.4 2002/11/20 11:57:46 mroi Exp $ + * $Id: fooaudio.c,v 1.5 2002/12/21 12:56:48 miguelfreitas Exp $ */ #include <stdio.h> @@ -344,7 +344,7 @@ static decoder_info_t dec_info_audio = { * will export to the public. */ plugin_info_t xine_plugin_info[] = { /* { type, API version, "name", version, special_info, init_function }, */ - { PLUGIN_AUDIO_DECODER, 12, "fooaudio", XINE_VERSION_CODE, &dec_info_audio, &init_plugin }, + { PLUGIN_AUDIO_DECODER, 13, "fooaudio", XINE_VERSION_CODE, &dec_info_audio, &init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libxineadec/gsm610.c b/src/libxineadec/gsm610.c index 0f75ba631..4ee875354 100644 --- a/src/libxineadec/gsm610.c +++ b/src/libxineadec/gsm610.c @@ -44,7 +44,7 @@ * Carsten Bormann * -------------------------------------------------------------------- * - * $Id: gsm610.c,v 1.6 2002/11/20 11:57:46 mroi Exp $ + * $Id: gsm610.c,v 1.7 2002/12/21 12:56:48 miguelfreitas Exp $ * */ @@ -291,6 +291,6 @@ static decoder_info_t dec_info_audio = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_AUDIO_DECODER, 12, "gsm610", XINE_VERSION_CODE, &dec_info_audio, init_plugin }, + { PLUGIN_AUDIO_DECODER, 13, "gsm610", XINE_VERSION_CODE, &dec_info_audio, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libxineadec/logpcm.c b/src/libxineadec/logpcm.c index b3a85368b..1167dd228 100644 --- a/src/libxineadec/logpcm.c +++ b/src/libxineadec/logpcm.c @@ -30,7 +30,7 @@ * http://sox.sourceforge.net/ * which listed the code as being lifted from Sun Microsystems. * - * $Id: logpcm.c,v 1.10 2002/11/20 11:57:46 mroi Exp $ + * $Id: logpcm.c,v 1.11 2002/12/21 12:56:48 miguelfreitas Exp $ * */ @@ -307,6 +307,6 @@ static decoder_info_t dec_info_audio = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_AUDIO_DECODER, 12, "logpcm", XINE_VERSION_CODE, &dec_info_audio, &init_plugin }, + { PLUGIN_AUDIO_DECODER, 13, "logpcm", XINE_VERSION_CODE, &dec_info_audio, &init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libxineadec/roqaudio.c b/src/libxineadec/roqaudio.c index bf33aec53..9bca21695 100644 --- a/src/libxineadec/roqaudio.c +++ b/src/libxineadec/roqaudio.c @@ -21,7 +21,7 @@ * For more information regarding the RoQ file format, visit: * http://www.csse.monash.edu.au/~timf/ * - * $Id: roqaudio.c,v 1.13 2002/11/20 11:57:46 mroi Exp $ + * $Id: roqaudio.c,v 1.14 2002/12/21 12:56:48 miguelfreitas Exp $ * */ @@ -238,6 +238,6 @@ static decoder_info_t dec_info_audio = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_AUDIO_DECODER, 12, "roqaudio", XINE_VERSION_CODE, &dec_info_audio, init_plugin }, + { PLUGIN_AUDIO_DECODER, 13, "roqaudio", XINE_VERSION_CODE, &dec_info_audio, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libxinevdec/cinepak.c b/src/libxinevdec/cinepak.c index ce8f2a7a6..d2b98ee04 100644 --- a/src/libxinevdec/cinepak.c +++ b/src/libxinevdec/cinepak.c @@ -22,7 +22,7 @@ * based on overview of Cinepak algorithm and example decoder * by Tim Ferguson: http://www.csse.monash.edu.au/~timf/ * - * $Id: cinepak.c,v 1.27 2002/12/21 03:08:34 tmmm Exp $ + * $Id: cinepak.c,v 1.28 2002/12/21 12:56:48 miguelfreitas Exp $ */ #include <stdlib.h> @@ -376,7 +376,7 @@ static void cvid_decode_data (video_decoder_t *this_gen, buf_element_t *buf) { /* convert the RGB palette to a YUV palette */ if ((buf->decoder_flags & BUF_FLAG_SPECIAL) && (buf->decoder_info[1] == BUF_SPECIAL_PALETTE)) { - palette = (palette_entry_t *)buf->decoder_info[3]; + palette = (palette_entry_t *)buf->decoder_info_ptr[2]; for (i = 0; i < buf->decoder_info[2]; i++) { yuv_palette[i * 4 + 0] = COMPUTE_Y(palette[i].r, palette[i].g, palette[i].b); @@ -559,6 +559,6 @@ static decoder_info_t dec_info_video = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_DECODER, 13, "cinepak", XINE_VERSION_CODE, &dec_info_video, init_plugin }, + { PLUGIN_VIDEO_DECODER, 14, "cinepak", XINE_VERSION_CODE, &dec_info_video, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libxinevdec/cyuv.c b/src/libxinevdec/cyuv.c index 6e3bb57c4..738ddae29 100644 --- a/src/libxinevdec/cyuv.c +++ b/src/libxinevdec/cyuv.c @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: cyuv.c,v 1.14 2002/12/18 21:35:41 esnel Exp $ + * $Id: cyuv.c,v 1.15 2002/12/21 12:56:48 miguelfreitas Exp $ */ /* And this is the header that came with the CYUV decoder: */ @@ -282,6 +282,6 @@ static decoder_info_t dec_info_video = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_DECODER, 13, "cyuv", XINE_VERSION_CODE, &dec_info_video, init_plugin }, + { PLUGIN_VIDEO_DECODER, 14, "cyuv", XINE_VERSION_CODE, &dec_info_video, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libxinevdec/fli.c b/src/libxinevdec/fli.c index 9e2d26d14..8f6eabb8e 100644 --- a/src/libxinevdec/fli.c +++ b/src/libxinevdec/fli.c @@ -23,7 +23,7 @@ * avoid when implementing a FLI decoder, visit: * http://www.pcisys.net/~melanson/codecs/ * - * $Id: fli.c,v 1.11 2002/12/06 01:44:06 miguelfreitas Exp $ + * $Id: fli.c,v 1.12 2002/12/21 12:56:48 miguelfreitas Exp $ */ #include <stdio.h> @@ -584,7 +584,7 @@ static decoder_info_t dec_info_video = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_DECODER, 13, "fli", XINE_VERSION_CODE, &dec_info_video, init_plugin }, + { PLUGIN_VIDEO_DECODER, 14, "fli", XINE_VERSION_CODE, &dec_info_video, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libxinevdec/foovideo.c b/src/libxinevdec/foovideo.c index 62d87707e..dc2cb1b09 100644 --- a/src/libxinevdec/foovideo.c +++ b/src/libxinevdec/foovideo.c @@ -23,7 +23,7 @@ * value from the last frame. This creates a slowly rotating solid color * frame when the frames are played in succession. * - * $Id: foovideo.c,v 1.12 2002/12/06 01:44:06 miguelfreitas Exp $ + * $Id: foovideo.c,v 1.13 2002/12/21 12:56:48 miguelfreitas Exp $ */ #include <stdio.h> @@ -296,6 +296,6 @@ static decoder_info_t dec_info_video = { */ plugin_info_t xine_plugin_info[] = { /* { type, API, "name", version, special_info, init_function } */ - { PLUGIN_VIDEO_DECODER, 13, "foovideo", XINE_VERSION_CODE, &dec_info_video, init_plugin }, + { PLUGIN_VIDEO_DECODER, 14, "foovideo", XINE_VERSION_CODE, &dec_info_video, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libxinevdec/idcinvideo.c b/src/libxinevdec/idcinvideo.c index 17a7feb3d..b1a3e0d78 100644 --- a/src/libxinevdec/idcinvideo.c +++ b/src/libxinevdec/idcinvideo.c @@ -21,7 +21,7 @@ * the Id CIN format, visit: * http://www.csse.monash.edu.au/~timf/ * - * $Id: idcinvideo.c,v 1.10 2002/12/06 01:44:06 miguelfreitas Exp $ + * $Id: idcinvideo.c,v 1.11 2002/12/21 12:56:48 miguelfreitas Exp $ */ #include <stdio.h> @@ -222,7 +222,7 @@ static void idcinvideo_decode_data (video_decoder_t *this_gen, /* load the palette */ if ((buf->decoder_flags & BUF_FLAG_SPECIAL) && (buf->decoder_info[1] == BUF_SPECIAL_PALETTE)) { - palette = (palette_entry_t *)buf->decoder_info[3]; + palette = (palette_entry_t *)buf->decoder_info_ptr[2]; for (i = 0; i < buf->decoder_info[2]; i++) { this->yuv_palette[i * 4 + 0] = COMPUTE_Y(palette[i].r, palette[i].g, palette[i].b); @@ -236,7 +236,7 @@ static void idcinvideo_decode_data (video_decoder_t *this_gen, /* initialize the Huffman tables */ if ((buf->decoder_flags & BUF_FLAG_SPECIAL) && (buf->decoder_info[1] == BUF_SPECIAL_IDCIN_HUFFMAN_TABLE)) { - histograms = (unsigned char *)buf->decoder_info[2]; + histograms = (unsigned char *)buf->decoder_info_ptr[2]; for (i = 0; i < 256; i++) { for(j = 0; j < HUF_TOKENS; j++) huff_nodes[i][j].count = histograms[histogram_index++]; @@ -403,6 +403,6 @@ static decoder_info_t video_decoder_info = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_DECODER, 13, "idcinvideo", XINE_VERSION_CODE, &video_decoder_info, &init_plugin }, + { PLUGIN_VIDEO_DECODER, 14, "idcinvideo", XINE_VERSION_CODE, &video_decoder_info, &init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libxinevdec/msrle.c b/src/libxinevdec/msrle.c index 438901049..8eded855b 100644 --- a/src/libxinevdec/msrle.c +++ b/src/libxinevdec/msrle.c @@ -21,7 +21,7 @@ * For more information on the MS RLE format, visit: * http://www.pcisys.net/~melanson/codecs/ * - * $Id: msrle.c,v 1.14 2002/12/21 03:08:34 tmmm Exp $ + * $Id: msrle.c,v 1.15 2002/12/21 12:56:48 miguelfreitas Exp $ */ #include <stdio.h> @@ -191,7 +191,7 @@ static void msrle_decode_data (video_decoder_t *this_gen, /* load the palette */ if ((buf->decoder_flags & BUF_FLAG_SPECIAL) && (buf->decoder_info[1] == BUF_SPECIAL_PALETTE)) { - palette = (palette_entry_t *)buf->decoder_info[3]; + palette = (palette_entry_t *)buf->decoder_info_ptr[2]; for (i = 0; i < buf->decoder_info[2]; i++) { this->yuv_palette[i * 4 + 0] = COMPUTE_Y(palette[i].r, palette[i].g, palette[i].b); @@ -366,6 +366,6 @@ static decoder_info_t dec_info_video = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_DECODER, 13, "msrle", XINE_VERSION_CODE, &dec_info_video, init_plugin }, + { PLUGIN_VIDEO_DECODER, 14, "msrle", XINE_VERSION_CODE, &dec_info_video, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libxinevdec/msvc.c b/src/libxinevdec/msvc.c index 4d49b5bf4..6f2622f94 100644 --- a/src/libxinevdec/msvc.c +++ b/src/libxinevdec/msvc.c @@ -22,7 +22,7 @@ * based on overview of Microsoft Video-1 algorithm * by Mike Melanson: http://www.pcisys.net/~melanson/codecs/video1.txt * - * $Id: msvc.c,v 1.20 2002/12/18 21:35:42 esnel Exp $ + * $Id: msvc.c,v 1.21 2002/12/21 12:56:49 miguelfreitas Exp $ */ #include <stdlib.h> @@ -212,7 +212,7 @@ static void msvc_decode_data (video_decoder_t *this_gen, buf_element_t *buf) { if ((buf->decoder_flags & BUF_FLAG_SPECIAL) && (buf->decoder_info[1] == BUF_SPECIAL_PALETTE)) { - palette = (palette_entry_t *)buf->decoder_info[3]; + palette = (palette_entry_t *)buf->decoder_info_ptr[2]; for (i = 0; i < buf->decoder_info[2]; i++) rgb_to_yuy2( 32, @@ -408,6 +408,6 @@ static decoder_info_t dec_info_video = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_DECODER, 13, "msvc", XINE_VERSION_CODE, &dec_info_video, init_plugin }, + { PLUGIN_VIDEO_DECODER, 14, "msvc", XINE_VERSION_CODE, &dec_info_video, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libxinevdec/qtrle.c b/src/libxinevdec/qtrle.c index e02b59ced..5240dd23b 100644 --- a/src/libxinevdec/qtrle.c +++ b/src/libxinevdec/qtrle.c @@ -21,7 +21,7 @@ * For more information on the QT RLE format, visit: * http://www.pcisys.net/~melanson/codecs/ * - * $Id: qtrle.c,v 1.9 2002/12/18 21:35:42 esnel Exp $ + * $Id: qtrle.c,v 1.10 2002/12/21 12:56:49 miguelfreitas Exp $ */ #include <stdio.h> @@ -693,7 +693,7 @@ static void qtrle_decode_data (video_decoder_t *this_gen, if ((buf->decoder_flags & BUF_FLAG_SPECIAL) && (buf->decoder_info[1] == BUF_SPECIAL_PALETTE)) { - palette = (palette_entry_t *)buf->decoder_info[3]; + palette = (palette_entry_t *)buf->decoder_info_ptr[2]; for (i = 0; i < buf->decoder_info[2]; i++) { this->yuv_palette[i * 4 + 0] = COMPUTE_Y(palette[i].r, palette[i].g, palette[i].b); @@ -900,6 +900,6 @@ static decoder_info_t dec_info_video = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_DECODER, 13, "qtrle", XINE_VERSION_CODE, &dec_info_video, init_plugin }, + { PLUGIN_VIDEO_DECODER, 14, "qtrle", XINE_VERSION_CODE, &dec_info_video, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libxinevdec/qtrpza.c b/src/libxinevdec/qtrpza.c index 87f1171bc..ce508a6d2 100644 --- a/src/libxinevdec/qtrpza.c +++ b/src/libxinevdec/qtrpza.c @@ -21,7 +21,7 @@ * For more information about the RPZA format, visit: * http://www.pcisys.net/~melanson/codecs/ * - * $Id: qtrpza.c,v 1.12 2002/12/21 03:08:34 tmmm Exp $ + * $Id: qtrpza.c,v 1.13 2002/12/21 12:56:49 miguelfreitas Exp $ */ #include <stdio.h> @@ -455,6 +455,6 @@ static decoder_info_t video_decoder_info = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_DECODER, 13, "rpza", XINE_VERSION_CODE, &video_decoder_info, &init_plugin }, + { PLUGIN_VIDEO_DECODER, 14, "rpza", XINE_VERSION_CODE, &video_decoder_info, &init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libxinevdec/qtsmc.c b/src/libxinevdec/qtsmc.c index ce068e069..47f6c1c91 100644 --- a/src/libxinevdec/qtsmc.c +++ b/src/libxinevdec/qtsmc.c @@ -23,7 +23,7 @@ * For more information on the SMC format, visit: * http://www.pcisys.net/~melanson/codecs/ * - * $Id: qtsmc.c,v 1.12 2002/12/21 03:08:34 tmmm Exp $ + * $Id: qtsmc.c,v 1.13 2002/12/21 12:56:49 miguelfreitas Exp $ */ #include <stdio.h> @@ -517,7 +517,7 @@ static void qtsmc_decode_data (video_decoder_t *this_gen, if ((buf->decoder_flags & BUF_FLAG_SPECIAL) && (buf->decoder_info[1] == BUF_SPECIAL_PALETTE)) { - palette = (palette_entry_t *)buf->decoder_info[3]; + palette = (palette_entry_t *)buf->decoder_info_ptr[2]; for (i = 0; i < buf->decoder_info[2]; i++) { this->yuv_palette[i * 4 + 0] = COMPUTE_Y(palette[i].r, palette[i].g, palette[i].b); @@ -687,7 +687,7 @@ static decoder_info_t video_decoder_info = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_DECODER, 13, "smc", XINE_VERSION_CODE, &video_decoder_info, &init_plugin }, + { PLUGIN_VIDEO_DECODER, 14, "smc", XINE_VERSION_CODE, &video_decoder_info, &init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libxinevdec/rgb.c b/src/libxinevdec/rgb.c index 9045fc9cc..4dbc09546 100644 --- a/src/libxinevdec/rgb.c +++ b/src/libxinevdec/rgb.c @@ -21,7 +21,7 @@ * Actually, this decoder just converts a raw RGB image to a YUY2 map * suitable for display under xine. * - * $Id: rgb.c,v 1.16 2002/12/21 03:08:34 tmmm Exp $ + * $Id: rgb.c,v 1.17 2002/12/21 12:56:49 miguelfreitas Exp $ */ #include <stdio.h> @@ -87,7 +87,7 @@ static void rgb_decode_data (video_decoder_t *this_gen, if ((buf->decoder_flags & BUF_FLAG_SPECIAL) && (buf->decoder_info[1] == BUF_SPECIAL_PALETTE)) { - palette = (palette_entry_t *)buf->decoder_info[3]; + palette = (palette_entry_t *)buf->decoder_info_ptr[2]; for (i = 0; i < buf->decoder_info[2]; i++) { this->yuv_palette[i * 4 + 0] = COMPUTE_Y(palette[i].r, palette[i].g, palette[i].b); @@ -312,6 +312,6 @@ static decoder_info_t dec_info_video = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_DECODER, 13, "rgb", XINE_VERSION_CODE, &dec_info_video, init_plugin }, + { PLUGIN_VIDEO_DECODER, 14, "rgb", XINE_VERSION_CODE, &dec_info_video, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libxinevdec/roqvideo.c b/src/libxinevdec/roqvideo.c index 1285b46c0..ae58c4df1 100644 --- a/src/libxinevdec/roqvideo.c +++ b/src/libxinevdec/roqvideo.c @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: roqvideo.c,v 1.16 2002/12/06 01:44:06 miguelfreitas Exp $ + * $Id: roqvideo.c,v 1.17 2002/12/21 12:56:49 miguelfreitas Exp $ */ /* And this is the header that came with the RoQ video decoder: */ @@ -570,6 +570,6 @@ static decoder_info_t dec_info_video = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_DECODER, 13, "roq", XINE_VERSION_CODE, &dec_info_video, init_plugin }, + { PLUGIN_VIDEO_DECODER, 14, "roq", XINE_VERSION_CODE, &dec_info_video, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libxinevdec/svq1.c b/src/libxinevdec/svq1.c index 0b5ce9135..c6eddab67 100644 --- a/src/libxinevdec/svq1.c +++ b/src/libxinevdec/svq1.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: svq1.c,v 1.18 2002/12/21 03:08:34 tmmm Exp $ + * $Id: svq1.c,v 1.19 2002/12/21 12:56:49 miguelfreitas Exp $ */ #include <stdio.h> @@ -1445,6 +1445,6 @@ static decoder_info_t dec_info_video = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_DECODER, 13, "svq1", XINE_VERSION_CODE, &dec_info_video, init_plugin }, + { PLUGIN_VIDEO_DECODER, 14, "svq1", XINE_VERSION_CODE, &dec_info_video, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libxinevdec/wc3video.c b/src/libxinevdec/wc3video.c index 4de621f25..47860f229 100644 --- a/src/libxinevdec/wc3video.c +++ b/src/libxinevdec/wc3video.c @@ -22,7 +22,7 @@ * For more information on the WC3 Movie format, visit: * http://www.pcisys.net/~melanson/codecs/ * - * $Id: wc3video.c,v 1.11 2002/12/06 01:44:06 miguelfreitas Exp $ + * $Id: wc3video.c,v 1.12 2002/12/21 12:56:49 miguelfreitas Exp $ */ #include <stdio.h> @@ -353,7 +353,7 @@ static void wc3video_decode_data (video_decoder_t *this_gen, /* convert the RGB palette to a YUV palette */ if ((buf->decoder_flags & BUF_FLAG_SPECIAL) && (buf->decoder_info[1] == BUF_SPECIAL_PALETTE)) { - palette = (palette_entry_t *)buf->decoder_info[3]; + palette = (palette_entry_t *)buf->decoder_info_ptr[2]; for (i = 0; i < buf->decoder_info[2]; i++) { this->yuv_palette[i * 4 + 0] = COMPUTE_Y(palette[i].r, palette[i].g, palette[i].b); @@ -531,6 +531,6 @@ static decoder_info_t video_decoder_info = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_DECODER, 13, "wc3video", XINE_VERSION_CODE, &video_decoder_info, &init_plugin }, + { PLUGIN_VIDEO_DECODER, 14, "wc3video", XINE_VERSION_CODE, &video_decoder_info, &init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/libxinevdec/yuv.c b/src/libxinevdec/yuv.c index 0eb95327d..46a3d3add 100644 --- a/src/libxinevdec/yuv.c +++ b/src/libxinevdec/yuv.c @@ -21,7 +21,7 @@ * Actually, this decoder just reorganizes chunks of raw YUV data in such * a way that xine can display them. * - * $Id: yuv.c,v 1.16 2002/12/18 21:35:42 esnel Exp $ + * $Id: yuv.c,v 1.17 2002/12/21 12:56:49 miguelfreitas Exp $ */ #include <stdio.h> @@ -313,6 +313,6 @@ static decoder_info_t dec_info_video = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_DECODER, 13, "yuv", XINE_VERSION_CODE, &dec_info_video, init_plugin }, + { PLUGIN_VIDEO_DECODER, 14, "yuv", XINE_VERSION_CODE, &dec_info_video, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/video_out/video_out_aa.c b/src/video_out/video_out_aa.c index 7a4bda874..17cb93280 100644 --- a/src/video_out/video_out_aa.c +++ b/src/video_out/video_out_aa.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out_aa.c,v 1.32 2002/12/06 01:33:00 miguelfreitas Exp $ + * $Id: video_out_aa.c,v 1.33 2002/12/21 12:56:49 miguelfreitas Exp $ * * video_out_aa.c, ascii-art output plugin for xine * @@ -328,6 +328,6 @@ static vo_info_t vo_info_aa = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_OUT, 13, "aa", XINE_VERSION_CODE, &vo_info_aa, init_class }, + { PLUGIN_VIDEO_OUT, 14, "aa", XINE_VERSION_CODE, &vo_info_aa, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/video_out/video_out_fb.c b/src/video_out/video_out_fb.c index 0d16ccb37..d654da14c 100644 --- a/src/video_out/video_out_fb.c +++ b/src/video_out/video_out_fb.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out_fb.c,v 1.20 2002/12/08 23:35:46 miguelfreitas Exp $ + * $Id: video_out_fb.c,v 1.21 2002/12/21 12:56:49 miguelfreitas Exp $ * * video_out_fb.c, frame buffer xine driver by Miguel Freitas * @@ -802,7 +802,7 @@ static vo_info_t vo_info_fb = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_OUT, 13, "fb", XINE_VERSION_CODE, &vo_info_fb, fb_init_class }, + { PLUGIN_VIDEO_OUT, 14, "fb", XINE_VERSION_CODE, &vo_info_fb, fb_init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/video_out/video_out_none.c b/src/video_out/video_out_none.c index 716ccd50c..0fa02837f 100644 --- a/src/video_out/video_out_none.c +++ b/src/video_out/video_out_none.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out_none.c,v 1.5 2002/12/06 01:33:01 miguelfreitas Exp $ + * $Id: video_out_none.c,v 1.6 2002/12/21 12:56:49 miguelfreitas Exp $ * * Was originally part of toxine frontend. */ @@ -297,6 +297,6 @@ static vo_info_t vo_info_none = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_OUT, 13, "none", XINE_VERSION_CODE, &vo_info_none, init_class }, + { PLUGIN_VIDEO_OUT, 14, "none", XINE_VERSION_CODE, &vo_info_none, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/video_out/video_out_opengl.c b/src/video_out/video_out_opengl.c index 1d4cdc34e..7004871f2 100644 --- a/src/video_out/video_out_opengl.c +++ b/src/video_out/video_out_opengl.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out_opengl.c,v 1.21 2002/12/06 01:33:01 miguelfreitas Exp $ + * $Id: video_out_opengl.c,v 1.22 2002/12/21 12:56:49 miguelfreitas Exp $ * * video_out_glut.c, glut based OpenGL rendering interface for xine * Matthias Hopf <mat@mshopf.de> @@ -995,7 +995,7 @@ static vo_info_t vo_info_opengl = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_OUT, 13, "opengl", XINE_VERSION_CODE, + { PLUGIN_VIDEO_OUT, 14, "opengl", XINE_VERSION_CODE, &vo_info_opengl, opengl_init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/video_out/video_out_pgx64.c b/src/video_out/video_out_pgx64.c index ef753e174..9dc0e754b 100644 --- a/src/video_out/video_out_pgx64.c +++ b/src/video_out/video_out_pgx64.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out_pgx64.c,v 1.21 2002/12/20 17:41:18 komadori Exp $ + * $Id: video_out_pgx64.c,v 1.22 2002/12/21 12:56:49 miguelfreitas Exp $ * * video_out_pgx64.c, Sun PGX64/PGX24 output plugin for xine * @@ -881,8 +881,8 @@ static pgx64_driver_class_t* pgx64fb_init_class(xine_t *xine, void *visual_gen) plugin_info_t xine_plugin_info[] = { #ifdef HAVE_X11 - {PLUGIN_VIDEO_OUT, 13, "pgx64", XINE_VERSION_CODE, &vo_info_pgx64, (void*)pgx64_init_class}, + {PLUGIN_VIDEO_OUT, 14, "pgx64", XINE_VERSION_CODE, &vo_info_pgx64, (void*)pgx64_init_class}, #endif - {PLUGIN_VIDEO_OUT, 13, "pgx64fb", XINE_VERSION_CODE, &vo_info_pgx64fb, (void*)pgx64fb_init_class}, + {PLUGIN_VIDEO_OUT, 14, "pgx64fb", XINE_VERSION_CODE, &vo_info_pgx64fb, (void*)pgx64fb_init_class}, {PLUGIN_NONE, 0, "", 0, NULL, NULL} }; diff --git a/src/video_out/video_out_sdl.c b/src/video_out/video_out_sdl.c index 39afe4968..17e4ba49b 100644 --- a/src/video_out/video_out_sdl.c +++ b/src/video_out/video_out_sdl.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out_sdl.c,v 1.19 2002/12/13 01:03:56 miguelfreitas Exp $ + * $Id: video_out_sdl.c,v 1.20 2002/12/21 12:56:51 miguelfreitas Exp $ * * video_out_sdl.c, Simple DirectMedia Layer * @@ -582,7 +582,7 @@ static vo_info_t vo_info_sdl = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_OUT, 13, "sdl", XINE_VERSION_CODE, &vo_info_sdl, init_class }, + { PLUGIN_VIDEO_OUT, 14, "sdl", XINE_VERSION_CODE, &vo_info_sdl, init_class }, { PLUGIN_NONE, 0, "" , 0 , NULL, NULL} }; diff --git a/src/video_out/video_out_syncfb.c b/src/video_out/video_out_syncfb.c index f83aa030d..20d58a474 100644 --- a/src/video_out/video_out_syncfb.c +++ b/src/video_out/video_out_syncfb.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out_syncfb.c,v 1.82 2002/12/13 01:03:56 miguelfreitas Exp $ + * $Id: video_out_syncfb.c,v 1.83 2002/12/21 12:56:51 miguelfreitas Exp $ * * video_out_syncfb.c, SyncFB (for Matrox G200/G400 cards) interface for xine * @@ -1057,7 +1057,7 @@ static vo_info_t vo_info_syncfb = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_OUT, 13, "SyncFB", XINE_VERSION_CODE, &vo_info_syncfb, init_class }, + { PLUGIN_VIDEO_OUT, 14, "SyncFB", XINE_VERSION_CODE, &vo_info_syncfb, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/video_out/video_out_vidix.c b/src/video_out/video_out_vidix.c index eae92684b..56ff2f787 100644 --- a/src/video_out/video_out_vidix.c +++ b/src/video_out/video_out_vidix.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out_vidix.c,v 1.16 2002/12/06 01:33:01 miguelfreitas Exp $ + * $Id: video_out_vidix.c,v 1.17 2002/12/21 12:56:51 miguelfreitas Exp $ * * video_out_vidix.c * @@ -796,6 +796,6 @@ static vo_info_t vo_info_vidix = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_OUT, 13, "vidix", XINE_VERSION_CODE, &vo_info_vidix, init_class }, + { PLUGIN_VIDEO_OUT, 14, "vidix", XINE_VERSION_CODE, &vo_info_vidix, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/video_out/video_out_xshm.c b/src/video_out/video_out_xshm.c index 635a58f88..857c3a2d8 100644 --- a/src/video_out/video_out_xshm.c +++ b/src/video_out/video_out_xshm.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out_xshm.c,v 1.99 2002/12/20 14:25:13 jkeil Exp $ + * $Id: video_out_xshm.c,v 1.100 2002/12/21 12:56:51 miguelfreitas Exp $ * * video_out_xshm.c, X11 shared memory extension interface for xine * @@ -1271,6 +1271,6 @@ static vo_info_t vo_info_xshm = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_OUT, 13, "xshm", XINE_VERSION_CODE, &vo_info_xshm, xshm_init_class }, + { PLUGIN_VIDEO_OUT, 14, "xshm", XINE_VERSION_CODE, &vo_info_xshm, xshm_init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/video_out/video_out_xv.c b/src/video_out/video_out_xv.c index 44862a692..c61ad37f9 100644 --- a/src/video_out/video_out_xv.c +++ b/src/video_out/video_out_xv.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out_xv.c,v 1.154 2002/12/07 23:00:09 f1rmb Exp $ + * $Id: video_out_xv.c,v 1.155 2002/12/21 12:56:51 miguelfreitas Exp $ * * video_out_xv.c, X11 video extension interface for xine * @@ -1398,7 +1398,7 @@ static vo_info_t vo_info_xv = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_OUT, 13, "xv", XINE_VERSION_CODE, &vo_info_xv, init_class }, + { PLUGIN_VIDEO_OUT, 14, "xv", XINE_VERSION_CODE, &vo_info_xv, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/xine-engine/audio_decoder.c b/src/xine-engine/audio_decoder.c index 4b3cbb848..50d1e47a9 100644 --- a/src/xine-engine/audio_decoder.c +++ b/src/xine-engine/audio_decoder.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: audio_decoder.c,v 1.92 2002/12/18 03:59:10 guenter Exp $ + * $Id: audio_decoder.c,v 1.93 2002/12/21 12:56:51 miguelfreitas Exp $ * * * functions that implement audio decoding @@ -65,13 +65,7 @@ void *audio_decoder_loop (void *stream_gen) { buf->pts, buf->type); #endif - if (buf->input_pos) - stream->input_pos = buf->input_pos; - if (buf->input_length) - stream->input_length = buf->input_length; - if (buf->input_time) { - stream->input_time = buf->input_time; - } + extra_info_merge( stream->audio_decoder_extra_info, buf->extra_info ); switch (buf->type) { @@ -155,6 +149,7 @@ void *audio_decoder_loop (void *stream_gen) { #ifdef LOG printf ("audio_decoder: reset\n"); #endif + extra_info_reset( stream->audio_decoder_extra_info ); if (stream->audio_decoder_plugin) stream->audio_decoder_plugin->reset (stream->audio_decoder_plugin); break; diff --git a/src/xine-engine/audio_decoder.h b/src/xine-engine/audio_decoder.h index fec946f5a..a194694f1 100644 --- a/src/xine-engine/audio_decoder.h +++ b/src/xine-engine/audio_decoder.h @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: audio_decoder.h,v 1.7 2002/11/20 11:57:49 mroi Exp $ + * $Id: audio_decoder.h,v 1.8 2002/12/21 12:56:51 miguelfreitas Exp $ * * xine audio decoder plugin interface * @@ -29,7 +29,7 @@ #include <inttypes.h> #include "buffer.h" -#define AUDIO_DECODER_IFACE_VERSION 12 +#define AUDIO_DECODER_IFACE_VERSION 13 /* * generic xine audio decoder plugin interface diff --git a/src/xine-engine/audio_out.c b/src/xine-engine/audio_out.c index 8693a9678..b057cf1dc 100644 --- a/src/xine-engine/audio_out.c +++ b/src/xine-engine/audio_out.c @@ -17,7 +17,7 @@ * along with self program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: audio_out.c,v 1.89 2002/12/14 16:33:59 jkeil Exp $ + * $Id: audio_out.c,v 1.90 2002/12/21 12:56:51 miguelfreitas Exp $ * * 22-8-2001 James imported some useful AC3 sections from the previous alsa driver. * (c) 2001 Andy Lo A Foe <andy@alsaplayer.org> @@ -573,6 +573,11 @@ static void *ao_loop (void *this_gen) { } pthread_mutex_unlock( &this->driver_lock ); + + if( in_buf && in_buf->stream && !in_buf->stream->video_decoder_plugin ) { + extra_info_merge( in_buf->stream->current_extra_info, in_buf->extra_info ); + } + /* * where, in the timeline is the "end" of the * hardware audio buffer at the moment? @@ -827,7 +832,12 @@ static int ao_open(xine_audio_port_t *this, xine_stream_t *stream, } static audio_buffer_t *ao_get_buffer (xine_audio_port_t *this) { - return fifo_remove (this->free_fifo); + audio_buffer_t *buf; + + buf = fifo_remove (this->free_fifo); + extra_info_reset( buf->extra_info ); + + return buf; } static void ao_put_buffer (xine_audio_port_t *this, audio_buffer_t *buf, xine_stream_t *stream) { @@ -839,6 +849,9 @@ static void ao_put_buffer (xine_audio_port_t *this, audio_buffer_t *buf, xine_st return; } + buf->stream = stream; + extra_info_merge( buf->extra_info, stream->audio_decoder_extra_info ); + pts = buf->vpts; buf->vpts = stream->metronom->got_audio_samples (stream->metronom, pts, @@ -926,8 +939,10 @@ static void ao_exit(xine_audio_port_t *this) { xine_list_free(this->streams); free (this->frame_buf[0]->mem); + free (this->frame_buf[0]->extra_info); free (this->frame_buf[0]); free (this->frame_buf[1]->mem); + free (this->frame_buf[1]->extra_info); free (this->frame_buf[1]); free (this->zero_space); @@ -938,6 +953,7 @@ static void ao_exit(xine_audio_port_t *this) { next = buf->next; free (buf->mem); + free (buf->extra_info); free (buf); buf = next; @@ -950,6 +966,7 @@ static void ao_exit(xine_audio_port_t *this) { next = buf->next; free (buf->mem); + free (buf->extra_info); free (buf); buf = next; @@ -1117,7 +1134,8 @@ xine_audio_port_t *ao_new_port (xine_t *xine, ao_driver_t *driver) { buf = (audio_buffer_t *) xine_xmalloc (sizeof (audio_buffer_t)); buf->mem = xine_xmalloc (AUDIO_BUF_SIZE); buf->mem_size = AUDIO_BUF_SIZE; - + buf->extra_info = malloc(sizeof(extra_info_t)); + fifo_append (this->free_fifo, buf); } @@ -1129,6 +1147,7 @@ xine_audio_port_t *ao_new_port (xine_t *xine, ao_driver_t *driver) { buf = (audio_buffer_t *) xine_xmalloc (sizeof (audio_buffer_t)); buf->mem = xine_xmalloc (4*AUDIO_BUF_SIZE); buf->mem_size = 4*AUDIO_BUF_SIZE; + buf->extra_info = malloc(sizeof(extra_info_t)); this->frame_buf[i] = buf; } diff --git a/src/xine-engine/audio_out.h b/src/xine-engine/audio_out.h index c68fc9d94..99fb40496 100644 --- a/src/xine-engine/audio_out.h +++ b/src/xine-engine/audio_out.h @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: audio_out.h,v 1.43 2002/11/30 22:09:42 miguelfreitas Exp $ + * $Id: audio_out.h,v 1.44 2002/12/21 12:56:52 miguelfreitas Exp $ */ #ifndef HAVE_AUDIO_OUT_H #define HAVE_AUDIO_OUT_H @@ -39,7 +39,7 @@ extern "C" { #endif -#define AUDIO_OUT_IFACE_VERSION 6 +#define AUDIO_OUT_IFACE_VERSION 7 /* * ao_driver_s contains the driver every audio output @@ -132,9 +132,11 @@ struct ao_driver_s { void *node; }; -/* - * ao_port_s contains the port every audio decoder talks to - */ +/* to access extra_info_t contents one have to include xine_internal.h */ +#ifndef extra_info_t +#define extra_info_t void +#endif + typedef struct audio_fifo_s audio_fifo_t; typedef struct audio_buffer_s audio_buffer_t; @@ -150,6 +152,12 @@ struct audio_buffer_s { int64_t vpts; uint32_t frame_header_count; uint32_t first_access_unit; + + /* extra info coming from input or demuxers */ + extra_info_t *extra_info; + + xine_stream_t *stream; /* stream that send that buffer */ + }; typedef struct ao_format_s ao_format_t; @@ -160,6 +168,10 @@ struct ao_format_s { int mode; }; +/* + * xine_audio_port_s contains the port every audio decoder talks to + */ + struct xine_audio_port_s { uint32_t (*get_capabilities) (xine_audio_port_t *this); /* for constants see below */ diff --git a/src/xine-engine/buffer.c b/src/xine-engine/buffer.c index 4d1c50805..e4d1c7724 100644 --- a/src/xine-engine/buffer.c +++ b/src/xine-engine/buffer.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: buffer.c,v 1.18 2002/07/17 18:36:44 miguelfreitas Exp $ + * $Id: buffer.c,v 1.19 2002/12/21 12:56:52 miguelfreitas Exp $ * * * contents: @@ -39,6 +39,7 @@ #include <stdlib.h> #include "buffer.h" #include "xineutils.h" +#include "xine_internal.h" /* * put a previously allocated buffer element back into the buffer pool @@ -108,8 +109,8 @@ static buf_element_t *buffer_pool_alloc (fifo_buffer_t *this) { buf->content = buf->mem; /* 99% of demuxers will want this */ buf->pts = 0; buf->size = 0; - buf->input_pos = buf->input_length = buf->input_time = 0; buf->decoder_flags = 0; + extra_info_reset( buf->extra_info ); return buf; } @@ -196,18 +197,6 @@ static void fifo_buffer_clear (fifo_buffer_t *fifo) { buf = next; } - /* - while (fifo->first != NULL) { - - buf = fifo->first; - - fifo->first = fifo->first->next; - if (fifo->first==NULL) - fifo->last = NULL; - - buf->free_buffer(buf); - } - */ /*printf("Free buffers after clear: %d\n", fifo->buffer_pool_num_free);*/ pthread_mutex_unlock (&fifo->mutex); @@ -241,6 +230,7 @@ static void fifo_buffer_dispose (fifo_buffer_t *this) { next = buf->next; + free (buf->extra_info); free (buf); received++; @@ -251,6 +241,7 @@ static void fifo_buffer_dispose (fifo_buffer_t *this) { buf = this->get(this); + free(buf->extra_info); free(buf); received++; } @@ -311,13 +302,14 @@ fifo_buffer_t *fifo_buffer_new (int num_buffers, uint32_t buf_size) { buf_element_t *buf; buf = xine_xmalloc (sizeof (buf_element_t)); - + buf->mem = multi_buffer; multi_buffer += buf_size; buf->max_size = buf_size; buf->free_buffer = buffer_pool_free; buf->source = this; + buf->extra_info = malloc(sizeof(extra_info_t)); buffer_pool_free (buf); } diff --git a/src/xine-engine/buffer.h b/src/xine-engine/buffer.h index f04ce9f7c..3fb3bd397 100644 --- a/src/xine-engine/buffer.h +++ b/src/xine-engine/buffer.h @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: buffer.h,v 1.85 2002/12/21 03:03:15 tmmm Exp $ + * $Id: buffer.h,v 1.86 2002/12/21 12:56:52 miguelfreitas Exp $ * * * contents: @@ -135,6 +135,8 @@ extern "C" { #define BUF_VIDEO_RV30 0x02340000 #define BUF_VIDEO_MVI2 0x02350000 #define BUF_VIDEO_UCOD 0x02360000 +#define BUF_VIDEO_WMV9 0x02370000 + /* audio buffer types: (please keep in sync with buffer_types.c) */ @@ -177,6 +179,7 @@ extern "C" { #define BUF_AUDIO_14_4 0x03230000 #define BUF_AUDIO_28_8 0x03240000 #define BUF_AUDIO_SIPRO 0x03250000 +#define BUF_AUDIO_WMAV3 0x03260000 /* spu buffer types: */ @@ -190,6 +193,11 @@ extern "C" { #define BUF_DEMUX_BLOCK 0x05000000 +/* to access extra_info_t contents one have to include xine_internal.h */ +#ifndef extra_info_t +#define extra_info_t void +#endif + typedef struct buf_element_s buf_element_t; struct buf_element_s { buf_element_t *next; @@ -202,13 +210,13 @@ struct buf_element_s { uint32_t type; int64_t pts; /* presentation time stamp, used for a/v sync */ int64_t disc_off; /* discontinuity offset */ - off_t input_pos; /* remember where this buf came from in the input source */ - off_t input_length; /* remember the length of the input source */ - int input_time;/* time offset in seconds from beginning of stream */ + extra_info_t *extra_info; /* extra info will be passed to frames */ + uint32_t decoder_flags; /* stuff like keyframe, is_header ... see below */ uint32_t decoder_info[4]; /* additional decoder flags and other dec-spec. stuff */ + void *decoder_info_ptr[4]; /* pointers to dec-spec. stuff */ void (*free_buffer) (buf_element_t *buf); @@ -257,7 +265,7 @@ struct buf_element_s { * In a BUF_SPECIAL_PALETTE buffer: * decoder_info[1] = BUF_SPECIAL_PALETTE * decoder_info[2] = number of entries in palette table - * decoder_info[3] = pointer to palette table + * decoder_info_ptr[2] = pointer to palette table * This buffer type is used to provide a file- and decoder-independent * facility to transport RGB color palettes from demuxers to decoders. * A palette table is an array of palette_entry_t structures. A decoder @@ -270,7 +278,8 @@ struct buf_element_s { /* * In a BUF_SPECIAL_IDCIN_HUFFMAN_TABLE buffer: * decoder_info[1] = BUF_SPECIAL_IDCIN_HUFFMAN_TABLE - * decoder_info[2] = pointer to a 65536-element byte array containing the + * decoder_info[2] = 65536 (size of data) + * decoder_info_ptr[2] = pointer to a 65536-element byte array containing the * Huffman tables from an Id CIN file * This buffer is used to transport the Huffman tables from an Id CIN * file to the Id CIN decoder. A decoder should not count on the byte array @@ -296,7 +305,7 @@ struct buf_element_s { * In a BUF_SPECIAL_DECODER_CONFIG buffer: * decoder_info[1] = BUF_SPECIAL_DECODER_CONFIG * decoder_info[2] = data size - * decoder_info[3] = pointer to data + * decoder_info_ptr[2] = pointer to data * This buffer is used to pass config information from .mp4 files * (atom esds) to decoders. both mpeg4 and aac streams use that. */ @@ -306,7 +315,7 @@ struct buf_element_s { * In a BUF_SPECIAL_STSD_ATOM buffer: * decoder_info[1] = BUF_SPECIAL_STSD_ATOM * decoder_info[2] = size of the stsd atom - * decoder_info[3] = pointer to stsd atom + * decoder_info_ptr[2] = pointer to stsd atom * binary-only quicktime decoders need this, sent by qt demuxer */ #define BUF_SPECIAL_STSD_ATOM 5 @@ -341,7 +350,8 @@ struct buf_element_s { /* In a BUF_SPECIAL_SPU_DVB_DESCRIPTOR * decoder_info[1] = BUF_SPECIAL_SPU_DVB_DESCRIPTOR - * decoder_info[2] = pointer to spu_dvb_descriptor_t, or NULL + * decoder_info[2] = size of spu_dvb_descriptor_t + * decoder_info_ptr[2] = pointer to spu_dvb_descriptor_t, or NULL * decoder_info[3] = * * This buffer is used to tell a DVBSUB decoder when the stream diff --git a/src/xine-engine/buffer_types.c b/src/xine-engine/buffer_types.c index ee5f0132b..08a9ebf4a 100644 --- a/src/xine-engine/buffer_types.c +++ b/src/xine-engine/buffer_types.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: buffer_types.c,v 1.48 2002/12/01 17:04:30 tmmm Exp $ + * $Id: buffer_types.c,v 1.49 2002/12/21 12:56:52 miguelfreitas Exp $ * * * contents: @@ -317,6 +317,14 @@ static video_db_t video_db[] = { }, { { + meFOURCC('W','M','V','3'), + 0 + }, + BUF_VIDEO_WMV9, + "Windows Media Video 9" +}, +{ + { meFOURCC('c','r','a','m'), meFOURCC('C','R','A','M'), meFOURCC('M','S','V','C'), @@ -549,6 +557,13 @@ static audio_db_t audio_db[] = { }, { { + 0x162, 0 + }, + BUF_AUDIO_WMAV3, + "Windows Media Audio v3" +}, +{ + { 0 }, BUF_AUDIO_DTS, diff --git a/src/xine-engine/video_decoder.c b/src/xine-engine/video_decoder.c index 21e51e4ca..809f1c048 100644 --- a/src/xine-engine/video_decoder.c +++ b/src/xine-engine/video_decoder.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_decoder.c,v 1.113 2002/12/12 22:54:57 guenter Exp $ + * $Id: video_decoder.c,v 1.114 2002/12/21 12:56:52 miguelfreitas Exp $ * */ @@ -76,16 +76,7 @@ void *video_decoder_loop (void *stream_gen) { #endif buf = stream->video_fifo->get (stream->video_fifo); - - if (buf->input_length) - stream->input_length = buf->input_length; - - if (!stream->stream_info[XINE_STREAM_INFO_HAS_AUDIO]) { - if (buf->input_pos) - stream->input_pos = buf->input_pos; - if (buf->input_time) - stream->input_time = buf->input_time; - } + extra_info_merge( stream->video_decoder_extra_info, buf->extra_info ); #ifdef LOG printf ("video_decoder: got buffer 0x%08x\n", buf->type); @@ -191,6 +182,7 @@ void *video_decoder_loop (void *stream_gen) { break; case BUF_CONTROL_RESET_DECODER: + extra_info_reset( stream->video_decoder_extra_info ); if (stream->video_decoder_plugin) { stream->video_decoder_plugin->reset (stream->video_decoder_plugin); } diff --git a/src/xine-engine/video_decoder.h b/src/xine-engine/video_decoder.h index b58f0008b..e4b891e6b 100644 --- a/src/xine-engine/video_decoder.h +++ b/src/xine-engine/video_decoder.h @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_decoder.h,v 1.7 2002/11/20 11:57:49 mroi Exp $ + * $Id: video_decoder.h,v 1.8 2002/12/21 12:56:52 miguelfreitas Exp $ * * xine video decoder plugin interface * @@ -29,7 +29,7 @@ #include <inttypes.h> #include "buffer.h" -#define VIDEO_DECODER_IFACE_VERSION 13 +#define VIDEO_DECODER_IFACE_VERSION 14 /* * generic xine video decoder plugin interface diff --git a/src/xine-engine/video_out.c b/src/xine-engine/video_out.c index 3bffbee41..b5c50bcd1 100644 --- a/src/xine-engine/video_out.c +++ b/src/xine-engine/video_out.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out.c,v 1.119 2002/12/20 18:14:34 jkeil Exp $ + * $Id: video_out.c,v 1.120 2002/12/21 12:56:52 miguelfreitas Exp $ * * frame allocation / queuing / scheduling / output functions */ @@ -269,6 +269,7 @@ static vo_frame_t *vo_get_frame (xine_video_port_t *this_gen, img->ratio = ratio; img->format = format; img->copy_called = 0; + extra_info_reset ( img->extra_info ); /* let driver ensure this image has the right format */ @@ -292,6 +293,9 @@ static int vo_frame_draw (vo_frame_t *img, xine_stream_t *stream) { int64_t pic_vpts ; int frames_to_skip; + img->stream = stream; + extra_info_merge( img->extra_info, stream->video_decoder_extra_info ); + stream->metronom->got_video_frame (stream->metronom, img); pic_vpts = img->vpts; @@ -365,7 +369,7 @@ static int vo_frame_draw (vo_frame_t *img, xine_stream_t *stream) { */ if ((this->num_frames_delivered % 200) == 0 - && (this->num_frames_skipped || this->num_frames_discarded)) { + && (this->num_frames_skipped || this->num_frames_discarded)) { xine_log(this->xine, XINE_LOG_MSG, _("%d frames delivered, %d frames skipped, %d frames discarded\n"), this->num_frames_delivered, @@ -445,6 +449,9 @@ static vo_frame_t * duplicate_frame( vos_t *this, vo_frame_t *img ) { dupl->vpts = 0; dupl->duration = img->duration; + dupl->stream = img->stream; + memcpy( dupl->extra_info, img->extra_info, sizeof(extra_info_t) ); + /* delay frame copying for now, we might not even need it (eg. frame will be discarded) */ /* vo_frame_driver_copy(dupl); */ @@ -473,7 +480,7 @@ static void expire_frames (vos_t *this, int64_t cur_vpts) { diff = cur_vpts - pts; if (diff > img->duration) { - + /* do not print this message in stop/exit (scr is adjusted to force * discarding audio and video frames) */ @@ -485,6 +492,8 @@ static void expire_frames (vos_t *this, int64_t cur_vpts) { this->num_frames_discarded++; img = vo_remove_from_img_buf_queue_int (this->display_img_buf_queue); + + extra_info_merge( img->stream->current_extra_info, img->extra_info ); /* * last frame? back it up for @@ -598,19 +607,10 @@ static vo_frame_t *get_next_frame (vos_t *this, int64_t cur_vpts) { */ pthread_mutex_lock( &this->free_img_buf_queue->mutex ); if (img && !img->next) { - xine_stream_t *stream; - int backup_needed = 0; - pthread_mutex_lock(&this->streams_lock); - for (stream = xine_list_first_content(this->streams); stream; - stream = xine_list_next_content(this->streams)) { - if (stream->stream_info[XINE_STREAM_INFO_VIDEO_HAS_STILL] || - stream->video_fifo->size(stream->video_fifo) < 10) - backup_needed = 1; - } - pthread_mutex_unlock(&this->streams_lock); + if (img->stream->stream_info[XINE_STREAM_INFO_VIDEO_HAS_STILL] || + img->stream->video_fifo->size(img->stream->video_fifo) < 10) { - if( backup_needed ) { /*#ifdef LOG*/ printf ("video_out: possible still frame\n"); /*#endif*/ @@ -643,6 +643,8 @@ static void overlay_and_display_frame (vos_t *this, */ if( img->copy && !img->copy_called ) vo_frame_driver_copy(img); + + extra_info_merge( img->stream->current_extra_info, img->extra_info ); if (this->overlay_source) { this->overlay_source->multiple_overlay_blend (this->overlay_source, @@ -733,7 +735,7 @@ static void *video_out_loop (void *this_gen) { vos_t *this = (vos_t *) this_gen; int64_t frame_duration, next_frame_vpts; int64_t usec_to_sleep; - + /* * here it is - the heart of xine (or rather: one of the hearts * of xine) : the video output loop @@ -961,11 +963,13 @@ static void vo_free_img_buffers (xine_video_port_t *this_gen) { while (this->free_img_buf_queue->first) { img = vo_remove_from_img_buf_queue (this->free_img_buf_queue); + free(img->extra_info); img->dispose (img); } while (this->display_img_buf_queue->first) { img = vo_remove_from_img_buf_queue (this->display_img_buf_queue) ; + free(img->extra_info); img->dispose (img); } } @@ -1135,6 +1139,8 @@ xine_video_port_t *vo_new_port (xine_t *xine, vo_driver_t *driver) { img->displayed = vo_frame_dec_lock; img->draw = vo_frame_draw; + img->extra_info = malloc(sizeof(extra_info_t)); + vo_append_to_img_buf_queue (this->free_img_buf_queue, img); } diff --git a/src/xine-engine/video_out.h b/src/xine-engine/video_out.h index f29d0d6a8..52b2bda4b 100644 --- a/src/xine-engine/video_out.h +++ b/src/xine-engine/video_out.h @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out.h,v 1.73 2002/12/06 01:30:49 miguelfreitas Exp $ + * $Id: video_out.h,v 1.74 2002/12/21 12:56:52 miguelfreitas Exp $ * * * xine version of video_out.h @@ -54,6 +54,10 @@ typedef struct vo_overlay_s vo_overlay_t; typedef struct video_overlay_instance_s video_overlay_instance_t; typedef struct vo_driver_s vo_driver_t; +/* to access extra_info_t contents one have to include xine_internal.h */ +#ifndef extra_info_t +#define extra_info_t void +#endif /* public part, video drivers may add private fields */ struct vo_frame_s { @@ -102,7 +106,10 @@ struct vo_frame_s { /* pan/scan offset */ int pan_scan_x; int pan_scan_y; - + + /* extra info coming from input or demuxers */ + extra_info_t *extra_info; + /* additional information to be able to duplicate frames: */ int width, height; int ratio; /* aspect ratio, codes see below */ @@ -114,7 +121,7 @@ struct vo_frame_s { /* "backward" references to where this frame originates from */ xine_video_port_t *port; vo_driver_t *driver; - + xine_stream_t *stream; /* * that part is used only by video_out.c for frame management @@ -247,7 +254,7 @@ struct xine_video_port_s { * from generic vo functions. */ -#define VIDEO_OUT_DRIVER_IFACE_VERSION 13 +#define VIDEO_OUT_DRIVER_IFACE_VERSION 14 struct vo_driver_s { diff --git a/src/xine-engine/xine.c b/src/xine-engine/xine.c index aa554be30..26cb21c81 100644 --- a/src/xine-engine/xine.c +++ b/src/xine-engine/xine.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine.c,v 1.199 2002/12/08 21:43:52 miguelfreitas Exp $ + * $Id: xine.c,v 1.200 2002/12/21 12:56:52 miguelfreitas Exp $ * * top-level xine functions * @@ -98,6 +98,24 @@ void xine_report_codec (xine_stream_t *stream, int codec_type, } } +void extra_info_reset( extra_info_t *extra_info ) { + memset( extra_info, 0, sizeof(extra_info_t) ); +} + +void extra_info_merge( extra_info_t *dst, extra_info_t *src ) { + + if( src->input_pos ) + dst->input_pos = src->input_pos; + + if( src->input_length ) + dst->input_length = src->input_length; + + if( src->input_time ) + dst->input_time = src->input_time; + + if( src->frame_number ) + dst->frame_number = src->frame_number; +} static void xine_set_speed_internal (xine_stream_t *stream, int speed) { @@ -268,8 +286,11 @@ xine_stream_t *xine_stream_new (xine_t *this, */ pthread_mutex_lock (&this->streams_lock); - + stream = (xine_stream_t *) xine_xmalloc (sizeof (xine_stream_t)) ; + stream->current_extra_info = xine_xmalloc( sizeof( extra_info_t ) ); + stream->audio_decoder_extra_info = xine_xmalloc( sizeof( extra_info_t ) ); + stream->video_decoder_extra_info = xine_xmalloc( sizeof( extra_info_t ) ); stream->xine = this; stream->status = XINE_STATUS_STOP; @@ -277,9 +298,6 @@ xine_stream_t *xine_stream_new (xine_t *this, stream->stream_info[i] = 0; stream->meta_info[i] = NULL; } - stream->input_pos = 0; - stream->input_length = 0; - stream->input_time = 0; stream->spu_out = NULL; stream->spu_decoder_plugin = NULL; stream->spu_decoder_streamtype = -1; @@ -369,7 +387,6 @@ static int xine_open_internal (xine_stream_t *stream, const char *mrl) { */ xine_close_internal (stream); - stream->input_length = 0; #ifdef LOG printf ("xine: engine should be stopped now\n"); @@ -597,6 +614,10 @@ static int xine_open_internal (xine_stream_t *stream, const char *mrl) { = strdup (stream->demux_plugin->demux_class->get_identifier(stream->demux_plugin->demux_class)); } + extra_info_reset( stream->current_extra_info ); + extra_info_reset( stream->video_decoder_extra_info ); + extra_info_reset( stream->audio_decoder_extra_info ); + /* * send and decode headers */ @@ -729,7 +750,7 @@ static int xine_play_internal (xine_stream_t *stream, int start_pos, int start_t xine_demux_start_thread( stream ); stream->status = XINE_STATUS_PLAY; } - + pthread_mutex_lock (&stream->first_frame_lock); stream->first_frame_flag = 1; pthread_mutex_unlock (&stream->first_frame_lock); @@ -800,6 +821,9 @@ void xine_dispose (xine_stream_t *stream) { stream->metronom->exit (stream->metronom); + free (stream->current_extra_info); + free (stream->video_decoder_extra_info); + free (stream->audio_decoder_extra_info); free (stream); } @@ -935,7 +959,7 @@ static int xine_get_current_position (xine_stream_t *stream) { off_t len; double share; - + pthread_mutex_lock (&stream->frontend_lock); if (!stream->input_plugin) { @@ -943,11 +967,18 @@ static int xine_get_current_position (xine_stream_t *stream) { pthread_mutex_unlock (&stream->frontend_lock); return 0; } + + if ( (!stream->video_decoder_plugin && !stream->audio_decoder_plugin) || + !stream->first_frame_flag ) { + if( stream->stream_info[XINE_STREAM_INFO_HAS_VIDEO] ) + extra_info_merge( stream->current_extra_info, stream->video_decoder_extra_info ); + else + extra_info_merge( stream->current_extra_info, stream->audio_decoder_extra_info ); + } - /* pos = stream->mCurInput->seek (0, SEEK_CUR); */ - len = stream->input_length; + len = stream->current_extra_info->input_length; if (len == 0) len = stream->input_plugin->get_length (stream->input_plugin); - share = (double) stream->input_pos / (double) len * 65535; + share = (double) stream->current_extra_info->input_pos / (double) len * 65535; pthread_mutex_unlock (&stream->frontend_lock); @@ -1005,10 +1036,12 @@ static int xine_get_stream_length (xine_stream_t *stream) { int xine_get_pos_length (xine_stream_t *stream, int *pos_stream, int *pos_time, int *length_time) { + xine_get_current_position (stream); /* force updating extra_info */ + if (pos_stream) *pos_stream = xine_get_current_position (stream); if (pos_time) - *pos_time = stream->input_time * 1000; + *pos_time = stream->current_extra_info->input_time * 1000; if (length_time) *length_time = xine_get_stream_length (stream) * 1000; diff --git a/src/xine-engine/xine_internal.h b/src/xine-engine/xine_internal.h index 6d8373bab..67da17d62 100644 --- a/src/xine-engine/xine_internal.h +++ b/src/xine-engine/xine_internal.h @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_internal.h,v 1.114 2002/12/06 18:38:49 miguelfreitas Exp $ + * $Id: xine_internal.h,v 1.115 2002/12/21 12:56:52 miguelfreitas Exp $ * */ @@ -30,6 +30,12 @@ extern "C" { #include <inttypes.h> + +#ifdef extra_info_t +#undef extra_info_t +#endif +#define extra_info_t struct extra_info_s + /* * include public part of xine header */ @@ -113,6 +119,20 @@ struct xine_s { }; /* + * extra_info_t is used to pass information from input or demuxer plugins + * to output frames (past decoder). new data must be added after the existing + * fields for backward compatibility. + */ + +struct extra_info_s { + + off_t input_pos; /* remember where this buf came from in the input source */ + off_t input_length; /* remember the length of the input source */ + int input_time;/* time offset in seconds from beginning of stream */ + uint32_t frame_number; /* number of current frame if known */ +}; + +/* * xine event queue */ @@ -142,9 +162,6 @@ struct xine_stream_s { demux_plugin_t *demux_plugin; metronom_t *metronom; - off_t input_pos; - off_t input_length; - int input_time; xine_video_port_t *video_out; vo_driver_t *video_driver; @@ -152,6 +169,7 @@ struct xine_stream_s { pthread_t video_thread; video_decoder_t *video_decoder_plugin; int video_decoder_streamtype; + extra_info_t *video_decoder_extra_info; int video_channel; xine_audio_port_t *audio_out; @@ -160,6 +178,7 @@ struct xine_stream_s { pthread_t audio_thread; audio_decoder_t *audio_decoder_plugin; int audio_decoder_streamtype; + extra_info_t *audio_decoder_extra_info; uint32_t audio_track_map[50]; int audio_track_map_entries; uint32_t audio_type; @@ -213,6 +232,8 @@ struct xine_stream_s { pthread_mutex_t demux_lock; int demux_action_pending; + extra_info_t *current_extra_info; + int err; }; @@ -243,6 +264,12 @@ void audio_decoder_shutdown (xine_stream_t *stream); void xine_report_codec (xine_stream_t *stream, int codec_type, uint32_t fourcc, uint32_t buf_type, int handled) ; +/* extra_info operations */ +void extra_info_reset( extra_info_t *extra_info ); + +void extra_info_merge( extra_info_t *dst, extra_info_t *src ); + + /* demuxer helper functions from demux.c */ void xine_demux_flush_engine (xine_stream_t *stream); |