]> git.sesse.net Git - vlc/blobdiff - TODO
Added : alsa support
[vlc] / TODO
diff --git a/TODO b/TODO
index cde7a788a2b2082a9e21c7df62665ae5df913f51..761290e77dcd856b68484ed88ad83054a1b884de 100644 (file)
--- a/TODO
+++ b/TODO
 #
 # Urgency values: Wishlist, Normal, Important, Critical
 
-Task: 0x00
-Difficulty: Medium
-Urgency: Wishlist
-Description: Splash screen
- The vlc needs a splash screen with a vlc logo, instead of
- the "waiting for stream" message.
+Task: 0x3e
+Difficulty: Guru
+Urgency: Critical
+Description: Fix backwards moves
+ Sometimes the frames seem to go backwards for a short period of
+ time. This is due to the output methods and is known to happen
+ with the x11 and SDL plugins.
 Status: Todo
 
-Task: 0x01
-Difficulty: Hard
-Urgency: Wishlist
-Description: MGA YUV
- The Matrox acceleration for the vlc does not work yet,
- though there are initialization routines in the code.
+Task: 0x3d
+Difficulty: Easy
+Urgency: Normal
+Description: Have more statistics messages displayed
+ The vlc has structures to keep track of the interesting
+ events, but there is no way to print these structures. In stats
+ mode, we should print these structures regularly, or at quit
+ time (whichever is the more convenient).
 Status: Todo
 
-Task: 0x02
-Difficulty: Medium
-Urgency: Normal
-Description: Better Gnome interface
- The Gnome interface has many stubs and is actually rather
- unfunctional. Someone should make the buttons work when
- the appropriate hooks exist.
+Task: 0x3c
+Difficulty: Easy
+Urgency: Important
+Description: Separate optimizations from debug mode
+ We sometimes want to have the debug mode (which writes an
+ interesting log of debug messages) along with the compiler
+ optimizations (which allow decoding of more than 2 fps).
+Status: Done 18 Nov 2000 (Meuuh)
+
+Task: 0x3b
+Difficulty: Easy
+Urgency: Important
+Description: Write intf_WarnMsg and intf_StatMsg
+ We have intf_ErrMsg to display fatal errors, but warnings are
+ drowned in an ocean of unreadable intf_DbgMsg. Same for
+ statistics messages.
 Status: Todo
 
-Task: 0x03
+Task: 0x3a
 Difficulty: Hard
 Urgency: Important
-Description: Playlist API
- Currently only files given in the command line are played,
- one after the other. We need a smarter way to handle this,
- through AddFile(), MoveFile(), etc. functions. input_file
has to be modified to support this as well.
+Description: Support SDL Overlay
+ The SDL livrary has routines to use the video board to do the YUV
+ conversion, scaling and displaying. Using them will require a
+ partial rewrite of the video_output way of handling rendering
and displaying.
 Status: Todo
 
-Task: 0x04
+Task: 0x39
 Difficulty: Medium
-Urgency: Normal
-Description: Get rid of vlc.channels
- The file vlc.channels should be removed and information
- found in it put either into ~/.vlcrc or in another rc
file. Note that this file can be modified by the vlc.
+Urgency: Wishlist
+Description: Rewrite the font display routines
+ The current font display routines aren't powerful enough. There
+ should be a way to display a big String at once, without needing
to compute the size of the string and its coordinates beforehand.
 Status: Todo
 
-Task: 0x05
-Difficulty: Easy
+Task: 0x38
+Difficulty: Medium
 Urgency: Important
-Description: vlms backport
- The vlc uses the same file input code as the vlms (VideoLAN
- Mini Server) which has been much improved. Someone should
port modifications done to the vlms back to the vlc.
+Description: Make aout eat less CPU
+ When the vlc is launched without a stream, the audio_output thread
+ eats all memory, probably because there is no msleep() when no data
is available in the audio_output queue.
 Status: Todo
 
-Task: 0x06
+Task: 0x37
 Difficulty: Guru
 Urgency: Important
