-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO
129 lines (107 loc) · 4.7 KB
/
TODO
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
For 1.3 series
==============
- analyse impact of breaking xine.h down in multiple public headers, and
rename the xine/ directory for include files in xinecore/ (for plugins
only), while leaving xine/ for public include files;
For 1.2 series
==============
- Security-Related: start using xine_xcalloc rather than xine_xmalloc when
the number of elements is not a build-time constant.
- mimetype-based demuxer selection, solves the effects of shoutcast's bug;
- Doxygen API documentation for both internal and public functions;
- removal of (deprecated) software deinterlacers from video output plugins;
- reduction of exported symbols by hiding (-fvisibility=hidden or attribute)
the internal libxine-only functions;
- move the contributed code (not developed by xine project) in the contrib/
directory of the source tree;
- reduce memory footprint (e.g. variable fifo buffer sizes...);
- handle gracefully the runtime removal of the audio output device (being
it a physical removal for USB devices or a missing output on a client-server
design like PulseAudio, ESounD or Jack);
- review media_eject_media, possibly rewrite to use libcdio;
- improve error reporting (for when demuxer/decoder plugins aren't found);
- HTTPS.
- review translable strings, try to follow a defined schema for naming and
error reporting;
known bugs
==========
- frame allocation problem with h264 streams using > 15 reference frames
- dvdnav time search function does not use the time table, but interpolates
only cell times
- apparently, dvb:// (but not dvb://CHANNEL) is broken for ATSC
requested/planned features
==========================
- advanced audio processors
- audio normalization
- crossfading
- high quality overlay blending / OSD
(eg. Jason Tackaberry's advanced BGRA blend plugin)
- synchronized playback between multiple machines
- high quality sound resampling (use libsamplerate / secret rabbit code)
- "synchroneous post plugins" (post plugins behind the output fifo)
- move pvr and v4l_adjust_realtime_speed routines to xine engine
so it can be used by any input plugin.
the following text is kept from pre-1.0 times - we must check what is still relevant
====================================================================================
optional
--------
- properly localize all user-visible strings
- sort out which messages should go to console and which to xine_log
- look over global structures and do some cleanup
- id3v2.3,v2.4 support
- "metainfo change" event
- double-check rate estimation in demux_mpeg/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
beyond 1.0
----------
- use the safe string functions from xine_buffer.h in xine's own code
- rework the clock system, introducing clock and metronom speed settings
- allow more frame formats, automatic post plugin insertion for conversion
- frame-level seeking
- experiment with splint for code verification
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?)
- 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