]> git.sesse.net Git - vlc/blobdiff - TODO
GCC 3.3.3 has strong type checking
[vlc] / TODO
diff --git a/TODO b/TODO
index ef0874c7303248b58dbe9009ade7e0910c3964a1..a3b6b631eb56427169b9ba08ebf453c5f79a243c 100644 (file)
--- a/TODO
+++ b/TODO
-#
-#   vlc tasks
-#   ---------
-#
-#
+# VLC Todo
 # Difficulty values: Easy, Medium, Hard, Guru
 #
 # Urgency values: Wishlist, Normal, Important, Critical
 
-Task: 0x5e
-Difficulty: Hard
-Urgency: Wishlist
-Description: All-in-one interface window
- Find a way for the interface plugin to provide video output capabilities
- and have it display the stream in the same window.
+Task
+Difficulty: Easy
+Urgency: Critical
+Platform: any
+Description: World domination
+ We need to dominate the world
 Status: Todo
 
-Task: 0x5d
+Task
 Difficulty: Guru
-Urgency: Normal
-Description: Win32 port
- Win32 is probably the most common desktop platform, we should support it
- as well. Besides, most students at Centrale use Windows and VideoLAN was
- originally designed for them.
-Status: Todo
-
-Task: 0x5c
-Difficulty: Medium
-Urgency: Wishlist
-Description: Infrared support
- Write a plugin which listens to the infrared port and sends appropriate
- commands to the application. This can either be an interface plugin, or,
- preferably, a new kind of interface-agnostic "command" plugin.
-Status: Todo
-
-Task: 0x5b
-Difficulty: Hard
+Platform: any
 Urgency: Critical
-Description: Fix the FreeBSD port
- The FreeBSD port of vlc doesn't run, probably because of a pthread
- issue. This should be investigated.
+Description: Clock Synchro redesign
+We need to adapt the clock synchro to work better with BOTH files and streams.
 Status: Todo
 
-Task: 0x5a
+Task
 Difficulty: Hard
-Urgency: Wishlist
-Description: Share stream information between vlc and vls
- vls should send misc TS packets to let us know what the stream PID
- contain, such as the language, or the subtitle palette.
-Status: Todo
-
-Task: 0x59
-Difficulty: Hard
-Urgency: Important
-Description: Cope with vls/vlc clock jitter
- The internal clocks of the server and the client are not assured to be
- in perfect synchronization, which may be annoying when playing a movie.
- Reduce this jitter by using a well-chosen filter.
-Status: Todo
-
-Task: 0x58
-Difficulty: Medium
 Urgency: Critical
-Description: Language and subtitles selection in network input
- The vls will probably have to be modified as well.
+Platform: Mac OS X
+Description: CoreAudio multichannel audio output.
+ Convert to <a href="http://www.mat.ucsb.edu:8000/CoreAudio/108">AUHAL</a> based sytem.
+Still no info over S/PDIF output available.
+Outstanding issues:<br />
+ - G5 S/PDIF not working<br />
+ - G5 PCM not working because S/PDIF is selected by default, even if not connected.<br />
 Status: Todo
 
-Task: 0x57
-Difficulty: Guru
-Urgency: Normal
-Description: Full DVD navigation
- Once the core DVD navigation features are ready (see item 0x52), port the
- interface and video output modules so that they can handle it.
-Status: Todo
-
-Task: 0x56
-Difficulty: Hard
-Urgency: Normal
-Description: XVideo video output
- XVideo is reported to work a bit better than the SDL wrapper on some
- configurations. Modify the X11 plugin so that it supports XVideo.
-Status: Done 1 Apr 2001 (shane)
-
-Task: 0x55
-Difficulty: Hard
+Task
+Difficulty: Medium
+Platform: Any
 Urgency: Critical
-Description: Video output IV
- The new video output should support subtitles both in software and hardware
- YUV (see item 0x4d). One should also care about XVideo buffers, there is a
- way to directly decode into them, which would improve performances.
+Description: fix subtitle regressions
+Multi-line subtitles are not aligned correctly.<br />
+Text subtitles don't work with 32bpp rgb.<br />
+Investigate behaviour of subpictures when pausing.<br />
+Negative delaying broken<br />
 Status: Todo
 
-Task: 0x54
-Difficulty: Hard
-Urgency: Wishlist
-Description: Hardware AC3 decoding
- Some soundcards directly grok Dolby AC3. This would spare a lot of CPU time.
-Status: Todo
 
