diff --git a/Makefile b/Makefile index f9decbb71b..cb35d0fb39 100644 --- a/Makefile +++ b/Makefile @@ -207,7 +207,6 @@ SRCS_COMMON-$(WIN32DLL) += libmpcodecs/ad_acm.c \ loader/dmo/dmo_guids.c \ SRCS_COMMON-$(XANIM_CODECS) += libmpcodecs/vd_xanim.c -SRCS_COMMON-$(XMMS_PLUGINS) += libmpdemux/demux_xmms.c SRCS_COMMON-$(XVID4) += libmpcodecs/vd_xvid4.c SRCS_COMMON-$(DUMMY_OSD) += sub/osd_dummy.c diff --git a/configure b/configure index 35b246fbdd..d5a30aec8e 100755 --- a/configure +++ b/configure @@ -362,7 +362,6 @@ Codecs: --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect] --disable-mpg123 disable libmpg123 MP3 decoding support [autodetect] --disable-mad disable libmad (MPEG audio) support [autodetect] - --enable-xmms enable XMMS input plugin support [disabled] --enable-libdca enable libdca support [autodetect] --disable-liba52 disable liba52 [autodetect] --enable-musepack enable libmpcdec support (deprecated, libavcodec @@ -503,7 +502,6 @@ _libdca=auto _faad=auto _ladspa=auto _libbs2b=auto -_xmms=no _vcd=auto _bluray=auto _dvdnav=auto @@ -775,8 +773,6 @@ for ac_option do --disable-ladspa) _ladspa=no ;; --enable-libbs2b) _libbs2b=yes ;; --disable-libbs2b) _libbs2b=no ;; - --enable-xmms) _xmms=yes ;; - --disable-xmms) _xmms=no ;; --enable-vcd) _vcd=yes ;; --disable-vcd) _vcd=no ;; --enable-bluray) _bluray=yes ;; @@ -4146,27 +4142,6 @@ fi echores "$_sortsub" -echocheck "XMMS inputplugin support" -if test "$_xmms" = yes ; then - if ( xmms-config --version ) >/dev/null 2>&1 ; then - _xmmsplugindir=$(xmms-config --input-plugin-dir) - _xmmslibdir=$(xmms-config --exec-prefix)/lib - else - _xmmsplugindir=/usr/lib/xmms/Input - _xmmslibdir=/usr/lib - fi - - def_xmms='#define CONFIG_XMMS 1' - if darwin ; then - extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib" - else - extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic" - fi -else - def_xmms='#undef CONFIG_XMMS' -fi -echores "$_xmms" - if test "$_charset" != "noconv" ; then def_charset="#define MSG_CHARSET \"$_charset\"" else @@ -4464,7 +4439,6 @@ WIN32DLL = $_win32dll WIN32_EMULATION = $_win32_emulation X11 = $_x11 XANIM_CODECS = $_xanim -XMMS_PLUGINS = $_xmms XV = $_xv XVID4 = $_xvid YUV4MPEG = $_yuv4mpeg @@ -4669,9 +4643,7 @@ $def_real $def_win32_loader $def_win32dll $def_xanim -$def_xmms #define BINARY_CODECS_PATH "$_codecsdir" -#define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir" /* Audio output drivers */ diff --git a/libmpdemux/demux_xmms.c b/libmpdemux/demux_xmms.c deleted file mode 100644 index 0e37554681..0000000000 --- a/libmpdemux/demux_xmms.c +++ /dev/null @@ -1,416 +0,0 @@ -/* - * Copyright (C) 2002-2004 Balatoni Denes and A'rpi - * - * This file is part of MPlayer. - * - * MPlayer is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * MPlayer is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with MPlayer; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -// This is not reentrant because of global static variables, but most of -// the plugins are not reentrant either perhaps -#include "config.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "m_option.h" -#include "libaf/af_format.h" -#include "stream/stream.h" -#include "demuxer.h" -#include "stheader.h" - -#include "mp_msg.h" - -#define XMMS_PACKETSIZE 65536 // some plugins won't play if this is too small - -#include "demux_xmms_plugin.h" - -typedef struct { - uint64_t spos; // stream position in number of output bytes from 00:00:00 - InputPlugin* ip; -} xmms_priv_t; - -static pthread_mutex_t xmms_mutex; -static int format = 0x1; // Raw PCM -static char xmms_audiobuffer[XMMS_PACKETSIZE]; -static uint32_t xmms_channels; -static uint32_t xmms_samplerate; -static uint32_t xmms_afmt; -static int xmms_length; -static char *xmms_title=NULL; -static uint32_t xmms_audiopos=0; -static int xmms_playing=0; -static xmms_priv_t *xmms_priv=NULL; -static uint32_t xmms_byterate; -static int64_t xmms_flushto=-1; - -// =========== mplayer xmms outputplugin stuff ============== - -static void disk_close(void) {} -static void disk_pause(short p) {} -static void disk_init(void) {} - -static void disk_flush(int time) { - if (xmms_priv) xmms_flushto=time*((long long) xmms_byterate)/1000LL; -} - -static int disk_free(void) { // vqf plugin sends more than it should - return XMMS_PACKETSIZE - xmms_audiopos < XMMS_PACKETSIZE / 4 ? - 0 : XMMS_PACKETSIZE - xmms_audiopos - XMMS_PACKETSIZE / 4; -} - -static int disk_playing(void) { - return 0; //?? maybe plugins wait on exit until oplugin is not playing? -} - -static int disk_get_output_time(void) { - if (xmms_byterate) - return xmms_priv->spos*1000LL/((long long)xmms_byterate); - else return 0; -} - -static int disk_open(AFormat fmt, int rate, int nch) { - switch (fmt) { - case FMT_U8: - xmms_afmt=AF_FORMAT_U8; - break; - case FMT_S8: - xmms_afmt=AF_FORMAT_S8; - break; - case FMT_U16_LE: - xmms_afmt=AF_FORMAT_U16_LE; - break; - case FMT_U16_NE: -#if HAVE_BIGENDIAN - xmms_afmt=AF_FORMAT_U16_BE; -#else - xmms_afmt=AF_FORMAT_U16_LE; -#endif - break; - case FMT_U16_BE: - xmms_afmt=AF_FORMAT_U16_BE; - break; - case FMT_S16_NE: - xmms_afmt=AF_FORMAT_S16_NE; - break; - case FMT_S16_LE: - xmms_afmt=AF_FORMAT_S16_LE; - break; - case FMT_S16_BE: - xmms_afmt=AF_FORMAT_S16_BE; - break; - } - xmms_samplerate=rate; - xmms_channels=nch; - return 1; -} - -static void disk_write(void *ptr, int length) { - if (!xmms_playing) return; - pthread_mutex_lock(&xmms_mutex); - if (xmms_flushto!=-1) { - xmms_priv->spos=xmms_flushto; - xmms_flushto=-1; - xmms_audiopos=0; - } - xmms_priv->spos+= length; - memcpy(&xmms_audiobuffer[xmms_audiopos],ptr,length); - xmms_audiopos+=length; - pthread_mutex_unlock(&xmms_mutex); -} - -static OutputPlugin xmms_output_plugin = -{ - NULL, - NULL, - "MPlayer output interface plugin ", /* Description */ - disk_init, - NULL, /* about */ - NULL, /* configure */ - NULL, /* get_volume */ - NULL, /* set_volume */ - disk_open, - disk_write, - disk_close, - disk_flush, - disk_pause, - disk_free, - disk_playing, - disk_get_output_time, - disk_get_output_time //we pretend that everything written is played at once -}; - -// ==================== mplayer xmms inputplugin helper stuff ================= - -static InputPlugin* input_plugins[100]; -static int no_plugins=0; - -/* Dummy functions */ -static InputVisType input_get_vis_type(void){return 0;} -static void input_add_vis_pcm(int time, AFormat fmt, int nch, int length, - void *ptr){} -static void input_set_info_text(char * text){} -char *xmms_get_gentitle_format(void){ return ""; } -/* Dummy functions END*/ - -static void input_set_info(char* title,int length, int rate, int freq, int nch) -{ - xmms_length=length; -} - -static void init_plugins_from_dir(const char *plugin_dir){ - DIR *dir; - struct dirent *ent; - - dir = opendir(plugin_dir); - if (!dir) return; - - while ((ent = readdir(dir)) != NULL){ - char filename[strlen(plugin_dir)+strlen(ent->d_name)+4]; - void* handle; - sprintf(filename, "%s/%s", plugin_dir, ent->d_name); - handle=dlopen(filename, RTLD_NOW); - if(handle){ - void *(*gpi) (void); - gpi=dlsym(handle, "get_iplugin_info"); - if(gpi){ - InputPlugin *p=gpi(); - mp_tmsg(MSGT_DEMUX, MSGL_INFO, "Found plugin: %s (%s).\n", - ent->d_name,p->description); - p->handle = handle; - p->filename = strdup(filename); - p->get_vis_type = input_get_vis_type; - p->add_vis_pcm = input_add_vis_pcm; - p->set_info = input_set_info; - p->set_info_text = input_set_info_text; - if(p->init) p->init(); - input_plugins[no_plugins++]=p; - } else - dlclose(handle); - } - } - closedir(dir); -} - -static void init_plugins(void) { - char *home; - - no_plugins=0; - - home = getenv("HOME"); - if(home != NULL) { - char xmms_home[strlen(home) + 15]; - sprintf(xmms_home, "%s/.xmms/Plugins", home); - init_plugins_from_dir(xmms_home); - } - - init_plugins_from_dir(XMMS_INPUT_PLUGIN_DIR); -} - -static void cleanup_plugins(void) { - while(no_plugins>0){ - --no_plugins; - mp_tmsg(MSGT_DEMUX, MSGL_INFO, "Closing plugin: %s.\n", - input_plugins[no_plugins]->filename); - if(input_plugins[no_plugins]->cleanup) - input_plugins[no_plugins]->cleanup(); - dlclose(input_plugins[no_plugins]->handle); - } -} - -// ============================ mplayer demuxer stuff =============== - -static int demux_xmms_open(demuxer_t* demuxer) { - InputPlugin* ip = NULL; - sh_audio_t* sh_audio; - WAVEFORMATEX* w; - xmms_priv_t *priv; - int i; - - if (xmms_priv) return 0; // as I said, it's not reentrant :) - init_plugins(); - for(i=0;iis_our_file(demuxer->stream->url)){ - ip=input_plugins[i]; break; - } - } - if(!ip) return 0; // no plugin to handle this... - - pthread_mutex_init(&xmms_mutex,NULL); - - xmms_priv=priv=malloc(sizeof(xmms_priv_t)); - memset(priv,0,sizeof(xmms_priv_t)); - priv->ip=ip; - - memset(xmms_audiobuffer,0,XMMS_PACKETSIZE); - - xmms_channels=0; - sh_audio = new_sh_audio(demuxer,0); - sh_audio->wf = w = malloc(sizeof(*w)); - w->wFormatTag = sh_audio->format = format; - - demuxer->movi_start = 0; - demuxer->movi_end = 100; - demuxer->audio->id = 0; - demuxer->audio->sh = sh_audio; - demuxer->priv=priv; - sh_audio->ds = demuxer->audio; - - xmms_output_plugin.init(); - ip->output = &xmms_output_plugin; - xmms_playing=1; - ip->play_file(demuxer->stream->url); - if (ip->get_song_info) - ip->get_song_info(demuxer->stream->url,&xmms_title,&xmms_length); - if (xmms_length<=0) demuxer->seekable=0; - - mp_tmsg(MSGT_DEMUX,MSGL_INFO,"Waiting for the XMMS plugin to start playback of '%s'...\n", - demuxer->stream->url); - while (xmms_channels==0) { - usleep(10000); - if(ip->get_time()<0) return 0; - } - sh_audio->sample_format= xmms_afmt; - switch (xmms_afmt) { - case AF_FORMAT_S16_LE: - case AF_FORMAT_S16_BE: - case AF_FORMAT_U16_LE: - case AF_FORMAT_U16_BE: - sh_audio->samplesize = 2; - break; - default: - sh_audio->samplesize = 1; - } - w->wBitsPerSample = sh_audio->samplesize*8; - w->nChannels = sh_audio->channels = xmms_channels; - w->nSamplesPerSec = sh_audio->samplerate = xmms_samplerate; - xmms_byterate = w->nAvgBytesPerSec = - xmms_samplerate*sh_audio->channels*sh_audio->samplesize; - w->nBlockAlign = sh_audio->samplesize*sh_audio->channels; - w->cbSize = 0; - - return DEMUXER_TYPE_XMMS; -} - -static int demux_xmms_fill_buffer(demuxer_t* demuxer, demux_stream_t *ds) { - sh_audio_t *sh_audio = demuxer->audio->sh; - xmms_priv_t *priv=demuxer->priv; - demux_packet_t* dp; - - if (xmms_length<=0) demuxer->seekable=0; - else demuxer->seekable=1; - - while (xmms_audioposip->get_time()<0) || !xmms_playing) - return 0; - usleep(1000); - } - - pthread_mutex_lock(&xmms_mutex); - dp = new_demux_packet(XMMS_PACKETSIZE/2); - dp->pts = priv->spos / sh_audio->wf->nAvgBytesPerSec; - ds->pos = priv->spos; - - memcpy(dp->buffer,xmms_audiobuffer,XMMS_PACKETSIZE/2); - memcpy(xmms_audiobuffer,&xmms_audiobuffer[XMMS_PACKETSIZE/2], - xmms_audiopos-XMMS_PACKETSIZE/2); - xmms_audiopos-=XMMS_PACKETSIZE/2; - pthread_mutex_unlock(&xmms_mutex); - - ds_add_packet(ds,dp); - - return 1; -} - -static void demux_xmms_seek(demuxer_t *demuxer,float rel_seek_secs, - float audio_delay,int flags){ - stream_t* s = demuxer->stream; - sh_audio_t* sh_audio = demuxer->audio->sh; - xmms_priv_t *priv=demuxer->priv; - int32_t pos; - - if(priv->ip->get_time()<0) return; - - pos = (flags & SEEK_ABSOLUTE) ? 0 : priv->spos / sh_audio->wf->nAvgBytesPerSec; - if (flags & SEEK_FACTOR) - pos+= rel_seek_secs*xmms_length; - else - pos+= rel_seek_secs; - - if (pos<0) pos=0; - if (pos>=xmms_length) pos=xmms_length-1; - - priv->ip->seek((pos<0)?0:pos); - priv->spos=pos * sh_audio->wf->nAvgBytesPerSec; -} - -static void demux_close_xmms(demuxer_t* demuxer) { - xmms_priv_t *priv=demuxer->priv; - xmms_playing=0; - xmms_audiopos=0; // xmp on exit waits until buffer is free enough - if (priv != NULL) { - if (priv->ip != NULL) - priv->ip->stop(); - free(priv); xmms_priv=demuxer->priv=NULL; - } - cleanup_plugins(); -} - -static int demux_xmms_control(demuxer_t *demuxer,int cmd, void *arg){ - demux_stream_t *d_video=demuxer->video; - sh_audio_t *sh_audio=demuxer->audio->sh; - xmms_priv_t *priv=demuxer->priv; - - switch(cmd) { - case DEMUXER_CTRL_GET_TIME_LENGTH: - if (xmms_length<=0) return DEMUXER_CTRL_DONTKNOW; - *((double *)arg)=(double)xmms_length/1000; - return DEMUXER_CTRL_GUESS; - - case DEMUXER_CTRL_GET_PERCENT_POS: - if (xmms_length<=0) - return DEMUXER_CTRL_DONTKNOW; - *((int *)arg)=(int)( priv->spos / - (float)(sh_audio->wf->nAvgBytesPerSec) / xmms_length ); - return DEMUXER_CTRL_OK; - - default: - return DEMUXER_CTRL_NOTIMPL; - } -} - - -const demuxer_desc_t demuxer_desc_xmms = { - "XMMS demuxer", - "xmms", - "XMMS", - "Balatoni Denes, A'rpi", - "requires XMMS plugins", - DEMUXER_TYPE_XMMS, - 0, // safe autodetect - demux_xmms_open, - demux_xmms_fill_buffer, - NULL, - demux_close_xmms, - demux_xmms_seek, - demux_xmms_control -}; diff --git a/libmpdemux/demux_xmms_plugin.h b/libmpdemux/demux_xmms_plugin.h deleted file mode 100644 index b63d82f7b9..0000000000 --- a/libmpdemux/demux_xmms_plugin.h +++ /dev/null @@ -1,155 +0,0 @@ -/* XMMS - Cross-platform multimedia player - * Copyright (C) 1998-2000 Peter Alm, Mikael Alm, Olle Hallnas, Thomas Nilsson and 4Front Technologies - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. 2. - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#ifndef MPLAYER_DEMUX_XMMS_PLUGIN_H -#define MPLAYER_DEMUX_XMMS_PLUGIN_H - -typedef enum -{ - FMT_U8, FMT_S8, FMT_U16_LE, FMT_U16_BE, FMT_U16_NE, FMT_S16_LE, FMT_S16_BE, FMT_S16_NE -} -AFormat; - -typedef struct -{ - void *handle; /* Filled in by xmms */ - char *filename; /* Filled in by xmms */ - char *description; /* The description that is shown in the preferences box */ - void (*init) (void); - void (*about) (void); /* Show the about box */ - void (*configure) (void); /* Show the configuration dialog */ - void (*get_volume) (int *l, int *r); - void (*set_volume) (int l, int r); /* Set the volume */ - int (*open_audio) (AFormat fmt, int rate, int nch); /* Open the device, if the device can't handle the given - parameters the plugin is responsible for downmixing - the data to the right format before outputting it */ - void (*write_audio) (void *ptr, int length); /* The input plugin calls this to write data to the output - buffer */ - void (*close_audio) (void); /* No comment... */ - void (*flush) (int time); /* Flush the buffer and set the plugins internal timers to time */ - void (*pause) (short paused); /* Pause or unpause the output */ - int (*buffer_free) (void); /* Return the amount of data that can be written to the buffer, - two calls to this without a call to write_audio should make - the plugin output audio directly */ - int (*buffer_playing) (void); /* Returns TRUE if the plugin currently is playing some audio, - otherwise return FALSE */ - int (*output_time) (void); /* Return the current playing time */ - int (*written_time) (void); /* Return the length of all the data that has been written to - the buffer */ -} -OutputPlugin; - -typedef struct -{ - void *handle; /* Filled in by xmms */ - char *filename; /* Filled in by xmms */ - char *description; /* The description that is shown in the preferences box */ - void (*init) (void); /* Called when the plugin is loaded */ - void (*cleanup) (void); /* Called when the plugin is unloaded */ - void (*about) (void); /* Show the about box */ - void (*configure) (void); /* Show the configure box */ - int (*mod_samples) (void *data, int length, AFormat fmt, int srate, int nch); /* Modify samples */ - void (*query_format) (AFormat *fmt,int *rate, int *nch); -} -EffectPlugin; - -typedef enum -{ - INPUT_VIS_ANALYZER, INPUT_VIS_SCOPE, INPUT_VIS_VU, INPUT_VIS_OFF -} -InputVisType; - -typedef struct -{ - void *handle; /* Filled in by xmms */ - char *filename; /* Filled in by xmms */ - char *description; /* The description that is shown in the preferences box */ - void (*init) (void); /* Called when the plugin is loaded */ - void (*about) (void); /* Show the about box */ - void (*configure) (void); - int (*is_our_file) (char *filename); /* Return 1 if the plugin can handle the file */ - void *(*scan_dir) (char *dirname); /* Look in Input/cdaudio/cdaudio.c to see how */ - /* to use this */ - void (*play_file) (char *filename); /* Guess what... */ - void (*stop) (void); /* Tricky one */ - void (*pause) (short paused); /* Pause or unpause */ - void (*seek) (int time); /* Seek to the specified time */ - void (*set_eq) (int on, float preamp, float *bands); /* Set the equalizer, most plugins won't be able to do this */ - int (*get_time) (void); /* Get the time, usually returns the output plugins output time */ - void (*get_volume) (int *l, int *r); /* Input-plugin specific volume functions, just provide a NULL if */ - void (*set_volume) (int l, int r); /* you want the output plugin to handle it */ - void (*cleanup) (void); /* Called when xmms exit */ - InputVisType (*get_vis_type) (void); /* OBSOLETE, DO NOT USE! */ - void (*add_vis_pcm) (int time, AFormat fmt, int nch, int length, void *ptr); /* Send data to the visualization plugins - Preferably 512 samples/block */ - void (*set_info) (char *title, int length, int rate, int freq, int nch); /* Fill in the stuff that is shown in the player window - set length to -1 if it's unknown. Filled in by xmms */ - void (*set_info_text) (char *text); /* Show some text in the song title box in the main window, - call it with NULL as argument to reset it to the song title. - Filled in by xmms */ - void (*get_song_info) (char *filename, char **title, int *length); /* Function to grab the title string */ - void (*file_info_box) (char *filename); /* Bring up an info window for the filename passed in */ - OutputPlugin *output; /* Handle to the current output plugin. Filled in by xmms */ -} -InputPlugin; - -/* So that input plugins can get the title formatting information */ -char *xmms_get_gentitle_format(void); - -/* So that output plugins can communicate with effect plugins */ -EffectPlugin *get_current_effect_plugin(void); -int effects_enabled(void); - -typedef struct -{ - void *handle; /* Filled in by xmms */ - char *filename; /* Filled in by xmms */ - int xmms_session; /* The session ID for attaching to the control socket */ - char *description; /* The description that is shown in the preferences box */ - void (*init) (void); /* Called when the plugin is enabled */ - void (*about) (void); /* Show the about box */ - void (*configure) (void); - void (*cleanup) (void); /* Called when the plugin is disabled or when xmms exits */ -} -GeneralPlugin; - -typedef struct VisPlugin -{ - void *handle; /* Filled in by xmms */ - char *filename; /* Filled in by xmms */ - int xmms_session; /* The session ID for attaching to the control socket */ - char *description; /* The description that is shown in the preferences box */ - int num_pcm_chs_wanted; /* Numbers of PCM channels wanted in the call to render_pcm */ - int num_freq_chs_wanted; /* Numbers of freq channels wanted in the call to render_freq */ - void (*init)(void); /* Called when the plugin is enabled */ - void (*cleanup)(void); /* Called when the plugin is disabled */ - void (*about)(void); /* Show the about box */ - void (*configure)(void); /* Show the configure box */ - void (*disable_plugin)(struct VisPlugin *); /* Call this with a pointer to your plugin to disable the plugin */ - void (*playback_start)(void); /* Called when playback starts */ - void (*playback_stop)(void); /* Called when playback stops */ - void (*render_pcm)(short pcm_data[2][512]); /* Render the PCM data, don't do anything time consuming in here */ - void (*render_freq)(short freq_data[2][256]); /* Render the freq data, don't do anything time consuming in here */ -} VisPlugin; - -#endif /* MPLAYER_DEMUX_XMMS_PLUGIN_H */ diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c index 85c98306f1..0cce5e8543 100644 --- a/libmpdemux/demuxer.c +++ b/libmpdemux/demuxer.c @@ -86,7 +86,6 @@ extern const demuxer_desc_t demuxer_desc_h264_es; extern const demuxer_desc_t demuxer_desc_rawdv; extern const demuxer_desc_t demuxer_desc_mpc; extern const demuxer_desc_t demuxer_desc_audio; -extern const demuxer_desc_t demuxer_desc_xmms; extern const demuxer_desc_t demuxer_desc_mpeg_ty; extern const demuxer_desc_t demuxer_desc_rtp; extern const demuxer_desc_t demuxer_desc_rtp_nemesi; @@ -161,9 +160,6 @@ const demuxer_desc_t *const demuxer_list[] = { #ifdef CONFIG_LIBNUT &demuxer_desc_nut, #endif -#ifdef CONFIG_XMMS - &demuxer_desc_xmms, -#endif #ifdef CONFIG_MNG &demuxer_desc_mng, #endif