Plex Media Center for OS X Leopard

Archive for February, 2008

Release 0.1.1: Baby steps

This release is Intel/Leopard only.

Sorry it’s taken me so long to get this next release out; the weather here has been great, and the call of real life has been strong, with all of the nuances and commitments of paid work, dog walking, cooking, and socializing.

The new release can be found here. I’ve tried to focus on a few core areas:

  • Graphics quality: With the help of d4rk (him doing the hard stuff and me just filling in the bits and pieces), YUV to RGB conversion should now be perfect, both on low-end video hardware (GMA950) and higher end video hardware. In practical terms, this means blacks are really black, and whites are really white. No more washed out looking video. Next up is higher quality video upscaling.
  • Also along these lines, I’ve improved the SDL video mode selection code to be a bit smarter about picking modes, and now I consistently get 1080p output from both my machines, whereas before I only got 1080i. I’m not sure whether to blame OS X or SDL.
  • OS X experience: People running OS X applications expect certain things, and I’ve tried to move XBMC closer to those expectations. Notably, log files are written to /var/tmp, and user data and profiles are accessed at ~/Library/Application Support/XBMC. This means that you can upgrade by simply replacing the application, without worrying about overwriting files.
  • N.B. For this release, before you overwrite the application, you may want to move your UserData folder and your guisettings.xml to ~/Library/Application Support/XBMC, and your Keymap.xml to ~/Library/Application Support/XBMC/UserData. Alternatively, you can simply let the first run of XBMC create reasonable defaults. This is what it should look like if you want to move things around:
untitled.jpg
  • Similarly, I’ve tweaked a few of those reasonable defaults. Under OS X, thumbnails default to 512×512 pixels (thanks to Martin Blom for the tip), video resolution defaults to 720p, and audio settings have been subtly tweaked to help ensure people don’t get fast video and do get sound output when possible. (Downmixing has not been implemented!)
  • Second Screen Support: If you’re running the second (or third, if you’re Al Gore) display to your HDTV, you’ll be happy to know that you can now run fullscreen to a display which is not the primary one. Unfortunately, you have to do it through setting some environment variables. Setting SDL_VIDEO_FULLSCREEN_DISPLAY=2 results in fullscreen video going to your second display. Also, if you set SDL_SINGLEDISPLAY=1, this means your primary display is not blanked, so you can see incoming email or whatever it is you do while XBMC is running. You’ll need to either start XBMC from the command line, or logout and then back in again having set those environment variables. I think.
  • Bugfixes: A number of bugs have been fixed, both by myself and by the other XBMC team members. Playing consecutive videos after each other will work even if you haven’t stopped the first one. Thread safety issues have been addressed in background thumbnailing (solving various crashes). The first frame of video no longer displays before it’s ready.
  • When adding sources, all mounted volumes will now be displayed for your convenience. This makes adding sources much easier.
  • Videos with AAC audio should now play that audio.

A few other notes, unrelated to the release:

  • I’ve retired my Xbox. That’s right, XBMC is solid enough on OS X that I packed up my loyal Xbox and carried it out to the garage. Not having it there will free up room and inspire me to work on getting MAME support in there.
  • We’re looking for talented developers. Gamester17 wrote up a nice press release. If you’re interested in getting involved, please drop me an email, or come visit on IRC.
  • We’re interested in keeping track of the Apple hardware purchases that have been made because of XBMC. We figure this might help keep us in good standing with Apple, and plus it’s cool to know. So if you’ve bought a piece of Apple hardware to run XBMC on, drop us a line. We’ll post statistics to the blog.
  • Last, but not least, a big thank you to all who have donated. The money really helps us pay for the bandwidth, and bits of hardware to test with (i.e. controllers). We really appreciate it.

Oh, and for some reason RSS feeds seem to be broken in this release.

68 comments

Quick update

I haven’t had that much time in the last few days to focus on coding, but here’s what’s on my plate:

  • With the help of the ever-so-talented d4rk, we’ve established that the “washed out” look of video is a cross-platform issue (Linux and OS X, at least) with the YUV to RGB conversion. People more skilled than I at OpenGL will likely have a fix soon.
  • We’re planing to make another release in the next few days that will incorporate some fixes and updates (like AAC support in videos). I’ll give SMB a try as well.
  • After the next bug-fix release, we’re going to have a look at supporting the Apple Remote (probably the most asked about feature, to be honest) to some degree. The key thing (no pun intended) that Scott figured out is that the Apple Remote supports “press-and-hold” as well as “press”, so we can use that to good effect, like holding down play to get information on a file, or holding down “right” to fast forward.
  • Cayce is working on some key portions of the virtual filesystem support.
  • For *simple* support issues, I’d like to request that people start using the forums as much as possible as opposed to posting questions here. The less time I have to spend answering basic questions, the more time I can be cranking out code, and for whatever reason I have the obsessive desire to answer every question that is asked here.
  • Also, I hate to have to mention this, but please don’t post anything about Hackintoshes or Apple TV support here. We’re really trying to stay on the right side of Apple here, and so we’d like to keep things completely legit.
  • Finally, you can read an interview I did with 9to5mac.com, which discusses the project and some future directions we’re considering.

On a lighter note, I’d like to thank my lovely wife for being so supportive of my late hours working on this project. She’s pictured below, looking happy because she’s watching an episode of So You Think You Can Dance using XBMC on OS X. That’s our dog Barkley, who looks rather unamused, probably because of the lack of dogs on the show. He does look pretty comfortable, however.