-Task: 0x53
+Task
 Difficulty: Medium
-Urgency: Critical
-Description: Fix AC3 decoder
- The AC3 decoder still has a few quality issues; fix them, and try to add
- MMX support to it as well.
+Platform: any
+Urgency: Important
+Description: Update matroska demux
+ Better Seeking
 Status: Todo
 
-Task: 0x52
-Difficulty: Guru
+Task
+Difficulty: Easy to Difficult
+Platform: Any
+Urgency: Important
+Description: Write some developer documentation
+Perhaps a skeletal driver in each of the categories, what they need to
+do, the design decisions, possibilities, or options that drivers in
+a category might implement. If there is a canonical module for each 
+category or modules that show the range of options that might be mentioned 
+too.
+
+Task
+Difficulty: Easy
+Platform: Mac OS X
 Urgency: Normal
-Description: DVD navigation core features
- We need an interpreter for the DVD virtual machine to make it easier to
- browse DVDs later.
+Description: Streaming wizard
+ Make a Streaming wizard for OS X
 Status: Todo
 
-Task: 0x51
+Task
 Difficulty: Easy
+Platform: all
 Urgency: Normal
-Description: Better subtitle color handling
- The subtitle palette is pretty ugly for the moment, since we don't parse
- the color information. Find it in the IFO file and pass the information to
- the video output.
+Description: configure overview of modules
+ configure should report what it will and what it won't build, after it is done running.
 Status: Todo
 
-Task: 0x50
-Difficulty: Hard
-Urgency: Critical
-Description: Multi-angle multi-language support
- Some DVDs have several languages encoded in the same video stream, we
- need to properly parse them.
-Status: Done 22 Apr 2001 (stef)
-
-Task: 0x4f
+Task
 Difficulty: Hard
-Urgency: Critical
-Description: Fix all known DVD playback issues
- A few DVDs are still reported not to work at all. Try to find what is
- causing this, have a more robust DVD input, and list all discs reported
- to work flawlessly to prevent bug regression.
-Status: Todo
+Urgency: Normal
+Platform: any
+Description: Dual window in embed mode
+Windows taskbar reports two windows in the video embed mode.
+Status: Done
 
-Task: 0x4e
-Difficulty: Hard
-Urgency: Important
-Description: Write stream zones support
- For random access we need to know where stream descriptors are valid
- and reside (essentially DVD plugin). -> Meuuh
-Status: Done (stef)
+Task
+Difficulty: Guru
+Urgency: Normal
+Platform: any
+Description: Multi-input
+* Core support done<br />
+* Many demuxers don't support it<br />
+* Need GUI elements
+Status: Assigned to fenrir
 
-Task: 0x4d
+Task
 Difficulty: Hard
 Urgency: Normal
-Description: Write subtitles and stream information in YUV coordinates
- ... so that they can be displayed even in "overlay" mode.
+Platform: any
+Description: make everything UTF-8 based
+ Convert everything that deals with strings to a UTF-8 based system. Not very difficult, but needs a lot of checking, testing and allows for easy breakage.
 Status: Todo
 
-Task: 0x4c
+Task
 Difficulty: Medium
 Urgency: Normal
-Description: Update documentation
- The input structures have undergone a major restructuration with
- input-II. It might be a good idea to reflect thoses changes in the
- documentation.
+Platform: any
+Description: Rewrite the SAP parser
+ The SAP parser is very dirty at the moment, and needs a complete rewrite.
+ - caching support<br />
+ - timeout support<br />
+ - add meta-information to playlist<br />
+ - session version support<br />
+Status: Assigned to zorglub (80% done)
+
+Task
+Difficulty: Medium
+Urgency: Normal
+Platform: any
+Description: Playlist II
+ A hierarchized playlist structure, eventually using a media library.
+Think playlist within playlist, directory structures, SAP section, TV channels list, iTunes library like stuff etc. <a href="http://sierra.via.ecp.fr/~zorglub/vlc/playlist.txt">Thoughts and ideas (not up-to-date)</a><br />
+70% done.<br />
+Todo:<br />
+- Core support<br />
+   - *   "Name finder"<br />
+   - *   "Protocol rollover" node<br />
+   - *** Item moving/copying facilities<br />
+   - *   Ability to save playlist on quit<br />
+   - ?   Represent navigation structure as "fake items" ?  <br />
+   -     Custom playlist format<br />
+- Helper modules<br />
+   - **  ASX and B4S parsers (see below)<br />
+   - *   Rewrite SLP announce discovery<br />
+   - *   Live directory representation<br /> 
+- *** Implement in Skins 2 interfaces<br />
+- wx implementation :<br />
+   - *** Fix deadlocks<br />
+   - **  Support item move/copy<br />
+   - *   Explorer view<br />
+   - *   Playlist preferences panel<br />
+   - **  Improve iteminfo dialog<br />
+Status: Assigned to zorglub
+
+Task
+Difficulty: Easy
+Urgency: Normal
+Platform: any
+Description: Improve bookmarks
+ - Put them in the input_item structure to have them persistent
+ - Add an input option to play the whole file but starting at a given bookmark
 Status: Todo
 
