vlc/TODO

696 lines
22 KiB
Plaintext

# 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: Guru
Platform: any
Urgency: Critical
Description: Clock Synchro redesign
We need to adapt the clock synchro to work better with BOTH files and streams.
Status: Todo
Task
Difficulty: Easy
Platform: any
Urgency: Normal
Description: cli option for audio-channels
It's currently not possible to force VLC from stereo to mono mode, or from stereo to reverse stereo or dolby mode. It's one of the few options in VLC that can not yet be forced from Preferences or the commandline.
Status: Todo
Task
Difficulty: Hard
Platform: any
Urgency: Wishlist
Description: Java wrapping/bindings
Allow java apps to use VLC perhaps? Several people have suggested something like this.
Status: Todo
Task
Difficulty: Easy
Platform: win32/macosx
Urgency: Normal
Description: OS contextual menu support
Create contextual menus for the OS so you can play or enqueue files from the Finder/Explorer directly into VLC. Much like with for instance Winamp.
Status: Todo
Task
Difficulty: Hard
Urgency: Critical
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
Difficulty: Medium
Platform: Any
Urgency: Critical
Description: fix subtitle regressions
Investigate behaviour of subpictures when pausing.<br />
Status: Todo
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: Streaming wizard
Make a Streaming wizard for OS X
Status: Todo
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
Urgency: Normal
Platform: any
Description: Dual window in embed mode
Windows taskbar reports two windows in the video embed mode.
Status: Done
Task
Difficulty: Guru
Urgency: Normal
Platform: any
Description: Multi-input
* Many demuxers don't support it<br />
* Need GUI elements
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: Normal
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 />
- *** Consider changing calls to playlist_Control into playlist_LockControl
- * "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 (http://xspf.xiph.org/ looks like a good idea)<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 />
- ** 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
Difficulty: Easy
Urgency: Normal
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
Difficulty: Medium
Urgency: Normal
Platform: any
Description: fix current muxers.<br />
Our avi muxer doesn't produce valid files<br />
Status: Todo
Task
Difficulty: Easy
Urgency: Normal
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.<br />
This is now fixed, but there is a problem with buffers in the resampler that now sometimes overflows (or rather get changed after they are released). A good method for reproduction seems to be running Finding Nemo for a minute or 8.
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: Todo
Task
Difficulty: Easy
Urgency: Normal
Platform: Mac OS X
Description: OS X bookmarks window
We miss a bookmarks window like the wxwidget one.
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. Mostly done now,
needs testing.
Status: 90%
Task
Difficulty: Easy
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
Difficulty: Medium
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 />
Status: Todo
Task
Difficulty: Guru
Urgency: Normal
Platform: Mac OS X
Description: SVCD support
Support the cddax and vcdx modules for proper SVCD support. libcdio seems to work a tad flacky under OS X. Cause is unknown.
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.<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
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: Medium
Platform: any
Urgency: Wishlist
Description: RAR/ZIP/... access
An access module that would be able to uncompress compressed files.
Status: Todo
Task
Difficulty: Medium
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
Difficulty: Hard
Platform: WinCE
Urgency: Wishlist
Description: WinCE port finalizing
The WinCE port needs a little maturing and optimization.
Status: Assigned to gibalou
Task
Difficulty: Medium
Urgency: Wishlist
Platform: any
Description: Full blown OSD system
In the line of freevo etc.
(Checkout the correct svn branch)
Status: 80% done. Assigned to thedj, jpsaman and yoann
Task
Difficulty: Easy
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
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
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>. We are awaiting MPC 7.5 or 8.0 specification which should split the codec from the fileformat.
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. This codec is currently not GPL compatible. We will have to await a GPL compatible implementation of this.
Status: Todo
Task
Difficulty: Easy
Urgency: Wishlist
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
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.<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
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: Easy
Urgency: Wishlist
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)<br />
- ideas for new filters are a greenwall filter, and a goom filter that mixes goom effects into the vout.
Status: Todo
Task
Difficulty: Guru
Urgency: Normal
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 />
- Allow a vout to reuse a window by resizing it (instead of closing and opening).
- better hotkeys integration
Status: Todo
Task
Difficulty: Medium
Urgency: Wishlist
Platform: any
Description: Subtitle work
- better SSA support with postioning, colors etc.<br />
Status: Todo
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
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. There is already some code in the VLC sourcetree.<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
Difficulty: Hard
Urgency: Wishlist
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
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 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
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: 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".<br />
- AR<br />
- size<br />
- bitrate<br />
- resolution<br />
- codecs, etc.<br />
Status: Todo
Task
Difficulty: Hard
Urgency: Wishlist
Platform: any
Description: statistics
Count packetloss, bandwith usage and fps for statistics.<br />
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: 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
Difficulty: Medium
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
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 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
Difficulty: Easy
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
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 ????
Protocol rollover can be a solution for a lot of these issues.
Use full DNS names in SDP
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
Task
Difficulty: Hard
Platform: any
Urgency: Wishlist
Description: Matroska muxer
We need one :)
Status: Todo
Task
Difficulty: Medium
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
Difficulty: Medium
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
Difficulty: Hard
Platform: any
Urgency: Wishlist
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
Difficulty: Medium
Platform: any
Urgency: Wishlist
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: 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
Task
Difficulty: Medium
Platform: any
Urgency: Wishlist
Description: OpenGL improvements
OpenGL extensions can be querried at runtime using the glGetString(
GL_EXTENSIONS ) call. Both rectangular textures and yuv textures may be
available at non-apple platform (or even not available on some macs).<br />
More fancy stuff can be done with GL, like subpicture rendering.<br />
With recent hardware (and opengl shading language) stuff like dct, motion
compensation or postprocessing should be possible.
Task
Difficulty: Medium
Platform: any
Urgancy: Wishlist
Description: Gnutella servlet
A simple gnutella servlet, combined with vlc's stream output/input features
would make it fairly easy to implement peercast streaming, and peercast
playback with restreaming. Also I guess gnutella could be used for other
things as well, like discovering services.
# Do not remove me
Task