We need help on different parts of Freevo and external programs. Right now there are two active developers working on Freevo and without more help, it will be 2006 before Freevo 2.0 will be released. So help us to speed up the process. This page is a list of things that need to be done by someone before 2.0 can be released. It is not all about hacking Python code for Freevo, there is enough to do for everyone who is willing to help.
Please contact the Freevo devel mailinglist or dmeyer@tzi.de if you want to help. If you have more questions about a task, just ask.
Contents
Freevo Python code
kaa.metadata Cleanup
Improve the current info classes and add new once. The subtitle informations need a major update to store more informations (maybe a real class SubtitleInfo). See TODO file in kaa.metadata for more information.
Code cleanup
For the next release we want a full code cleanup. Some parts of Freevo are already much cleaner. Some parts are very simple to clean up, only cost time. Others are more complex. If you want to help, do what you think you can handle.
- Remove old functions and variables no longer needed. This is tricky and you should be very carefull. Maybe also rename some variable to make it cleaner.
Respect the Freevo Coding Standard in all files and modules.
- change some 'print' statements to use the logging functions from Python. Everything which isn't a normal debug the user should see should be transformed to logging. Freevo, the recordserver and the webserver should print no messages, print is only allowed for helpers.
- Check all 'actions()' functions. They should not return a list of lists, it should be a list of Action objects. See src/video/videoitem.py for an example.
Modification on external programs
Freevo needs features in external programs to get new features. Most of the work on this has to be done this programs without the need to know Python. If you want to help here, contact us and someone will build the needed Python code in Freevo to test the new feature.
Live pause in xine or mplayer
To support live pause in video streams and tv, the used player needs to support live pause. The stuff Freevo could do is very limited. When the user wants to watch a program, Freevo could record the live tv and play it with a small delay. The solution has some big disadvantages:
- The recording file will grow. There is no way to shrink a file in unix while a second process like mplayer is appending to the file. So when you watch for a very long time, you will get a problem with the disc space.
- Changing channels will take more time. You can't watch a file the same second the recording starts, you need a small buffer.
- Seeking over the end of the file will stop the watching application. Right now it is not possible to stop mplayer from seeking to much to the future on a still growing file.
The solution to this is very simple. Besides the needed feature for mplayer to stop seeking after the end of the file (we also need this when watching a currently recording program), the player needs to do some caching of the incoming data. I don't care if the feature is added to xine or mplayer, IMHO it is easier to add this to xine because it can be done in a plugin without knowing too much of the code. But if someone wants to add this to mplayer, I have no problem with that. Even a new viewing application is ok. To get the best result, the new input plugin for xine or whatever app you do the following (only suggestions):
- Support live tv like xine and mplayer work now. But the current stream should not only be shown on the screen, but also stored into a special set of files. A file should contain the stream informations for at least 1 minute so it is possible to seek back a small time. Remove old files while playing (old is older then a specific time, e.g. 1 minute).
- When pressing PAUSE stop the viewing, but do not delete the tmp files. When pressing PLAY again, play the tmp files and delete everything older 1 minute for the current playing point of view.
- Make it possible to seek forward in 10 sec and 30 sec steps. A nice feature would also be to seek to the current time.
Maybe a solution is only to add playing this sort of files to mplayer and create a new recorder that will create such file lists. I know someone writing a dvb recorder in case this is helping.
Note: maybe gstreamer will solve all this.
Change noad to be used outside vdr
Noad is a small program to detect ads in recordings. It is written for vdr and only works on vdr streams. To make it works with "our" recordings, it is only necessary to chnage the part of the code reading the file. The detection itself doesn't depend on vdr. Right now Freevo uses mplayer or tzap to record a mpeg-ts. If possible Freevo uses replex to create a "normal" mpeg2 file. This should be identical with a vdr recording except there is no index file and the file can be greater 2GB.
Homepage (german): http://www.freepgs.com/noad/
Readme (english): http://www.freepgs.com/noad/README.en.html
PleaseUpdate: add more description
Documentation
Add much more documentation to the Wikis
PleaseUpdate: add description
Source code documenation
PleaseUpdate: add description
User Interface Design
How should the video on screen display look like?
PleaseUpdate: add description
Navigating the TV guide
PleaseUpdate: add description
Help with plugins
Fixing disabled 1.5 plugins
Some freevo 1.5 plugins are still disabled in freevo2.0
Freevo2PluginWriting contains a list of plugins that need upgrading.
Wish List
- audio.Active playlist
- audio-item.Add to Active Playlist
Encodingserver
Some things should happen with Encodingserver ( SVN repository http://pintje.servebeer.com/svn/encodingserver ) but I (den_RDC) have not enough spare time on my hands anymore. The following things would be nice :
- make it support MPEG2 for users with IVTV/DVB/mpeg2 cards (for conversion to XViD , saves space)
- make it support MBus (it currently uses Twisted's XMLRPC)
- make it a post plugin for the recordserver (recordingserver doesn't currently have that feature, but it might be added in the future)
The code can be found in the SVN repository, and the logic is separated in 4 files
- the core (mencoder handling code)
- the server (almost pure xmlrpc code)
- the client (same as the server, but the client part)
- dvdbackup (a freevo plugin)
More information on the XMLRPC api can be found @ http://www.redsoft.be , and while it is xmlrpc specific, it gives some insight as how mencodingserver works.
If you want to do something or have a question, drop a mail into freevo-devel.
