New hotness!
I’ve been beavering away in the background on support for an exciting new Plex feature (Coming Soon™), but in the meantime the chaps over at FFmpeg (www.ffmpeg.org) have released v0.5 of the library (which Plex uses to decode most of the media you all enjoy). FFmpeg releases are few and far between, but the guys at XBMC have already worked hard getting the new version up and running. Plex of course benefits by inheriting that hard work. We also benefit from all the work the FFmpeg team have put in optimising and improving the various codecs the library supports.
I’ve also added the new version of libfaad2 (the library we use for AAC decoding) and added support for LATM-AAC (a common muxing format for AAC when used in broadcast DTV). The more astute of you will note that we now support both PAFF H.264 video, and LATM-AAC audio, which are the formats NZ (and Norway) broadcast their digital HDTV in. I’ll let you ponder that while you enjoy the screenshots…
The new stuff should be in an upcoming Plex release, but those of you who want to live on the edge can grab a binary from http://bluemandrill.com/plex/Plex-new-ffmpeg.zip. Source is available at http://github.com/elan/plex/tree/ryan-new-ffmpeg. Enjoy!


Semi-normal
There’s been a few reports since we released Plex/7 that the volume of movies is much quieter than usual, and quieter than other apps playing the same movie. Elan and I have been tossing around a few theories about why, and what the answer is.
There are a few ways to solve it. The first is simply to “make the volume go to 11.” Unfortunately its not quite that easy, as you can’t amplify a digital signal above 100% without introducing clipping and distortion.
A solution common in the recording industry is to use Dynamic Range Compression (DRC), which amplifies the quiet sections of audio to match the louder sections. This is an acceptable solution for some, but I prefer to avoid it because you lose audio quality as you decrease the dynamic range available.
The third way is volume normalisation (what iTunes does when you choose Sound Check). Lets say you have a movie with an average volume of 50% of maximum, and peaks during action sequences which reach 70% of maximum. We can safely amplify this audio track by 30% without introducing clipping, and with no loss in dynamic range.
This is exactly what the next release of Plex will do, tracking the current signal in real time and amplifying it as much as possible without clipping. I’ve allowed a maximum amplication of 10dB so that you don’t blow up your speakers with silence.
Enjoy, and as always, polite and detailed feedback is welcome.
-Ryan
8 commentsThe Fuzz
It looks like the new audio code has gone down well in most quarters, at least for people who were previously unable to use their 5.1 receivers with Plex. Thanks to the forum users for all the help debugging that issue.
Unfortunately you can’t make an omelette without breaking a few eggs, and two eggs I broke were the volume control (de-amplifier) and playback of some unusually-formatted music in paplayer (our music player). The volume control was purely because I personally don’t use it, and therefore it didn’t get the testing it deserved. My profuse apologies. The music playback speed bugs were more an issue of not having the files to test, but again, I apologise profusely.
I’ve read the forum reports of bugs, and have been able to reproduce and fix both. As a nice side effect, I’ve removed the resampling code from paplayer. We do a single conversion from whatever input format you use to 32 bit floating point (the same conversion CoreAudio would do internally) and maintain the audio in that format. We no longer do any sample rate conversion, which means if you want to play 24-bit 96khz (or higher!) audio, just set your hardware to that format in Audio MIDI Setup, and Plex will deliver it bit-perfect for you. The same is true for CD audio or other 16 bit 44.1/48Khz audio.
The new release will be available once it’s been through our dedicated testing team. Enjoy, and as always, polite and detailed success/failure reports here or in the forums are appreciated.
9 commentsReally Surrounded By Sound
I’ve just checked the new CoreAudio-based audio system into Plex’s unstable 0.7 branch. Elan’s going to roll a new build very shortly, so you should all be able to take it for a spin very soon.
There are two major benefits to the code: the first is better detection of audio hardware, so you shouldn’t have to muck around in the audio settings as much trying to get 5.1 sound to work. If you have a digital output built into your mac, plug it in, select the digital device, and play movies in surround!
The second of course is native AC3 output using CoreAudio. If you have a receiver which hasn’t previously been able to play surround sound from Plex, it almost certainly will now. If you’ve been using a USB or Firewire audio device, you may need to use the old system, which is available using the override switch in the audio settings page. Lip sync is also better because we can now accurately check the hardware latency of different devices.
The AC3 encoder is still present, and will work as previously.
This is the product of many late nights and weekends, and gracious help from Elan, and the PortAudio team, Phil Burke in particular. Thanks also to all the users on the forum who helped with testing and insight.
Enjoy!
5 commentsHowdy!
I’m Ryan, one of the Plex Developers. This is a part time project for me (My day job is a junior doctor in NZ’s public health system) but I usually manage to find time to add a feature or fix a bug here and there.
Currently I’m working on improving our digital audio support, but am planning on integrating EyeTV support, better DVD playback, and giving Elan a hand on a couple of other projects which we think you’ll like…
In the meantime, I’ll post updates on audio support and other things I’m working on here.
Finally, in the spirit of Plex, here’s my personal Plex mascot (Plexscot?) Ted.
-Ryan
7 comments



