X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=TODO;h=2d4aac3f8416fca362dc526a129be761d86888b9;hb=7c5b76166022babcb1519c0aa038867b3f5f7d06;hp=84da9407f305e9daa7e70900b30bb7de7b1843a2;hpb=0765875ab57be4156314514c4d71577a6a4ca1d0;p=vlc diff --git a/TODO b/TODO index 84da9407f3..2d4aac3f84 100644 --- a/TODO +++ b/TODO @@ -1,450 +1,409 @@ -# -# vlc tasks -# --------- -# -# +# VLC Todo # Difficulty values: Easy, Medium, Hard, Guru # # Urgency values: Wishlist, Normal, Important, Critical -Task: 0x36 -Difficulty: Medium -Urgency: Normal -Description: Finish the new keyboard input interface to support -interfaces that allow modifiers. This will allow the SDL to run -properly. - -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. +Task +Difficulty: Easy +Urgency: Critical +Platform: any +Description: World domination + We need to dominate the world Status: Todo -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. +Platform: any +Urgency: Wishlist +Description: RAR/ZIP/... access + An access module that would be able to uncompress compressed files Status: Todo -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. +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. Status: Todo -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 +Difficulty: Easy +Platform: Linux, Win32 +Urgency: Normal +Description: Streaming wizard + Finish the streaming wizard +Status: Assigned to zorglub -Task: 0x31 +Task Difficulty: Easy +Platform: all 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: Todo. +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: 0x30 +Task 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: Todo +Platform: WinCE +Urgency: Wishlist +Description: WinCE port + A WinCE port for PocketPC and the likes. (95% finished) +Status: Assigned to MixerAnderson -Task: 0x29 -Difficulty: Medium +Task +Difficulty: Hard +Urgency: Normal +Platform: any +Description: Embedded video outputs + Embedded video outputs support +Status: Assigned to gibalou + +Task +Difficulty: Easy 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. +Platform: any +Description: Multichannel downmixing +5:1 to Stereo proper downmixing Status: Todo -Task: 0x28 +Task 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. +Platform: any +Urgency: Normal +Description: Demux2 transition + Complete the transition to demux2, changing what is needed in dvd and dvb +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 +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: 0x27 +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. -Status: Todo +Platform: any +Description: OSD Icons + Make OSD Icons for Play/Pause/Stop +Status: Assigned to yoann -Task: 0x26 +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. +Urgency: Wishlist +Platform: any +Description: Full blown OSD system + In the line of freevo etc. Status: Todo -Task: 0x25 -Difficulty: Hard -Urgency: Wishlist -Description: MP3 support - The vlc cannot play MPEG1/2 layer 3 yet. It might be nice to fix that. +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 + - sdp file support? (because live.com doesn't handle udp announces) Status: Todo -Task: 0x24 -Difficulty: Hard +Task +Difficulty: Medium 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. +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. 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: GSM decoder +GSM decoder not based on standard reference sources. 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. +Task +Difficulty: Easy +Urgency: Wishlist +Platform: any +Description: MusePack decoder +Need I say more? Status: Todo -Task: 0x22 -Difficulty: Medium +Task +Difficulty: Easy 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/ +Platform: any +Description: 24 bit LPCM +Increasingly more DVDs use 24 bit LPCM sound. We should support it. Status: Todo -Task: 0x21 +Task Difficulty: Medium -Urgency: Normal -Description: Implement pause - There is no real `pause' command yet. Pausing just stops - displaying and sound playback, but the streams continues to - be decoded. One will have to do a file implementation as - well as a network implementation. -Status: Todo - -Task: 0x20 -Difficulty: Hard -Urgency: Important -Description: 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. +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: 0x1f +Task 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: Todo +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: 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. +Urgency: Critical +Platform: OSX +Description: CoreAudio multichannel audio output. Convert to +AUHAL based sytem. +Still no info over S/PDIF output available. 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. +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 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: 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: Todo - -Task: 0x1a -Difficulty: Easy Urgency: Normal -Description: Make interface more responsive -Status: Todo - When in "waiting for stream" mode, the interface is refreshed - every 5 seconds. This is too long, and can be confusing for - the user. Make it refresh at least after a keyboard/mouse event. -Status: Todo - -Task: 0x19 +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 -Description: Support MP1 and MP3 - The vlc does not support all MPEG1 audio formats yet, nor - does it support MPEG1/2 layer 3. - -Task: 0x18 -Difficulty: Guru -Urgency: Wishlist -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: Todo +Platform: any +Description: RTSP server +Full implementation of a RTSP server. +Status: fenrir has some code -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: Picture filters +picture per picture chained filter system that also works on output streams Status: Todo -Task: 0x16 +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: 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) +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: 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 +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. +Status: Todo -Task: 0x14 +Task Difficulty: Guru Urgency: Wishlist -Description: Debug MPEG1 video - The MPEG1 support has been done, but it still crashes. +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: 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. +Platform: any +Description: Equalizer +Implement an equilizer for VLC. Status: Todo -Task: 0x12 -Difficulty: Medium -Urgency: Important -Description: Fix 32bpp MMX YUV - The MMX 32bpp YUV function is buggy. -Status: Done 13 Aug 2000 (sam) - -Task: 0x11 +Task 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: 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: 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. +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: 0x0f -Difficulty: Easy +Task +Difficulty: Guru 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. +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: 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: Mac OS X +Description: QuickTime capturing +Allow capturing from QuickTime Firewire, USB and PCI devices. +Possibly see: Bug 416 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: 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: Todo +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: 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 +Task 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. +Platform: any +Description: Controlling the mozilla plugin +The mozilla plugin needs to be better controllable (via javascript). +- retrieve variable values. +- open VLC media player +- (look at fen-php?) Status: Todo -Task: 0x07 +Task 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: Todo - -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. +Urgency: Wishlist +Platform: Windows +Description: ActiveX control for VLC + We need an ActiveX version of VLC for IE intergration Status: Todo -Task: 0x05 +Task 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. +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: 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. +Task +Difficulty: Easy +Urgency: Wishlist +Platform: any +Description: SSL http +SSL encrypted HTTP communication. To support protected VoD. Status: Todo -Task: 0x03 +Task 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. +Urgency: Wishlist +Platform: any +Description: http cookies +For protected VoD (http://a-select.surfnet.nl) Status: Todo -Task: 0x02 -Difficulty: Medium -Urgency: Normal -Description: Better Gnome interface - The Gnome interface has many stubs and is actually rather - unfunctional. Someone should make the buttons work when - the appropriate hooks exist. +Task +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: 0x01 +Task 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. +Platform: any +Description: rendezvous announces +DMAP protocol announce for videos. Status: Todo -Task: 0x00 -Difficulty: Medium +Task +Difficulty: Easy Urgency: Wishlist -Description: Splash screen - The vlc needs a splash screen with a vlc logo, instead of - the "waiting for stream" message. +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) +# Do not remove me +Task