Plex/Seven: Simplified settings
First you write an application. Then at some point you decide there might be a few different ways a feature should behave. You add a setting. And that’s when things go downhill.
I’ve personally always had mixed feelings about settings. On the one hand, it’s obviously nice to allow people to configure an application to work the way they want it to. On the other hand, adding an option can often be the result of lazy design: I can’t figure out which is the better way, so I’ll just make it an option.
Apple takes an ascetic approach to configuration in its software. Front Row has exactly *three* settings, and many of its other applications have only a handful of configurable options. I posit that the reason for this is that they spend a lot of time working out the way the software should work by default, out of the box, for the majority of their users.

XBMC has historically been, to say the least, a settings-rich application. Dozens upon dozens of settings were available in the main program, and then many more are available only by editing an XML file (advanced settings).
After months of fielding issues from users on our forums, Isaac took it upon himself (with coding help from Enrique and lots of feedback from the team and testers) to revamp the settings in order to solve the following problems:
- Beginning users were often confused by the vast array of configurable options.
- Some settings were dangerous (i.e. you used to be able to turn off the event server and thus render your Apple Remote useless).
- Some nomenclature used in the settings wasn’t familiar to Mac users (e.g. “Pan and Zoom” instead of “Use Ken Burns Effect” for slideshows.
- Some default values didn’t make sense.
- Options were grouped strangely in some cases.
- Some settings didn’t do anything (except perhaps as a placebo effect).
As another example of how we’ve tried to make things easier for beginning users, Ryan’s new code makes the selection of audio devices much easier, by automatically detecting whether passthrough is supported by the device.
Additionally, keymaps have been simplified (thanks to Isaac and James). Each device’s mappings live in a separate file, and the keymaps are stored in the application bundle (but can still be overridden by the user, of course).
As a final example of how we’ve tried to pay attention to detail, you’ll notice in the screenshot below that a choice for Skin Colors doesn’t appear. That’s because the selected skin doesn’t offer color choices, so we felt that there was no sense in displaying an option that the user can’t change.
Please note that most of these changes are not set in stone. We are trying to find a balance between keeping advanced Plex users happy and at the same time making life easier for new users. If there is a setting that was hidden that you think is of great importance please take a minute to voice your concern on our forums.
Plex/Seven: The Countdown begins
We’ve all been coding until our fingers bleed, and now we’re almost ready to give you the fruits of our labor in the form of the new development series of Plex. The first release went out last night to our testers, and things are looking good.
Since there are so many new features, we’re going to detail them in blog posts, one feature per day. The first one will be posted later on today.
In the meantime, if you’re looking to show your plexy side, come visit our new web store that Isaac and Alexis set up, where you can pick up a Plex t-shirt or mug!
Plex v0.5.22: Last in the series
Way back when I was just starting the port to the Mac, and the program was just as likely to crash on you as play a video, I dreamed of a day when it would be stable.
In the last months, we have made 22 releases of the 0.5 series of Plex. We’ve tried to fix all the most serious bugs, and add some OS X flavor to the application in the process (not to mention all the bugs that the XBMC team has fixed). I haven’t had a crash in a long time in my own personal use, and even the bug and crash reports have slowed.
Of course, there are still problems, and still bugs. No software is ever perfect. But we feel like we’ve reached a point where it works “pretty darn well” and we’d like to formalize this by ending the 0.5 development series, and releasing 0.6. Assuming nothing got screwed up in this release, we’ll make a couple of last-minute tweaks and fixes and release as 0.6.0.
Our long-term plan with Plex was always to stabilize, then enhance. First get it working well enough, then make major architectural changes.
At the same time as we’ve been working on the 0.5 series, we’ve also been staying up late at night, working hard on new stuff. Really cool new stuff. In the coming week or so, I’m going to be posting here with details on the *NINE* enhancements to Plex that have been completed. These enhancements will be included in the first release of 0.7 (the next development series). To summarize:
- v0.6.x: This will be the new stable series. If you fear change, and just want to enjoy your media in the safety of a stable release, use these. We’ll make bug-fixes, include the latest MediaStream, but nothing too scary.
- v0.7.x: If you like living on the bleeding edge, skiing down double-black diamonds, and jumping out of planes with parachutes, this is probably the series for you.
Here are the changes in this release (available from the Plex home page, and from Sparkle shortly):
- NEW: You can now configure the way the H.264 decoder does deblocking. Some will you will know this is the “skiploopfilter” setting in ffmpeg. Some will wonder if I’m speaking English. The bottom line is, if you allow the decoder to skip doing deblocking, it’ll be less intensive for the CPU. I’ve found that if you configure it to skip all deblocking, the “killa” bird sample uses about 20% less CPU and plays at a higher frame rate. Bottom line: your mileage may vary, but it may help you with hard-to-play content.

- NEW: Support for the Home and End keys in lists. Also support for using the A/Z keys to skip to the next/previous letter in lists. Jonathan Marshall added support for this last one a while ago, cool dude that he is, so we added a mapping. Also, Isaac added a new mapping for people using Snatch on their iPhone. You’ll have to whack your Keymap.xml file in ~/Application Support/Plex/userdata to get these features.
- NEW: We have included the latest MediaStream skin (no doubt out of date by tomorrow), along with the associated code fixes so that you don’t have to hit escape 23 times to return to the main menu from the Movie/TV sections. You can see some documentation for the new settings in this version of the skin here (many thanks to Jayman978!)
- FIX: We dimmed the wrong screen when you were running with a multi-screen setup and Plex was on the second screen.
- FIX: Some MP3 tags caused a hang. This includes the “Burial” album, so bretonh will be pleased.
- FIX: Refreshing movie info from NFO in VIDEO_TS folders caused a crash.
- FIX: Storing a TV show in multiple places (e.g. some seasons in one place, some seasons in another), whether by multi-path sources or different sources led to duplicates.
We’ve of course included all the latest XBMC fixes as well, including the latest UPnP and MythTV code.
I’ve taken to opening up fresh coconuts in the back yard with a big machete. The coconut water is supposedly really healthy, and if I’m feeling inspired, I make fresh coconut milk from the pulp for a Thai curry. Barkley loves both the milk and the pulp, so mostly I just lop the coconuts in half after drinking the water and give them to him.
Server Migration
Tomorrow morning, the XServe box that hosts our web site, forums, and blogs will be strapped into a baby seat and moved from its current location in downtown San Francisco to an undisclosed bunker location, where it will share space with Dick Cheney and his army of robot clones.
Even assuming the server doesn’t get shot in the face, we will still have a few hours of downtime in the morning. Things should be up and running and DNS propagated by the afternoon.
We have some exciting stuff coming up in the form of new Plex features which we’ll be detailing here in the coming weeks…
9 commentsPlex in MacWorld
If you pick up the November issue of Macworld, you’ll notice that there’s a two page spread on Plex (thanks to migueld for tipping me off). I spoke with Gina Trapani months ago, and had all but forgotten about it. It’s a well written article, and hopefully we’ll see a bunch of new users show up as a result.
Speaking of users, we got our 2000th member on the forums yesterday. Congratulations to SMario for making Plex 2K, we raise our collective beers to you!
9 commentsRelease 0.5.21: Drunk enough to know better
Top two reasons why I shouldn’t have released 0.5.20 quite yet:
- I was heading out to a long dinner party, virtually assuring that there’d be a problem I couldn’t address for many hours and beers.
- I changed things after the testers did their work. Bad me, no biscuit.
Two changes in this release:
- FIX: Crash on entering settings menu. Elan kan’t kode.
- FIX: Restore screen backlight level on exit.
The new release is available in the usual place. Will you forgive me if I post another photo of Barkley? This is him watching as his buddy Poots does tricks at the behest of our friend Heather. French Bulldogs can fly.
Release 0.5.20: Progress is the opposite of Congress
*** Hold off on this release for now, there’s something borked with the settings ***
First of all, I want to make a big shout out to our forum members (citizens of Plexville). We just passed 10,000 posts, and we’re just a hair’s breadth away from 2,000 members. It’s a friendly, productive, helpful community, and we like it that way. A warm welcome to the new members, and a sincere thanks to everyone who helps out, we couldn’t do it without you!
We’ve been busy working on some awesome new features for the upcoming 0.7 development version, but we wanted to step away for a moment and fix some of the lingering bugs in the 0.5 series before we declare it stable. You can find the download on the home page or via Sparkle, as soon as I update the appcast.
- NEW: We now turn off the backlight on displays that are blanked, many thanks to James. I hear the sound of happy Mac users rejoicing.
- NEW: The menu button brings up shutdown menu instead of just exiting, as requested, holding play zooms into photos, and holding menu returns to normal zoom. Also, the escape key has been made to act just like the menu button on the remote. Thanks to Isaac for these improvements!
- NEW: Added the ability to cycle through the available displays. This works in windowed or full-screen modes, and you can use the new ⌘-Shift-→ and ⌘-Shift-← keyboard accelerators to do it. Fun! Plus, ever time I connect things in XCode’s Interface Builder, I get little shivers of pleasure.
- FIX: Weather conditions are correctly localized (thanks, Enrique!)
- FIX: James fixed a small bug with the display brightness setting.
- FIX: The audio device is now saved and restored correctly in all cases. Seriously.
- FIX: The problem affecting video with some LOL releases (and others) has been fixed (thanks to elupus for the fix to ffmpeg).
- FIX: A rare bug causing a crash when blanking displays (thanks, Enrique!)
Since Isaac has made tweaks to the keymap and advanced settings, unless you’re an expert user who has made your own edits, you’ll want to delete advancedsettings.xml and Keymap.xml from ~/Library/Application Support/Plex/userdata/ so that the new defaults can be installed.
As usual, we’ve also pulled fixes from the XBMC code, including shoutcast fixes by the ever-productive vulkanr, the latest scrapers, the usual assortment of brilliant stuff by jmarshall, and more (RTMP fixes, etc.). I also pulled r15344 as requested by chitz.
This is a photo of Barkley with his brother (i.e. littermate)Johann. We met him by chance at the dog park we used to frequent in Pasadena after noticing the striking resemblance.
Release 0.5.19: Fine tuning
Alright, a fresh new release for your enjoyment. A few tasty new items, and some bug fixes reported by our most excellent community! You can download from the home page, or via Sparkle (within a few minutes).
- NEW: Our newest Plexville code master, Jam, added the ability to modify the panel brightness for applicable LCDs (iMacs, laptops) via the settings. Lots of other really cool things coming very shortly from him.
- NEW: Greatly simplified settings. Isaac worked really hard to come up with sane default settings, and also to move lots of the more esoteric settings from the UI into advancedsettings.xml. We’ve found that new users tend to run into the same things (e.g. disabling remote events and thus breaking Apple Remote). Plex now ships with a well commented advancedsettings.xml file which will get installed into your Application Support folder if you don’t already have the file. If you want to change settings that no longer appear in the UI, you can either edit the items in the advanced settings file, or remove from them there to make them appear in the UI again. Isaac did an awesome job at choosing reasonable defaults.
- NEW: Revamped the full-screen toggling (⌘-F) to make things more Mac-like. If you go into full-screen and quit, next time it will start in full screen. Also, if you drag the window over to another screen and hit ⌘-F, it’ll go to full-screen on that display. Quit and restart and it’ll be full-screen on that display. In summary, it should act much more intuitively. Thanks to migueld for pushing me on this one, we had lots of new users (rightly!) confused.
- FIX: Certain MKV files could cause crashes.
- FIX: Multi-channel AAC files could cause crashes (with AC3 transcoding). Ryan nailed this one.
- FIX: A regression displaying non-US charsets (e.g. French). Thanks to Soner and others who helped bring the problem to my attention.
- FIX: A regression scanning/refreshing movies in VIDEO_TS folders.
- FIX: Improvements to the German translation of MediaStream (thanks, Spacemessage!)
The new MediaStream 0.91 is included also, with lots of good stuff. There is a newer version out there, but we haven’t gotten though testing it yet with Plex.
We’ve also pulled the usual updates from XBMC: New scrapers, bug-fixes, better mouse hiding/displaying code from jmarshall, dropped frame code from elupus (look how few frames are actually dropped now!) and of course d4rk’s new plug-ins for iPhoto/iTunes (nice job!).
It was a beach day for Barkley this last weekend.
Survey Results
I’ll be out of town for the next couple days, but I wanted to leave you all with some entertaining reading material. Back in July we asked you to fill out a survey detailing how you store your media, how you use Plex, and what future work on the project was important to you. There’s a link to the full survey towards the end, but here are some of the things that were interesting to me:
- Almost three quarters of you have little or no media on physical discs.
- 84% of you have little or no media in VIDEO_TS folders, or in ISO/IMG files.
- 81% of you have little or no media inside RARs or ZIP files.
- More than half of you have a majority of your media in high definition. Hello, future!
- Only 4% of you use 4×3 resolution.
- Only 24% of you use library mode, with 22% finding it too buggy and 29% finding it too complicated.
The interesting thing about those numbers - to me, at least - is in terms of priorities and allocating limited resources towards work on a project. As an example, I think it’s clear from these numbers that Team RazorFish did the exact right thing by leaving 4×3 support for their lovely MediaStream skin until the end!
The top three things you wanted from Plex back in July were stability, integration with OS X, and a lovely skin. We’ve been working hard to address the first, we now ship with the MediaStream skin, and we’ve got some really exciting stuff coming up in terms of integration features.
Plex needs to have strong focus on what’s important to our users, and we really appreciate everyone who filled out the survey to help us with that.
And now I’m off to go relax and celebrate our one year wedding anniversary. Assuming I can relax without an Internet connection, that is…
34 commentsRelease 0.5.17/0.5.18: DTS down-mixing fix
My sincere apologies for a bug that crept in with the DTS to AC3 transcoding feature which prevented DTS from down-mixing correctly. If you use usually connect Plex to a surround receiver supporting DTS you would not have been affected.
The problem has been fixed, and I’ve uploaded the new release. The good news is you should be able to use Sparkle to do the update for you.
This is Barkley catching guava fruit in his mouth. He loves guava, pineapple, papaya and avocado, and on occasion we’ve caught him eating freshly-fallen mango out in the yard.