Thoughts and Ramblings

General things I find of interest.

Xcode Filling Log Files

If anyone has ever used Xcode, and tried to debug an app through console messages, then they know how annoying this can be without the development tools getting in the way. An example for me is debugging a frontrow plugin, where sometimes it is easier to print debug info to the console rather than the trouble of using a second machine to fire up gdb. Anyway, Xcode is very good at spewing lots of extraneous and effectively useless information to the console log, such as the following: 6/13/08 5:19:17 PM Xcode[32580] Xcode(32580,0xb0103000) malloc: free_garbage: garbage ptr = 0x456bee0, has non-zero refcount = 1 Of the past 4000 messages in the console, over 3500 of these were xcode. That’s including debugging information from my programs. This is one of the most annoying examples of development tools hindering the development they are supposed to enable.


AC3 Passthrough Compatibility Matrix

Since some parts of AC3 passthrough work, and others do not, I decided to create a bit of a compatibility matrix to summarize it. I’ve added the related bug id’s I’ve reported, which have gone unanswered, in parentheses.

The latest version of perian (to be released soon), will choose between using the hack method for passthrough, and Apple’s method. Anywhere labeled “Hack” will never work with Apple’s method, so it is bypassed to avoid their broken code. The hack does not work with all 5.1 receivers. Taking a file format which is not properly framed, and making it into a .mov file will not correct the framing. Likewise, it will not destroy the framing of a properly framed file format.


Rescuing videos from AVI

As I wrote in a previous entry, people have used avi for things which it was never designed.  One of the more notable examples is multi-channel audio bitstreams. In addition, the people who make such files went as far as to do in the completely wrong manner. So, as a result, I looked for a way to rescue data from the avi format so it is actually usable.

Basically, use mkvmerge from mkvtoolnix to convert the avi file to an mkv file. Then, open the file with Perian, and save it as a .mov file. The result is a file which both has the proper framing for AC3 data, and also has the proper frame decode and display information. This means that one can do real AC3 passthrough on avi files. Maybe this will be the ultimate solution.


Java in Xcode

Well, I have had reason with my research to do some Java development. No biggie, Xcode supports Java too, right? Wrong! well mostly. This all came to a head when I downloaded the latest beta of Xcode (which I am only using because these fix a serious performance issue with the non-beta releases). After the last download, I found 4 distinct bugs in 2 hours, and I’m still finding them. Two of these are Java related, so I gave up, and looked for alternatives.


Limited Real AC3 Passthrough

Well, I got to fiddling around with the existing passthrough on the AppleTV. I found where it works, and where it doesn’t. AC3 passthrough does work in .mov files with 48KHz files, of any bit rate. I did this with importing a .ac3 file into .mov, and adding a video track (ATV doesn’t like playing audio only files). I still need to test 44.1KHz, and 32KHz, but they are a bit harder to find. I have still to come across one of them.