# VLC Todo
# Difficulty values: Easy, Medium, Hard, Guru
#
# Urgency values: Wishlist, Normal, Important, Critical

Task
Difficulty: Easy
Urgency: Critical
Platform: any
Description: World domination
 We need to dominate the world
Status: Todo

Task
Difficulty: Medium
Platform: any
Urgency: Wishlist
Description: RAR/ZIP/... access
 An access module that would be able to uncompress compressed files
Status: Todo

Task
Difficulty: Easy
Platform: any
Urgency: Urgent
Description: proper DVD controls
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.
Status: Todo

Task
Difficulty: Easy
Platform: Linux, Win32
Urgency: Normal
Description: Streaming wizard
 Finish the streaming wizard (85% finished)
Status: Assigned to zorglub

Task
Difficulty: Easy
Platform: all
Urgency: Normal
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
Difficulty: Hard
Platform: WinCE
Urgency: Wishlist
Description: WinCE port
 A WinCE port for PocketPC and the likes. (95% finished)
Status: Assigned to MixerAnderson

Task
Difficulty: Hard
Urgency: Normal
Platform: any
Description: Embedded video outputs
 Embedded video outputs support
Status: Assigned to gibalou

Task
Difficulty: Easy
Urgency: Normal
Platform: any
Description: Multichannel downmixing
5:1 to Stereo proper downmixing
Status: Todo

Task
Difficulty: Guru
Platform: any
Urgency: Normal
Description: Demux2 transition
 Complete the transition to demux2. Bughunting and finishing chapter support (80% done)
Status: Assigned to fenrir

Task
Difficulty: Guru
Urgency: Normal
Platform: any
Description: Multi-acccess
 Allow several access from an input thread to allow for multi-input (30% done)
Status: Assigned to fenrir

Task
Difficulty: Hard
Urgency: Normal
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
Difficulty: Medium
Urgency: Wishlist
Platform: any
Description: no blocking primary interface
Do away with the strange primary blocking interface. The first interface should be run in the same thread, but not be the blocking call. Load other interfaces in new threads.
Status: Todo

Task
Difficulty: Medium
Urgency: Wishlist
Platform: any
Description: OSD Icons
 Make OSD Icons for Play/Pause/Stop. Integrate them better into the core system.
Status: Assigned to yoann

Task
Difficulty: Medium
Urgency: Wishlist
Platform: any
Description: Full blown OSD system 
 In the line of freevo etc.
Status: Todo

Task
Difficulty: Medium
Urgency: Normal
Platform: any
Description: Rewrite the SAP parser
 The SAP parser is very dirty at the moment, and needs a complete rewrite.
 - caching support
Status: Todo

Task
Difficulty: Medium
Urgency: Normal
Platform: any
Description: Tree playlist
 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</a>
Status: Todo

Task
Difficulty: Easy
Urgency: Wishlist
Platform: any
Description: GSM decoder
GSM decoder not based on standard reference sources.
Status: Todo

Task
Difficulty: Easy
Urgency: Wishlist
Platform: any
Description: MusePack decoder
Need I say more? <a href="http://www.hydrogenaudio.org/index.php?showtopic=21775&">MPCdec</a>
Status: Todo

Task
Difficulty: Easy
Urgency: Normal
Platform: any
Description: 24 bit LPCM
- Increasingly more DVDs use 24 bit LPCM sound. We should support it.
Status: Todo

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.
Status: Todo

Task
Task
Difficulty: Medium
Urgency: Wishlist
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.
Perhaps look at Xawtv, dvbtext and other vbi, vtx systems.
Status: Todo

Task
Difficulty: Medium
Urgency: Wishlist
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
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
Difficulty: Hard
Urgency: Normal
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: Assigned to thedj

Task
Difficulty: Hard
Urgency: Critical
Platform: OSX
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 />
 - Coreaudio resampler doesn't handle input from lpcm decoder (the samples are too small).
Status: Todo

Task
Difficulty: Hard
Urgency: Normal
Platform: any
Description: Stream text subtitles
 Find a a way to stream text subtitles, in TS and in RTP.
  - Find an existing norm
  - Implement it
(40% done) needs to be tested and validated
Status: Assigned to fenrir

Task
Difficulty: Easy
Urgency: Normal
Platform: any
Description: Fix up text subtitles
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, and the rendering of the subs should be sped up quite a bit (issue with outlining?) Other issues should mostly be dealt with after the vout systems are improved.

Status: Todo

Task
Difficulty: Hard
Urgency: Normal
Platform: any
Description: Rework spu decoder
 The spu decoder needs some serious work
  - Split/merge for dvd menu highlighting
  - Downscaling for divx/mkv etc
  - Chroma independence
  - .sub/.idx support
Status: todo

