mirror of
https://code.videolan.org/videolan/vlc
synced 2024-10-07 03:56:28 +02:00
64 lines
2.1 KiB
Plaintext
64 lines
2.1 KiB
Plaintext
File: Plugin mad for vlc is based upon libmad from the mad distribution.
|
|
Author: Jean-Paul Saman <jpsaman@wxs.nl>
|
|
|
|
Directories:
|
|
============
|
|
vlc/plugins/mad : mad audio decoder plugin for vlc
|
|
|
|
Interface functions
|
|
===================
|
|
The following interface functions are implemented in the mad plugin.
|
|
|
|
decoder_Probe : vlc probes for plugin capabilities
|
|
decoder_Run : vlc starts a decoder plugin by calling this function
|
|
InitThread : routine to do some initializations
|
|
EndThread : cleanup function
|
|
|
|
The following functions are callback functions for the mad decoder library:
|
|
|
|
libmad_input : called when input data is needed
|
|
libmad_output : called whenever a frame has been decoded
|
|
libmad_header : called upon decoding of only a frame header
|
|
libmad_messages : libmad messages
|
|
libmad_error : called whenever an error occurred during the decoding process
|
|
|
|
Design: (ASCII art)
|
|
=======
|
|
It represents the function call flow viewed from the vlc main program. The main program is in charge of allocating decoders,
|
|
initializing, starting and stopping them.
|
|
|
|
---------------
|
|
| <library> |
|
|
| libmad |
|
|
---------------
|
|
^
|
|
|
|
|
---------------
|
|
| <plugin> |
|
|
| mad |
|
|
_______________
|
|
^
|
|
|
|
|
________________________
|
|
| <decoder interface> |
|
|
| vlc plugin interface |
|
|
________________________
|
|
|
|
|
|
Interface view:
|
|
===============
|
|
[mad decoder plugin]
|
|
----------------------
|
|
vlc decoder interface -> | mad_adec mad_libmad | -> libmad
|
|
-----------------------
|
|
|
|
Rationel:
|
|
========
|
|
Keeping libmad as a separate library on the system, either dynamic or statically linked in, makes maintenance so much simpeler.
|
|
Merging with a new libmad version should be straight forward as long as the interface stays stable.
|
|
There is another benefit: Disk (actually flash ROM) resources and memory are very limited on a iPaq.
|
|
Other programs or utilities like madplay and BBplay can make use of the same libmad version we do. In this way
|
|
limiting the needed storage place on disk (flash ROM). Also this is only possible when the interface stays the same.
|
|
|
|
|