-Task: 0x4b
-Difficulty: Guru
+Task
+Difficulty: Easy
 Urgency: Normal
-Description: Write AVI input plugin
- .avi files can use MPEG codec, if this is the case it shouldn't be
- hard to read those files -> Meuuh
+Platform: any
+Description: fix ASX playlist parser
+Basically our asx parser is broken. It doesn't handle relative links. It should also URL encode the hrefs (spaces in the url need to be converted to %20 etc). protocol rollover, authors, title's etc etc aren't handled. See <a href="http://www.meetnewplayers.com/bend/Windows%20Media%20-%20Fun%20with%20asx%20files2.htm">this</a> for asx examples. It is still located in the old demux/m3u.c module instead of modules/demux/playlist/
 Status: Todo
 
-Task: 0x4a
+Task
 Difficulty: Medium
 Urgency: Normal
-Description: Write ES input plugin
- We need to be able to read .mpg video streams, or .mp* audio streams.
- More information -> Meuuh
+Platform: any
+Description: fix current muxers.
+Our avi muxer doesn't produce valid files
 Status: Todo
 
-Task: 0x49
+Task
 Difficulty: Easy
-Urgency: Important
-Description: Write a new buffer allocator
- Avoid malloc()s by reusing the recently released packets. More
- information -> Meuuh
-Status: Done 16 Apr 2001 (asmax)
-
-Task: 0x48
-Difficulty: Hard
-Urgency: Critical
-Description: Fix audio synchro
- With some audio plugins, the audio stream is late because of buffer
- sizes. See what's wrong and fix it.
+Urgency: Normal
+Platform: any
+Description: 24 bit LPCM
+- Increasingly more DVDs use 24 bit LPCM sound. We should support it.
 Status: Todo
 
-Task: 0x47
-Difficulty: Hard
+Task
+Difficulty: Easy
 Urgency: Normal
-Description: Make decoders dynamically loadable
+Platform: Mac OS X
+Description: LPCM
+The LPCM decoder outputs really small samples which aren't accepted properly by the macosx coreaudio resampler, causing VLC to not output any sound with many DVD's. A test sample that shows this effect on the mac is the Madonna clip.
 Status: Todo
 
-Task: 0x46
+Task
 Difficulty: Hard
 Urgency: Normal
-Description: Make input plugins dynamically loadable
- With a probe() function, and stuff...
-Status: Done 7 Feb 2001 (sam)
+Platform: Mac OS X
+Description: New OS X preferences
+ New preferences for Mac OS X. Current not suited for Mac Users and several
+Pref. elements are broken (hotkeys and int with string desc.).
+Status: Todo
 
-Task: 0x45
-Difficulty: Guru
+Task
+Difficulty: Easy
 Urgency: Normal
-Description: Write DVD plugin
- We need a DVD plugin which read the device directly, calls DeCSS
- (optional) and parse .ifo files.
-Status: Done 8 Feb 2001 (stef)
-
-Task: 0x44
-Difficulty: Guru
-Urgency: Important
-Description: Write input_ext-intf.c
- This file will provide functions which allow the interface to change
- the pace of reading and change the position in the file.
-Status: Done 8 Feb 2001 (Meuuh)
-
-Task: 0x43
-Difficulty: Medium
-Urgency: Important
-Description: Write TS support
- The parser has already been back-ported, but it still lacks the
- PSI parser, and currently the functions to read from the network
- are yet to be written.
-Status: Done 7 Mar 2001 (henri)
+Platform: Mac OS X
+Description: OS X bookmarks window
+We miss a bookmarks window like the wxwidget one.
+Status: Todo
 
-Task: 0x42
+Task
 Difficulty: Medium