Task
Difficulty: Hard
Urgency: Normal
Platform: any
Description: RTSP server
Full implementation of a RTSP server.
Status: fenrir has some code

Task
Difficulty: Hard
Urgency: Wishlist
Platform: any
Description: Picture filters
picture per picture chained filter system that also works on output streams
Status: Todo

Task
Difficulty: Guru
Urgency: Wishlist
Platform: any
Description: Vout redesign
- vout needs distinct splitting into vout_core, vout_window, pic_filter, vout_filter
- needs 'assistence' vout windows (clone filters, goom) etc.
- 4:3, 16:9, freeform Aspect Ratio
- cropping and padding (do at OS level, but provide a core call to set it up and configure).
- OSD at window resolution instead of video res (secondary vout channel)
- a OSD needs to be bound to a vout stream (no subs on goom vout)
- 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).
Status: Todo

Task
Difficulty: Medium
Urgency: Wishlist
Platform: any
Description: SPU redesign
- multiple subpicture channels
- centralized rendering and use of chroma filters
- centralized scaling support
(also look at ogt/cvd sub work)
Status: Todo

Task
Difficulty: Guru
Urgency: Wishlist
Platform: Mac OS X
Description: intf / vout dependency
The application specific parts of the intf need to be brougth to the VLC application core. A valid NSApplication needs to be created on VLC opening, with the dock and menu hidden/disabled, only being generated on VLC intf loading.
(70% done) need to fix the interfaces again.
Status: Assigned to DJ

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 handler. Is slighly dependant on intf/vout dependency todoitem
Status: Todo

Task
Difficulty: Hard
Urgency: Wishlist
Platform: any
Description: Equalizer
Implement an equilizer for VLC.
Status: Todo

Task
Difficulty: Hard
Urgency: Wishlist
Platform: any
Description: informing user.
Implement a system to
 - Alert the user of critical errors (cannot play file)
 - Ask the user a question (Are you sure? or Try to Fix index of avi? or Overwrite File?)
 - Inform the user, without disturbing him. (Buffering stream)
Status: Todo

Task
Difficulty: Hard
Urgency: Wishlist
Platform: any
Description: Full H323 Videoconferencing
VLC isn't really suited for this yet, because it introduces quite large latencies. This should fixed before the H323 can ever come close to working in VLC.
Status: Todo

Task
Difficulty: Guru
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
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
Difficulty: Medium
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
Difficulty: Easy
Urgency: Normal
Platform: any
Description: Controlling the mozilla plugin
The mozilla plugin needs to be better controllable (via javascript). 
- retrieve variable values.
- open VLC media player
- default html page to control the plugin
- XUL controls
(80% done) see:
<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>
Status: Assigned to zorglub

Task
Difficulty: Hard
Urgency: Wishlist
Platform: Windows
Description: ActiveX control for VLC
 We need an ActiveX version of VLC for IE intergration
Status: Todo

Task
Difficulty: Easy
Urgency: Wishlist
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".
 - AR
 - size
 - bitrate
 - resolution
 - codecs, etc.
Status: Todo

Task
Difficulty: Easy
Urgency: Wishlist
Platform: any
Description: SSL http
SSL encrypted HTTP communication. To support protected VoD.
Status: Todo

Task
Difficulty: Hard
Urgency: Wishlist
Platform: any
Description: http cookies
For protected VoD  (http://a-select.surfnet.nl)
Status: Todo

Task
Difficulty: Easy
Urgency: Wishlist
Platform: any
Description: mime-type VLC launching
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
Difficulty: Hard
Urgency: Wishlist
Platform: any
Description: rendezvous announces
DMAP protocol announce for videos.
Status: Todo

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
Difficulty: Easy
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
Difficulty: Easy
Urgency: Wishlist
Platform: any
Description: Electronic Program Guide
Integrate a EPG system into VLC.
Status: Todo (CryHavoc)

Task
Difficulty: Hard
Urgency: Wishlist
Platform: any
Description: a Time Shifting module
This module should create TiVo like capabilities for VLC.
Status: Todo (CryHavoc)

Task
Difficulty: Medium
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
Difficulty: Easy
Urgency: Wishlist
Platform: any
Description: Make vlm more user friendly (setup etc)
vlm is kinda a pain to setup if you are not entirely experiences with A/V and streaming or VLC for that matter. It can be heavily improved by updating the vlm http interface.
Status: Todo

Task
Difficulty: Medium
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?
Status: Todo

Task
Difficulty: Hard
Urgency: Wishlist
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 ????
Status: Todo

Task
Difficulty: Medium
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
Difficulty: Easy
Urgency: Wishlist
Platform: any
Description: Gnome-vfs support
For integration with smb, sftp and other file sharing/mounting methods
Status: Todo

# Do not remove me
Task
