<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Breaking Eggs And Making Omelettes</title>
	<atom:link href="http://multimedia.cx/eggs/feed/" rel="self" type="application/rss+xml" />
	<link>http://multimedia.cx/eggs</link>
	<description>Topics On Multimedia Technology and Reverse Engineering</description>
	<lastBuildDate>Thu, 26 Jan 2012 18:47:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>How Many Default Languages?</title>
		<link>http://multimedia.cx/eggs/how-many-default-languages/</link>
		<comments>http://multimedia.cx/eggs/how-many-default-languages/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 07:36:37 +0000</pubDate>
		<dc:creator>Multimedia Mike</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://multimedia.cx/eggs/?p=3703</guid>
		<description><![CDATA[How programmable are modern operating systems when they're freshly installed?]]></description>
			<content:encoded><![CDATA[<p>I was thinking back to my childhood, when my family first owned a computer. It was an MS-DOS-powered IBM PC. The default OS came with 2 programming environments, such as they were: <a href="http://en.wikipedia.org/wiki/GW-BASIC">GW-BASIC</a> and <a href="http://en.wikipedia.org/wiki/Batch_file">batch files</a>. It was a start, I suppose. I guess most any microcomputer you can name from that era came with some kind of BASIC interpreter. That defined the computer&#8217;s &#8220;out of the box&#8221; programmability.</p>
<p>Then I started wondering how this compares to computers (operating systems/distributions, really) these days. So I installed a fresh version of the latest Ubuntu Linux version (11.10 as of this writing; x86_32) and looked for programmability (without installing anything else). This is what I came up with:</p>
<ol>
<li>gcc/C (only the C compiler; other components of the GNU compiler collection are installed separately)</li>
<li>Perl</li>
<li>Python</li>
<li>C#, as furnished by Mono</li>
<li>Bash &#8212; can&#8217;t forget about the shell as a full-featured programming language (sh is also present, but not t/csh)</li>
<li>JavaScript &#8212; since Firefox is installed per default, JS counts</li>
<li>GNU Assember &#8212; thanks for Reimar for the reminder that if gcc is present, gas necessarily needs to be there as well</li>
</ol>
<p>I checked on C++, Objective C, Java, Ada, Fortran, Go, Lua, Ruby, Tcl, PHP, R and other languages I could think of, but the above items were the only ones present by default. At the same time, I checked my Mac OS X (10.6) box and it also has Ruby and PHP installed. It has a bunch of other languages, courtesy of Xcode, so I can&#8217;t certify anything about its out of the box programmability.</p>
<p>Still, I think &#8220;embarrassment of riches&#8221; pretty well sums it up. I try not to be crotchety old fogey complaining that kids these days don&#8217;t know how good they have it; rather, I&#8217;m genuinely excited for anyone who wants to leap into computer programming in this day and age.</p>
]]></content:encoded>
			<wfw:commentRss>http://multimedia.cx/eggs/how-many-default-languages/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>2011 In Open Source Multimedia</title>
		<link>http://multimedia.cx/eggs/2011-in-open-source-multimedia/</link>
		<comments>http://multimedia.cx/eggs/2011-in-open-source-multimedia/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 07:39:57 +0000</pubDate>
		<dc:creator>Multimedia Mike</dc:creator>
				<category><![CDATA[Open Source Multimedia]]></category>

		<guid isPermaLink="false">http://multimedia.cx/eggs/?p=3683</guid>
		<description><![CDATA[A look back at what transpired in open source multimedia during the calendar year of 2011; highlights include the notorious project split]]></description>
			<content:encoded><![CDATA[<p>Sometimes I think that the pace of multimedia technology is slowing down. Obviously, I&#8217;m not paying close enough attention. I thought I would do a little 2011 year-end review of what happened in the world of open source multimedia, mainly for my own benefit. Let me know in the comments what I missed.</p>
<p><strong>The Split</strong><br />
The biggest deal in open source multimedia was the matter of the project split. Where once stood one project (<a href="http://ffmpeg.org/">FFmpeg</a>) there now stands two (also <a href="http://libav.org/">Libav</a>). Where do things stand with the projects now? Still very separate but similar. Both projects obsessively monitor each other&#8217;s git commits and prodigiously poach each other&#8217;s work, both projects being LGPL and all. Most features that land in one code base end up in the other. Thus, I refer to FFmpeg and Libav collectively as &#8220;the projects&#8221;.</p>
<p>Some philosophical reasons for the split included project stagnation and development process friction. Curiously, these problems are fond memories now and the spirit of competition has pushed development forward at a blinding pace.</p>
<p>People inside the project have strong opinions about the split; that&#8217;s understandable. <a href="http://phoronix.com/forums/showthread.php?37331-A-Group-Of-FFmpeg-Developers-Just-Forked-As-Libav">People outside the project</a> have <a href="http://news.ycombinator.com/item?id=2325806">strong opinions</a> about <a href="http://lwn.net/Articles/433347/">the split</a>; that&#8217;s somewhat less understandable, but whatever. After 5 years of working for Adobe on the Flash Player (a.k.a. the most hated software in all existence if internet nerds are to be believed on the matter), I&#8217;m <em>so over</em> internet nerd drama.</p>
<p>For my part, I just try to maintain some appearance of neutrality since I manage some shared resources for the open source multimedia community (like <a href="http://wiki.multimedia.cx/">the wiki</a> and <a href="http://samples.mplayerhq.hu/">samples repo</a>) and am trying to keep them from fracturing as well.</p>
<p><strong>Apple and Open Source</strong><br />
It was big news that <a href="http://multimedia.cx/eggs/alac-open-sourced/">Apple magnanimously open sourced their lossless audio codec</a>. That sets a great example and precedent.</p>
<p><strong>New Features</strong><br />
I mined the <code>'git log'</code> of the projects in order to pick out some features that were added during 2011.</p>
<p>First off, <a href="http://wiki.multimedia.cx/index.php?title=Apple_ProRes">Apple&#8217;s ProRes video codec</a> was reverse engineered and incorporated into the multimedia libraries. And for some weird reason, <em>this</em> is an item that made the rounds in the geek press. I&#8217;m not entirely sure why, but it may have something to do with inter-project conflict. Anyway, here is the decoder in action, playing a video of some wild swine, one of the few samples we have:</p>
<p><center><br />
<img src="http://multimedia.cx/eggs/wp-content/uploads/2012/01/apple-prores-boar-video.jpg" alt="" title="Apple ProRes screenshot -- the boar video" width="400" height="301" class="aligncenter size-full wp-image-3684" /><br />
</center></p>
<p>Other new video codecs included a reverse engineered <a href="http://wiki.multimedia.cx/index.php?title=Indeo_4">Indeo 4</a> decoder. Gotta catch &#8216;em all! That completes our collection of Indeo codecs. But that wasn&#8217;t enough&#8211; this year, we got a completely revised <a href="http://wiki.multimedia.cx/index.php?title=Indeo_3">Indeo 3</a> decoder (the previous one, while functional, exhibited a lot of code artifacts betraying a direct ASM -&gt;C translation). Oh, and many thanks to <a href="http://codecs.multimedia.cx/">Kostya</a> for this gem:</p>
<p><center><br />
<img src="http://multimedia.cx/eggs/wp-content/uploads/2012/01/wc4-trailer-screenshot.jpg" alt="" title="Wing Commander IV trailer playing with open source Xan codec" width="336" height="211" class="aligncenter size-full wp-image-3685" /><br />
</center></p>
<p>That&#8217;s the new <a href="http://wiki.multimedia.cx/index.php?title=Origin_Xan_Codec">Origin Xan decoder</a> (best known for <a href="http://www.mobygames.com/game/wing-commander-iv-the-price-of-freedom">Wing Commander IV</a> cinematics) in action, something I first started reverse engineering back in 2002. Thanks to Kostya for picking up my slack yet again.</p>
<p>Continuing with the codec section, <span id="more-3683"></span>there is a decoder for <a href="http://wiki.multimedia.cx/index.php?title=Flash_screen_video">Adobe Flash Screen Video 2</a> &#8212; big congrats on this! One of my jobs at Adobe was documenting this format to the outside world and I was afraid I could never quite make it clear enough to build a complete re-implementation. But the team came through.</p>
<p>Let&#8217;s see, there are decoders for <a href="http://wiki.multimedia.cx/index.php?title=VBLE">VBLE video</a>, <a href="http://wiki.multimedia.cx/index.php?title=Ut_Video">Ut Video</a>, <a href="http://wiki.multimedia.cx/index.php?title=VC-1">Windows Media Image</a> (WMVP/WMP2), <a href="http://wiki.multimedia.cx/index.php?title=Bink_Audio">Bink audio</a> version &#8216;b&#8217;, H.264 4:2:2 intra frames, and MxPEG video. There is a <a href="http://wiki.multimedia.cx/index.php?title=DPX_/_Cineon">DPX image</a> encoder, a <a href="http://wiki.multimedia.cx/index.php?title=Cirrus_Logic_AccuPak">Cirrus Logic AccuPak</a> video encoder, and a v410 codec.</p>
<p>How about some more game stuff? The projects saw &#8212; at long last &#8212; an <a href="http://wiki.multimedia.cx/index.php?title=SMJPEG">SMJPEG</a> demuxer. This will finally allow usage and testing of the SMJPEG IMA ADPCM audio decoder I added about a decade ago. Funny story behind that&#8211; I was porting all of my decoders from <a href="http://www.xine-project.org/home">xine</a> which included the SMJPEG ADPCM. I just never quite got around to writing a corresponding demuxer. Thanks to Paul Mahol for taking care of that.</p>
<p>Here&#8217;s a <a href="http://wiki.multimedia.cx/index.php?title=DFA">DFA</a> playback system for a 1995 DOS CD-ROM title called <a href="http://www.mobygames.com/game/dos/chronomaster">Chronomaster</a>. No format is too obscure, nor its encoded contents too cheesy:</p>
<p><center><br />
<img src="http://multimedia.cx/eggs/wp-content/uploads/2012/01/dfa-screenshot.jpg" alt="" title="Chronomaster DFA playback" width="400" height="321" class="aligncenter size-full wp-image-3686" /><br />
</center></p>
<p>There&#8217;s now a demuxer for a format called <a href="http://wiki.multimedia.cx/index.php?title=XMV">XMV</a> that was (is?) prevalent on Xbox titles. Now the projects can handle FMV files from many Xbox games, such as <a href="http://www.mobygames.com/game/xbox/thrillville">Thrillville</a>.</p>
<p><center><br />
<img src="http://multimedia.cx/eggs/wp-content/uploads/2012/01/thrillville-xmv-screenshot.jpg" alt="" title="XMV from the Xbox game Thrillville" width="400" height="321" class="aligncenter size-full wp-image-3687" /><br />
</center></p>
<p>The projects also gained the ability to play BMV files. I think this surfing wizard comes from <a href="http://www.mobygames.com/game/discworld-ii-mortality-bytes">Discworld II</a>. It&#8217;s non-computer-generated animation at a strange resolution.</p>
<p><center><br />
<img src="http://multimedia.cx/eggs/wp-content/uploads/2012/01/surfing-bmv-screenshot.jpg" alt="" title="BMV playback system: Surfing wizard" width="400" height="290" class="aligncenter size-full wp-image-3688" /><br />
</center></p>
<p>More demuxers: <a href="http://wiki.multimedia.cx/index.php?title=Microsoft_xWMA">xWMA</a>, PlayStation Portable PMP format, and <a href="http://wiki.multimedia.cx/index.php?title=CRI_ADX_ADPCM">CRI ADX format</a>; muxer for OpenMG audio and LATM muxer/demuxer.</p>
<p>One more thing: an <a href="http://en.wikipedia.org/wiki/Advanced_Vector_Extensions">AVX</a>-optimized fast Fourier transform (FFT). If you have a machine that supports AVX, there&#8217;s no way you&#8217;ll even notice the speed increase of a few measly FFT calls for audio coding/decoding, but that&#8217;s hardly the point. The projects always use everything on offer for any CPU.</p>
<p><em>Please make me aware of features that I missed in the list!</em></p>
<p><strong>Continuous Testing</strong><br />
As a result of the split, each project has its own FATE server, <a href="http://fate.ffmpeg.org/">one for FFmpeg</a> and <a href="http://fate.libav.org/">one for Libav</a>. As of the new year, FFmpeg has just over 1000 tests while Libav had 965. This is one area where I&#8217;m obviously ecstatic to see competition. Some ad-hoc measurements on my part indicate that the total code coverage via the FATEs has not appreciably increased. But that&#8217;s a total percentage. Both the test count and the code count have been steadily rising.</p>
<p><strong>Google Summer of Code and Google Code-In</strong><br />
Once again, the projects were allowed to participate in the Google Summer of Code as well as Google Code-In. I confess that I didn&#8217;t keep up with these too carefully (and Code-In is still in progress as of this writing). I do know that the project split occurred after FFmpeg had already been accepted for GSoC season 2011 and the admins were gracious enough to allow FFmpeg and Libav to allow both projects to participate in the same slot as long as they could both be mature about it. </p>
<p><strong>Happy New Year</strong><br />
Let&#8217;s see what we can accomplish in 2012.</p>
]]></content:encoded>
			<wfw:commentRss>http://multimedia.cx/eggs/2011-in-open-source-multimedia/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Methods For Retaining State</title>
		<link>http://multimedia.cx/eggs/methods-for-retaining-state/</link>
		<comments>http://multimedia.cx/eggs/methods-for-retaining-state/#comments</comments>
		<pubDate>Mon, 26 Dec 2011 05:51:27 +0000</pubDate>
		<dc:creator>Multimedia Mike</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[evernote]]></category>
		<category><![CDATA[organization]]></category>

		<guid isPermaLink="false">http://multimedia.cx/eggs/?p=3672</guid>
		<description><![CDATA[I really like Evernote; it helps me save mental state and task context]]></description>
			<content:encoded><![CDATA[<p>I jump around between projects. <em>A lot.</em> Over the years, I have employed various methods for retaining state or context as I switch to a different project. Here&#8217;s a quick survey and a general classification of their effectiveness.</p>
<p><strong>Good</strong></p>
<ul>
<li><a href="https://www.evernote.com/">Evernote</a>: This is a cloud-based note-taking service that has a web client, Mac and Windows clients, and clients for just about ever mobile platform out there. I have an account and access it via the web interface as as the Windows, iOS, and Android clients. I really like it.</li>
</ul>
<p><center><br />
<a href="https://www.evernote.com/"><img src="http://multimedia.cx/eggs/wp-content/uploads/2011/12/logo.png" alt="" title="Evernote logo" width="196" height="49" class="aligncenter size-full wp-image-3673" /></a><br />
</center></p>
<p><strong>Okay</strong></p>
<ul>
<li>Series of text files: I have been doing this for a very long time. I have many little note-filled directories here and there that are consistently migrated to new machines but generally forgotten about. This isn&#8217;t a terrible method but can be unwieldy when you work on lots of different machines. I&#8217;m still tracking down all these directories and importing them into Evernote.</li>
</ul>
<p><strong>Bad</strong></p>
<ul>
<li>Layout of desktop windows: I have a habit of working on one project in a set of windows on one desktop space and another project in a second set of windows in another space, etc. Oh, this makes me shudder just thinking about it, mostly because of living in constant fear of a power failure or some other inadvertent reset (darn you, default config&#8217;d Windows Update) that wipes the state clean (sure, all of the work might have been saved, but I was relying on those windows to be set up in just the right manner to remind me of all the things I was working on). These days, I force myself to reboot at least once a week so I can&#8217;t get too deep into this habit. When it&#8217;s time to change projects, I write up exactly what I was doing and where I left off and stick it in Evernote.</li>
<li>Open browser windows: I guess it&#8217;s common to have many, <em>many</em> tabs open in one&#8217;s web browser in this day and age. Like many, I use open tabs as a stack of items to read. The state problem comes when a few of the open tabs represent TODO items. Then I start living in fear that the browser might crash or be restarted in an unexpected way and I struggle to recall what 3-5 important TODO items were that I had opened in separate tabs (on top of a stack of less important items). Again, I try to shut down the browser frequently in order to break this tendency. TODO items are better filed in Evernote.</li>
<li>Unsaved data in a text editor: Okay, this is just sloppy on my part, shoving temporary data into a text editor window thinking it&#8217;s supremely ephemeral. The problem comes when it&#8217;s linked to one of the many tasks on my desktop that might be bumped down a few priority levels; when finally returning to the context-free data, I&#8217;m at a loss to explain what it&#8217;s for. Evernote gets it, once more, with a more thorough description of what was going on.</li>
<li>Email inbox: I make an effort to ensure that my email inbox has the fewest number of messages possible. Once things are dealt with, they get filed away elsewhere. This implies that things in my inbox require action. Some things have a habit of hanging around, though. Longer items now get described in better detail and filed away in Evernote.</li>
<li>Classic paper: Thanks to Derek in the comments for reminding me of this one. Paper is a reliable standby but it can get unwieldy when Post-It Notes litter your work area. Further, it can be problematic when you have multiple physical work areas.</li>
<li>Shell history: Another method I rely on entirely too often. This is when I count on a recipe of command line incantations living on in the history buffer of my Unix shell (generally <a href="http://en.wikipedia.org/wiki/Bash_(Unix_shell)">Bash</a>). What sequence of git commands allowed me to do XYZ? Let&#8217;s check the shell history&#8211; I sure hope it&#8217;s still in there.</li>
</ul>
<p><strong>Conclusion</strong><br />
I guess what I&#8217;m trying to say here is that I really like <a href="https://www.evernote.com/">Evernote</a>. If you have similar troubles with retaining state, try it out. I hear there are many other services similar to it with slightly varying feature sets (people rave about <a href="http://en.wikipedia.org/wiki/Microsoft_OneNote">Microsoft OneNote</a>). So there are plenty of options and something out there is surely a fit.</p>
<p>Evernote has a free tier and a premium tier. For my meager note-taking needs, I don&#8217;t come anywhere close to the free tier&#8217;s limit but I decided to pay for a premium subscription simply because I feel like I derive so much value from the service.</p>
<p>One downside, however, is that I seem to be doing a lot less blogging since I got on Evernote earlier this year (though it is where I author most of these posts nowadays; I especially like that I have a notebook labeled &#8220;Posted&#8221; whose incrementing count reminds me that I am getting <em>some</em> stuff out there). I originally started this blog as a sort of technical journal in order to organize notes and projects in a central location. It&#8217;s strange to think that if Evernote existed in 2005, I might never have had a reason to start this blog.</p>
]]></content:encoded>
			<wfw:commentRss>http://multimedia.cx/eggs/methods-for-retaining-state/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Fun With Tablets And Amazon&#8217;s App Store</title>
		<link>http://multimedia.cx/eggs/fun-tablets-amazons-app-store/</link>
		<comments>http://multimedia.cx/eggs/fun-tablets-amazons-app-store/#comments</comments>
		<pubDate>Sat, 24 Dec 2011 06:22:26 +0000</pubDate>
		<dc:creator>Multimedia Mike</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[cyanogenmod]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[smurfs]]></category>
		<category><![CDATA[tablet]]></category>

		<guid isPermaLink="false">http://multimedia.cx/eggs/?p=3658</guid>
		<description><![CDATA[Android tablet, the Amazon App Store, and open source alternatives]]></description>
			<content:encoded><![CDATA[<p>I bought an Android tablet a few months ago. It is less expensive than the best tablets but no where near the bottom end of the market. I think it&#8217;s pretty good. However, one downside is that it&#8217;s not &#8220;certified&#8221; to use Google&#8217;s official marketplace. That would seem to be somewhat limiting, however&#8230;</p>
<p><strong>Enter Amazon&#8217;s Android App Store</strong><br />
Amazon got into the business of selling Android Apps some time ago. I started experimenting with this on a <a href="http://multimedia.cx/eggs/alphabet-of-tracing/">Nexus One phone that Google gave me</a>. When I installed the App Store on the Android tablet and logged in, I was pleasantly surprised to see all of my Amazon apps ready for downloading onto the tablet.</p>
<p>So I have an App Store for use with this Android tablet.</p>
<p>Anyway, the reason I bring this up is because <strong>I managed to screw up this tablet in an unusual and humorous manner</strong>. You might be wondering if an app downloaded from the Amazon App Store requires the App Store to be present in order to run. The answer is: <strong>Oh yeah!</strong> It works like this:</p>
<p><center><br />
<img src="http://multimedia.cx/eggs/wp-content/uploads/2011/12/AmazonAppStoreLifeCycle-1.png" alt="" title="Amazon App Store life cycle, part 1" width="411" height="422" class="aligncenter size-full wp-image-3660" /><br />
</center></p>
<p>This means that if &#8212; perhaps out of curiosity, for example &#8212; you login to the Amazon App Store, download an app, install it, and then subsequently log out of the App Store or uninstall it altogether, the downloaded app will decline to run until you log back into the store.</p>
<p>Here&#8217;s the thing&#8211; I wanted to provide a minimal level of security for my Android tablet. At the very least, I wished to lock the Amazon App Store itself since Amazon is famously (and, let&#8217;s face it, understandably) reluctant to deliberately add any friction to their shopping processes. I.e., without any external protection app, the App Store app would allow anyone to purchase any app using my tablet.</p>
<p>So I purchased <a href="http://www.carrotapp.com/portfolio_1/app-protector/">App Protector Pro</a> from the Amazon App Store and it worked quite well. By default, it also password protects against modifying any system settings as well as installing new apps.</p>
<p><strong>So, here&#8217;s where I screwed up:</strong> App Protector Pro was doing its faithful duty and I uninstalled the Amazon App Store as an experiment. Suddenly, no apps obtained from the App Store would work unless I reinstalled the App Store. Okay, fair enough, except for one thing&#8211; App Protector Pro wouldn&#8217;t run without the App Store. Well, it did, it started to, tried to, but then exited. So I couldn&#8217;t re-install the App Store:</p>
<p><center><br />
<img src="http://multimedia.cx/eggs/wp-content/uploads/2011/12/AmazonAppStoreLifeCycle-2.png" alt="" title="Amazon App Store life cycle, part 2" width="637" height="184" class="aligncenter size-full wp-image-3663" /><br />
<strong>Oops</strong><br />
</center></p>
<p>I eventually learned how to perform a factory reset of the unit which solved the problem. And, as indicated earlier, all of my apps were available for me to re-download.</p>
<p><strong>Modding, Cyanogen-style</strong><br />
Open source aficionados will likely point out that there are alternate firmware options which allow me to take control of my Android tablet in a free and open manner. Among these options is <a href="http://www.cyanogenmod.com/">CyanogenMod</a>. After I got stuck in the situation described above, I thought I would have to resort to such an option.</p>
<p>On the plus side, researching alternative firmware options is what taught me to boot the device into a recovery mode and ultimately restore to a factory default setting. But if you&#8217;ll allow me to indulge in a mini-rant regarding accessibility of open source software: I was more than a little frustrated in trying to understand what CyanogenMod could possibly offer me. <a href="http://www.cyanogenmod.com/">Their homepage says</a> it&#8217;s &#8220;an aftermarket firmware&#8221;. I&#8217;m not entirely sure what that means or how it can benefit me. Fortunately, they have <a href="http://www.cyanogenmod.com/about/features">a full feature list</a> linked from the front page. They are, in order: Lockscreen gestures, phone goggles, OpenVPN, incognito mode, themes support, and DSP equalizer. I can&#8217;t say that any of those really add any value for me. I&#8217;d love to know if CyanogenMod supports Google Android Market and various other Google apps (such as maps and GMail). That&#8217;s a question that I can&#8217;t seem to find the answer to.</p>
<p>The themes feature opens another old wound for me. Back around 1999 when I was first getting into Linux in a serious way, I remember that themes were a big theme at the Linux User Groups I would attend. I also remember lots are online articles at the time that emphasized how highly customizable the Linux desktop was in comparison to Windows 9x. I was bothered for 2 reasons: First, I thought there were more pressing problems that needed to be addressed in Linux; and second, none of these customization options seemed particularly straightforward; many apparently required hours of compiling and tinkering.</p>
<p>Small digression. Anyway, back to CyanogenMod, I was glad to see that they prominently display a button in order to &#8220;View Video Tour&#8221;. Ah, internet video has us so spoiled these days. I was eager to see this aftermarket firmware in action to see what it could do for me. However, the link leads to&#8230; <a href="http://forum.cyanogenmod.com/topic/264-moviemakers-required">a forum post?</a> The thread seems to discuss how it would be a cool idea if the community could put together a video tour. At this point, the investigation just seems bizarre. It feels like a bunch of kids doing their best to do things the grown-up way.</p>
<p>Okay, sorry, rant over. I try to stay positive these days. I&#8217;m sure the CyanogenMod folks are doing great, fun, and interesting work on their project. The problems they choose to solve might lack mainstream appeal, however.</p>
<p><strong>Free iPad</strong><br />
Ultimately, I recently unloaded the little Android tablet because, well&#8230; <a href="https://plus.google.com/115891738491519168693/posts/WGnAphVsDze">when a free iPad comes your way</a>, lower spec tablets feel a little silly to keep around. Yeah, it&#8217;s great to play around with. Though here&#8217;s one unsettling thing I noticed about Apple&#8217;s App Store. While browsing for worthwhile games to indulge in, I noticed that they had a section for &#8220;Top Grossing Games&#8221;. This was a separate list from the &#8220;Top Apps&#8221; charts. I found the list weird for 2 reasons: 1) Why do I care which games are raking in the most cash? How does this communicate value to me, personally? Seriously, why would I base a purchasing decision around which vendor has earned the most money?</p>
<p>Anyway, let&#8217;s move on to reason #2 this was scary: Most of the games in this list had a price of FREE. One of them was that <a href="http://itunes.apple.com/us/app/smurfs-village/id399648212?mt=8">Capcom Smurfs game</a> that stirred up controversy some months ago because of kids making unsupervised in-app purchases of virtual smurfberries. I tend to think that a top-grossing, free to play game is probably one that heavily encourages in-app purchases. Strange how this emerging trend actually encourages me to seek out games from the &#8220;top paid&#8221; list vs. &#8220;top free&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://multimedia.cx/eggs/fun-tablets-amazons-app-store/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Samples RSS And Flashback Samples</title>
		<link>http://multimedia.cx/eggs/rss-and-flashback-samples/</link>
		<comments>http://multimedia.cx/eggs/rss-and-flashback-samples/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 07:06:46 +0000</pubDate>
		<dc:creator>Multimedia Mike</dc:creator>
				<category><![CDATA[Game Hacking]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://multimedia.cx/eggs/?p=3648</guid>
		<description><![CDATA[There is now a RSS feed for our vast samples repository-- stay up to date; also, samples from 2 games (Flashback and Mario Teaches Typing)]]></description>
			<content:encoded><![CDATA[<p>I made good on <a href="http://multimedia.cx/eggs/the-new-samples-regime/">my claim that I would create an RSS feed</a> for the samples repository. </p>
<p><strong><a href="http://samples.mplayerhq.hu/samples-rss.xml">Here is the link to the samples RSS feed [ http://samples.mplayerhq.hu/samples-rss.xml ].</a></strong> Also, <a href="https://github.com/multimediamike/multimedia-samples-rss">here is the Python source code I threw together</a> for the task.</p>
<p><em>I just want to check: I&#8217;m not the only person who still relies on RSS these days, right? The tech press has been cheerfully proclaiming its demise for some time now. But then, they have been proclaiming the same for Adobe Flash as well.</em></p>
<p>I&#8217;m no expert in RSS. If you have any suggestions for how to improve the features presented in the feed, please let me know. And, of course, keep the samples coming. This script should help provide more visibility for a broader audience.</p>
<p><strong>Mario and Flashback Samples</strong><br />
<a href="http://multimedia.cx/eggs/more-cinepak-madness/#comment-178856">Thanks to LuigiBlood</a> who sent in some samples that allowed me to test out my new script for automatically syncing the repositories and updating the samples RSS feed. First, there are <a href="http://samples.mplayerhq.hu/game-formats/flashback/">CPC multimedia files</a> from the Japanese 3DO port of <a href="http://www.mobygames.com/game/flashback-the-quest-for-identity">Flashback: The Quest for Identity</a>. Then, there is an Interplay MVE file on the CD version of <a href="http://www.mobygames.com/game/mario-teaches-typing">Mario Teaches Typing</a> in which the video doesn&#8217;t decode correctly.</p>
<p>LuigiBlood also sent in another file from the latter game. It&#8217;s big and has the extension .AV. It could be a multimedia file as it appears to have a palette and PCM audio inside. But there&#8217;s no header and I&#8217;m a bit unsure about how to catalog it.</p>
]]></content:encoded>
			<wfw:commentRss>http://multimedia.cx/eggs/rss-and-flashback-samples/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>The New Samples Regime</title>
		<link>http://multimedia.cx/eggs/the-new-samples-regime/</link>
		<comments>http://multimedia.cx/eggs/the-new-samples-regime/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 06:43:46 +0000</pubDate>
		<dc:creator>Multimedia Mike</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://multimedia.cx/eggs/?p=3639</guid>
		<description><![CDATA[The vast multimedia samples repository network grows more powerful]]></description>
			<content:encoded><![CDATA[<p>A little while ago, I got a big head over the fact that <a href="http://multimedia.cx/eggs/curator-of-the-samples-archive/">I owned and controlled the feared and revered MPlayer samples archive</a>. This is the repository that retains more than a decade of multimedia samples.</p>
<p><strong>Conflict</strong><br />
Where once there was one multimedia project (<a href="http://ffmpeg.org/">FFmpeg</a>), there are now 2 (also <a href="http://libav.org/">Libav</a>). There were various political and technical snafus regarding the previous infrastructure. I volunteered to take over hosting the vast samples archive (53 GB at the time) at <a href="http://samples.mplayerhq.hu">samples.mplayerhq.hu</a> (s.mphq for this post).</p>
<p>However, a brand new server is online at <a href="http://samples.libav.org">samples.libav.org</a> (s.libav for this post).</p>
<p><strong>Policies</strong><br />
The server at s.libav will be the authoritative samples repository going forward. Why does s.libav receive the honor? Mostly by virtue of having more advanced features. My simple (yet bandwidth-rich) web hosting plan does not provide for rsync or anonymous FTP services, both of which have traditionally been essential for the samples server.  In the course of hosting s.mphq for the past few months, a few more discrepancies have come to light&#8211; apparently, the symlinks weren&#8217;t properly replicated. And perhaps most unusual is that if a directory contains a <code>README</code> file, it won&#8217;t be displayed in the directory listing (which frustrated me greatly when <a href="http://samples.mplayerhq.hu/A-codecs/lossless/README">I couldn&#8217;t find this README file</a> that I carefully and lovingly crafted years ago).</p>
<p>The s.mphq archive will continue to exist &#8212; nay, <em>must exist</em> &#8212; going forward since there are years&#8217; worth of web links pointing into it. I&#8217;ll likely set up a mirroring script that periodically (daily) rsyncs from s.libav to my local machine and then uses lftp (the best facility I have available) to mirror the files up to s.mphq.</p>
<p>Also, since we&#8217;re starting fresh with a new upload directory, I think we need to be far more ruthless about policing its content. This means making sure that anything that is uploaded has an accompanying file which explains why it&#8217;s there and ideally links the sample to a bug report somewhere. No explanation = sample terminated.</p>
<p><strong>RSS</strong><br />
I think it would be nifty to have an RSS feed that shows the latest samples to appear in the repository. I figure that I can use the Unix &#8216;find&#8217; command on my local repository in concert with something like <a href="http://www.dalkescientific.com/Python/PyRSS2Gen.html">PyRSS2Gen</a> to accomplish this goal.</p>
<p><strong>Monetization</strong><br />
In the few months that I have been managing the repository, I have had numerous requests for permission to leech the entire collection in one recursive web-suck. These requests often from commercial organizations who wish to test their multimedia product on a large corpus of diverse samples. Personally, I believe the archive makes a rather poor corpus for such an endeavor, but so be it. Go ahead; hosting this archive barely makes a dent in my fairly low-end web hosting plan. However, at least one person indicated that it might be easier to mail a hard drive to me, have me copy it, and send it back.</p>
<p>This got me thinking about monetization opportunities. Perhaps, I should provide a service to send HDs filled with samples for the cost of the HD, shipping, and a small donation to the multimedia projects. I immediately realized that that is precisely the point at which the vast multimedia samples archive &#8212; with all of its media of questionable fair use status &#8212; would officially run afoul of copyright laws.</p>
<p>Which brings me to&#8230;</p>
<p><strong>Clean Up </strong><br />
I think we need to clean up some samples, starting with the ones that were marked not-readable in the old repository. Apparently, some &#8216;samples&#8217; were, e.g., full anime videos and were responsible for a large bandwidth burden when linked from various sources.</p>
<p>We multimedia nerds are a hoarding lot, never willing to throw anything away. This will probably the most challenging proposal to implement.</p>
]]></content:encoded>
			<wfw:commentRss>http://multimedia.cx/eggs/the-new-samples-regime/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Using lcov With FFmpeg/Libav</title>
		<link>http://multimedia.cx/eggs/using-lcov-with-ffmpeg/</link>
		<comments>http://multimedia.cx/eggs/using-lcov-with-ffmpeg/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 06:54:01 +0000</pubDate>
		<dc:creator>Multimedia Mike</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[code coverage]]></category>
		<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[lcov]]></category>
		<category><![CDATA[libav]]></category>

		<guid isPermaLink="false">http://multimedia.cx/eggs/?p=3626</guid>
		<description><![CDATA[Basic instructions for using lcov to measure code coverage of the multimedia projects]]></description>
			<content:encoded><![CDATA[<p>Last year, I delved into code coverage tools and their usage with <a href="http://ffmpeg.org/">FFmpeg</a>. I learned about using <a href="http://multimedia.cx/eggs/ffmpeg-and-code-coverage-tools/">GNU gcov</a>, which is powerful but pretty raw about the details it provides to you. I wrote a script to help interpret its output and later found <a href="http://multimedia.cx/eggs/using-gcovr-with-ffmpeg/">another script called gcovr</a> to do the same, only much better. </p>
<p>I later found another tool called <a href="http://ltp.sourceforge.net/coverage/lcov.php">lcov</a> which is absolutely amazing for understanding code coverage of your software. I&#8217;ve been meaning to use it to further FATE test coverage for the multimedia projects.</p>
<p><center><br />
<a href="http://multimedia.cx/eggs/wp-content/uploads/2011/11/lcov-code-coverage-report.png"><img src="http://multimedia.cx/eggs/wp-content/uploads/2011/11/lcov-code-coverage-report-s.png" alt="" title="lcov code coverage of Libav project" width="400" height="253" class="aligncenter size-full wp-image-3630" /><br />
<em>Click for larger image</em></a><br />
</center></p>
<p><strong>Basic Instructions</strong><br />
Install the lcov tool, of course. In Ubuntu, <code>'apt-get install lcov'</code> will do the trick.</p>
<p>Build the project with code coverage support, i.e., </p>
<pre>
./configure --enable-gpl --samples=/path/to/fate/samples \
 --extra-cflags="-fprofile-arcs -ftest-coverage" \
 --extra-ldflags="-fprofile-arcs -ftest-coverage"
make
</pre>
<p>Clear the coverage data:</p>
<pre>
lcov --directory . --zerocounters
</pre>
<p>Run the software (in this case, the FATE test suite):</p>
<pre>
make fate
</pre>
<p>Let lcov work its magic:</p>
<pre>
lcov --directory . --capture --output-file coverage.info
mkdir html-output
genhtml -o html-output coverage.info
</pre>
<p>At this point, you can aim your web browser at html-output/index.html to learn everything you could possibly want to know about code coverage of the test suite. You can sort various columns in order to see which modules have the least code coverage. You can drill into individual source files and see highlighted markup demonstrating which lines have been executed.</p>
<p>As you can see from the screenshot above, FFmpeg / Libav are not anywhere close to full coverage. But lcov provides an exquisite roadmap.</p>
]]></content:encoded>
			<wfw:commentRss>http://multimedia.cx/eggs/using-lcov-with-ffmpeg/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>On ALAC&#8217;s Open Sourcing</title>
		<link>http://multimedia.cx/eggs/alac-open-sourced/</link>
		<comments>http://multimedia.cx/eggs/alac-open-sourced/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 06:52:34 +0000</pubDate>
		<dc:creator>Multimedia Mike</dc:creator>
				<category><![CDATA[Codec Technology]]></category>

		<guid isPermaLink="false">http://multimedia.cx/eggs/?p=3608</guid>
		<description><![CDATA[Thoughts and observations about Apple's open sourcing of their ALAC (Apple Lossless) codec]]></description>
			<content:encoded><![CDATA[<p>Apple open sourced their <a href="http://wiki.multimedia.cx/index.php?title=Apple_Lossless_Audio_Coding">lossless audio codec</a> last week. <a href="http://alac.macosforge.org/">Pretty awesome!</a> I have a theory that, given enough time, absolutely every codec will be open source in one way or another.</p>
<p>I know I shouldn&#8217;t bother reading internet conversation around any news related to multimedia technology. And if I do read it, I shouldn&#8217;t waste any effort getting annoyed about them. But here are some general corrections:</p>
<ul>
<li>ALAC is not in the same league as &#8212; nor is it a suitable replacement for &#8212; MP3/AAC/Vorbis or any other commonly used perceptual audio codec. It&#8217;s not a matter of better or worse; they&#8217;re just different families of codecs designed for different purposes.</li>
<li>Apple open sourced ALAC, not AAC&#8211; easy mistake, though there&#8217;s nothing to &#8216;open source&#8217; about AAC (though people can, and will, argue about its absolute &#8216;open-ness&#8217;).</li>
<li>There&#8217;s not much technical room to argue between ALAC and FLAC, the leading open source lossless audio compressor. Both perform similarly in terms of codec speeds (screamingly fast) and compression efficiency (results vary slightly depending on source material).</li>
<li>Perhaps the most frustrating facet is the blithe ignorance about ALAC&#8217;s current open source status. While this event simply added an official &#8220;open source&#8221; status to the codec, ALAC has effectively been open source for a very long time. According to my notes, the ALAC decoding algorithm was <a href="http://multimedia.cx/eggs/apple-lossless-audio-codec-red/">reverse engineered in 2005 and added into FFmpeg in March of the same year</a>. Then in 2008, Google &#8212; through their Summer of Code program &#8212; <a href="http://multimedia.cx/eggs/gsoc-showcase-alac/">sponsored an open source ALAC encoder</a>.</li>
</ul>
<p>From the multimedia-savvy who are versed in these concepts, the conversation revolves around which would win in a fight, ALAC or <a href="http://flac.sourceforge.net/">FLAC</a>? And who between Apple and FFmpeg/Libav has a faster  ALAC decoder? The faster and more efficient ALAC encoder? I contend that these issues don&#8217;t really matter. If you have any experience working with lossless audio encoders, you know that they tend to be ridiculously fast to both encode and decode and that many different lossless codecs compress at roughly the same ratios.</p>
<p>As for which encoder is the fastest: use whatever encoder is handiest and most familiar, either iTunes or FFmpeg/Libav.</p>
<p>As for whether to use FLAC or ALAC &#8212; if you&#8217;ve already been using one or the other for years, keep on using it. Support isn&#8217;t going to vanish. If you&#8217;re deciding which to use for a new project, again, perhaps choose based on software you&#8217;re already familiar with. Also, consider hardware support&#8211; ALAC enjoys iPod support, FLAC is probably better supported in a variety of non-iPod devices, though that may change going forward due to this open sourcing event.</p>
<p>For my part, I&#8217;m just ecstatic that the question of moral superiority based on open source status has been removed from the equation.</p>
<p>Code-wise, I&#8217;m interested in studying the official ALAC code to see if it has any corner-case modes that the existing open source decoders don&#8217;t yet account for. The source makes mention of multichannel (i.e., greater than stereo) configurations, but I don&#8217;t know if that&#8217;s in FFmpeg/Libav.</p>
]]></content:encoded>
			<wfw:commentRss>http://multimedia.cx/eggs/alac-open-sourced/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>More Cinepak Madness</title>
		<link>http://multimedia.cx/eggs/more-cinepak-madness/</link>
		<comments>http://multimedia.cx/eggs/more-cinepak-madness/#comments</comments>
		<pubDate>Thu, 20 Oct 2011 06:13:36 +0000</pubDate>
		<dc:creator>Multimedia Mike</dc:creator>
				<category><![CDATA[Codec Technology]]></category>

		<guid isPermaLink="false">http://multimedia.cx/eggs/?p=3601</guid>
		<description><![CDATA[Cataloging different types of Cinepak video codec data]]></description>
			<content:encoded><![CDATA[<p>Fellow digital archaeologist <a href="http://clone2727.blogspot.com/">Clone2727</a> found a <em>possible</em> fifth variant of the <a href="http://wiki.multimedia.cx/index.php?title=Cinepak">Cinepak video codec</a>. He asked me if I cared to investigate the sample. I assured him I wouldn&#8217;t be able to die a happy multimedia nerd unless I have cataloged all possible Cinepak variants known to exist in the wild. I&#8217;m sure there are chemistry nerds out there who are ecstatic when another element is added to the periodic table. Well, that&#8217;s me, except with weird multimedia formats.</p>
<p><strong>Background</strong><br />
Cinepak is a video codec that saw widespread use in the early days of digital multimedia. To date, we have cataloged 4 variants of Cinepak in the wild. This distinction is useful when trying to write and maintain an all-in-one decoder. The variants are:</p>
<ol>
<li>The standard type: Most Cinepak data falls into this category. It decodes to a modified/simplified YUV 4:2:0 planar colorspace and is often seen in AVI and QuickTime/MOV files.</li>
<li>8-bit greyscale: Essentially the same as the standard type but with only a Y plane. This has only been identified in AVI files and is distinguished by the file header&#8217;s video bits/pixel field being set to 8 instead of 24.</li>
<li>8-bit paletted: Again, this is identified by the video header specifying 8 bits/pixel for a Cinepak stream. There is essentially only a Y plane in the data, however, each 8-bit value is a palette index. The palette is transported along with the video header. To date, only one known sample of this format has even been spotted in the wild, and it&#8217;s classified as NSFW. It is also a QuickTime/MOV file.</li>
<li><a href="http://wiki.multimedia.cx/index.php?title=Sega_FILM">Sega/FILM CPK</a> data: Sega Saturn games often used CPK files which stored a variant of Cinepak that, while very close the standard Cinepak, couldn&#8217;t be decoded with standard decoder components.</li>
</ol>
<p>So, a flexible Cinepak decoder has to identify if the file&#8217;s video header specified 8 bits/pixel. How does it distinguish between greyscale and paletted? If a file is paletted, a custom palette should have been included with the video header. Thus, if video bits/pixel is 8 and a palette is present, use paletted; else, use greyscale. Beyond that, the Cinepak decoder has a heuristic to determine how to handle the standard type of data, which might deviate slightly if it comes from a Sega CPK file.</p>
<p><strong>The Fifth Variant?</strong><br />
Now, regarding this fifth variant&#8211; the reason this issue came up is because of that aforementioned heuristic. Basically, a Cinepak chunk is supposed to store the length of the entire chunk in its header. The data from a Sega CPK file plays fast and loose with this chunk size and the discrepancy makes it easy to determine if the data requires special handling. However, a handful of files discovered on a Macintosh game called <a href="http://www.mobygames.com/game/macintosh/journeyman-project-pegasus-prime">&#8220;The Journeyman Project: Pegasus Prime&#8221;</a> have chunk lengths which are sometimes in disagreement with the lengths reported in the containing QuickTime file&#8217;s stsz atom. This trips the heuristic and tries to apply the CPK rules against Cinepak data which, aside from the weird chunk length, is perfectly compliant.</p>
<p>Here are the first few chunk sizes, as reported by the file header (stsz atom) and the chunk:</p>
<pre>
size from stsz = 7880 (0x1EC8); from header = 3940 (0xF64)
size from stsz = 3940 (0xF64); from header = 3940 (0xF64)
size from stsz = 15792 (0x3DB0); from header = 3948 (0xF6C)
size from stsz = 11844 (0x2E44); from header = 3948 (0xF6C)
</pre>
<p>Hey, there&#8217;s a pattern here. If they don&#8217;t match, then the stsz size is an even multiple of the chunk size (2x, 3x, or 4x in my observation). I suppose I could revise the heuristic to state that if the stsz size is 2x, 3x, 4x, or equal to the chunk header, qualify it as compliant Cinepak data.</p>
<p>Of course it feels impure, but software engineering is rarely about programmatic purity. A decade of special cases in the <a href="http://ffmpeg.org/">FFmpeg</a> / <a href="http://libav.org/">Libav</a> codebases are a testament to that.</p>
<p><strong>What&#8217;s A Variant?</strong><br />
Suddenly, I find myself contemplating what truly constitutes a variant. Maybe this was just a broken encoder program making these files? And for that, I assign it the designation of distinct variation, like some sort of special, unique showflake?</p>
<p>Then again, I documented <a href="http://wiki.multimedia.cx/index.php?title=Flic_Video#Magic_Carpet">Magic Carpet FLIC</a> as being a distinct variant of the broader FLIC format (which has <a href="http://www.compuphase.com/flic.htm">an enormous number of variants</a> as well).</p>
]]></content:encoded>
			<wfw:commentRss>http://multimedia.cx/eggs/more-cinepak-madness/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Space Adventure CD-ROM</title>
		<link>http://multimedia.cx/eggs/space-adventure-cd-rom/</link>
		<comments>http://multimedia.cx/eggs/space-adventure-cd-rom/#comments</comments>
		<pubDate>Sat, 01 Oct 2011 05:55:46 +0000</pubDate>
		<dc:creator>Multimedia Mike</dc:creator>
				<category><![CDATA[Game Hacking]]></category>

		<guid isPermaLink="false">http://multimedia.cx/eggs/?p=3586</guid>
		<description><![CDATA[Multimedia format archaeology featuring a 1993 CD-ROM title named Space Adventure]]></description>
			<content:encoded><![CDATA[<p>I <a href="http://games.multimedia.cx/acquisition-log-starcraft-ii/">acquired a CD-ROM</a> entitled <a href="http://www.mobygames.com/game/dos/space-adventure">Space Adventure</a> by Knowledge Adventure (I like these people; they make decent, entertaining educational games). The physical media displays a copyright date of 1993, very early in the multimedia era.</p>
<p><center><br />
<img src="http://multimedia.cx/eggs/wp-content/uploads/2011/09/space-adventure-space-movie.png" alt="" title="Space Adventure: Space Movies menu" width="477" height="307" class="aligncenter size-full wp-image-3590" /><br />
</center></p>
<p>This 1993 CD-ROM makes proud use of multimedia files. What kind? There&#8217;s a movies/ directory with 17 .mov files. It would be way too simple if these were QuickTime files, though. These represent a custom format, and video-only since a separate sounds/ directory contains .snd files with filenames corresponding to the .mov files. The .snd files are actually <a href="http://wiki.multimedia.cx/index.php?title=Creative_Voice">Creative Voice (a.k.a. VOC) files</a>. As for this MOV format, <a href="http://wiki.multimedia.cx/index.php?title=Space_Adventure_MOV">wiki page</a> and <a href="http://samples.mplayerhq.hu/game-formats/space-adventure-mov/">samples</a>.</p>
<p><center><br />
<img src="http://multimedia.cx/eggs/wp-content/uploads/2011/09/space-adventure-saturn-fly-by.jpg" alt="" title="Space Adventure: movie of Saturn fly-by" width="500" height="333" class="aligncenter size-full wp-image-3593" /><br />
</center></p>
<p>I was also surprised to find the binary ultrasnd.exe file among the drivers on the disc. <a href="http://multimedia.cx/eggs/ode-to-the-gravis-ultrasound/">The Gravis UltraSound</a> was released in 1992. The sound setup utility does not have an option for the GUS, however. No matter since DOSBox has great SB/Pro/16 emulation.</p>
<p>I&#8217;m also a bit puzzled about why the DOSBox screenshots are 720 x 480 (posted here are various cropping and resizings).</p>
]]></content:encoded>
			<wfw:commentRss>http://multimedia.cx/eggs/space-adventure-cd-rom/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.290 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-02-03 23:08:02 -->
<!-- Compression = gzip -->
