]> git.sesse.net Git - vlc/blobdiff - TODO
+ demux/ts.c: gcc < 3 fix
[vlc] / TODO
diff --git a/TODO b/TODO
index 4889e527e65456c8a60d048ac47d7b1e4ebabf95..9b8f5d6ea74dce4d66cb26dd4d33276038803315 100644 (file)
--- a/TODO
+++ b/TODO
-#
-#   vlc tasks
-#   ---------
-#
-#
-# Difficulty values: Easy, Medium, Hard, Guru
-#
-# Urgency values: Wishlist, Normal, Important, Critical
-
-Task: 0x4e
-Difficulty: Hard
-Urgency: High
-Description: Write stream zones support
- For random access we need to know where stream descriptors are valid
- and reside (essentially DVD plugin). -> Meuuh
-Status: Todo
-
-Task: 0x4d
-Difficulty: Hard
-Urgency: Normal
-Description: Write subtitles and stream information in YUV coordinates
- ... so that they can be displayed even in "overlay" mode.
-Status: Todo
-
-Task: 0x4c
-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.
-Status: Todo
-
-Task: 0x4b
-Difficulty: Guru
-Urgency: Low
-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
-Status: Todo
-
-Task: 0x4a
-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
-Status: Todo
-
-Task: 0x49
-Difficulty: Easy
-Urgency: Important
-Description: Write a new buffer allocator
- Avoid malloc()s by reusing the recently released packets. More
- information -> Meuuh
-Status: Todo
-
-Task: 0x48
-Difficulty: Medium
-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.
-Status: Todo
-
-Task: 0x47
-Difficulty: Hard
-Urgency: Normal
-Description: Make decoders dynamically loadable
-Status: Todo
-
-Task: 0x46
-Difficulty: Hard
-Urgency: Normal
-Description: Make input plugins dynamically loadable
- With a probe() function, and stuff...
-Status: Done 7 Feb 2001 (sam)
-
-Task: 0x45
-Difficulty: Guru
-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)
-
-Task: 0x42
-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)
-
-Task: 0x41
-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)
-
-Task: 0x40
-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)
-
-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
-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)
-
-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: 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)
-
-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: Done 23 Nov 2000 (Stef)
-
-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
-Difficulty: Medium
-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: 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 one doesn't know when by some unknown stranger
-
-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
-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)
-
-Task: 0x33
-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)
-
-Task: 0x32
-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: Todo
-
-Task: 0x31
-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)
-
-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: 0x2b
-Difficulty: Hard
-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)
-
-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: 0x29
-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: 0x28
-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: 0x27
-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.
-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.
-Status: Todo
-
-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: 0x23
-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
-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: 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 because of Input II on 5 Dec 2000 (Meuuh)
-
-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: 0x1e
-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.
-Status: Todo
-
-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: 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: 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: Done 16 Jan 2001 (sam)
-
-Task: 0x1a
-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)
-
-Task: 0x17
-Difficulty: Hard
-Urgency: Normal
-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: Done because of Input II on 5 Dec 2000 (Meuuh)
-
-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: Draw a vlc icon
- The vlc needs an icon. It should render well in 48x48 but
- can be any size.
-Status: Todo
-
-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: Done 25 Oct 2000 (reno)
-
-Task: 0x0e
-Difficulty: Easy
-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.
-Status: Todo
-
-Task: 0x0d
-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)
-
-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
-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 because of Input II on 5 Dec 2000 (Meuuh)
-
-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 because of Input II on 5 Dec 2000 (Meuuh)
-
-Task: 0x04
-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.
-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
-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)
-
-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
-
+# VLC Todo\r
+# Difficulty values: Easy, Medium, Hard, Guru\r
+#\r
+# Urgency values: Wishlist, Normal, Important, Critical\r
+\r
+Task\r
+Difficulty: Easy\r
+Urgency: Critical\r
+Platform: any\r
+Description: World domination\r
+ We need to dominate the world\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Medium\r
+Platform: any\r
+Urgency: Wishlist\r
+Description: RAR/ZIP/... access\r
+An access module that would be able to uncompress compressed files.\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Easy\r
+Platform: any\r
+Urgency: Urgent\r
+Description: proper DVD controls\r
+Most importantly a proper button that will take you straight to the DVD menu. But also, next/prev chapter should be integrated with next/prev playlistitem.\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Easy\r
+Platform: Linux, Win32, Mac\r
+Urgency: Normal\r
+Description: Streaming wizard\r
+ Finish the streaming wizard (85% finished)<br />\r
+The mac version is at 0%\r
+Status: Assigned to zorglub\r
+\r
+Task\r
+Difficulty: Easy\r
+Platform: all\r
+Urgency: Normal\r
+Description: configure overview of modules\r
+ configure should report what it will and what it won't build, after it is done running.\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Hard\r
+Platform: WinCE\r
+Urgency: Wishlist\r
+Description: WinCE port finalizing\r
+Sources need to be imported into the VLC source tree.\r
+Downloads should be added to the main vlc download page. We need an icon for this. \r
+Status: Assigned to MixerAnderson\r
+\r
+Task\r
+Difficulty: Hard\r
+Urgency: Normal\r
+Platform: any\r
+Description: Dual window in embed mode\r
+Windows taskbar reports two windows in the video embed mode.\r
+Status: Assigned to gibalou\r
+\r
+Task\r
+Difficulty: Easy\r
+Urgency: Normal\r
+Platform: any\r
+Description: Multichannel downmixing\r
+5:1 to Stereo proper downmixing\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Guru\r
+Urgency: Normal\r
+Platform: any\r
+Description: External audio file playin\r
+ Allow several access from an input thread to allow for multi-input (30% done)\r
+Status: Assigned to fenrir\r
+\r
+Task\r
+Difficulty: Hard\r
+Urgency: Normal\r
+Platform: any\r
+Description: make everything UTF-8 based\r
+ 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.\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Medium\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: Full blown OSD system \r
+ In the line of freevo etc.\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Medium\r
+Urgency: Normal\r
+Platform: any\r
+Description: Rewrite the SAP parser\r
+ The SAP parser is very dirty at the moment, and needs a complete rewrite.\r
+ - caching support\r
+Status: Assigned to zorglub\r
+\r
+Task\r
+Difficulty: Medium\r
+Urgency: Normal\r
+Platform: any\r
+Description: Tree playlist\r
+ A hierarchized playlist structure, eventually using a media library.\r
+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>\r
+Status: Assigned to zorglub\r
+\r
+Task\r
+Difficulty: Easy\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: GSM decoder\r
+The <a href="http://kbs.cs.tu-berlin.de/~jutta/toast.html">Toast</a> implementation.\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Easy\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: AMR decoder\r
+We will need to find one that isn't based on the reference code.\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Easy\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: MusePack decoder\r
+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.\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Easy\r
+Urgency: Normal\r
+Platform: any\r
+Description: 24 bit LPCM\r
+- Increasingly more DVDs use 24 bit LPCM sound. We should support it.\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Easy\r
+Urgency: Normal\r
+Platform: Mac OS X\r
+Description: LPCM\r
+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.\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Easy\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: APE decoder\r
+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.\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Easy\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: flash video playing/streaming\r
+A flash video muxer and demuxer. FFMPEG can already output flash video. a wast not to make use of that capability.\r
+Status: Todo\r
+\r
+Task\r
+Task\r
+Difficulty: Medium\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: Closed Captions/Teletext support\r
+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.\r
+Perhaps look at Xawtv, dvbtext and other vbi, vtx systems.\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Medium\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: DVB info in NIT\r
+We need to get the information of a DVB stream that are in the NIT (current program, next program, ...)\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Medium\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: IceCast/ShoutCast serving\r
+This would be a nice thing for the sake of completeness of VLC's streaming capabilities.\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Hard\r
+Urgency: Normal\r
+Platform: Mac OS X\r
+Description: New OS X preferences\r
+ New preferences for Mac OS X. Current not suited for Mac Users and several\r
+Pref. elements are broken (hotkeys and int with string desc.).\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Hard\r
+Urgency: Critical\r
+Platform: OSX\r
+Description: CoreAudio multichannel audio output.\r
+ Convert to <a href="http://www.mat.ucsb.edu:8000/CoreAudio/108">AUHAL</a> based sytem.\r
+Still no info over S/PDIF output available.\r
+Outstanding issues:<br />\r
+ - G5 S/PDIF not working<br />\r
+ - G5 PCM not working because S/PDIF is selected by default, even if not connected.<br />\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Hard\r
+Urgency: Normal\r
+Platform: any\r
+Description: Stream text subtitles\r
+ Find a a way to stream text subtitles, in TS and in RTP.\r
+  - Find an existing norm\r
+  - Implement it\r
+(40% done) needs to be tested and validated\r
+Status: Assigned to fenrir\r
+\r
+Task\r
+Difficulty: Easy\r
+Urgency: Normal\r
+Platform: any\r
+Description: Fix up text subtitles\r
+Currently the subtitle dialog boxes are out of date and not really useable. Also we need more files to test and verify the current support. Other issues should mostly be dealt with after the vout systems are improved. For SSA support positioning and color needs to be added for instance.\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Hard\r
+Urgency: Normal\r
+Platform: any\r
+Description: Rework spu decoder\r
+ The spu decoder needs some serious work\r
+  - Split/merge for dvd menu highlighting\r
+  - Downscaling for divx/mkv etc\r
+  - .sub/.idx support\r
+Status: todo\r
+\r
+Task\r
+Difficulty: Hard\r
+Urgency: Normal\r
+Platform: any\r
+Description: RTSP server\r
+Full implementation of a RTSP server.\r
+Status: fenrir has some code\r
+\r
+Task\r
+Difficulty: Hard\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: Picture filters\r
+picture per picture chained filter system that also works on output streams\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Guru\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: Vout redesign\r
+- vout needs distinct splitting into vout_core, vout_window, pic_filter, vout_filter\r
+- needs 'assistence' vout windows (clone filters, goom) etc.\r
+- 4:3, 16:9, freeform Aspect Ratio\r
+- cropping and padding (do at OS level, but provide a core call to set it up and configure).\r
+- OSD at window resolution instead of video res (secondary vout channel)\r
+- a OSD needs to be bound to a vout stream (no subs on goom vout)\r
+- 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).\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Medium\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: SPU redesign\r
+- centralized scaling support\r
+(also look at ogt/cvd sub work)\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Guru\r
+Urgency: Wishlist\r
+Platform: Mac OS X\r
+Description: skins2\r
+Port VLC skins to Objective C++ and OSX. Also requires the intf to be a dialog handler.\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Easy\r
+Urgency: Wishlist\r
+Platform: Mac OS X\r
+Description: Equalizer Graphic control\r
+Now that VLC has an equalizer, we need a way to control it easily from the GUI.\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Hard\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: informing user.\r
+Implement a system to: <br />\r
+ - Alert the user of critical errors (cannot play file). Should be blocking. <br />\r
+ - Ask the user a question (Are you sure? or Try to Fix index of avi? or Overwrite File?)<br />\r
+ - 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 /> \r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Hard\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: Full H323 Videoconferencing\r
+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.\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Guru\r
+Urgency: Normal\r
+Platform: Mac OS X\r
+Description: SVCD support\r
+libcdio needs to be ported to the Mac to support the cddax and vcdx modules for proper SVCD support\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Hard \r
+Urgency: Wishlist\r
+Platform: Mac OS X\r
+Description: QuickTime capturing\r
+Allow capturing from QuickTime Firewire, USB and PCI devices.\r
+Possibly see: <a href="http://bugzilla.videolan.org/cgi-bin/bugzilla/show_bug.cgi?id=416">Bug 416</a>\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Medium\r
+Urgency: Normal\r
+Platform: Mac OS X\r
+Description: Finish Mac Mozilla plugin\r
+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. \r
+Status: Halfway (stalled)\r
+\r
+Task\r
+Difficulty: Easy\r
+Urgency: Normal\r
+Platform: any\r
+Description: Controlling the mozilla plugin\r
+The mozilla plugin needs to be better controllable (via javascript). \r
+- retrieve variable values.\r
+- open VLC media player\r
+- default html page to control the plugin\r
+- XUL controls\r
+(80% done) see:\r
+<a href="http://sierra.via.ecp.fr/~zorglub/vlc/plugin/vlc.html">Javascript controls</a>\r
+<a href="http://sierra.via.ecp.fr/~zorglub/vlc/xul/">XUL controls</a>\r
+Status: Assigned to zorglub\r
+\r
+Task\r
+Difficulty: Hard\r
+Urgency: Wishlist\r
+Platform: Windows\r
+Description: ActiveX control for VLC\r
+ We need an ActiveX version of VLC for IE intergration\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Easy\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: export paramaters of an input\r
+ 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 />\r
+ - AR<br />\r
+ - size<br />\r
+ - bitrate<br />\r
+ - resolution<br />\r
+ - codecs, etc.<br />\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Easy\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: SSL http\r
+SSL encrypted HTTP communication. To support protected VoD.<br />\r
+The question is how to neatly integrate it into our API. Support for all our http handling plugins means complicating the API. Perhaps we should store the SSL context in the p_sys of the vlc_object that is calling it? Tad dangerous, but would keep stuff simple.\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Hard\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: http cookies\r
+For protected VoD  (http://a-select.surfnet.nl)\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Easy\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: mime-type VLC launching\r
+Allow application/vlc mimetype to launch VLC instead of plugin for video file.\r
+Allows for Progressive download to TEMP folder from browsers. VLC would play the file in the TEMP.\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Medium\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: rendezvous announces\r
+Apple released the rendezvous code under a Open Source license now. perhaps it can be used. (It's OpenTalk now btw).<br />\r
+DMAP protocol announce for videos.\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Easy\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: SDL vout cleaning\r
+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.\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Easy\r
+Urgency: Normal\r
+Platform: Win32/Linux\r
+Description: V4L and dshow tuning support\r
+We need an API that allows us to control the tuning of V4L and dshow TV cards.\r
+Status: Todo (CryHavoc)\r
+\r
+Task\r
+Difficulty: Easy\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: Electronic Program Guide\r
+Integrate a EPG system into VLC.\r
+Status: Todo (CryHavoc)\r
+\r
+Task\r
+Difficulty: Hard\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: a Time Shifting module\r
+This module should create TiVo like capabilities for VLC.\r
+Status: Todo (CryHavoc)\r
+\r
+Task\r
+Difficulty: Medium\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: UDP packet reordering\r
+Currently we ignore every packet that is too late and just wait for a fresh one.\r
+It would be nice to be able to reorder the packets in the buffer to prevent degredation of the signal.\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Easy\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: Make vlm more user friendly (setup etc)\r
+vlm is kinda a pain to setup if you are not entirely experienced with A/V and streaming or VLC for that matter. It can be heavily improved by updating the vlm http interface. Using seperate fields for the need paramters of a schedule/source.\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Easy\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: Protocol rollover\r
+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.\r
+However, how spec compliant can this be?<br />\r
+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.\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Hard\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: NAT issues\r
+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 ????\r
+Protocol rollover can be a solution for a lot of these issues.\r
+Use full DNS names in SDP\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Medium\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: Gstreamer and Helix API integration\r
+See if you can support GStreamer and helix plugins in one way or another.\r
+Status: Todo\r
+\r
+Task\r
+Difficulty: Easy\r
+Urgency: Wishlist\r
+Platform: any\r
+Description: Gnome-vfs support\r
+For integration with smb, sftp and other file sharing/mounting methods\r
+Status: Todo\r
+\r
+# Do not remove me\r
+Task\r