-Description: Optimize video parser
- The video parser has some speed issues currently unexplained:
- even though most functions are inlined, it keeps eating more
- CPU than it should. This has to be investigated.
+Description: Fix motion compensation bug
+ The motion compensation still has a small bug which can be well
+ noticed when there is a sudden color change, a few blocks remain
+ visible on the screen.
+Status: Done 27 Aug 2000 (Meuuh)
+
+Task: 0x36
+Difficulty: Medium
+Urgency: Normal
+ Description: 
+ . Finish the new keyboard input interface to support 
+   interfaces that allow modifiers. This will allow the SDL to run 
+   properly.
+ . Here are some details:
+   Allow any interface to have its own set of keys:
+    - allow the 'discovery' of the main interface of the binding 
+      created by each interface:
+       what key ("control-C", what action (INTF...))
+    - extend the interface by a specific struct (meta+modifier+ascii)
+    - implement an interface specific getKey function.
+Status: Todo
+
+Task: 0x35
+Difficulty: Medium
+Urgency: Important
+Description: Fix plugins namespace problem
+ When compiling a plugin, all symbols seem to be exported, while we
+ actually just need GetConfig and a few other things: the other
+ functions are accessed through function pointers.
 Status: Todo
 
-Task: 0x07
+Task: 0x34
+Difficulty: Medium
+Urgency: Important
+Description: Fix plugin autoloading
+ At the moment, plugins to be detected are hardcoded in the code. We
+ need a better method to get all available plugins, by listing all the
+ files in selected directories.
+Status: Todo
+
+Task: 0x33
 Difficulty: Hard
-Urgency: Critical
-Description: Fix VDEC_SMP segfaults
- When compiled to support SMP, the vlc segfaults. The synchro
- code lacks locks, but there might be bugs elsewhere as well.
+Urgency: Important
+Description: Real plugin API
+ We need some functions to register plugins, automatically detect which
+ ones are the most appropriate, as well as ways to express that plugin
+ A won't work unless plugin B is activated as well.
 Status: Todo
 
-Task: 0x08
-Difficulty: Easy
+Task: 0x32
+Difficulty: Medium
 Urgency: Important
-Description: Get rid of floating instructions
- Mixing floating instructions and MMX is seldom a good idea,
- it might be interesting to remove all floating instructions
- in a single thread. The audio decoders are of course not
- concerned by this task.
+Description: Enable compiled-in plugins
+ Some plugins may have their place inside the main program, such as the
+ dummy plugin, or the beos plugin under BeOS. We should allow to link
+ them with the main app.
 Status: Todo
 
-Task: 0x09
+Task: 0x31
 Difficulty: Easy
 Urgency: Normal
-Description: Get rid of dumb vlc aliases
- When compiling the vlc, some symlinks to the main app
- are created, such as gvlc, ggivlc, etc. Actually this
- might confuse the user, so they should be removed,
- except perhaps gvlc and fbvlc which follow a usual
- naming scheme.
-Status: Done 8 Aug 2000 (sam)
+Description: Optimize SPU rendering
+ There is an if() in the SPU display routine to double lines when needed,
+ whiwh is rather inefficient. It should be removed and put outside
+ the main loop.
+Status: Done 26 Aug 2000 (henri)
 
-Task: 0x0a
-Difficulty: Medium
+Task: 0x30
+Difficulty: Hard
 Urgency: Important
-Description: Do separate packages
- The plugins can be compiled with specific libraries, such
- as Gnome, GGI, Esound. Putting all of them in the same
- package would require a lot of useless dependencies, thus
- one should do separate packages: a core "vlc" package, and
- "vlc-fb", "vlc-ggi", "vlc-esd" packages depending on the
- core package.
+Description: SPU error recovery
+ The SPU decoder does not behave very well when a packet is missed or when
+ it gets the stream at the middle of an SPU packet. Make it more error-
+ friendly.
 Status: Todo
 
-Task: 0x0b
+Task: 0x29
 Difficulty: Medium
-Urgency: Important
-Description: Allow to force synchro
- Add a --force-synchro option to bypass the auto-adaptative
- algorithm present in the vlc. Options should allow displaying
- only I frames, only I and P, or all frames, or some more
- fancy stuff such as half the Bs.
-Status: Done 8 Aug 2000 (sam)
+Urgency: Normal
+Description: ALSA audio output support
+ ALSA is the Advanced Linux Sound Architecture and is believed to be
+ technically superior to the usual OSS support found in the Linux kernel.
+Status: Done ( henri )
 