-Urgency: Important
-Description: Write input_netlist.c
- We need an interface to create fixed-size packets (for instance
- 188 bytes or 2 kB) and avoid using the system malloc().
-Status: Done 23 Jan 2001 (henri)
+Urgency: Normal
+Platform: Mac OS X
+Description: Finish Mac Mozilla plugin
+The Mac mozilla plugin needs some more work to be useable. Basic funtionality is working. However the video-output part needs some more work since it was crashing. See svn history for the old code. 
+Status: Halfway (stalled)
 
-Task: 0x41
+Task
 Difficulty: Easy
-Urgency: Important
-Description: Write input_programs.c
- We need a centralized manner of creating new programs, es, and
- spawning new decoders.
-Status: Done 20 Dec 2000 (Meuuh)
+Urgency: Normal
+Platform: any
+Description: Controlling the mozilla plugin
+The mozilla plugin needs to be better controllable (via javascript). <br />
+- retrieve variable values.<br />
+- open VLC media player<br />
+- default html page to control the plugin<br />
+- XUL controls<br />
+(80% done) see:<br />
+<a href="http://sierra.via.ecp.fr/~zorglub/vlc/plugin/vlc.html">Javascript controls</a>
+<a href="http://sierra.via.ecp.fr/~zorglub/vlc/xul/">XUL controls</a>
+<a href="http://mplayerplug-in.sourceforge.net/">MPlayer Mozilla plugin</a>
+Status: Assigned to zorglub
+
+Task
+Difficulty: Easy
+Platform: Win32, Linux
+Urgency: Normal
+Description: equalizer fixes
+    - Gray out "reset to defaults" for audio equalizer when disabled<br />
+   - Once audio equalizer is disabled, it doesn't enable the first
+     try when you select from main menu. It only works a 2nd change
+     (enable flag not properly set?).
+ To have this work correctly, the best solution is to remove knowledge of
+ presets from the filter and give it to ... core ?
+Status: Todo
 
-Task: 0x40
+Task
 Difficulty: Medium
-Urgency: Important
-Description: Fix the PS plugin
- The PS plugin should be able to recover from packet loss, to
- read MPEG-1 .mpg files, and to pre-parse the stream (if possible)
- to build the ES table. Check what's wrong and fix it. Now.
-Status: Done 20 Dec 2000 (Meuuh)
+Platform: Win32, Linux
+Urgency: Normal
+Description: wxWidgets fixes
+ - Rename wxWindows to wxWidgets<br />
+ - Problems with slider (doesn't go where you click, keep updating while seeking
+?)<br />
+ - Reversed arrows
+Status: Todo
 
-Task: 0x3f
-Difficulty: Easy
-Urgency: Critical
-Description: Enhance intf_*Msg
- The intf_*Msg functions could be more clever : add "mymodule
- warning/error:" and \n automatically. The new input already
- uses such a behaviour, so we must hurry. It might be necessary
- to modify all messages in all modules...
-Status: Done 20 Dec 2000 (sam)
-
-Task: 0x3e
+Task
 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: Done 27 Nov 2000 (Meuuh)
+Urgency: Normal
+Platform: Mac OS X
+Description: SVCD support
+libcdio needs to be ported to the Mac to support the cddax and vcdx modules for proper SVCD support
+Status: Todo
 
-Task: 0x3d
-Difficulty: Easy
+Task
+Difficulty: Hard
 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: Done 27 Nov 2000 (Meuuh)
-
-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)
+Platform: any
+Description: Stream text subtitles
+ Find a a way to stream text subtitles, in TS and in RTP.<br />
+ Needs testing and validating<br />
+ Currently broken.
+Status: 65% (fenrir)
+
+Task
+Difficulty: Medium
+Urgency: Normal
+Platform: any
+Description: RTSP server
+Full implementation of a RTSP server. We already have a very basic implementation working but it does need a lot more work. See the following <a href="http://via.ecp.fr/via/ml/streaming/200408/msg00068.html">mail</a> and <a href="http://via.ecp.fr/via/ml/streaming/200410/msg00002.html">mail</a>.
+Status: 90%
 
-Task: 0x3b
+Task
 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: Done 23 Nov 2000 (Stef)
+Urgency: Normal
+Platform: Win32/Linux
+Description: V4L and dshow tuning support
+We need an API that allows us to control the tuning of V4L and dshow TV cards.
+Status: Todo (CryHavoc)
 
-Task: 0x3a
-Difficulty: Hard
-Urgency: Important
-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: Done 18 Dec 2000 (bozo and oct)
-
-Task: 0x39
+Task
 Difficulty: Medium
