]> git.sesse.net Git - vlc/blob - TODO
input.c, vlc_demux.h: allow seeking back in the same chapter
[vlc] / TODO
1 # VLC Todo
2 # Difficulty values: Easy, Medium, Hard, Guru
3 #
4 # Urgency values: Wishlist, Normal, Important, Critical
5
6 Task
7 Difficulty: Easy
8 Urgency: Critical
9 Platform: any
10 Description: World domination
11  We need to dominate the world
12 Status: Todo
13
14 Task
15 Difficulty: Guru
16 Platform: any
17 Urgency: Critical
18 Description: Clock Synchro redesign
19 We need to adapt the clock synchro to work better with BOTH files and streams.
20 Status: Todo
21
22 Task
23 Difficulty: Hard
24 Urgency: Critical
25 Platform: Mac OS X
26 Description: CoreAudio multichannel audio output.
27  Convert to <a href="http://www.mat.ucsb.edu:8000/CoreAudio/108">AUHAL</a> based sytem.
28 Still no info over S/PDIF output available.
29 Outstanding issues:<br />
30  - G5 S/PDIF not working<br />
31  - G5 PCM not working because S/PDIF is selected by default, even if not connected.<br />
32 Status: Todo
33
34 Task
35 Difficulty: Medium
36 Platform: Any
37 Urgency: Critical
38 Description: fix subtitle regressions
39 Multi-line subtitles are not aligned correctly.<br />
40 Text subtitles don't work with 32bpp rgb.<br />
41 Investigate behaviour of subpictures when pausing.<br />
42 Negative delaying broken<br />
43 Status: Todo
44
45
46 Task
47 Difficulty: Easy to Difficult
48 Platform: Any
49 Urgency: Important
50 Description: Write some developer documentation
51 Perhaps a skeletal driver in each of the categories, what they need to
52 do, the design decisions, possibilities, or options that drivers in
53 a category might implement. If there is a canonical module for each 
54 category or modules that show the range of options that might be mentioned 
55 too.
56
57 Task
58 Difficulty: Easy
59 Platform: Mac OS X
60 Urgency: Normal
61 Description: Streaming wizard
62  Make a Streaming wizard for OS X
63 Status: Todo
64
65 Task
66 Difficulty: Easy
67 Platform: all
68 Urgency: Normal
69 Description: configure overview of modules
70  configure should report what it will and what it won't build, after it is done running.
71 Status: Todo
72
73 Task
74 Difficulty: Hard
75 Urgency: Normal
76 Platform: any
77 Description: Dual window in embed mode
78 Windows taskbar reports two windows in the video embed mode.
79 Status: Done
80
81 Task
82 Difficulty: Guru
83 Urgency: Normal
84 Platform: any
85 Description: Multi-input
86 * Core support done<br />
87 * Many demuxers don't support it<br />
88 * Need GUI elements
89 Status: Assigned to fenrir
90
91 Task
92 Difficulty: Hard
93 Urgency: Normal
94 Platform: any
95 Description: make everything UTF-8 based
96  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.
97 Status: Todo
98
99 Task
100 Difficulty: Medium
101 Urgency: Normal
102 Platform: any
103 Description: Rewrite the SAP parser
104  The SAP parser is very dirty at the moment, and needs a complete rewrite.
105  - caching support<br />
106  - timeout support<br />
107  - add meta-information to playlist<br />
108  - session version support<br />
109 Status: Assigned to zorglub (80% done)
110
111 Task
112 Difficulty: Medium
113 Urgency: Normal
114 Platform: any
115 Description: Playlist II
116  A hierarchized playlist structure, eventually using a media library.
117 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 />
118 70% done.<br />
119 Todo:<br />
120 - Core support<br />
121    - *   "Name finder"<br />
122    - *   "Protocol rollover" node<br />
123    - *** Item moving/copying facilities<br />
124    - *   Ability to save playlist on quit<br />
125    - ?   Represent navigation structure as "fake items" ?  <br />
126    -     Custom playlist format<br />
127 - Helper modules<br />
128    - **  ASX and B4S parsers (see below)<br />
129    - *   Rewrite SLP announce discovery<br />
130    - *   Live directory representation<br /> 
131 - *** Implement in Skins 2 interfaces<br />
132 - wx implementation :<br />
133    - **  Support item move/copy<br />
134    - *   Explorer view<br />
135    - *   Playlist preferences panel<br />
136    - **  Improve iteminfo dialog<br />
137 Status: Assigned to zorglub
138
139 Task
140 Difficulty: Easy
141 Urgency: Normal
142 Platform: any
143 Description: Improve bookmarks
144  - Put them in the input_item structure to have them persistent
145  - Add an input option to play the whole file but starting at a given bookmark
146 Status: Todo
147
148 Task
149 Difficulty: Easy
150 Urgency: Normal
151 Platform: any
152 Description: fix ASX playlist parser
153 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/
154 Status: Todo
155
156 Task
157 Difficulty: Medium
158 Urgency: Normal
159 Platform: any
160 Description: fix current muxers.
161 Our avi muxer doesn't produce valid files
162 Status: Todo
163
164 Task
165 Difficulty: Easy
166 Urgency: Normal
167 Platform: Mac OS X
168 Description: LPCM
169 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.
170 Status: Todo
171
172 Task
173 Difficulty: Hard
174 Urgency: Normal
175 Platform: Mac OS X
176 Description: New OS X preferences
177  New preferences for Mac OS X. Current not suited for Mac Users and several
178 Pref. elements are broken (hotkeys and int with string desc.).
179 Status: Todo
180
181 Task
182 Difficulty: Easy
183 Urgency: Normal
184 Platform: Mac OS X
185 Description: OS X bookmarks window
186 We miss a bookmarks window like the wxwidget one.
187 Status: Todo
188
189 Task
190 Difficulty: Medium
191 Urgency: Normal
192 Platform: Mac OS X
193 Description: Finish Mac Mozilla plugin
194 The Mac mozilla plugin needs some more work to be useable. Mostly done now,
195 needs testing.
196 Status: 90%
197
198 Task
199 Difficulty: Easy
200 Urgency: Normal
201 Platform: any
202 Description: Controlling the mozilla plugin
203 The mozilla plugin needs to be better controllable (via javascript). <br />
204 - retrieve variable values.<br />
205 - open VLC media player<br />
206 - default html page to control the plugin<br />
207 - XUL controls<br />
208 (80% done) see:<br />
209 <a href="http://sierra.via.ecp.fr/~zorglub/vlc/plugin/vlc.html">Javascript controls</a>
210 <a href="http://sierra.via.ecp.fr/~zorglub/vlc/xul/">XUL controls</a>
211 <a href="http://mplayerplug-in.sourceforge.net/">MPlayer Mozilla plugin</a>
212 Status: Assigned to zorglub
213
214 Task
215 Difficulty: Easy
216 Platform: Win32, Linux
217 Urgency: Normal
218 Description: equalizer fixes
219     - Gray out "reset to defaults" for audio equalizer when disabled<br />
220    - Once audio equalizer is disabled, it doesn't enable the first
221      try when you select from main menu. It only works a 2nd change
222      (enable flag not properly set?).
223  To have this work correctly, the best solution is to remove knowledge of
224  presets from the filter and give it to ... core ?
225 Status: Todo
226
227 Task
228 Difficulty: Medium
229 Platform: Win32, Linux
230 Urgency: Normal
231 Description: wxWidgets fixes
232  - Rename wxWindows to wxWidgets<br />
233  - Problems with slider (doesn't go where you click, keep updating while seeking
234 ?)<br />
235 Status: Todo
236
237 Task
238 Difficulty: Guru
239 Urgency: Normal
240 Platform: Mac OS X
241 Description: SVCD support
242 libcdio needs to be ported to the Mac to support the cddax and vcdx modules for proper SVCD support
243 Status: Todo
244
245 Task
246 Difficulty: Hard
247 Urgency: Normal
248 Platform: any
249 Description: Stream text subtitles
250  Find a a way to stream text subtitles, in TS and in RTP.<br />
251  Needs testing and validating<br />
252  Currently broken.
253 Status: 65% (fenrir)
254
255 Task
256 Difficulty: Medium
257 Urgency: Normal
258 Platform: any
259 Description: RTSP server
260 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>.
261 Status: 90%
262
263 Task
264 Difficulty: Easy
265 Urgency: Normal
266 Platform: Win32/Linux
267 Description: V4L and dshow tuning support
268 We need an API that allows us to control the tuning of V4L and dshow TV cards.
269 Status: Todo (CryHavoc)
270
271 Task
272 Difficulty: Medium
273 Platform: any
274 Urgency: Wishlist
275 Description: RAR/ZIP/... access
276 An access module that would be able to uncompress compressed files.
277 Status: Todo
278
279 Task
280 Difficulty: Medium
281 Platform: any
282 Urgency: Wishlist
283 Description: DVTS support
284 DV over RTP support. See <a href="http://www.sfc.wide.ad.jp/DVTS/">DVTS homepage</a>
285 Status: Todo
286
287 Task
288 Difficulty: Hard
289 Platform: WinCE
290 Urgency: Wishlist
291 Description: WinCE port finalizing
292 The WinCE port is already quite functional but we still miss a GAPI video output (GDI works but is slow).
293 Some code already exists for that (http://sourceforge.net/projects/vlcpocketpc/) and would need to be imported into the VLC source tree.
294 Downloads should be added to the main vlc download page. We need an icon for this. 
295 Status: Assigned to MixerAnderson and gibalou
296
297 Task
298 Difficulty: Medium
299 Urgency: Wishlist
300 Platform: any
301 Description: Full blown OSD system 
302  In the line of freevo etc.
303  (Checkout the correct svn branch)
304 Status: 75% done. Assigned to thedj, jpsaman and yoann
305
306 Task
307 Difficulty: Easy
308 Urgency: Wishlist
309 Platform: any
310 Description: GSM decoder
311 The <a href="http://kbs.cs.tu-berlin.de/~jutta/toast.html">Toast</a> implementation.
312 Status: Todo
313
314 Task
315 Difficulty: Easy
316 Urgency: Wishlist
317 Platform: any
318 Description: AMR decoder
319 We will need to find one that isn't based on the reference code.
320 Status: Todo
321
322 Task
323 Difficulty: Easy
324 Urgency: Wishlist
325 Platform: any
326 Description: MusePack decoder
327 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.
328 Status: Todo
329
330 Task
331 Difficulty: Easy
332 Urgency: Wishlist
333 Platform: any
334 Description: APE decoder
335 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.
336 Status: Todo
337
338 Task
339 Difficulty: Easy
340 Urgency: Wishlist
341 Platform: any
342 Description: flash video playing/streaming
343 A flash video muxer and demuxer. FFMPEG can already output flash video. a waste not to make use of that capability.
344 Status: Todo
345
346 Task
347 Difficulty: Medium
348 Urgency: Wishlist
349 Platform: any
350 Description: Closed Captions/Teletext support
351 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 />
352  - Use ZVBI library for VBI decoding and image generation<br />
353  - ESTI EN 300 472 for EBU teletext support in DVB<br />
354 Perhaps look at Xawtv, dvbtext and other vbi, vtx systems.
355 Status: Todo
356
357 Task
358 Difficulty: Medium
359 Urgency: Wishlist
360 Platform: any
361 Description: DVB info in NIT
362 We need to get the information of a DVB stream that are in the NIT (current program, next program, ...)
363 Status: Todo
364
365 Task
366 Difficulty: Medium
367 Urgency: Wishlist
368 Platform: any
369 Description: IceCast/ShoutCast serving
370 This would be a nice thing for the sake of completeness of VLC's streaming capabilities.
371 Status: Todo
372
373 Task
374 Difficulty: Easy
375 Urgency: Wishlist
376 Platform: any
377 Description: More/Better Picture filters
378 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)
379 Status: Todo
380
381 Task
382 Difficulty: Guru
383 Urgency: Normal
384 Platform: any
385 Description: Vout redesign
386 - vout needs distinct splitting into vout_core, vout_window, pic_filter, vout_filter<br />
387 - needs 'assistance' vout windows (clone filters, goom) etc.<br />
388 - 4:3, 16:9, freeform Aspect Ratio<br />
389 - cropping and padding (do at OS level, but provide a core call to set it up and configure).<br />
390 - OSD at window resolution instead of video res (secondary vout channel)<br />
391 - a OSD needs to be bound to a vout stream (no subs on goom vout)<br />
392 - 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 />
393 - better hotkeys integration
394 Status: Todo
395
396 Task
397 Difficulty: Medium
398 Urgency: Wishlist
399 Platform: any
400 Description: Subtitle work
401 - better SSA support with postioning, colors etc.<br />
402 - Fix subtitles dialogs (mac done)
403 Status: Todo
404
405 Task
406 Difficulty: Easy
407 Urgency: Wishlist
408 Platform: any
409 Description: Automatic charset recognition
410 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?
411 Status: Todo
412
413 Task
414 Difficulty: Guru
415 Urgency: Wishlist
416 Platform: Mac OS X
417 Description: skins2
418 Port VLC skins to Objective C++ and OSX. Also requires the intf to be a dialog provider.<br />
419 Hints:<br />
420  - In a first step, the need for a dialog provider can be easily omitted.<br />
421  - In theory, only a small amount of classes (6 or so) must be written for OS X, implementing predefined interfaces.<br />
422  - 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.
423 Status: Todo
424
425 Task
426 Difficulty: Hard
427 Urgency: Wishlist
428 Platform: any
429 Description: informing user.
430 Implement a system to: <br />
431  - Alert the user of critical errors (cannot play file). Should be blocking. <br />
432  - Ask the user a question (Are you sure? or Try to Fix index of avi? or Overwrite File?)<br />
433  - 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 /> 
434  - present a user/passwd dialog when we get an authentication failure on a stream.<br />
435 Implementation ideas: <br />
436  - via variables and callbacks. How to give answers back ?<br />
437  - via p_intf->pf_* functions.<br />
438 Status: Todo
439
440 Task
441 Difficulty: Hard
442 Urgency: Wishlist
443 Platform: any
444 Description: Full H323 Videoconferencing
445 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.
446 We also will need SIP support. A first implementation using a custom protocol is being made. 
447 Status: Todo
448
449 Task
450 Difficulty: Hard 
451 Urgency: Wishlist
452 Platform: Mac OS X
453 Description: QuickTime capturing
454 Allow capturing from QuickTime Firewire, USB and PCI devices.
455 Possibly see: <a href="http://bugzilla.videolan.org/cgi-bin/bugzilla/show_bug.cgi?id=416">Bug 416</a>
456 Status: Todo
457
458 Task
459 Difficulty: Easy
460 Urgency: Wishlist
461 Platform: any
462 Description: export paramaters of an input
463  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 />
464  - AR<br />
465  - size<br />
466  - bitrate<br />
467  - resolution<br />
468  - codecs, etc.<br />
469 Status: Todo
470
471 Task
472 Difficulty: Hard
473 Urgency: Wishlist
474 Platform: any
475 Description: http cookies
476 For protected VoD  (http://a-select.surfnet.nl)
477 Status: Todo
478
479 Task
480 Difficulty: Easy
481 Urgency: Wishlist
482 Platform: any
483 Description: Progressive download playing
484 Allow application/vlc mimetype to launch VLC instead of plugin for video file.
485 Allows for Progressive download to TEMP folder from browsers. VLC would play the file in the TEMP.
486 Status: Todo
487
488 Task
489 Difficulty: Medium
490 Urgency: Wishlist
491 Platform: any
492 Description: rendezvous announces
493 Apple released the rendezvous code under a Open Source license now. perhaps it can be used. (It's OpenTalk now btw).<br />
494 Note: the licence is probably not DFSG compatible. Alternative mDNS implementations exist<br />
495 DMAP protocol announce for videos.
496 Status: Partly done (DAAP only)
497
498 Task
499 Difficulty: Easy
500 Urgency: Wishlist
501 Platform: any
502 Description: SDL vout cleaning
503 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.
504 Status: Todo
505
506 Task
507 Difficulty: Easy
508 Urgency: Wishlist
509 Platform: any
510 Description: Electronic Program Guide
511 Integrate a EPG system into VLC.
512 Status: Todo (CryHavoc)
513
514 Task
515 Difficulty: Hard
516 Urgency: Wishlist
517 Platform: any
518 Description: a Time Shifting module
519 This module should create TiVo like capabilities for VLC.
520 Status: Todo (CryHavoc)
521
522 Task
523 Difficulty: Medium
524 Urgency: Wishlist
525 Platform: any
526 Description: UDP packet reordering
527 Currently we ignore every packet that is too late and just wait for a fresh one.
528 It would be nice to be able to reorder the packets in the buffer to prevent degredation of the signal.
529 Status: Todo
530
531 Task
532 Difficulty: Easy
533 Urgency: Wishlist
534 Platform: any
535 Description: Make vlm more user friendly (setup etc)
536 vlm is kinda a pain to setup if you are not entirely experienced with A/V and streaming or VLC for that matter.<br />
537 It can be heavily improved by updating the vlm http interface. Using seperate fields for the need paramters of a schedule/source.<br />
538 Also, GUI implementation.
539 Status: Todo
540
541 Task
542 Difficulty: Easy
543 Urgency: Wishlist
544 Platform: any
545 Description: Protocol rollover
546 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.
547 However, how spec compliant can this be?<br />
548 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]).
549 Status: Todo
550
551 Task
552 Difficulty: Hard
553 Urgency: Wishlist
554 Platform: any
555 Description: NAT issues
556 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 ????
557 Protocol rollover can be a solution for a lot of these issues.
558 Use full DNS names in SDP
559 Status: Todo
560
561 Task
562 Difficulty: Medium
563 Urgency: Wishlist
564 Platform: any
565 Description: Gstreamer and Helix API integration
566 See if you can support GStreamer and helix plugins in one way or another.
567 Status: Todo
568
569 Task
570 Difficulty: Easy
571 Urgency: Wishlist
572 Platform: any
573 Description: Gnome-vfs support
574 For integration with smb, sftp and other file sharing/mounting methods
575 Status: Todo
576
577 Task
578 Difficulty: Hard
579 Platform: any
580 Urgency: Wishlist
581 Description: Matroska muxer
582  We need one :)
583 Status: Todo
584
585 Task
586 Difficulty: Medium
587 Platform: any
588 Urgency: Wishlist
589 Description: TTA decoder
590   TTA is said to be a fast en good lossless codec. Opensource library
591   availabe: http://tta.corecodec.org/
592 Status: Todo
593
594 Task
595 Difficulty: Medium
596 Platform: any
597 Urgency: Wishlist
598 Description: Option to automatically deinterlace when needed
599   Mkv stores wether a video track is interlaced in the traxk descriptor
600   libmpeg2 etc output this information in the header AND on a per-picture basis
601 Status: Todo
602
603 Task
604 Difficulty: Easy
605 Platform: any
606 Urgency: Wishlist
607 Description: UDF decoder
608 Support for the new XML based subtitle format called UDF
609 Status: Todo
610
611 Task
612 Difficulty: Hard
613 Platform: any
614 Urgency: Wishlist
615 Description: Faster deinterlacing
616 Our deinterlacers are relatively slow. DScaler has the best Soft deinterlacers out there.
617 Unfortunatly it is very Win32 focused.
618 Status: Todo
619
620 Task
621 Difficulty: Medium
622 Platform: any
623 Urgency: Wishlist
624 Description: More service discovery modules
625 - Port UPnP support from http://sourceforge.net/project/showfiles.php?group_id=89768 <br />
626 - libhal based discovery (should be able to find cd,dvd,capture cards,etc etc <br />
627 - Perhaps a generalized webpage parser (use user supplied templates to parse
628    streams from popular websites )
629 Status: Todo
630
631 Task
632 Difficulty: Easy
633 Platform: win32
634 Urgency: Wishlist
635 Description: file filters in the open dialog
636 Have default filters in the open dialog. like:
637 All files<br />
638 Sound Files( .mp3, .ogg, .wav, .m4a, .m4p)<br />
639 Video Files( .avi, .mkv, .mov, .mpg, .m2v, etc)<br />
640 Subtitle Files( .idx, .sub, .utf, .srt)<br />
641 Status: Todo
642
643
644 # Do not remove me
645 Task