-Task: 0x0c
-Difficulty: Hard
-Urgency: Critical
-Description: Fix synchro
- The synchronization algorithm sucks a bit. While it is
- quite efficient on frameskipping on slow machines, it
- is not smart enough on fast machines and does not detect
- when it has enough time for a frame. Perhaps a better
- handling of the dates might help.
+Task: 0x28
+Difficulty: Guru
+Urgency: Wishlist
+Description: Support for RTP
+ RTP is a transport protocol for realtime applications. MPEG1 and MPEG2
+ versions of RTP are described in RFCs 2038 and 2250. RFCs 1889 (RTP)
+ and 2508 (compressed RTP) can be interesting as well.
 Status: Todo
 
-Task: 0x0d
+Task: 0x27
+Difficulty: Medium
+Urgency: Wishlist
+Description: Draw a font / support color fonts
+ The vlc currently uses an ugly font to display its data on the output
+ window, and we have a slow hack to make it outlined. Writing our own
+ font, or adding support for color fonts, would make us gain some time.
+Status: Todo
+
+Task: 0x26
 Difficulty: Medium
 Urgency: Important
-Description: Framebuffer exit bug
- When the vlc abnormally exits in framebuffer mode, it leaves
- the console in an unusable state. This does not happen on
- the Matrox framebuffer, but it does on the VESA one.
+Description: Layer 2 mono support
+ The vlc doesn't play layer 2 mono yet. We need it since a few of our
+ streams are in this audio format.
 Status: Todo
 
-Task: 0x0e
-Difficulty: Easy
+Task: 0x25
+Difficulty: Hard
 Urgency: Wishlist
-Description: Rename channel names
- Channels should start from 1 (not 0) like on a VCR or TV,
- and Channel 0 should be renamed to "Playlist" or similar.
+Description: MP3 support
+ The vlc cannot play MPEG1/2 layer 3 yet. It might be nice to fix that.
 Status: Todo
 
-Task: 0x0f
-Difficulty: Easy
+Task: 0x24
+Difficulty: Hard
 Urgency: Normal
-Description: Better black&white support
- When in B&W mode, the chroma part of pictures is decoded,
- but it would be more efficient not to decode at all when
- the video decoder knows it does not need to.
+Description: Support for unencapsulated streams
+ Some streams are not encapsulated in PES/PS or TS packets, which the
+ vlc currently requires to properly decode a stream. Adding support for
+ this would require to rewrite the input code, and probably make it a
+ plugin.
 Status: Todo
 
-Task: 0x10
-Difficulty: Easy
-Urgency: Normal
-Description: vlc icon
- The vlc needs an icon. It should render well in 48x48 but
- can be any size.
+Task: 0x24
+Difficulty: Guru
+Urgency: Wishlist
+Description: Ogg/Vorbis audio decoder support
+ The Ogg/Vorbis audio format is a free alternative to the patent-encumbered
+ MP3 format. The system packets are quite different than the MPEG ones, so
+ adding support for it would require a lot of code rewrite.
 Status: Todo
 
-Task: 0x11
-Difficulty: Hard
+Task: 0x23
+Difficulty: Guru
 Urgency: Normal
-Description: Optimize YUV scaling
- The YUV scaling method does not seem very efficient. Perhaps
- some CPU cycles can be gained by saving some buffers.
+Description: Xv video output support
+ XFree 4.0 provides the Xv interface which can do hardware YUV on supported
+ hardware. Unfortunately, there doesn't seem to be much documentation
+ available.
 Status: Todo
 
-Task: 0x12
+Task: 0x22
+Difficulty: Medium
+Urgency: Normal
+Description: SDL video output support
+ The Simple DirectMedia Layer library is a generic API that provides
+ YUV acceleration on some platforms. More information can be found
+ on http://www.devolution.com/~slouken/SDL/
+Status: Done 21 Aug 2000 (octplane)
+
+Task: 0x21
 Difficulty: Medium