+Platform: any
 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.
+Description: RAR/ZIP/... access
+An access module that would be able to uncompress compressed files.
 Status: Todo
 
-Task: 0x38
-Difficulty: Medium
-Urgency: Important
-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: Done (henri)
-
-Task: 0x37
-Difficulty: Guru
-Urgency: Important
-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: Enhance the interface
- . 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: Done 10 Jan 2001 (sam)
-
-Task: 0x34
+Task
 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: Done 7 Jan 2001 (sam)
+Platform: any
+Urgency: Wishlist
+Description: DVTS support
+DV over RTP support. See <a href="http://www.sfc.wide.ad.jp/DVTS/">DVTS homepage</a>
+Status: Todo
 
-Task: 0x33
+Task
 Difficulty: Hard
-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: Done 7 Jan 2001 (sam)
+Platform: WinCE
+Urgency: Wishlist
+Description: WinCE port finalizing
+The WinCE port is already quite functional but we still miss a GAPI video output (GDI works but is slow).
+Some code already exists for that (http://sourceforge.net/projects/vlcpocketpc/) and would need to be imported into the VLC source tree.
+Downloads should be added to the main vlc download page. We need an icon for this. 
+Status: Assigned to MixerAnderson and gibalou
 
-Task: 0x32
+Task
 Difficulty: Medium
-Urgency: Important
-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: Done 15 Apr 2001 (sam)
+Urgency: Wishlist
+Platform: any
+Description: Full blown OSD system 
+ In the line of freevo etc.
+ (Checkout the correct svn branch)
+Status: 75% done. Assigned to thedj, jpsaman and yoann
 
-Task: 0x31
+Task
 Difficulty: Easy
-Urgency: Normal
-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)
+Urgency: Wishlist
+Platform: any
+Description: GSM decoder
+The <a href="http://kbs.cs.tu-berlin.de/~jutta/toast.html">Toast</a> implementation.
+Status: Todo
 
-Task: 0x30
-Difficulty: Hard
-Urgency: Important
-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: Done 26 Feb 2001 (sam)
+Task
+Difficulty: Easy
+Urgency: Wishlist
+Platform: any
+Description: AMR decoder
+We will need to find one that isn't based on the reference code.
+Status: Todo
 
-Task: 0x2b
-Difficulty: Hard
+Task
+Difficulty: Easy
 Urgency: Wishlist
-Description: Shoot the TODO list on the web site
- The TODO list on the web site hasn't been updated for months. We may
- wonder then why the hell to we put a TODO list on the web site ? Maybe
- we'd better shoot it in the head, that would make its suffering end.
-Status: Done 5 Mar 2001 (sam)
+Platform: any
+Description: MusePack decoder
+Need I say more? <a href="http://www.hydrogenaudio.org/index.php?showtopic=21775&">MPCdec</a>. We are awaiting MPC 7.5 or 8.0 specification which should split the codec from the fileformat.
+Status: Todo
 
-Task: 0x2a
-Difficulty: Medium
-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
+Difficulty: Easy
+Urgency: Wishlist
+Platform: any
+Description: APE decoder
+Need I say more? <a href="http://www.monkeysaudio.com/">Monkeys Audio (APE)</a> website. This codec is currently not GPL compatible. We will have to await a GPL compatible implementation of this.
+Status: Todo
 
-Task: 0x29
-Difficulty: Guru
+Task
+Difficulty: Easy
 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.
+Platform: any
+Description: flash video playing/streaming
+A flash video muxer and demuxer. FFMPEG can already output flash video. a waste not to make use of that capability.
 Status: Todo
 
-Task: 0x28
+Task
 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.
+Platform: any
+Description: Closed Captions/Teletext support
+In order to conform to international regulations, VLC needs to be able to decode the closed captions in TV, DVD, DVB and HDTV video. V4L has a CC api, DVD and HDTV usually have them in a seperate stream.<br />
+ - Use ZVBI library for VBI decoding and image generation<br />
+ - ESTI EN 300 472 for EBU teletext support in DVB<br />
+Perhaps look at Xawtv, dvbtext and other vbi, vtx systems.
 Status: Todo
 
-Task: 0x27
+Task
 Difficulty: Medium
-Urgency: Important
-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: Done 18 Dec 2000 (sam)
-
-Task: 0x26
-Difficulty: Hard
 Urgency: Wishlist
