Feed on
Posts
Comments

In my previous post, I discussed how to do AC3 passthrough using Perian. Unfortunately, this method is really a hack, and doesn’t work in all situations. There is a better solution though.

Apple has enabled AC3 passthrough with Quicktime. They have enabled it on the AppleTV to support playback of their HD movies. The code for passthrough is even in the latest version of Quicktime on the desktop, but the celebration ends there. Apple has not exposed a method for enabling passthrough on the desktop either through the user interface, or a hidden preference. They have not even exposed a method for developers to use it through Quicktime (I’ve tried).

So, what is to be done about it? Tell Apple to address this. Go to http://bugreport.apple.com and fill in an enhancement request. You can reference my report id, which is 5799133, and says:

Please enable a method for AC3 passthrough on the desktop using Quicktime. There are no licensing issues for passthrough, and you already have the enabling code in place. The AppleTV proves that your code works, so please add the interface so this can be used on the desktop.

The hack in use by Perian isn’t perfect. It does not work with all receivers where the true passthrough will. Audio outputted using the encoded digital audio output of the optical interface works, as evident by the DVD player, but this method is not available to Quicktime in any documented manner.

If enough people fill in reports, Apple should realize this is important to people and enable the interface. Please use your own words in your own reports; it says more to them if the reports are not copy/paste.

Update: Apple has marked my ticket as a duplicate of 4557501.

I have seen a few people post methods about enabling AC3 passthrough, and many of them are overly complicated or in some cases even wrong. Since I designed the code that actually does this, I’ll list the steps here:
Note: This does not work with all receivers. If these instructions fail for you, most likely your receiver will not work with this. Passthrough is still a hack, and thus this hack is still outside of the specs.
Note 2: Apple broke AC3 rather seriously in QT 7.3 (bug id 5594478, go tell them to fix it). If have a .mov file, open it, and it says that it is stereo audio rather than 5.1, this is a symptom of that bug. You will need to have at least Perian 1.1 and re-open the original file that made the .mov file. This bug has been fixed in 7.4.5, but any .mov files created with QT 7.3 or 7.4 are still affected by this bug.

  1. Install Perian
    Just go to Perian.org and click the big download link. Double click on the pref pane, and it’ll install itself.
  2. Connect your receiver
    The audio connection must be a digital connection. In all cases that I know of, this means an optical cable from your mac to the receiver. In the case of the AppleTV, this is certainly the case. I suppose this could work with the coaxial digital connection, but I don’t know of the audio hardware that provides this connection.
  3. Change the sample rate to 48KHz
    • On the mac, open /Applications/Utilities/AudioMidiSetup.app
    • In the lower right, change the format to 48.000KHz, and 2ch-16 bit
    • On the AppleTV, this is much more difficult. I recommend using Sapphire instead. It’ll do this step for you
  4. Enable AC3 passthrough.
    This is easy when done correctly. Open /Applications/Utilities/Terminal.app and type

    defaults write com.cod3r.a52codec attemptPassthrough 1

    To turn off passthrough, you type this instead:

    defaults delete com.cod3r.a52codec attemptPassthrough

  5. Play with 100% volume
    This does not mean modify the .mov to play with greater gain than the original .mov file in the properties, but it does mean put your computer’s volume output at the top, and the .mov file should also be at it’s top with the little slider.

That’s it. Play you movies with AC3 audio and enjoy your 5.1 system.

Edit: Added volume information which was missing.

Over half a year ago (that’s way to long to get back to this), I posted an blog entry on what I have observed in open source attitudes. I received a number of comments, the most interesting which is Daniel’s. What I found the most fascinating was the two opposite views I got in the comments.

First, there were the developers, who seemed to largely agree with my comments. Then there were the users, who took offense at some of my comments, or the way that open source developers have treated them in the past.

Now that I have had some more time to think through the issue more, I have some additional comments. In addition to working on Fire, Adium, and Perian, I have also added Sapphire to the list. Here are some of the things that I have learned:

In my previous post, I listed three reasons why a developer might release their program under an open source model. These were:

  1. The software uses another piece of code or library which requires the work as a whole to be released under an open source license (GPL being most notable here).
  2. The developer hopes to interest more developers to join his efforts.
  3. The developer fundamentally believes that all software should be free and is trying to lead by example.

One person attributed these 3 reasons as “blackmail, lonely, and zealot.” While the third is accurate of what I was trying to convey, I don’t think the first two are.
In the case of 1, I have actually known of a program that had part of it released under an open source license specifically to get around the license restriction of the extensive libraries he used. If he had his way, it would all be closed source. This is what came to my mind first, and so I listed it first.
With 2, I was referring to a reason to open source a project, not why to work on the project in the first place.
Anyway, I would like to add a few others to the list which I hadn’t considered:

  1. A work for potential employers to view
  2. The developer was feeling altruistic
  3. The developer wishes to cease involvement with the project but doesn’t all the work to go to waste
  4. The developer wants others to learn from the designs and algorithms he made

I didn’t realize the potential of the first until I interviewed with a few companies. Instead of asking me about my work experience in the interview, they asked me about my open source projects. I would surmise that they view work on an open source project as more indicative of my passions. If they were able to find a project within their company that lined up with the passions I displayed in these projects, then I would be a much more productive worker for them.
The last three are somewhat similar, but I have seen each distinct forms in the past.

Now, on to the piece that was missing in my first post. Why does a developer work on an open source project in the first place?

  • The project is something fun.
  • The project’s output (program) is something the developer uses himself.
  • He wishes to see some sort of enhancement for his own use.
  • He is being paid.