IMG_1426.jpg

42 comments

Release 0.1: Hundredths are for wimps

NOTE: This release is Leopard and Intel only.

Well, it rained straight through the weekend, so I got a chance to work for a few long stretches, interrupted only by kibble-hungry kitties and a tennis-ball obsessed pup. Is this a zoo or a House of Code?

Here are the changes that made it into this release (some of which were mentioned in the last post). If you’re really impatient, just drag XBMC over to your Applications folder and double click. If you’re lucky, it might actually work.

  • The ffmpeg libraries have been updated to bleeding edge. For example, they incorporate some unusually unintelligible H.264 speedups (MMX assembly, anybody?) that were checked in yesterday. Most of the changes in the last week on that project have been removing compiler warnings, so hopefully living on the edge won’t be a bad thing.
  • Video rendering should correctly track the FPS of the source video, as opposed to the last release, in which the frames per second jumped around between 50 and 60 occasionally.
  • On-the-fly “resolution” switching. I put quotes in because it’s not actually changing the display resolution, just the size of the window. Access the feature via Settings -> Appearance -> Screen.
  • Fullscreen support has been added. Video is displayed on the primary display, so those who want to use a secondary (or tertiary for Al Gore) display need to reconfigure their Display Settings for now. I’ll try to address this in a later release. If you set the environment variable SDL_SINGLEDISPLAY, it should only blank the primary display.
  • Note that the video player resolution should always be set to “Best Available” (which it should be by default). Some mode switching works, but if you’re in full-screen mode and want to play video in windowed mode (or vice-versa) you’ll observe rendering glitches (for those who care, it’s because full-screen OpenGL contexts don’t work in windowed mode, and vice-versa). So please, unless you have a really good reason, just leave the video player settings at “Best Available”. I’m considering taking this option out of the OS X build, because I just don’t know any useful scenarios for it. Know of any? Let me know, but you’re going to have to be pretty convincing.
  • The release is compiled in Release mode (fancy that) with some degree of optimization turned on.
  • Subtitles should no longer cause an assertion (but rather will log an error). The problem seems to be that the converter is assuming a certain encoding for SRT files, and I can’t figure out (a) what the standard encoding is or (b) how to tell the encoding.
  • I’ve constructed a standard OS X Application Bundle for XBMC. It’s not perfect, in that user preferences are still location inside the bundle (I’ll move them to ~/Library/Application Data/XBMC in the next release), but it does include all the dylibs, so installing MacPorts and playing command line games in the terminal should not be needed. You’ll need to move your sources.xml (and other preferences, if you’d like) into XBMC.app/Contents/Resources/XBMC/UserData. NOTE: If you have the XBMC_HOME environment variable set, it will prefer this environment. If you don’t set XBMC_HOME, it will use the environment from the application bundle.
  • NOTE: There are a few regressions in this release. You may notice some video garbage when first starting a movie, and if you switch to GUI mode (with TAB), make sure you stop playing one video (the ‘x’ key) before starting another. Don’t say you weren’t warned.

The overall stability seems to be quite good. I’ve watched a decent amount of stuff with hardly any problems.

164 comments

Status update

OK, it’s been a few days, so I just wanted to post a quick update. I hope to be making another release in the next day or two. Here’s what I’ve been working on:

  • I synced up with all the changes in the XBMC linux branch. There were quite a lot, and as a result I needed to update ffmpeg as well. We’re now completely up to date with the ffmpeg trunk.
  • I fixed a timing issue which was causing the frame rate to jump around from the correct speed to 50 or 60 frames per second. This caused video playback to look slightly jerky. The frame rate now tracks the video playback speed consistently in “fullscreen” mode.
  • I’ve been working on fullscreen support. It took quite a while, but I tracked down a font corruption problem when in fullscreen mode, it seems there was either a bug in SDL, or a disagreement between XBMC and SDL. Either way, it has now been resolved.
  • I worked around an issue that was preventing building XBMC in release mode.
  • I’m also working on building an OS X Application bundle, including the needed dylibs, to make the install more plug-and-play.

There are a few issues remaining before I release the next version. I need to finish up basic fullscreen support, and track down a networking regression that was introduced when I synced up. There are a couple of other relatively minor video playback regressions that have also appeared, but the talented d4rk and vulkanr are looking into them.

That’s all I have for now.

20 comments

« Previous Page

Support Plex

Mmmmm...Beer!

Contact Me

elan at plexapp dot com
  • Meta

  • Recent Comments

    • pletopia"@pippo: i read about this on xbmc’s forums also .. apparently because of the way imdb.com does..."
    • pippo"Hello. I don’t seem able anymore to view Trailers from a movie’s information window. Of course I..."
    • zAo"How can I run MediaServer on a OSX machine, without running Plex?"
    • Mike"Thanks, I’m going to give this a shot. BTW, nice picture of Barkley! I vote for more dog pictures in..."
  • What I'm Doing...

    • v0.7.3 is out and fixes a small bug with passthrough audio in the last version. 1 week ago
    • Release is out! 1 week ago
    • Working out the glitches in the first mirrored deploy... 2 weeks ago
    • Release is built, now uploading, writing release notes, and then mirroring. 2 weeks ago
    • More updates...
  • Archives