-Description: MP3 support
- The vlc cannot play MPEG1/2 layer 3 yet. It might be nice to fix that.
+Platform: any
+Description: DVB info in NIT
+We need to get the information of a DVB stream that are in the NIT (current program, next program, ...)
 Status: Todo
 
-Task: 0x25
-Difficulty: Hard
-Urgency: Normal
-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.
+Task
+Difficulty: Medium
+Urgency: Wishlist
+Platform: any
+Description: IceCast/ShoutCast serving
+This would be a nice thing for the sake of completeness of VLC's streaming capabilities.
 Status: Todo
 
-Task: 0x24
-Difficulty: Guru
+Task
+Difficulty: Easy
 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.
+Platform: any
+Description: More/Better Picture filters
+There are several picture filters (blend, scale), but we can use more (screenshot, crop, move..) We probably need on the fly picture filter insertion as well. (and also not-on-the-fly)
 Status: Todo
 
-Task: 0x23
+Task
 Difficulty: Guru
 Urgency: Normal
-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: Done 1 Apr 2001 (shane)
-
-Task: 0x22
+Platform: any
+Description: Vout redesign
+- vout needs distinct splitting into vout_core, vout_window, pic_filter, vout_filter<br />
+- needs 'assistance' vout windows (clone filters, goom) etc.<br />
+- 4:3, 16:9, freeform Aspect Ratio<br />
+- cropping and padding (do at OS level, but provide a core call to set it up and configure).<br />
+- OSD at window resolution instead of video res (secondary vout channel)<br />
+- a OSD needs to be bound to a vout stream (no subs on goom vout)<br />
+- Use OS native calls where appropriate, with 'C' fallbacks. (OpenGL, Quartz, DirectX already has many of the funtionalities we seek and sometimes they are a lot faster too).<br />
+- better hotkeys integration
+Status: Todo
+
+Task
 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)
+Urgency: Wishlist
+Platform: any
+Description: Subtitle work
+- better SSA support with postioning, colors etc.<br />
+- Fix subtitles dialogs (mac done)
+Status: Todo
 
-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: Done 8 Feb 2001 (Meuuh)
-
-Task: 0x20
-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.
-Status: Done 5 Dec 2000 (Meuuh) because of Input II
+Task
+Difficulty: Easy
+Urgency: Wishlist
+Platform: any
+Description: Automatic charset recognition
+See if we can use <a href="http://trific.ath.cx/software/enca/">ENCA</a> for automatic charset recognition on subtitle files. Might simplify usage of sub files a lot? Might require complete file to be parsed by ENCA before good result is returned?
+Status: Todo
 
-Task: 0x1f
-Difficulty: Hard
-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: Done 20 Jan 2001 (stef)
+Task
+Difficulty: Guru
+Urgency: Wishlist
+Platform: Mac OS X
+Description: skins2
+Port VLC skins to Objective C++ and OSX. Also requires the intf to be a dialog provider.<br />
+Hints:<br />
+ - In a first step, the need for a dialog provider can be easily omitted.<br />
+ - In theory, only a small amount of classes (6 or so) must be written for OS X, implementing predefined interfaces.<br />
+ - The code of <a href="http://www.fltk.org">FLTK</a> could be really helpful to identify the correct functions and see how to use them.
+Status: Todo
 
-Task: 0x1e
+Task
 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.
+Platform: any
+Description: informing user.
+Implement a system to: <br />
+ - Alert the user of critical errors (cannot play file). Should be blocking. <br />
+ - Ask the user a question (Are you sure? or Try to Fix index of avi? or Overwrite File?)<br />
+ - Inform the user, without disturbing him. (Buffering stream). This might require a displaytime or something. Because how do we know how long this information should be displayed? Also think of buffering 0-100%<br /> 
+ - present a user/passwd dialog when we get an authentication failure on a stream.<br />
+Implementation ideas: <br />
+ - via variables and callbacks. How to give answers back ?<br />
+ - via p_intf->pf_* functions.<br />
 Status: Todo
 
-Task: 0x1d
+Task
 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.
+Urgency: Wishlist
+Platform: any
+Description: Full H323 Videoconferencing
+VLC isn't really suited for this yet, because it introduces quite large latencies. This should be fixed before the H323 can ever come close to working in VLC.
+We also will need SIP support. A first implementation using a custom protocol is being made. 
 Status: Todo
 
