X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=TODO;h=84da9407f305e9daa7e70900b30bb7de7b1843a2;hb=0765875ab57be4156314514c4d71577a6a4ca1d0;hp=cde7a788a2b2082a9e21c7df62665ae5df913f51;hpb=8ff71feaa37a8d3581106f3a187de1bcd926ccd1;p=vlc diff --git a/TODO b/TODO index cde7a788a2..84da9407f3 100644 --- a/TODO +++ b/TODO @@ -7,217 +7,222 @@ # # Urgency values: Wishlist, Normal, Important, Critical -Task: 0x00 +Task: 0x36 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 +Urgency: Normal +Description: Finish the new keyboard input interface to support +interfaces that allow modifiers. This will allow the SDL to run +properly. -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. +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: Todo -Task: 0x02 +Task: 0x34 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. +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: Todo -Task: 0x03 +Task: 0x33 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. +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: Todo -Task: 0x04 +Task: 0x32 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. +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: 0x05 +Task: 0x31 Difficulty: Easy -Urgency: Important -Description: vlms backport - 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: Todo +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. -Task: 0x06 -Difficulty: Guru +Task: 0x30 +Difficulty: Hard 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. +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 -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. +Task: 0x29 +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: Todo -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. +Task: 0x28 +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: 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: 0x0a +Task: 0x27 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. +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: 0x0b +Task: 0x26 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) +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: Todo -Task: 0x0c +Task: 0x25 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. +Urgency: Wishlist +Description: MP3 support + The vlc cannot play MPEG1/2 layer 3 yet. It might be nice to fix that. 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. +Task: 0x24 +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: 0x0e -Difficulty: Easy +Task: 0x24 +Difficulty: Guru 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. +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: 0x0f -Difficulty: Easy +Task: 0x23 +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. +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: Todo -Task: 0x10 -Difficulty: Easy +Task: 0x22 +Difficulty: Medium Urgency: Normal -Description: vlc icon - The vlc needs an icon. It should render well in 48x48 but - can be any size. +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: Todo -Task: 0x11 -Difficulty: Hard +Task: 0x21 +Difficulty: Medium 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. +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: 0x12 -Difficulty: Medium +Task: 0x20 +Difficulty: Hard Urgency: Important -Description: Fix 32bpp MMX YUV - The MMX 32bpp YUV function is buggy. +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: Todo -Task: 0x13 +Task: 0x1f 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. +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 -Task: 0x14 -Difficulty: Guru +Task: 0x1e +Difficulty: Hard Urgency: Wishlist -Description: Debug MPEG1 video - The MPEG1 support has been done, but it still crashes. +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: 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. +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: 0x16 -Difficulty: Medium +Task: 0x1c +Difficulty: Guru 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. +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: 0x17 +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: Todo + +Task: 0x1a +Difficulty: Easy Urgency: Normal -Description: Add 24bpp YUV - There is no 24bpp support yet. Add it, either in MMX - or in C. +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 +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 @@ -230,81 +235,216 @@ Description: Split interface/video_output work. Status: Todo -Task: 0x19 +Task: 0x17 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: 0x1a +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: Todo + +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: 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 +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: Make interface more responsive +Description: Draw a vlc icon + The vlc needs an icon. It should render well in 48x48 but + can be any size. 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. + +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: Todo -Task: 0x1b -Difficulty: Hard +Task: 0x0e +Difficulty: Easy Urgency: Wishlist -Description: modularize decoder - Make the decoder a plugin, so that two versions can coexist - without recompilation (MMX and non-MMX). +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: 0x1c -Difficulty: Guru +Task: 0x0d +Difficulty: Medium 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. +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: 0x1d +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 + +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: LPCM decoder - The LPCM decoder is full of stubs, it only parses the stream - but does not decode it. Fix this. +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: Todo -Task: 0x1e +Task: 0x07 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 +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: 0x1f -Difficulty: Hard +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: Todo + +Task: 0x05 +Difficulty: Easy +Urgency: Important +Description: Backport vlms input + The vlc uses the same file input code as the vlms (VideoLAN + Mini Server) which has been much improved. Someone should + port modifications done to the vlms back to the vlc. +Status: Todo + +Task: 0x04 +Difficulty: Medium 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. +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: 0x20 +Task: 0x03 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. +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: Todo -Task: 0x21 +Task: 0x02 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. +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: Todo +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 + +