+Urgency: Normal
+Description: Implement pause
+ There is no real `pause' command yet. Pausing just stops
+ displaying and sound playback, but the streams continues to
+ be decoded. One will have to do a file implementation as
+ well as a network implementation.
+Status: Todo
+
+Task: 0x20
+Difficulty: Hard
 Urgency: Important
-Description: Fix 32bpp MMX YUV
- The MMX 32bpp YUV function is buggy.
+Description: Rewrite input for Program Stream files
+ Currently when we read a PS file, it is first translated to TS
+ because we first had only PS support. Now time has come to get
+ rid of this ugly kludge and integrate a proper PS input.
 Status: Todo
 
-Task: 0x13
+Task: 0x1f
 Difficulty: Hard
-Urgency: Wishlist
-Description: Support MPEG1 timecodes
- The vlc can parse an MPEG1 system stream, but the parsed
- PCR values do not seem to be correct. Check what's wrong.
+Urgency: Normal
+Description: DeCSS and DVD ioctls
+ The vlc needs the DVD ioctls support as well as the integration
+ of DeCSS to play DVDs properly. The person doing this should
+ probably not live in a country where DeCSS has been ruled illegal.
 Status: Todo
 
-Task: 0x14
-Difficulty: Guru
+Task: 0x1e
+Difficulty: Hard
 Urgency: Wishlist
-Description: Debug MPEG1 video
- The MPEG1 support has been done, but it still crashes.
+Description: ASCII-art output
+ For the ones who don't know how to waste their time, they can
+ try to do an ASCII-art output plugin.
 Status: Todo
 
-Task: 0x15
-Difficulty: Medium
-Urgency: Critical
-Description: Fix input_file exit
- input_file does not exit cleanly when the file is finished,
which makes it impossible to quit the vlc. Fix it.
+Task: 0x1d
+Difficulty: Hard
+Urgency: Normal
+Description: LPCM decoder
+ The LPCM decoder is full of stubs, it only parses the stream
but does not decode it. Fix this.
 Status: Todo
 
-Task: 0x16
-Difficulty: Medium
+Task: 0x1c
+Difficulty: Guru
 Urgency: Important
-Description: Fix 8bpp YUV
- The 8bpp YUV function is broken, there is some serious
- alpha blending, and it scales pretty badly. Fix it.
-Status: Todo
+Description: Fix field pictures support
+ Some MPEG2 streams are interleaved, and the vlc does not support
+ this very well. Adding support for them requires an excellent
+ knowledge of the MPEG2 papers.
+Status: Done 23 Aug 2000 (Meuuh)
 
-Task: 0x17
+Task: 0x1b
 Difficulty: Hard
+Urgency: Wishlist
+Description: Modularize decoder
+ Make the decoder a plugin, so that two versions can coexist
+ without recompilation (MMX and non-MMX).
+Status: Todo
+
+Task: 0x1a
+Difficulty: Easy
 Urgency: Normal
-Description: Add 24bpp YUV
- There is no 24bpp support yet. Add it, either in MMX
- or in C.
+Description: Make interface more responsive
+Status: Todo
+ When in "waiting for stream" mode, the interface is refreshed
+ every 5 seconds. This is too long, and can be confusing for
+ the user. Make it refresh at least after a keyboard/mouse event.
 Status: Todo
 
+Task: 0x19
+Difficulty: Hard
+Urgency: Normal
+Description: Support MP1 and MP3
+ The vlc does not support all MPEG1 audio formats yet, nor
+ does it support MPEG1/2 layer 3.
+
 Task: 0x18
 Difficulty: Guru
 Urgency: Wishlist
@@ -230,81 +318,216 @@ Description: Split interface/video_output
  work.
 Status: Todo
 
-Task: 0x19
+Task: 0x17
 Difficulty: Hard
 Urgency: Normal
-Description: Support MP1 and MP3
- The vlc does not support all MPEG1 audio formats yet, nor
- does it support MPEG1/2 layer 3.
-Task: 0x1a
+Description: Add 24bpp YUV
+ There is no 24bpp support yet. Add it, either in MMX
+ or in C.
+Status: Todo
+
+Task: 0x16
+Difficulty: Medium
+Urgency: Important
+Description: Fix 8bpp YUV
+ The 8bpp YUV function is broken, there is some serious
+ alpha blending, and it scales pretty badly. Fix it.
+Status: Done 14 Aug 2000 (sam)
+
+Task: 0x15
+Difficulty: Medium
+Urgency: Critical
+Description: Fix input_file exit
+ input_file does not exit cleanly when the file is finished,
+ which makes it impossible to quit the vlc. Fix it.
+Status: Done 21 Aug 2000 (sam)
+
+Task: 0x14
+Difficulty: Guru
+Urgency: Wishlist
+Description: Debug MPEG1 video
+ The MPEG1 support has been done, but it still crashes.
+Status: Done 23 Oct 2000 (Meuuh)
+
+Task: 0x13
+Difficulty: Hard
+Urgency: Wishlist
+Description: Support MPEG1 timecodes
+ The vlc can parse an MPEG1 system stream, but the parsed
+ PCR values do not seem to be correct. Check what's wrong.
+Status: Todo
+
+Task: 0x12
+Difficulty: Medium
+Urgency: Important
+Description: Fix 32bpp MMX YUV
+ The MMX 32bpp YUV function is buggy.
+Status: Done 13 Aug 2000 (sam)
+
+Task: 0x11
+Difficulty: Hard
+Urgency: Normal
+Description: Optimize YUV scaling
+ The YUV scaling method does not seem very efficient. Perhaps
+ some CPU cycles can be gained by saving some buffers.
+Status: Todo
+
+Task: 0x10
 Difficulty: Easy
 Urgency: Normal
-Description: Make interface more responsive
+Description: Draw a vlc icon
+ The vlc needs an icon. It should render well in 48x48 but
+ can be any size.
 Status: Todo
- When in "waiting for stream" mode, the interface is refreshed
- every 5 seconds. This is too long, and can be confusing for
- the user. Make it refresh at least after a keyboard/mouse event.
+
+Task: 0x0f
+Difficulty: Easy
+Urgency: Normal
+Description: Better black&white support
+ When in B&W mode, the chroma part of pictures is decoded,
+ but it would be more efficient not to decode at all when
+ the video decoder knows it does not need to.
 Status: Todo
 
-Task: 0x1b
-Difficulty: Hard
+Task: 0x0e
+Difficulty: Easy
 Urgency: Wishlist
-Description: modularize decoder
- Make the decoder a plugin, so that two versions can coexist
without recompilation (MMX and non-MMX).
+Description: Rename channel names
+ Channels should start from 1 (not 0) like on a VCR or TV,
and Channel 0 should be renamed to "Playlist" or similar.
 Status: Todo
 
-Task: 0x1c
-Difficulty: Guru
+Task: 0x0d
+Difficulty: Medium
 Urgency: Important
-Description: Fix field pictures support
- Some MPEG2 streams are interleaved, and the vlc does not support
- this very well. Adding support for them requires an excellent
knowledge of the MPEG2 papers.
+Description: Framebuffer exit bug
+ When the vlc abnormally exits in framebuffer mode, it leaves
+ the console in an unusable state. This does not happen on
the Matrox framebuffer, but it does on the VESA one.
 Status: Todo
 
-Task: 0x1d
+Task: 0x0c
 Difficulty: Hard
+Urgency: Critical
+Description: Fix synchro
+ The synchronization algorithm sucks a bit. While it is
+ quite efficient on frameskipping on slow machines, it
+ is not smart enough on fast machines and does not detect
+ when it has enough time for a frame. Perhaps a better
+ handling of the dates might help.
+Status: Done 13 Nov 2000 (Meuuh)
+
+Task: 0x0b
+Difficulty: Medium
+Urgency: Important
+Description: Allow to force synchro
+ Add a --force-synchro option to bypass the auto-adaptative
+ algorithm present in the vlc. Options should allow displaying
+ only I frames, only I and P, or all frames, or some more
+ fancy stuff such as half the Bs.
+Status: Done 8 Aug 2000 (sam)
+
+Task: 0x0a
+Difficulty: Medium
+Urgency: Important
+Description: Do separate packages
+ The plugins can be compiled with specific libraries, such
+ as Gnome, GGI, Esound. Putting all of them in the same
+ package would require a lot of useless dependencies, thus
+ one should do separate packages: a core "vlc" package, and
+ "vlc-fb", "vlc-ggi", "vlc-esd" packages depending on the
+ core package.
+Status: Done 15 Aug 2000 (sam)
+
+Task: 0x09
+Difficulty: Easy
 Urgency: Normal
-Description: LPCM decoder
- The LPCM decoder is full of stubs, it only parses the stream
- but does not decode it. Fix this.
+Description: Get rid of dumb vlc aliases
+ When compiling the vlc, some symlinks to the main app
+ are created, such as gvlc, ggivlc, etc. Actually this
+ might confuse the user, so they should be removed,
+ except perhaps gvlc and fbvlc which follow a usual
+ naming scheme.
+Status: Done 8 Aug 2000 (sam)
+
+Task: 0x08
+Difficulty: Easy
+Urgency: Important
+Description: Get rid of floating instructions
+ Mixing floating instructions and MMX is seldom a good idea,
+ it might be interesting to remove all floating instructions
+ in a single thread. The audio decoders are of course not
+ concerned by this task.
 Status: Todo
 
-Task: 0x1e
+Task: 0x07
 Difficulty: Hard
-Urgency: Wishlist
-Description: ASCII-art output
- For the ones who don't know how to waste their time, they can
- try to do an ASCII-art output plugin.
+Urgency: Critical
+Description: Fix VDEC_SMP segfaults
+ When compiled to support SMP, the vlc segfaults. The synchro
+ code lacks locks, but there might be bugs elsewhere as well.
+Status: Done 16 Nov 2000 (Meuuh)
+
+Task: 0x06
+Difficulty: Guru
+Urgency: Important
+Description: Optimize video parser
+ The video parser has some speed issues currently unexplained:
+ even though most functions are inlined, it keeps eating more
+ CPU than it should. This has to be investigated.
 Status: Todo
 
-Task: 0x1f
-Difficulty: Hard
+Task: 0x05
+Difficulty: Easy
+Urgency: Important
+Description: Backport vlms input
+ The vlc uses the same file input code as the vlms (VideoLAN
+ Mini Server) which has been much improved. Someone should
+ port modifications done to the vlms back to the vlc.
+Status: Todo
+
+Task: 0x04
+Difficulty: Medium
 Urgency: Normal
-Description: DeCSS and DVD ioctls
- The vlc needs the DVD ioctls support as well as the integration
- of DeCSS to play DVDs properly. The person doing this should
probably not live in a country where DeCSS has been ruled illegal.
+Description: Get rid of vlc.channels
+ The file vlc.channels should be removed and information
+ found in it put either into ~/.vlcrc or in another rc
file. Note that this file can be modified by the vlc.
 Status: Todo
 
-Task: 0x20
+Task: 0x03
 Difficulty: Hard
 Urgency: Important
-Description: Rewrite input for Program Stream files
- Currently when we read a PS file, it is first translated to TS
- because we first had only PS support. Now time has come to get
- rid of this ugly kludge and integrate a proper PS input.
+Description: Playlist API
+ Currently only files given in the command line are played,
+ one after the other. We need a smarter way to handle this,
+ through AddFile(), MoveFile(), etc. functions. input_file
+ has to be modified to support this as well.
 Status: Todo
 
-Task: 0x21
+Task: 0x02
 Difficulty: Medium
 Urgency: Normal
-Description: Implement pause
- There is no real `pause' command yet. Pausing just stops
- displaying and sound playback, but the streams continues to
- be decoded. One will have to do a file implementation as
- well as a network implementation.
+Description: Better Gnome interface
+ The Gnome interface has many stubs and is actually rather
+ unfunctional. Someone should make the buttons work when
+ the appropriate hooks exist.
+Status: Todo
+
+Task: 0x01
+Difficulty: Hard
+Urgency: Wishlist
+Description: MGA YUV
+ The Matrox acceleration for the vlc does not work yet,
+ though there are initialization routines in the code.
+Status: Todo
+
+Task: 0x00
+Difficulty: Medium
+Urgency: Wishlist
+Description: Splash screen
+ The vlc needs a splash screen with a vlc logo, instead of
+ the "waiting for stream" message.
 Status: Todo
 
+