summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/audio_out/audio_alsa_out.c4
-rw-r--r--src/audio_out/audio_arts_out.c4
-rw-r--r--src/audio_out/audio_esd_out.c4
-rw-r--r--src/audio_out/audio_oss_out.c4
-rw-r--r--src/audio_out/audio_sun_out.c4
-rw-r--r--src/demuxers/demux.h4
-rw-r--r--src/demuxers/demux_aiff.c10
-rw-r--r--src/demuxers/demux_asf.c20
-rw-r--r--src/demuxers/demux_avi.c14
-rw-r--r--src/demuxers/demux_cda.c8
-rw-r--r--src/demuxers/demux_eawve.c8
-rw-r--r--src/demuxers/demux_elem.c6
-rw-r--r--src/demuxers/demux_film.c22
-rw-r--r--src/demuxers/demux_fli.c10
-rw-r--r--src/demuxers/demux_idcin.c21
-rw-r--r--src/demuxers/demux_mng.c8
-rw-r--r--src/demuxers/demux_mpeg.c18
-rw-r--r--src/demuxers/demux_mpeg_block.c42
-rw-r--r--src/demuxers/demux_mpgaudio.c10
-rw-r--r--src/demuxers/demux_ogg.c12
-rw-r--r--src/demuxers/demux_pes.c8
-rw-r--r--src/demuxers/demux_qt.c28
-rw-r--r--src/demuxers/demux_real.c24
-rw-r--r--src/demuxers/demux_realaudio.c10
-rw-r--r--src/demuxers/demux_roq.c8
-rw-r--r--src/demuxers/demux_smjpeg.c10
-rw-r--r--src/demuxers/demux_snd.c10
-rw-r--r--src/demuxers/demux_ts.c15
-rw-r--r--src/demuxers/demux_voc.c10
-rw-r--r--src/demuxers/demux_vqa.c16
-rw-r--r--src/demuxers/demux_wav.c10
-rw-r--r--src/demuxers/demux_wc3movie.c19
-rw-r--r--src/demuxers/demux_yuv4mpeg2.c8
-rw-r--r--src/dxr3/dxr3_decode_spu.c4
-rw-r--r--src/dxr3/dxr3_decode_video.c4
-rw-r--r--src/dxr3/video_out_dxr3.c4
-rw-r--r--src/input/input_dvd.c15
-rw-r--r--src/input/input_file.c4
-rw-r--r--src/input/input_http.c2
-rw-r--r--src/input/input_mms.c4
-rw-r--r--src/input/input_net.c4
-rw-r--r--src/input/input_plugin.h4
-rw-r--r--src/input/input_pnm.c2
-rw-r--r--src/input/input_rtsp.c2
-rw-r--r--src/input/input_stdin_fifo.c4
-rw-r--r--src/input/input_vcd.c4
-rw-r--r--src/liba52/xine_decoder.c4
-rw-r--r--src/libdts/xine_decoder.c4
-rw-r--r--src/libfaad/xine_decoder.c6
-rw-r--r--src/libffmpeg/xine_decoder.c6
-rw-r--r--src/liblpcm/xine_decoder.c4
-rw-r--r--src/libmad/xine_decoder.c4
-rw-r--r--src/libmpeg2/xine_decoder.c4
-rw-r--r--src/libreal/audio_decoder.c4
-rw-r--r--src/libreal/xine_decoder.c4
-rw-r--r--src/libspucc/xine_decoder.c4
-rw-r--r--src/libspudec/spu_decoder_api.h2
-rw-r--r--src/libspudec/xine_decoder.c4
-rw-r--r--src/libvorbis/xine_decoder.c4
-rw-r--r--src/libw32dll/qt_decoder.c10
-rw-r--r--src/libw32dll/w32codec.c6
-rw-r--r--src/libxineadec/adpcm.c4
-rw-r--r--src/libxineadec/fooaudio.c4
-rw-r--r--src/libxineadec/gsm610.c4
-rw-r--r--src/libxineadec/logpcm.c4
-rw-r--r--src/libxineadec/roqaudio.c4
-rw-r--r--src/libxinevdec/cinepak.c6
-rw-r--r--src/libxinevdec/cyuv.c4
-rw-r--r--src/libxinevdec/fli.c4
-rw-r--r--src/libxinevdec/foovideo.c4
-rw-r--r--src/libxinevdec/idcinvideo.c8
-rw-r--r--src/libxinevdec/msrle.c6
-rw-r--r--src/libxinevdec/msvc.c6
-rw-r--r--src/libxinevdec/qtrle.c6
-rw-r--r--src/libxinevdec/qtrpza.c4
-rw-r--r--src/libxinevdec/qtsmc.c6
-rw-r--r--src/libxinevdec/rgb.c6
-rw-r--r--src/libxinevdec/roqvideo.c4
-rw-r--r--src/libxinevdec/svq1.c4
-rw-r--r--src/libxinevdec/wc3video.c6
-rw-r--r--src/libxinevdec/yuv.c4
-rw-r--r--src/video_out/video_out_aa.c4
-rw-r--r--src/video_out/video_out_fb.c4
-rw-r--r--src/video_out/video_out_none.c4
-rw-r--r--src/video_out/video_out_opengl.c4
-rw-r--r--src/video_out/video_out_pgx64.c6
-rw-r--r--src/video_out/video_out_sdl.c4
-rw-r--r--src/video_out/video_out_syncfb.c4
-rw-r--r--src/video_out/video_out_vidix.c4
-rw-r--r--src/video_out/video_out_xshm.c4
-rw-r--r--src/video_out/video_out_xv.c4
-rw-r--r--src/xine-engine/audio_decoder.c11
-rw-r--r--src/xine-engine/audio_decoder.h4
-rw-r--r--src/xine-engine/audio_out.c25
-rw-r--r--src/xine-engine/audio_out.h22
-rw-r--r--src/xine-engine/buffer.c22
-rw-r--r--src/xine-engine/buffer.h28
-rw-r--r--src/xine-engine/buffer_types.c17
-rw-r--r--src/xine-engine/video_decoder.c14
-rw-r--r--src/xine-engine/video_decoder.h4
-rw-r--r--src/xine-engine/video_out.c36
-rw-r--r--src/xine-engine/video_out.h15
-rw-r--r--src/xine-engine/xine.c57
-rw-r--r--src/xine-engine/xine_internal.h35
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);