summaryrefslogtreecommitdiff
path: root/TODO
blob: 87d0cfffaaf86a976eac20c09e6fa7a3b85e951a (plain)
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

The road to xine-lib 1.0
========================

this only relates to the xine engine (xine-lib), not xine
frontends

1-rc1   First "release candidate". xine's architecture is stable, ie. it
        must not be changed before 1.0. Features that do not appear in
        this roadmap must not be added. Focus is on bugfixes.

1-rc2   Documentation is brought up to date.

1-rc3   The release mechanism is well-defined and documented, along with a
        set of test procedures. Some (most?) of the tests are automated.
        Now is the time of "soft" feature freeze: Generally, new features
        must not be added. However, low-impact stuff, such as new
        demuxer, decoder or input plugins are okay.

1-rc4   All user-visible strings should be enclosed in _() for translation.
        The majority of config entries should have a proper help string.
        Decision should be made, what messages to report on console and
        what to put in the log. The config option naming is cleaned up.

1-rc5   There is a well-defined bug handling mechanism, even if it is a
        paper based checklist on someones desk. 1.0-critical bugs are
        sorted out.
        This is the time of "hard" feature freeze: Only bug fixes are
        permitted.
        (xine-ui should stabilize here, as well, maybe an 0.99.x or
         1-alpha/beta/rc series to demonstarte this to end users)

1-rc6   Most compile warnings are fixed. Hopefully the translators have
        finished their job as well.

1-rc7   All known bugs should be fixed now. There is a big call for
        testers. If they don't find any new bugs for at least a week,
        we're there, and 1.0 will only differ in version number and a bit
        of documentation. If they do find more bugs, we keep on fixing
        them and making weekly rc releases until we get stable...
        (xine-ui may have an 1.0 release any time after this point;
         before, together with, or after xine-lib 1.0, depending on it's
         own 1.0 release goals)

1.0     Due to historical reasons, the day 1.0 is released will be
        given the name "christmas".


required for 1.0
----------------

- update xine hacker's guide (article on post plugins still missing)
- xine bug tracking system?
- fix stream end detection for real streams
- fix mpeg elementary stream playback (especially logo streams
  with only one frame)
- add help strings for all post plugins
- add help strings for all config options
- review code for stack overflows
  (no big review, just grep for the most common mistakes like
  sprintf, sscanf)

optional
--------

- merge the vcdx plugin instead of current vcd plugin
- small refactoring of post plugin common code while killing the
  "early dispose" bug Thibaut found
- properly localize all user-visible strings
- rename config entries to a more consistent scheme
  (providing automatic config file conversion, of course)
- sort out which messages should go to console and which to xine_log
- id3v2.3,v2.4 support
- "metainfo change" event
- new demuxers/decoders (eg. matroska)
- double-check rate estimation in demux_mgeg/mpeg_block
- fix cook audio streaming
- better dvd error messages
- fix streaming of small files (e.g. http) 

- rtp / rtsp support:

  - input_rtp
  - rtsp support (currently only real's rtsp derivate is implemented)
  - isma/apple streaming server support (mpeg4ip.sf.net)
  - find out what all those people requesting rtp/multicast/... support
    really want and how to implement it :)
  - videolan streaming server support
  - helix streaming server support

- detect broken savage drivers in health check, disable Xv in that case
- directfb video output plugin
- reduce memory footprint (e.g. variable fifo buffer sizes...)
- opengl video output plugin (matthias, sopra at stuttgart university)
- irix audio output plugin (matthias)

Open Tasks
==========

- port to other OS (Net/OpenBSD, hurd ...?)
- MicroDVD input plugin
- video output synced to vertical blank
  preferably without requiring
  root privileges (XSync extension? MAS?)
- direct playback of vcd images
- resolve issues with ffmpeg's live http streaming server
- videolan streaming support
- MAS support (http://www.mediaapplicationserver.net)
- nonlinear video editing and compositing frontend (michael) => enix
- stream format conversion frontend => enix
- Multiple DVD Subtitles displayed at the same time 
- Move read cache code from libdvdnav into input_dvd.c
- Support DVD "Trick" modes. Super Fast forward/reverse
- detect raw ac3/a52 in MPEG Program streams.
- detect raw ac3/a52 in MPEG Transport streams that lack PAT/PMT tables.
- handle MPEG PES/PS streams with PES_packet_length = 0

xine's future
=============

- implement lots of audio and video processing filters as post plugins, e.g.
  - scaling
  - colorspace conversion
  - deinterlacing (already done)
  - audio resampling
  - compressor
  ...

  extend public api so post plugins are instantiated automatically when
  needed, but keep explicit post plugin rewiring functions for advanced
  video processing frontends 

- see what kind of cooperation can be set up with other media player projects
  - mike will look into moving xine's decoder api closer to the one
    ffmpeg uses
  - check out other media players
  - output, demuxer plugins