If a developer finds himself working on a project, and he doesn’t find any of the above reasons describing his situation, he should seriously consider abandoning the project. Why work on something that will not benefit you, isn’t paying you, and is simply not fun?

The other side of this issue is the perspective of the users. They can be roughly split into four camps.

  1. Those who use the software and love it
  2. Those who use the software, and love it minus a small pet peeve, but are appreciative of what they already have.
  3. Those who use the software, love it, but demand that things go their way.
  4. Those who used the software, hated it, and vowed to never use it again.

Those in camp 1 are, in some ways, the best users. On the other hand, those in the second camp are also great, because while they wish for something to be changed, they are still appreciative. Camp 2 users can actually be better than camp 1 when they come up with insightful suggestions, and when they present a bug report, more often than not, the developer will be happy to address them.
Camp 4 users may provide a “This software sucks because of …” comment and you never hear from them again. They may be a bit of a hit to the ego, but just ignore the comment and it’s over.

It is camp 3 that is the destruction of open source software. While they are often a small minority, unfortunately they are the most vocal. They will often take the attitude of the selfish jerk who things that his way is the only way things should ever be done. He will often tell the developers that something must be done in an archaic fashion against the developers thoughts, and may even go as far as to insult them hoping it’ll help get it done. “It is so easy,” and, “this is useless,” are examples of such phrases one may seen being used by such people.

If camp 3 users were eliminated, open source software would be a much richer field. So, what can be done about them? First, watch the google video: How Open Source Projects Survive Poisonous People (55min, 111MB).
In addition to the things specified in this video, I have started employing the phrase “patches welcome.” This has become my way of saying:

No. I have no reason to do what you say, and it will take a considerable amount of time that I do not have. The same is true of all the other developers, and your persistence in demanding this is becoming a nuisance. If you really want it so badly, then you are going to have to do it yourself, find/pay someone to do it for you, or spend the time learning the skill set so that you can do things on your own.

A common response to this is something along the lines of “I don’t know how to program.” This is akin to saying “I can’t do this for myself so you are obligated to do it for me.” No one is entitled to have a program designed for him just the way he likes without paying for it. Don’t bother arguing this point; you’ll just appear foolish. How many people think that you could go up to an professional tax preparing service, tell them that they don’t know how to do their taxes, and have them fill out the forms for free? Not going to happen, is it? So why do people expect the same of open source developers?

So, what is a developers response to seeing reports from users in any of the 4 camps? I cannot answer for them all, but I can tell you mine. When I am perusing through the ticket tracking system, and I see a report/suggestion, I’ll apply the following criteria in decided whether I will work on it or not:

  • Is it a quick change (5-10 min. tops including debugging)?
  • Did this person show any appreciation for the work I have already done?
  • Is this something I want myself?
  • Will this be something fun?
  • Am I being paid or will this benefit me in some other way?

If the answer to all of those is no, there is no way I will work on it. Anyone who would expect me to do otherwise should get out of their communist mindset. I will not adhere to working according to my ability and pay according to my need. Too many have fallen into the trap of believing this to be a good idea; I will staunchly appose them.

In conclusion, open source software (OSS) can be a beautiful thing, if kept in the proper context. It is starkly different from commercial software in that the developers (in most cases) are unpaid volunteers. Users of OSS, treat the developers with appreciation and respect, and you may convince them to direct the program down your chosen road. If they don’t, do not be upset, insult them, or become more demanding/annoying, but instead thank them for their work and ask if it can be revisited in the future. If you have the cash, you can even offer to pay a bounty on it, open to anyone who submits the accepted solution. Those are the best roads to take, and are most likely to get the results you desire. Follow another, and take your chances.

For those who don’t know yet, Perian version 1.1 has been released. This one was a long time coming, including large sections of code which were written for 1.1 before 1.0 was even released.

Now it is time to sit back, relax, and get some sleep before the bug reports start piling in.

Sourceforge SPAM

Yes, sourceforge.net has resorted to spamming its users. I have received a number of emails from this “Sourceforge.net Marketplace”. In the past, I just let the spam catcher correctly junk them, but today I got annoyed with it. I looked at the bottom of the email, and I see

This email was sent to: xxxx@users.sourceforge.net if you would prefer not to receive information about SourceForge.net Marketplace, please update your communication preferences by visiting the Profile Center.

(my username crossed out because I get enough spam there already)

So, I visit sourceforge, log in, and go to my profile. Nothing is listed for the marketplace mailings. I got visit the marketplace, and there is no profile there. So, what next? I spend several minutes trying to find the old ticket system for the sourceforge site. It used to be rather prominent, but now it more hidden. I file ticket 1884414. It seems that they went through great trouble to hide the fact that “Profile Center” is actually a link. I mean they used inline css to hide all attributes that give you any hint that it is a link; I guess in the hopes that you will not actually click on it. The link tag looks like this

<a style=”font-family:arial;font-size:11px;color:#999999;text-decoration:none;” …

So, I used to use sourceforge back in the day for open source projects. I moved my projects off of them because their servers were too unreliable and they took so long to adopt svn. Now, I host my own projects, one of which is bigger than any I worked on under sourceforge, and the stability is much greater. I guess sourceforge has noticed their pending obsolescence, so they started using their large user base to spam people. Perhaps it is time for me to delete my account there as I have no use for it anymore.

« Newer Posts - Older Posts »