Mentor wanted..
#1
Firstly, I just have to say how thoroughly impressed I am with the state of the Linux port. Especially the time that's obviously been put into making the build process as painless as possible, that's a huge plus for me because that's the last thing I want to fool with. Smile Also, the MythTV integration, IMO, is looking amazing. Watching Live Channels really surprised me... nice..

So, I have two XBMC platforms right now, both Hardy one a laptop and one a PC I use as my media center.

I am a C++ programmer by day and like everyone don't have a lot of time, but I think I might like to start trying to optimize anything that needs optimizing. I'm going to start going over some code right now, but would like someone really familiar with something that could use some optimization to point me in the right direction. Any takers?
Reply
#2
I guess it depends what you want to work on Smile

Whether you're keen on playing with the playback side of things (video or audio) or whether you want to tinker with the UI stuff, or filesystem layers, or....

There's some stuff on the wiki still about the google summer of code with some suggestions on areas that may need some work:

http://wiki.xbmc.org/?title=Google_Summe...discussion

Obviously a lot of these are pipe dreams at the moment, but they may give you some idea of what sort of area you want to start working in. From there we can find someone who has a bit of time to offer some insight into where you might wish to start Smile

Cheers,
Jonathan
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#3
I've seen that list and I'll go over it again right now. Rather than implement new functionality at the moment, I would rather tighten things up that may work now, but could work better or could see an improvement in performance.

At the moment I happen to be looking at the video thumbnail loading...

Guess I don't have a preference per se...
Reply
#4
Sure - video thumbnail loading is a nice thing to look at. Particularly in the linuxport where there's the additional thumb source of the video file (a frame grab).

The idea with the thumbs is that currently they're all cached locally (using the CRC of the path in general) but we have no way of knowing where the file came from - it could be a local thumb, a folder thumb, the autogenerated one from a file or could be from a scraped website (imdb, thetvdb etc.)

So incorporating some idea of where the file came from (and perhaps when it was cached) would allow some better handling of updating the thumb and so on.

An idea I had for the thumbcache was to have a cache index that we load in to RAM when entering the appropriate screen (if not already available). This cache can hold whether or not a thumb exists, when it was cached and where it came from in a nice small data structure to allow fast lookups and updates of thumbs.

The code that does the setting + getting is primarily in CFileItem (FileItem.h/cpp) and there's some threaded loaders (CThumbLoader and it's cousins) that run that basically just call into CFileItem on each directory retrieval.

Once you've had a look through the code, if it's something you might want to tidy up then I'm more than happy to assist in any way I can.

Cheers,
Jonathan
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#5
The main thing that I would like to see someone deal with is polish the linux version in term of eliminating all the XBox stuff which are unused and polishing the screens which are not yet finished (mainly around system info). The web server is still not fully working, the python still has occasional crashes, and we still need to see what we'll do with "Programs"....
Reply
#6
jmarshall,

Are you thinking about encoding that information in the filename somehow or something more elaborate?

Also, as a side question, what do you use for watching the log? I use baretailpro on Windows and have it running under wine, but would like something QT or GTK based instead.


thanks,


tim (a.k.a. boscorillium)
Reply
#7
I was thinking of having a separate map saved to disk, i.e. map from filehash (current thumb filename) -> struct with additional info. Saving it within the filename is fine though as well, as you could then construct said map just by grabbing the folder contents. Plus, it has the added benefit of not needing to maintain 2 files.

I dev in visualstudio on win32, so aren't much help on the *nix side of things I'm afraid Smile

Cheers,
Jonathan
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#8
For much more reference material for developing XBMC please see these wiki articles:
http://wiki.xbmc.org/?title=XBMC_for_Linux_port_project
and
http://wiki.xbmc.org/?title=Development_Notes


By the way, I like this suggestion as well:
Quote:Rewrite the thumbnail caching system so that it can store multiple resolution thumbs.

Essentially the "CacheThumb" routine should cache the thumb, cache information about the thumb (info on date, source, aspectratio, packed as small as feasible) and store both full size and scaled versions of the thumbs. The meta info would be stored in a separate file for fast assigning of thumbs (this could be kept in memory based on the thumb hash in a lookup table, and the ListItem.Thumb infoimage could be extended to specify what size of thumb it needs (to limit RAM memory usage for Xbox/low-memory devices).
also
Quote:Rewrite XBMC's existing picture slideshow engine to be more like a normal player, (see DVDPlayer, PAPlayer, and MODPlayer as examples). Utilize GUILargeImage to handle the loading, and the animation engine for the effects (pan/zoom/rotate, etc.)

Happy coding Big Grin
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply
#9
You may want to throw it in a database rather than a flat file or in the file name.
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply

Logout Mark Read Team Forum Stats Members Help
Mentor wanted..0