-Task: 0x1c
-Difficulty: Guru
-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.
-Status: Done 23 Aug 2000 (Meuuh)
+Task
+Difficulty: Hard 
+Urgency: Wishlist
+Platform: Mac OS X
+Description: QuickTime capturing
+Allow capturing from QuickTime Firewire, USB and PCI devices.
+Possibly see: <a href="http://bugzilla.videolan.org/cgi-bin/bugzilla/show_bug.cgi?id=416">Bug 416</a>
+Status: Todo
 
-Task: 0x1b
+Task
 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: Done 16 Jan 2001 (sam)
+Platform: Windows
+Description: ActiveX control for VLC
+ We need an ActiveX version of VLC for IE integration
+Status: Done by damienf
 
-Task: 0x1a
+Task
 Difficulty: Easy
-Urgency: Normal
-Description: Make interface more responsive
- 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: Done 28 Aug 2000 (oct)
-
-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.
-Status: Done 18 Dec 2000 (sam) but see 0x25
-
-Task: 0x18
-Difficulty: Guru
 Urgency: Wishlist
-Description: Split interface/video_output
- The interface and the vout modules are too dependant, which
- makes it impossible to run the Glide output with the Gnome
- interface for instance. This will require a major rewrite of
- the interface, and a solid knowledge of how the vlc internals
- work.
-Status: Done 11 Feb 2001 (sam)
+Platform: any
+Description: export paramaters of an input
+ Export the Media Info of a file/source to a standard xml file for use by other applications. Possibly combine with file "probe'ing".<br />
+ - AR<br />
+ - size<br />
+ - bitrate<br />
+ - resolution<br />
+ - codecs, etc.<br />
+Status: Todo
 
-Task: 0x17
+Task
 Difficulty: Hard
-Urgency: Normal
-Description: Add 24bpp YUV
- There is no 24bpp support yet. Add it, either in MMX
- or in C.
+Urgency: Wishlist
+Platform: any
+Description: http cookies
+For protected VoD  (http://a-select.surfnet.nl)
 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
+Difficulty: Easy
+Urgency: Wishlist
+Platform: any
+Description: Progressive download playing
+Allow application/vlc mimetype to launch VLC instead of plugin for video file.
+Allows for Progressive download to TEMP folder from browsers. VLC would play the file in the TEMP.
+Status: Todo
 
-Task: 0x15
+Task
 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)
+Urgency: Wishlist
+Platform: any
+Description: rendezvous announces
+Apple released the rendezvous code under a Open Source license now. perhaps it can be used. (It's OpenTalk now btw).<br />
+Note: the licence is probably not DFSG compatible. Alternative mDNS implementations exist<br />
+DMAP protocol announce for videos.
+Status: Partly done (DAAP only)
+
+Task
+Difficulty: Easy
+Urgency: Wishlist
+Platform: any
+Description: SDL vout cleaning
+The SDL vout hasn't been updated for a long while. It needs some cleaning up. New hotkeys support, better resizing, alignment etc. Even though SDL isn't used much, this vout shouldn't disappear, because it is a crossplatform API.
+Status: Todo
 
-Task: 0x14
-Difficulty: Guru
+Task
+Difficulty: Easy
 Urgency: Wishlist
-Description: Debug MPEG1 video
- The MPEG1 support has been done, but it still crashes.
-Status: Done 23 Oct 2000 (Meuuh)
+Platform: any
+Description: Electronic Program Guide
+Integrate a EPG system into VLC.
+Status: Todo (CryHavoc)
 
-Task: 0x13
+Task
 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: Done 5 Dec 2000 (Meuuh) because of Input II
+Platform: any
+Description: a Time Shifting module
+This module should create TiVo like capabilities for VLC.
+Status: Todo (CryHavoc)
 
-Task: 0x12
+Task
 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.
+Urgency: Wishlist
+Platform: any
+Description: UDP packet reordering
+Currently we ignore every packet that is too late and just wait for a fresh one.
+It would be nice to be able to reorder the packets in the buffer to prevent degredation of the signal.
 Status: Todo
 
-Task: 0x10
+Task
 Difficulty: Easy
-Urgency: Normal
-Description: Draw a vlc icon
- The vlc needs an icon. It should render well in 48x48 but
- can be any size.
-Status: Done 11 Apr 2001 (sam)
+Urgency: Wishlist
+Platform: any
+Description: Make vlm more user friendly (setup etc)
+vlm is kinda a pain to setup if you are not entirely experienced with A/V and streaming or VLC for that matter.<br />
+It can be heavily improved by updating the vlm http interface. Using seperate fields for the need paramters of a schedule/source.<br />
+Also, GUI implementation.
+Status: Todo
 
-Task: 0x0f
+Task
 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: Done 25 Oct 2000 (reno)
+Urgency: Wishlist
+Platform: any
+Description: Protocol rollover
+It would be cool if VLC supported something like a protocol rollover mechanism, much like WM server has as well. Multicast, UDP, TCP, HTTP etc.
+However, how spec compliant can this be?<br />
+We require a timeout on udp connecting. Beyond this a playlist file can be used to do a form of protocol rollover when one of the links fails ( or implement this in the new style playlist system [only advance index on failure]).
+Status: Todo
 
-Task: 0x0e
-Difficulty: Easy
+Task
+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.
+Platform: any
+Description: NAT issues
+Find a way to deal with clients behind a NAT. Multicast and RTSP work 'poorly' in these setups. NATP2P, STUN, UDP hole punching, other techniques ????
+Protocol rollover can be a solution for a lot of these issues.
+Use full DNS names in SDP
 Status: Todo
 
-Task: 0x0d
+Task
 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.
-Status: Done 18 Feb 2001 (sam)
+Urgency: Wishlist
+Platform: any
+Description: Gstreamer and Helix API integration
+See if you can support GStreamer and helix plugins in one way or another.
+Status: Todo
 
-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: 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
+Task
 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: Done (sam)
-
-Task: 0x07
-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.
-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: Done 5 Dec 2000 (Meuuh) because of Input II
+Urgency: Wishlist
+Platform: any
+Description: Gnome-vfs support
+For integration with smb, sftp and other file sharing/mounting methods
+Status: Todo
 
-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: Done 5 Dec 2000 (Meuuh) because of Input II
+Task
+Difficulty: Hard
+Platform: any
+Urgency: Wishlist
+Description: Matroska muxer
+ We need one :)
+Status: Todo
 
