diff options
| -rw-r--r-- | src/xine-engine/load_plugins.c | 21 | 
1 files changed, 19 insertions, 2 deletions
| diff --git a/src/xine-engine/load_plugins.c b/src/xine-engine/load_plugins.c index efe457d90..676aa6c3d 100644 --- a/src/xine-engine/load_plugins.c +++ b/src/xine-engine/load_plugins.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: load_plugins.c,v 1.83 2002/09/05 16:50:56 guenter Exp $ + * $Id: load_plugins.c,v 1.84 2002/09/06 13:15:02 guenter Exp $   *   *   * Load input/demux/audio_out/video_out/codec plugins @@ -140,6 +140,7 @@ static void _insert_plugin (xine_list_t *list,    case PLUGIN_AUDIO_DECODER:    case PLUGIN_VIDEO_DECODER: +  case PLUGIN_SPU_DECODER:      decoder_old = info->special_info;      decoder_new = xine_xmalloc(sizeof(decoder_info_t));      if (decoder_old == NULL) { @@ -845,7 +846,23 @@ audio_decoder_t *get_audio_decoder (xine_t *this, uint8_t stream_type) {  }  spu_decoder_t   *get_spu_decoder   (xine_t *this, uint8_t stream_type) { -  return NULL; /* FIXME */ + +  plugin_node_t   *node; + +#ifdef LOG +  printf ("load_plugins: looking for spu decoder for streamtype %02x\n", +	  stream_type); +#endif + +  node = this->plugin_catalog->spu_decoder_map[stream_type]; + +  if (!node) +    return NULL; + +  if (!node->plugin)  +    node->plugin = _load_plugin(this, node->filename, node->info, NULL); + +  return node->plugin;   } | 
