diff options
Diffstat (limited to 'src/libspudec/spu_decoder_api.h')
-rw-r--r-- | src/libspudec/spu_decoder_api.h | 32 |
1 files changed, 26 insertions, 6 deletions
diff --git a/src/libspudec/spu_decoder_api.h b/src/libspudec/spu_decoder_api.h index 937bc7507..d17f32a7b 100644 --- a/src/libspudec/spu_decoder_api.h +++ b/src/libspudec/spu_decoder_api.h @@ -31,14 +31,36 @@ /* * generic xine spu decoder plugin interface - * - * for a dynamic plugin make sure you provide this function call: - * spu_decoder_t *init_spu_decoder_plugin (int iface_version, - * xine_t *xine); */ +typedef struct spu_decoder_class_s spu_decoder_class_t; typedef struct spu_decoder_s spu_decoder_t; +struct spu_decoder_class_s { + + /* + * open a new instance of this plugin class + */ + spu_decoder_t* (*open_plugin) (spu_decoder_class_t *this, xine_stream_t *stream); + + /* + * return short, human readable identifier for this plugin class + */ + char* (*get_identifier) (spu_decoder_class_t *this); + + /* + * return human readable (verbose = 1 line) description for + * this plugin class + */ + char* (*get_description) (spu_decoder_class_t *this); + + /* + * free all class-related resources + */ + void (*dispose) (spu_decoder_class_t *this); +}; + + struct spu_decoder_s { void (*init) (spu_decoder_t *this, vo_instance_t *video_out); @@ -49,8 +71,6 @@ struct spu_decoder_s { void (*close) (spu_decoder_t *this); - char* (*get_identifier) (void); - void (*dispose) (spu_decoder_t *this); int (*get_nav_pci) (spu_decoder_t *this, pci_t *nav_pci); |