-Task: 0x04
+Task
 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.
+Platform: any
+Urgency: Wishlist
+Description: TTA decoder
+  TTA is said to be a fast en good lossless codec. Opensource library
+  availabe: http://tta.corecodec.org/
 Status: Todo
 
-Task: 0x03
-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.
-Status: Done 8 Feb 2001 (sam)
-
-Task: 0x02
+Task
 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.
-Status: Done 12 Feb 2001 (sam)
+Platform: any
+Urgency: Wishlist
+Description: Option to automatically deinterlace when needed
+  Mkv stores wether a video track is interlaced in the traxk descriptor
+  libmpeg2 etc output this information in the header AND on a per-picture basis
+Status: Todo
+
+Task
+Difficulty: Easy
+Platform: any
+Urgency: Wishlist
+Description: UDF decoder
+Support for the new XML based subtitle format called UDF
+Status: Todo
 
-Task: 0x01
+Task
 Difficulty: Hard
+Platform: any
 Urgency: Wishlist
-Description: MGA YUV
- The Matrox acceleration for the vlc does not work yet,
- though there are initialization routines in the code.
+Description: Faster deinterlacing
+Our deinterlacers are relatively slow. DScaler has the best Soft deinterlacers out there.
+Unfortunatly it is very Win32 focused.
 Status: Todo
 
-Task: 0x00
+Task
 Difficulty: Medium
+Platform: any
 Urgency: Wishlist
-Description: Splash screen
- The vlc needs a splash screen with a vlc logo, instead of
- the "waiting for stream" message.
+Description: More service discovery modules
+- Port UPnP support from http://sourceforge.net/project/showfiles.php?group_id=89768 <br />
+- libhal based discovery (should be able to find cd,dvd,capture cards,etc etc <br />
+- Perhaps a generalized webpage parser (use user supplied templates to parse
+   streams from popular websites )
 Status: Todo
 
+Task
+Difficulty: Medium
+Platform: any
+Urgency: Wishlist
+Description: Autoselect a track based on preferred language
+Problems might exist with formats that don't have headers?
+Most part easy to do, because the language info is stored in the ES format structs these days.
+Status: Todo
+
+Task
+Difficulty: Easy
+Platform: win32
+Urgency: Wishlist
+Description: file filters in the open dialog
+Have default filters in the open dialog. like:
+All files<br />
+Sound Files( .mp3, .ogg, .wav, .m4a, .m4p)<br />
+Video Files( .avi, .mkv, .mov, .mpg, .m2v, etc)<br />
+Subtitle Files( .idx, .sub, .utf, .srt)<br />
+Status: Todo
+
+
+# Do not remove me
+Task