• Sam Hocevar's avatar
    · 3e22bc68
    Sam Hocevar authored
     . removed obsolete video_yuv_mmx.S
     . updated the TODO list and wrote a small todo.pl parser to make it
       easier to see which items remain to be done
     . `make snapshot' now creates vlc-*.tar.gz and vlc-*-nocss.tar.gz
    3e22bc68
TODO 19.4 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673
#
#   vlc tasks
#   ---------
#
#
# Difficulty values: Easy, Medium, Hard, Guru
#
# Urgency values: Wishlist, Normal, Important, Critical

Task: 0x4e
Difficulty: Hard
Urgency: High
Description: Write stream zones support
 For random access we need to know where stream descriptors are valid
 and reside (essentially DVD plugin). -> Meuuh
Status: Todo

Task: 0x4d
Difficulty: Hard
Urgency: Normal
Description: Write subtitles and stream information in YUV coordinates
 ... so that they can be displayed even in "overlay" mode.
Status: Todo

Task: 0x4c
Difficulty: Medium
Urgency: Normal
Description: Update documentation
 The input structures have undergone a major restructuration with
 input-II. It might be a good idea to reflect thoses changes in the
 documentation.
Status: Todo

Task: 0x4b
Difficulty: Guru
Urgency: Low
Description: Write AVI input plugin
 .avi files can use MPEG codec, if this is the case it shouldn't be
 hard to read those files -> Meuuh
Status: Todo

Task: 0x4a
Difficulty: Medium
Urgency: Normal
Description: Write ES input plugin
 We need to be able to read .mpg video streams, or .mp* audio streams.
 More information -> Meuuh
Status: Todo

Task: 0x49
Difficulty: Easy
Urgency: Important
Description: Write a new buffer allocator
 Avoid malloc()s by reusing the recently released packets. More
 information -> Meuuh
Status: Todo

Task: 0x48
Difficulty: Medium
Urgency: Critical
Description: Fix audio synchro
 With some audio plugins, the audio stream is late because of buffer
 sizes. See what's wrong and fix it.
Status: Todo

Task: 0x47
Difficulty: Hard
Urgency: Normal
Description: Make decoders dynamically loadable
Status: Todo

Task: 0x46
Difficulty: Hard
Urgency: Normal
Description: Make input plugins dynamically loadable
 With a probe() function, and stuff...
Status: Todo

Task: 0x45
Difficulty: Guru
Urgency: Normal
Description: Write DVD plugin
 We need a DVD plugin which read the device directly, calls DeCSS
 (optional) and parse .ifo files.
Status: Todo

Task: 0x44
Difficulty: Guru
Urgency: Important
Description: Write input_ext-intf.c
 This file will provide functions which allow the interface to change
 the pace of reading and change the position in the file.
Status: Todo

Task: 0x43
Difficulty: Medium
Urgency: Important
Description: Write TS support
 The parser has already been back-ported, but it still lacks the
 PSI parser, and currently the functions to read from the network
 are yet to be written.
Status: Todo

Task: 0x42
Difficulty: Medium
Urgency: Important
Description: Write input_netlist.c
 We need an interface to create fixed-size packets (for instance
 188 bytes or 2 kB) and avoid using the system malloc().
Status: Done 23 Jan 2001 (henri)

Task: 0x41
Difficulty: Easy
Urgency: Important
Description: Write input_programs.c
 We need a centralized manner of creating new programs, es, and
 spawning new decoders.
Status: Done 20 Dec 2000 (Meuuh)

Task: 0x40
Difficulty: Medium
Urgency: Important
Description: Fix the PS plugin
 The PS plugin should be able to recover from packet loss, to
 read MPEG-1 .mpg files, and to pre-parse the stream (if possible)
 to build the ES table. Check what's wrong and fix it. Now.
Status: Done 20 Dec 2000 (Meuuh)

Task: 0x3f
Difficulty: Easy
Urgency: Critical
Description: Enhance intf_*Msg
 The intf_*Msg functions could be more clever : add "mymodule
 warning/error:" and \n automatically. The new input already
 uses such a behaviour, so we must hurry. It might be necessary
 to modify all messages in all modules...
Status: Done 20 Dec 2000 (sam)

Task: 0x3e
Difficulty: Guru
Urgency: Critical
Description: Fix backwards moves
 Sometimes the frames seem to go backwards for a short period of
 time. This is due to the output methods and is known to happen
 with the x11 and SDL plugins.
Status: Done 27 Nov 2000 (Meuuh)

Task: 0x3d
Difficulty: Easy
Urgency: Normal
Description: Have more statistics messages displayed
 The vlc has structures to keep track of the interesting
 events, but there is no way to print these structures. In stats
 mode, we should print these structures regularly, or at quit
 time (whichever is the more convenient).
Status: Done 27 Nov 2000 (Meuuh)

Task: 0x3c
Difficulty: Easy
Urgency: Important
Description: Separate optimizations from debug mode
 We sometimes want to have the debug mode (which writes an
 interesting log of debug messages) along with the compiler
 optimizations (which allow decoding of more than 2 fps).
Status: Done 18 Nov 2000 (Meuuh)

Task: 0x3b
Difficulty: Easy
Urgency: Important
Description: Write intf_WarnMsg and intf_StatMsg
 We have intf_ErrMsg to display fatal errors, but warnings are
 drowned in an ocean of unreadable intf_DbgMsg. Same for
 statistics messages.
Status: Done 23 Nov 2000 (Stef)

Task: 0x3a
Difficulty: Hard
Urgency: Important
Description: Support SDL Overlay
 The SDL livrary has routines to use the video board to do the YUV
 conversion, scaling and displaying. Using them will require a
 partial rewrite of the video_output way of handling rendering
 and displaying.
Status: Done 18 Dec 2000 (bozo and oct)

Task: 0x39
Difficulty: Medium
Urgency: Wishlist
Description: Rewrite the font display routines
 The current font display routines aren't powerful enough. There
 should be a way to display a big String at once, without needing
 to compute the size of the string and its coordinates beforehand.
Status: Todo

Task: 0x38
Difficulty: Medium
Urgency: Important
Description: Make aout eat less CPU
 When the vlc is launched without a stream, the audio_output thread
 eats all memory, probably because there is no msleep() when no data
 is available in the audio_output queue.
Status: Done one doesn't know when by some unknown stranger

Task: 0x37
Difficulty: Guru
Urgency: Important
Description: Fix motion compensation bug
 The motion compensation still has a small bug which can be well
 noticed when there is a sudden color change, a few blocks remain
 visible on the screen.
Status: Done 27 Aug 2000 (Meuuh)

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.
 . Here are some details:
   Allow any interface to have its own set of keys:
    - allow the 'discovery' of the main interface of the binding 
      created by each interface:
       what key ("control-C", what action (INTF...))
    - extend the interface by a specific struct (meta+modifier+ascii)
    - implement an interface specific getKey function.
Status: Todo

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: Done 10 Jan 2001 (sam)

Task: 0x34
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.
Status: Done 7 Jan 2001 (sam)

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.
Status: Done 7 Jan 2001 (sam)

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: 0x31
Difficulty: Easy
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: Done 26 Aug 2000 (henri)

Task: 0x30
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

Task: 0x2b
Difficulty: Hard
Urgency: Wishlist
Description: Shoot the TODO list on the web site
 The TODO list on the web site hasn't been updated for months. We may
 wonder then why the hell to we put a TODO list on the web site ? Maybe
 we'd better shoot it in the head, that would make its suffering end.
Status: Todo

Task: 0x2a
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: Done ( henri )

Task: 0x29
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: 0x28
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

Task: 0x27
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.
Status: Done 18 Dec 2000 (sam)

Task: 0x26
Difficulty: Hard
Urgency: Wishlist
Description: MP3 support
 The vlc cannot play MPEG1/2 layer 3 yet. It might be nice to fix that.
Status: Todo

Task: 0x25
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: 0x24
Difficulty: Guru
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.
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.
Status: Todo

Task: 0x22
Difficulty: Medium
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/
Status: Done 21 Aug 2000 (octplane)

Task: 0x21
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.
Status: Done because of Input II on 5 Dec 2000 (Meuuh)

Task: 0x1f
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: Done 20 Jan 2001 (stef)

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

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: 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: Done 23 Aug 2000 (Meuuh)

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: Done 16 Jan 2001 (sam)

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: Done 28 Aug 2000 (oct)

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.
Status: Done 18 Dec 2000 (sam) but see 0x25

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

Task: 0x17
Difficulty: Hard
Urgency: Normal
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: Done 23 Oct 2000 (Meuuh)

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: Done because of Input II on 5 Dec 2000 (Meuuh)

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: Draw a vlc icon
 The vlc needs an icon. It should render well in 48x48 but
 can be any size.
Status: Todo

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: Done 25 Oct 2000 (reno)

Task: 0x0e
Difficulty: Easy
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.
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.
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: Done 13 Nov 2000 (Meuuh)

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: 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: Done (sam)

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.
Status: Done 16 Nov 2000 (Meuuh)

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: Done because of Input II on 5 Dec 2000 (Meuuh)

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: Done because of Input II on 5 Dec 2000 (Meuuh)

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

Task: 0x03
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.
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.
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