<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>My Mac Notes</title>
	<atom:link href="http://macintoshnotes.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://macintoshnotes.wordpress.com</link>
	<description>Sparse notes about using the Mac</description>
	<lastBuildDate>Mon, 12 Sep 2011 14:36:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='macintoshnotes.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>My Mac Notes</title>
		<link>http://macintoshnotes.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://macintoshnotes.wordpress.com/osd.xml" title="My Mac Notes" />
	<atom:link rel='hub' href='http://macintoshnotes.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Tools for video</title>
		<link>http://macintoshnotes.wordpress.com/2010/10/02/tools-for-video/</link>
		<comments>http://macintoshnotes.wordpress.com/2010/10/02/tools-for-video/#comments</comments>
		<pubDate>Sat, 02 Oct 2010 08:39:30 +0000</pubDate>
		<dc:creator>ronchet</dc:creator>
				<category><![CDATA[Multimedia]]></category>

		<guid isPermaLink="false">http://macintoshnotes.wordpress.com/?p=118</guid>
		<description><![CDATA[I had a few problems with some of the videos that were posted on iTunesU, and they lead me to discover some nice tools that may be useful in general. In first place, the videos took forever to start playing when using the direct access described in the previous post. The problem was that some [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macintoshnotes.wordpress.com&amp;blog=9270679&amp;post=118&amp;subd=macintoshnotes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I had a few problems with some of the videos that were posted on iTunesU, and they lead me to discover some nice tools that may be useful in general.</p>
<p>In first place, the videos took forever to start playing when using the direct access described in the previous post. The problem was that some mp4 files have the index <em>at the end</em> of the file itself &#8211; hence in order to be played, the whole file needs to be downloaded first &#8211; which may take a looong time.<br />
The solution is easy: one needs to swap the position of the index, by putting it <em>at the beginning</em> of the file. How that can be done? Easy: <a href="http://renaun.com/blog/code/qtindexswapper/">QTIndexSwapper</a> can do that for you. It&#8217;s a plug-in for <a href="http://get.adobe.com/air/">Adobe AIR</a> developed by Renaun Erickson.</p>
<p>My second problem was that some of my files, when not viewed in iTunes but with the alternative based on JWPlayer (see previous post), were correctly playing the audio, but the video was black. I asked for help on the <a href="http://www.longtailvideo.com/support/forums/jw-player/video-encoding/14579/while-plying-an-mp4-audio-works-but-video-is-black-quicktime-plays-the-files-correctly">longtailvideo forum</a>, and the response was that some of my mp4 were coded with  MPEG4 Visual (aka MPEG4 Part 2 aka ISO/IEC 14496-2) which is not supported by Flash (and by JWPlayer). Files had to be recoded into H.264 (aka Advanced Video Codec aka MPEG4 Part 10). Nice hint, but how could I get detailed info about a video file on my Mac?<br />
Here it is: <a href="http://mediainfo.massanti.com/">Mediainfo</a>, a nice app for the Mac giving plenty of information.<br />
So the last step was how to transcode the files. By using <a href="http://www.ffmpegx.com/">FFmpegX</a> I chose to transcode into &#8220;iPod H.264 640w&#8221;, and voilà, everything worked well. What I still need to do is to find which set of parameter to use  directly from <a href="http://ffmpeg.org/">ffmpeg</a> instead of using its GUI wrapper.</p>
<p>BTW, during the whole process I also found a nice reading about <a href="http://www.longtailvideo.com/support/jw-player/jw-player-for-flash-v5/12534/video-delivery-http-pseudo-streaming">HTTP pseudostreming</a>.</p>
<p>Other useful video tools (related to other tasks):</p>
<ul>
<li>for merging VOB files: <a href="http://www.objectifmac.com/dvision.php">D-Vision 3</a></li>
<li>for converting VOB: I tried <a href="http://www.videolan.org/vlc/download-macosx.html">VLC</a> (FIle/Exporting wizard) but the results were awful. </li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/macintoshnotes.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/macintoshnotes.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/macintoshnotes.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/macintoshnotes.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/macintoshnotes.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/macintoshnotes.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/macintoshnotes.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/macintoshnotes.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/macintoshnotes.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/macintoshnotes.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/macintoshnotes.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/macintoshnotes.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/macintoshnotes.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/macintoshnotes.wordpress.com/118/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macintoshnotes.wordpress.com&amp;blog=9270679&amp;post=118&amp;subd=macintoshnotes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://macintoshnotes.wordpress.com/2010/10/02/tools-for-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f251e0cf64be75b3cd37aa9c95dddf66?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ronchet</media:title>
		</media:content>
	</item>
		<item>
		<title>iTunesU without iTunes</title>
		<link>http://macintoshnotes.wordpress.com/2010/07/21/itunesu-without-itunes/</link>
		<comments>http://macintoshnotes.wordpress.com/2010/07/21/itunesu-without-itunes/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 14:12:04 +0000</pubDate>
		<dc:creator>ronchet</dc:creator>
				<category><![CDATA[Multimedia]]></category>

		<guid isPermaLink="false">http://macintoshnotes.wordpress.com/?p=109</guid>
		<description><![CDATA[University of Trento recently started its iTunesU site &#8211; a way for students to download lectures on ipods, ipads, iphones and compatible devices. I had the opportunity to coordinate the startup effort. Unfortunately Linux users have difficulties in accessing the content, and this was unfair. So I looked around for solutions. Wine was an obvious [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macintoshnotes.wordpress.com&amp;blog=9270679&amp;post=109&amp;subd=macintoshnotes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>University of Trento recently started its <a href="http://www.unitn.it/itunes">iTunesU site</a> &#8211; a way for students to download lectures on ipods, ipads, iphones and compatible devices. I had the opportunity to coordinate the startup effort.</p>
<p>Unfortunately Linux users have difficulties in accessing the content, and this was unfair.  So I looked around for solutions. <a href="http://www.winehq.org/">Wine</a> was an obvious candidate &#8211; but its support for itunes seems not to be mature enough. Then i found <a href="http://www.ubuntugeek.com/tunesviewer-itunes-university-media-and-podcasts-in-linux.html">tunesViewer</a>, an <a href="http://tunesviewer.sourceforge.net/">open source project on sourceforge</a>.  Nice, but, well&#8230; it did not work on my Ubuntu testing machine! (well, my Ubuntu was&#8217;nt the latest one, but I guess this happens also for other users, so I needed to find a more robust way to access the content.)<br />
Finally I found a solution created by <a href="http://www.fritscher.ch/">Boris Fritscher</a> and <a href="http://www.fritscher.ch/blog/2009/05/13/browsing-itunesu-without-intalling-itunes/">documented in his blog</a>. The solution is based on <a href="http://groovy.codehaus.org/">groovy</a>,  &#8220;an agile dynamic language for the Java Platform&#8221; (actually, the solution is based on <a href="http://groovy.codehaus.org/Groovlets">groovlets</a>). So I resorted to <a href="http://tshawkins.blogspot.com/2008/03/groovy-on-leopard.html">Tim Hawkins&#8217; blog</a> for a nice installation guide for groovy on the Mac. </p>
<p>Boris was so kind to publish all his source code in a <a href="http://www.fritscher.ch/blog/2009/05/13/browsing-itunesu-without-intalling-itunes/comment-page-1/#comment-20093">comment</a> to the above mentioned post.<br />
All I had to do was to get his WebContent directory and put it in my Tomcat&#8217;s WebApps (changing the name of the directory to something made sense to me: iTunesU). I changed  the default locaton of the script when it&#8217;s called without parameters (else it would have opened the site on the Lausanne University &#8211; it&#8217;s one of the first lines in index.groovy). I also had to compile the source files for the xmlwise package that Boris provided. Since I have more experience with Netbeans than with Eclipse (the project provided by Boris was an Eclipse one), I compiled the files generating the xmlwise.jar file that I manually added to the WEB-INF/lib directory.</p>
<p>And &#8211; it works: <a href="http://latemar.science.unitn.it:8080/iTunesU/index.groovy">http://latemar.science.unitn.it:8080/iTunesU/index.groovy</a> !</p>
<p>Thanks a lot, Boris!</p>
<p><strong>UPDATE in November 2010:</strong><br />
Apple changed the iTunes site manager &#8211; all sites will have to move to new site manager by April 2011. So we tried it. It has a completely different structure now (btw structure depth is only one level, it has been a mess to do the logical redesign&#8230;) and unfortunately<strong> the groovy script does not work any more</strong>. What a pity&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/macintoshnotes.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/macintoshnotes.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/macintoshnotes.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/macintoshnotes.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/macintoshnotes.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/macintoshnotes.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/macintoshnotes.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/macintoshnotes.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/macintoshnotes.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/macintoshnotes.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/macintoshnotes.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/macintoshnotes.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/macintoshnotes.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/macintoshnotes.wordpress.com/109/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macintoshnotes.wordpress.com&amp;blog=9270679&amp;post=109&amp;subd=macintoshnotes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://macintoshnotes.wordpress.com/2010/07/21/itunesu-without-itunes/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f251e0cf64be75b3cd37aa9c95dddf66?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ronchet</media:title>
		</media:content>
	</item>
		<item>
		<title>Red5: an open source streaming server that supports Flash</title>
		<link>http://macintoshnotes.wordpress.com/2009/12/16/red5-an-open-source-streaming-server-that-supports-flash/</link>
		<comments>http://macintoshnotes.wordpress.com/2009/12/16/red5-an-open-source-streaming-server-that-supports-flash/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 08:59:41 +0000</pubDate>
		<dc:creator>ronchet</dc:creator>
				<category><![CDATA[Multimedia]]></category>

		<guid isPermaLink="false">http://macintoshnotes.wordpress.com/?p=92</guid>
		<description><![CDATA[last modified: Dec 16, 2009 Red5 is a free, open source Flash server that supports streaming and recording audio/video, live stream publishing and Flash remoting. There is a wiki for documenting it. It&#8217;s not very rich (it lacks an installation section for the Mac, that&#8217;s why I decided to keep my notes here &#8211; when&#8217;I'll [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macintoshnotes.wordpress.com&amp;blog=9270679&amp;post=92&amp;subd=macintoshnotes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<table border="0" width="100%">
<tbody>
<tr>
<td align="right"><em>last modified: Dec 16, 2009</em></td>
</tr>
</tbody>
</table>
<p>Red5 is a free, open source Flash server that supports streaming and recording audio/video, live stream publishing and Flash remoting.<br />
<img class="alignnone" title="red5 logo" src="http://osflash.org/lib/exe/fetch.php?w=&amp;h=&amp;cache=cache&amp;media=http%3A%2F%2Fwww.acmewebworks.com%2Fred5%2Fimages%2FFinalLogo.png" alt="" width="425" height="169" /><br />
There is a <a href="http://www.red5tutorials.net/index.php/Main_Page">wiki</a> for documenting it. It&#8217;s not very rich (it lacks an installation section for the Mac, that&#8217;s why I decided to keep my notes here &#8211; when&#8217;I'll be more confident that my experience is solid I&#8217;ll contribute to the wiki). So for now here is a report of my (yet very limited) experience.</p>
<hr />
<strong>Installation</strong><br />
On a Mac, go to the <a href="http://www.red5.org/downloads/0_8/">download page</a> and choose setup-red5-0.8.0.dmg (0.8 is the stable version as of now). Download it, open the dmg and copy Red5 in your Applications folder.</p>
<p>To <strong>start</strong> it, double click on its icon like for any other application. I tried it on Mac OsX 10.5.8 and it worked immediately. On 10.4 instead it complained because it did not have the right java version (at least the 1.6 is needed). It runs in the background &#8211; you do not have a menu for controlling it, but its icon shows in the doc once it starts.  </p>
<p>To <strong>check</strong> that everything is ok, open a browser on http://localhost:5080/ and watch the video with instructions.</p>
<p>To <strong>stop</strong> it there is a quick and dirty way: right click on the icon in the dock and select &#8220;Force quit&#8221;. A more graceful way should be possible, as there is a file called red5-shutdown.sh in its package (in Contents/Resources/Java) but I was not able (yet) to run it (I only spent 5 minutes on this issue though).</p>
<p>If you want to <strong>change port</strong>, right click on Red5 and choose &#8220;Show package content&#8221;. Open Contents/Resources/Java/conf/red5.properties with a text editor. Change the line http.port=5080 wih the port value of your choice.</p>
<p>To <strong>start serving streams</strong>, install the loadtest demo (the same way you installed the two demos documented in the video during the check phase). This will create in your Contents/Resources/Java/webapps a loadtest directory. Drop your flv file (let&#8217;s say it&#8217;s called X.flv) into loadtest/streams. At this point you can access your file, e.g. from <a href="http://www.videolan.org/vlc/download-macosx.html">VLC</a> (at least version 1.0, as the older versions seem not to support rtmp:) by choosing FIle-Open Network&#8230; and giving the URL rtmp://localhost/loadtest/X.flv. Il that works, try from another machine (first on your local network, then outside of it to make sure you do not have firewall problems).  Obviously you must replace &#8220;localhost&#8221; with the suitable name. </p>
<p>Actually, even without installing the loadtest demo one could directly use the streams directory of the oflaDemo described in the video, using rtmp://localhost/oflaDemo/X.flv.</p>
<hr />
Useful resources:<br />
http://www.webmultimediale.org/guide/red5_install  &#8211; in italian.</p>
<p>Next steps: </p>
<ol>
<li>the flv is not navigable from inside VLC, I have to try from the flash viewer.</li>
<li>I&#8217;d like to use tomcat for serving it &#8211; my first  attempts to use the war were not successful</li>
<li>I have to check the administration module</li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/macintoshnotes.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/macintoshnotes.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/macintoshnotes.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/macintoshnotes.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/macintoshnotes.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/macintoshnotes.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/macintoshnotes.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/macintoshnotes.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/macintoshnotes.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/macintoshnotes.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/macintoshnotes.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/macintoshnotes.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/macintoshnotes.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/macintoshnotes.wordpress.com/92/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macintoshnotes.wordpress.com&amp;blog=9270679&amp;post=92&amp;subd=macintoshnotes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://macintoshnotes.wordpress.com/2009/12/16/red5-an-open-source-streaming-server-that-supports-flash/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f251e0cf64be75b3cd37aa9c95dddf66?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ronchet</media:title>
		</media:content>

		<media:content url="http://osflash.org/lib/exe/fetch.php?w=&#38;h=&#38;cache=cache&#38;media=http%3A%2F%2Fwww.acmewebworks.com%2Fred5%2Fimages%2FFinalLogo.png" medium="image">
			<media:title type="html">red5 logo</media:title>
		</media:content>
	</item>
		<item>
		<title>Calling Objective C from Java and viceversa</title>
		<link>http://macintoshnotes.wordpress.com/2009/12/09/calling-objective-c-from-java-and-viceversa/</link>
		<comments>http://macintoshnotes.wordpress.com/2009/12/09/calling-objective-c-from-java-and-viceversa/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 08:42:31 +0000</pubDate>
		<dc:creator>ronchet</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://macintoshnotes.wordpress.com/?p=86</guid>
		<description><![CDATA[Just two quick references: for calling Objective C from Java see the Technical Note 2147 for calling Java from Objective C an old (2004) suggestion is on MacOsXHints.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macintoshnotes.wordpress.com&amp;blog=9270679&amp;post=86&amp;subd=macintoshnotes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Just two quick references:</p>
<li>for calling Objective C from Java see the <a href="http://developer.apple.com/mac/library/technotes/tn2005/tn2147.html">Technical Note 2147</a>
<li>for calling Java from Objective C  an old (2004) suggestion is on <a href="http://www.macosxhints.com/article.php?story=20040321163154226">MacOsXHints</a>.<br />
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/macintoshnotes.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/macintoshnotes.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/macintoshnotes.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/macintoshnotes.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/macintoshnotes.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/macintoshnotes.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/macintoshnotes.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/macintoshnotes.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/macintoshnotes.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/macintoshnotes.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/macintoshnotes.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/macintoshnotes.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/macintoshnotes.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/macintoshnotes.wordpress.com/86/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macintoshnotes.wordpress.com&amp;blog=9270679&amp;post=86&amp;subd=macintoshnotes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://macintoshnotes.wordpress.com/2009/12/09/calling-objective-c-from-java-and-viceversa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f251e0cf64be75b3cd37aa9c95dddf66?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ronchet</media:title>
		</media:content>
	</item>
		<item>
		<title>QuickTime for Java under Snow Leopard</title>
		<link>http://macintoshnotes.wordpress.com/2009/12/07/quicktime-for-java-under-snow-leopard/</link>
		<comments>http://macintoshnotes.wordpress.com/2009/12/07/quicktime-for-java-under-snow-leopard/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 11:44:09 +0000</pubDate>
		<dc:creator>ronchet</dc:creator>
				<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[QuickTime4Java]]></category>

		<guid isPermaLink="false">http://macintoshnotes.wordpress.com/?p=74</guid>
		<description><![CDATA[QuickTime for Java uses a 32 bit architecture, Snow Leopard supports only 64 bits, so now compiling and running software containing the old, no more supported but still useful QuickTime for Java generates errors like this: java.lang.reflect.InvocationTargetException at ... Caused by: java.lang.UnsatisfiedLinkError: /System/Library/Java/Extensions/libQTJNative.jnilib: no suitable image found. Did find: /System/Library/Java/Extensions/libQTJNative.jnilib: no matching architecture in universal [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macintoshnotes.wordpress.com&amp;blog=9270679&amp;post=74&amp;subd=macintoshnotes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>QuickTime for Java uses a 32 bit architecture, Snow Leopard supports only 64 bits, so now compiling and running software containing the old, no more supported but still useful QuickTime for Java generates errors like this:</p>
<pre>java.lang.reflect.InvocationTargetException
	at ...
Caused by: java.lang.UnsatisfiedLinkError:
/System/Library/Java/Extensions/libQTJNative.jnilib:
 no suitable image found.
Did find:
/System/Library/Java/Extensions/libQTJNative.jnilib:
no matching architecture in universal wrapper
        at ...
</pre>
<p>Luckily, there is a simple solution: use java -d32 when running the software. It should work! (it did solve my problems)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/macintoshnotes.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/macintoshnotes.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/macintoshnotes.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/macintoshnotes.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/macintoshnotes.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/macintoshnotes.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/macintoshnotes.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/macintoshnotes.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/macintoshnotes.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/macintoshnotes.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/macintoshnotes.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/macintoshnotes.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/macintoshnotes.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/macintoshnotes.wordpress.com/74/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macintoshnotes.wordpress.com&amp;blog=9270679&amp;post=74&amp;subd=macintoshnotes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://macintoshnotes.wordpress.com/2009/12/07/quicktime-for-java-under-snow-leopard/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f251e0cf64be75b3cd37aa9c95dddf66?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ronchet</media:title>
		</media:content>
	</item>
		<item>
		<title>I hate Itunes</title>
		<link>http://macintoshnotes.wordpress.com/2009/10/10/i-hate-itunes/</link>
		<comments>http://macintoshnotes.wordpress.com/2009/10/10/i-hate-itunes/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 07:20:29 +0000</pubDate>
		<dc:creator>ronchet</dc:creator>
				<category><![CDATA[Multimedia]]></category>

		<guid isPermaLink="false">http://macintoshnotes.wordpress.com/?p=62</guid>
		<description><![CDATA[Yes, I do. My problem is that it uses a different paradigm, and I do not have control on what it does. I understand it is meant for making life simple for people: you add stuff to Itunes (either importing your own files or buying from on-line stores) and then it manages it. You can [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macintoshnotes.wordpress.com&amp;blog=9270679&amp;post=62&amp;subd=macintoshnotes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Yes, I do. My problem is that it uses a different paradigm, and I do not have control on what it does. I understand it is meant for making life simple for people: you add stuff to Itunes (either importing your own files or buying from on-line stores) and then it manages it. You can bring it to your i-{pod,phone}. That&#8217;s it. You want to make a back-up? you want to have multiple machines? Well, then it starts not being so easy. The reason is that THEY (Apple and the media vendors) do not want you to control the stuff you own &#8211; for a good reason. They do not want you to make illegal copies. If you had control on those bytes that contain that wonderful music you bought from the on-line store, than you could share it with friends (and yes, that would be illegal).</p>
<p>But you are also forbidden to do pretty legal things, like managing your stuff and making backup copies.I want to be able to decide what to keep into Itunes and what to backup on a DVD, but Itunes does not allow doing that.</p>
<p>Luckily enough there are pieces of software (for MacOsX &#8211; of course also for Win and Linux but here I focus on Mac) that give you back control on the stuff you own. One is <a href="http://www.fadingred.com/senuti/">Senuti</a>. Elegant, powerful, but for me it tries to do too much. Another one is <a href="http://www.scifihifi.com/podworks/">Podworks</a>. This last one is simple and is reasonably priced, so It was my choice. By using it you can take your stuff ot of the Itunes cage, and see it as F*I*L*E*S ! You can then backup them, move them to your other machine, import them back into Itunes (you use the Itunes command to to that).</p>
<p>With those files you do what you please, and what you feel is morally correct. It&#8217;s your judgement, it&#8217;s your freedom, it&#8217;s your responsibility. Please Apple, do not treat us as if we were all kids, or thieves.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/macintoshnotes.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/macintoshnotes.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/macintoshnotes.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/macintoshnotes.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/macintoshnotes.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/macintoshnotes.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/macintoshnotes.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/macintoshnotes.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/macintoshnotes.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/macintoshnotes.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/macintoshnotes.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/macintoshnotes.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/macintoshnotes.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/macintoshnotes.wordpress.com/62/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macintoshnotes.wordpress.com&amp;blog=9270679&amp;post=62&amp;subd=macintoshnotes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://macintoshnotes.wordpress.com/2009/10/10/i-hate-itunes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f251e0cf64be75b3cd37aa9c95dddf66?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ronchet</media:title>
		</media:content>
	</item>
		<item>
		<title>Win XP Service Pack 3 and Bootcamp</title>
		<link>http://macintoshnotes.wordpress.com/2009/10/09/win-xp-service-pack-3-and-bootcamp/</link>
		<comments>http://macintoshnotes.wordpress.com/2009/10/09/win-xp-service-pack-3-and-bootcamp/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 21:01:26 +0000</pubDate>
		<dc:creator>ronchet</dc:creator>
				<category><![CDATA[Win on Mac]]></category>

		<guid isPermaLink="false">http://macintoshnotes.wordpress.com/?p=56</guid>
		<description><![CDATA[Yes, installing SP3 on XP on Bootcamp messes the XP installation in a horrible way! At a certain point, the update fails writing a file on disk, the SP3 installation does not complete and XP is not able to boot any more! You have to reinstall everything&#8230; So, after you install an XP on Bootcamp, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macintoshnotes.wordpress.com&amp;blog=9270679&amp;post=56&amp;subd=macintoshnotes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Yes, installing SP3 on XP on Bootcamp messes the XP installation in a horrible way! At a certain point, the update fails writing a file on disk, the SP3 installation does not complete and XP is not able to boot any more! You have to reinstall everything&#8230;</p>
<p>So, after you install an XP on Bootcamp, <strong>DO NOT UPDATE WINDOWS</strong>!</p>
<p>At least, not until you read the solution to the problem, and follow these instructions:</p>
<p><a href="http://support.apple.com/kb/HT3841">http://support.apple.com/kb/HT3841</a></p>
<p>But really I think this should be part of the general instructions for Bootcamp!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/macintoshnotes.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/macintoshnotes.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/macintoshnotes.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/macintoshnotes.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/macintoshnotes.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/macintoshnotes.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/macintoshnotes.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/macintoshnotes.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/macintoshnotes.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/macintoshnotes.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/macintoshnotes.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/macintoshnotes.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/macintoshnotes.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/macintoshnotes.wordpress.com/56/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macintoshnotes.wordpress.com&amp;blog=9270679&amp;post=56&amp;subd=macintoshnotes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://macintoshnotes.wordpress.com/2009/10/09/win-xp-service-pack-3-and-bootcamp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f251e0cf64be75b3cd37aa9c95dddf66?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ronchet</media:title>
		</media:content>
	</item>
		<item>
		<title>Reading and Writing NTFS (and Ext3) disks from MacOsX</title>
		<link>http://macintoshnotes.wordpress.com/2009/10/08/reading-and-writing-ntfs-disks-from-macosx/</link>
		<comments>http://macintoshnotes.wordpress.com/2009/10/08/reading-and-writing-ntfs-disks-from-macosx/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 19:38:51 +0000</pubDate>
		<dc:creator>ronchet</dc:creator>
				<category><![CDATA[Admin]]></category>
		<category><![CDATA[Win on Mac]]></category>
		<category><![CDATA[System extensions]]></category>

		<guid isPermaLink="false">http://macintoshnotes.wordpress.com/?p=48</guid>
		<description><![CDATA[Mac OS X should be able to natively  read (but not to write) NTFS disks. However, when I plugged in a USB disk formatted in NTFS, there was no way to view it from my Macbook running Snow Leopard. By using VMWare Fusion I could see the disk from my virtual Windows,  but the problem [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macintoshnotes.wordpress.com&amp;blog=9270679&amp;post=48&amp;subd=macintoshnotes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Mac OS X should be able to natively  read (but not to write) NTFS disks. However, when I plugged in a USB disk formatted in NTFS, there was no way to view it from my Macbook running Snow Leopard. By using <strong>VMWare Fusion</strong> I could see the disk from my virtual Windows,  but the problem then was to copy a big file (several GB) onto my Mac: the Win virtual disk was too small, and copying the file directly onto the Mac file system was unsuccessful (I do not know why: the copy started but then never completed).</p>
<p>Since a while I was curious to install <strong>Bootcamp</strong> &#8211; especially since I swapped the internal disk of my MacBook with a new 500 GB that costed less than 100 €. Now I had an additional reason to do so &#8211; so I did (it&#8217;s straightforward and easy although it&#8217;s time consuming, since you have to install Windows, which takes approximately an hour). At that point I could see the disk , copy files onto the Bootcamp partition, and then from MacOSX move the files from the Win partition to the Mac one. In the meantime I was updating Windows with the MS updater -  but soon the Windows XP installation was  messed up horribly by the  updater, when it tried to install the SP3 (now Win is unusable and should be reinstalled from scatch&#8230;).</p>
<p>Finally I decided to take a serious look at two nice pices of software: the first one, <strong><a href="http://code.google.com/p/macfuse/">MacFuse</a></strong>, enables the MacOS to use other filesystems. It acts like a hub onto which you must plug adapters for the filesystem(s) you are interested in. Here comes into play the second element: <strong><a href="http://www.macupdate.com/download.php/24481/NTFS-3G_1.2531-stable-catacombae.dmg">NTFS-3G Catacombae</a></strong>, which is an adapter for NTFS. There are actually several other options, some are commercial, other are based on Fink or MacPorts, but I chose NTFS-3G Catacombae because it&#8217;s free and its installation is extremely simple. You just first install Mac Fuse as a normal app, and do the same with the second piece of software. Reboot and&#8230; my USB disk was there, readable and writeable!</p>
<p>Later I needed to exchange data with a Linux box. MacFuse helped me again: adding <a href="http://sourceforge.net/projects/fuse-ext2/"><strong>fuse-ext2</strong></a> allows reading (but not writing) a disk formatted as ext3 on Linux. I read some <a href="http://www.macresearch.org/using-ext2-and-or-ext3-filesystems-os-x#comment-15954">additional info</a> about the exchange of data with Linux:</p>
<ul>
<li>MacFuse works, but it&#8217;s pretty slow, and write support is very experimental</li>
<li>Linux has perfectly good support for the Mac filesystem, HFS+, as long as you turn journaling off</li>
</ul>
<p>My experience was that:</p>
<ul>
<li> with fuse-ext2 I had read-only support on the Mac</li>
<li>using MacFuse + fuse-ext2 was actually slow (40 min to copy 16 GB, while writing those files on Linux was at least 10 times faster)</li>
<li>with journaling on the HFS+ disk was readable on Linux, but it it was read-only &#8211; actually by turning off journaling the disk was also writable (and it took 10 min to write the same set of data).</li>
</ul>
<p>Of course another easy solution for exchanging data would have be to use the ubiquitous FAT32  &#8211; but that&#8217;s it&#8217;s a pretty bad file system, and in certain conditions (e.g .many small files) it wastes a lot of disk space.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/macintoshnotes.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/macintoshnotes.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/macintoshnotes.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/macintoshnotes.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/macintoshnotes.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/macintoshnotes.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/macintoshnotes.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/macintoshnotes.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/macintoshnotes.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/macintoshnotes.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/macintoshnotes.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/macintoshnotes.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/macintoshnotes.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/macintoshnotes.wordpress.com/48/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macintoshnotes.wordpress.com&amp;blog=9270679&amp;post=48&amp;subd=macintoshnotes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://macintoshnotes.wordpress.com/2009/10/08/reading-and-writing-ntfs-disks-from-macosx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f251e0cf64be75b3cd37aa9c95dddf66?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ronchet</media:title>
		</media:content>
	</item>
		<item>
		<title>Bugged setting Dialog in quicktime java!</title>
		<link>http://macintoshnotes.wordpress.com/2009/09/03/bugged-setting-dialog-in-quicktime-java/</link>
		<comments>http://macintoshnotes.wordpress.com/2009/09/03/bugged-setting-dialog-in-quicktime-java/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 18:12:48 +0000</pubDate>
		<dc:creator>ronchet</dc:creator>
				<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[QuickTime4Java]]></category>

		<guid isPermaLink="false">http://macintoshnotes.wordpress.com/?p=35</guid>
		<description><![CDATA[date of original post on Blogger: May 22, 2008 I&#8217;ve been fighting this bug for days&#8230; When calling SGSettingsDialog() from java (the dialog that allows you to choose source, codec etc) I got a strange behavior. The dialog does not accept mouse-downs on the video codec selection popup menu, and the appearence of the dialog [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macintoshnotes.wordpress.com&amp;blog=9270679&amp;post=35&amp;subd=macintoshnotes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<table border="0" width="100%">
<tbody>
<tr>
<td align="right"><em>date of original post on Blogger: May 22, 2008<br />
</em></td>
</tr>
</tbody>
</table>
<p>I&#8217;ve been fighting this bug for days&#8230; When calling <tt>SGSettingsDialog()</tt> from java (the dialog that allows you to choose source, codec etc) I got a strange behavior. The dialog does not accept mouse-downs on the video codec selection popup menu, and the appearence of the dialog looks here and there a bit corrupted. But I did remember that at one time I had been able to select a MP4 codec, so it had to be possible&#8230;<br />
I googled for days, without much luck. Yes, qtjava is great but its documentation is soooo poor&#8230;<br />
Finally today I accidentally stumbled in the solution:<br />
&#8220;<tt>We've had sporadic reports from customers of corrupted settings dialogs since QT 7 -- deleting the QuickTime preferences seems to clear it."<br />
</tt>Yes, yes, yes: it works! Deleting the preferences (/Users/<span style="font-style:italic;">yourname</span>/Library/Preferences/Quicktime Preferences) fixes it!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/macintoshnotes.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/macintoshnotes.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/macintoshnotes.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/macintoshnotes.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/macintoshnotes.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/macintoshnotes.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/macintoshnotes.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/macintoshnotes.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/macintoshnotes.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/macintoshnotes.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/macintoshnotes.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/macintoshnotes.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/macintoshnotes.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/macintoshnotes.wordpress.com/35/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macintoshnotes.wordpress.com&amp;blog=9270679&amp;post=35&amp;subd=macintoshnotes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://macintoshnotes.wordpress.com/2009/09/03/bugged-setting-dialog-in-quicktime-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f251e0cf64be75b3cd37aa9c95dddf66?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ronchet</media:title>
		</media:content>
	</item>
		<item>
		<title>Building with qtjava a video recorder that allows previewing while recording</title>
		<link>http://macintoshnotes.wordpress.com/2009/09/03/building-with-qtjava-a-video-recorder-that-allows-previewing-while-recording/</link>
		<comments>http://macintoshnotes.wordpress.com/2009/09/03/building-with-qtjava-a-video-recorder-that-allows-previewing-while-recording/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 18:11:11 +0000</pubDate>
		<dc:creator>ronchet</dc:creator>
				<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[QuickTime4Java]]></category>

		<guid isPermaLink="false">http://macintoshnotes.wordpress.com/2009/09/03/building-with-qtjava-a-video-recorder-that-allows-previewing-while-recording/</guid>
		<description><![CDATA[date of original post on Blogger: May 16, 2008 last modification: Dec 9, 2009 QuickTime for Java is a set of cross-platform APIs which allows Java developers to build multimedia, including streaming audio and video, into applications and applets. That&#8217;s quite nice, and to learn using it there is a book written by Chris Adamson [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macintoshnotes.wordpress.com&amp;blog=9270679&amp;post=34&amp;subd=macintoshnotes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<table border="0" width="100%">
<tbody>
<tr>
<td align="right"><em>date of original post on Blogger: May 16, 2008<br />
</em></td>
</tr>
<tr>
<td align="right"><em>last modification: Dec 9, 2009<br />
</em></td>
</tr>
</tbody>
</table>
<p><a href="http://developer.apple.com/quicktime/qtjava/">QuickTime for Java</a> is a set of cross-platform APIs which allows Java developers to build multimedia, including streaming audio and video, into applications and applets.<br />
That&#8217;s quite nice, and to learn using it there is a <a href="http://www.oreilly.com/catalog/9780596008222/">book written by  Chris Adamson and published by O&#8217;Reilly</a>, available also in <a href="http://commons.oreilly.com/wiki/index.php/QuickTime_for_Java:_A_Developer%27s_Notebook">electronic form though O&#8217;reilly commons</a>. The book goes through a series of examples. A basic example in chapter 6 shows how to record a video on disk. There is a problem though: while the machine records, the video stream is NOT shown on the PC screen. Obviously one would like instead to get a preview of what is being recorded while recording (so that e.g. you know how to move the camera).<br />
It looks like a very basic requirement, so I started hunting for solutions on the net. Several hours of googling with various keywords produced more or less an empty set&#8230;</p>
<p>The best I could find was some sort of hint on an <a href="http://www.oreillynet.com/mac/blog/2005/11/capturing_to_the_screen_with_q.html">O&#8217;Reilly&#8217;s Mac Dev Center</a> &#8211; but still it was a bit vague &#8211; I wanted a fully developed example. At the bottom of the page I noticed an unanswered question by Amit Zohar: &#8220;<span style="color:#ff6666;">So how do I capture video and audio in Java and save it into a movie file while allowing for a preview as well</span>?&#8221; &#8211; Yes, this is what I also wanted to know.<br />
The question was more that two years old&#8230; I decided to write to Amit to see if in the meantime he had been able to solve the problem &#8211; and yes he did! He was so kind to send me his OpenGL based code. THANKS AMIT!</p>
<p>Unfortunately over the last two years OpenGL has undergone some radical transformation &#8211; repackaging the classes, changing some methods&#8217; signatures etc. &#8211; so I had to update the code a bit &#8211; but it wasn&#8217;t too much work. So in case someone has the same problem, here I publish here the solution. To run the code (on a Mac) you need to make sure that:</p>
<ul>
<li>you installed QuickTime &#8211; this will also install the qtjava library as QTjava.zip in /System/Library/Java/Extensions;</li>
<li>you download the current release build of the <a href="https://jogl.dev.java.net/">Java OpenGL library</a> &#8211; you must unzip the downloaded file;</li>
<li>your compile-time libraries must include QTJava.zip, the two jars of jogl: jogl.jar and gluegen-rt.jar</li>
<li>you put the directory containing the jnilib files that were downloaded with jogl in the runtime library path (e.g. by specifying the switch -Djava.library.path=<span style="font-style:italic;">/path/of/your/jnilib/files</span> in your java command)</li>
</ul>
<p>I think you need QuickTime Pro to be able to record &#8211; QuickTimeViewer is not enough &#8211; but I&#8217;m not 100% sure.</p>
<p>In principle it should work also on Windows &#8211; but I did not check.</p>
<p>The program &#8220;MiniRecorder&#8221; will first show you a window where you can play with various params (you can leave them as they are or change some of the options &#8211; e.g. change the default compressor to MPEG-4 and adapt its video quality to the level you like) &#8211; when you click ok you&#8217;ll have an empty window with some buttons.<br />
Video recording will begin when you click on &#8220;start&#8221; &#8211; you&#8217;ll have a preview of what is being recorded. Click on &#8220;stop&#8221; to interrupt capturing, then &#8220;preview&#8221; to review the captured video, and &#8220;accept&#8221; or &#8220;discard&#8221; to keep/delete the file containing the saved video. Closing the window to quit.</p>
<p>The video is saved in a file named as you specify in the code. In the code you can also choose the directory where it will be located.</p>
<p>The code is composed by two classes: QTSessionFactory for initialization (adapted from Adamson&#8217;s book) and MiniRecorded (essentially the code that Amit sent me with some modifications).</p>
<p>Here is the code:</p>
<pre class="brush: plain;">
//------ Class QTSessionFactory
package QT;
import quicktime.*;
public class QTSessionFactory {
private Thread shutdownHook;
private static QTSessionFactory instance;
private QTSessionFactory( ) throws QTException {
super( );
// init
QTSession.open( );
// create shutdown handler
shutdownHook = new Thread( ) {
public void run( ) {
QTSession.close( );
}
};
Runtime.getRuntime( ).addShutdownHook(shutdownHook);
}
private static QTSessionFactory getInstance( ) throws QTException {
if (instance == null)
instance = new QTSessionFactory( );
return instance;
}

public static void setupQTSsession( ) throws QTException {
// gets instance.  if a new one needs to be created,
// it calls QTSession.open( ) and creates a shutdown hook
// to call QTSession.close( )
getInstance( );
}
}

//---- Class MiniRecorder

package QT;
import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
/* ----------------- */
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/* ----------------- */
import java.nio.IntBuffer;
/* ----------------- */
import com.sun.opengl.util.Animator;
/* ----------------- */
import javax.media.opengl.GL;
import javax.media.opengl.GLCanvas;
import javax.media.opengl.GLCapabilities;
import javax.media.opengl.GLEventListener;
import javax.media.opengl.GLAutoDrawable;
/* ----------------- */
import quicktime.QTException;
import quicktime.QTNullPointerException;
import quicktime.QTSession;
import quicktime.app.view.MoviePlayer;
import quicktime.app.view.QTFactory;
import quicktime.app.view.QTJComponent;
import quicktime.io.OpenMovieFile;
import quicktime.io.QTFile;
import quicktime.qd.QDGraphics;
import quicktime.qd.QDRect;
import quicktime.std.StdQTConstants;
import quicktime.std.StdQTException;
import quicktime.std.movies.Movie;
import quicktime.std.sg.SGSoundChannel;
import quicktime.std.sg.SGVideoChannel;
import quicktime.std.sg.SequenceGrabber;
import quicktime.util.QTBuild;

public class MiniRecorder implements StdQTConstants {
// The directory where files are saved
String activeDirectory = &quot;/Users/ronchet/tmp/&quot;;
String fileName=&quot;movie&quot;;
// quicktime
SequenceGrabber sg;
QDGraphics gWorld;
QTFile qtFile;
Movie movie;
MoviePlayer moviePlayer;
JComponent qtc;
GLCanvas canvas;
int taskingDelay = 20;
int maxFrameRate = 30;  // increasing may degrade preview speed
int compressorType = StdQTConstants.kComponentVideoCodecType;
int IMAGEWIDTH=640;
int IMAGEHEIGHT=480;
// camera flags
boolean cameraReady = false;
boolean isRecording = false;
boolean isPreviewing = true;
// image buffers
//MR int pixelData, newPixelData;
IntBuffer pixelData, newPixelData;
int WIDTH, HEIGHT;
// stats
int paintCount = 0;
long startMilli, endMilli;
// ui
JFrame frame;
Component imagePanel;
JPanel centerPanel, emptyPanel,buttonsPanel;
JButton startButton, stopButton, previewButton, acceptButton, discardButton;
final String START_RECORDING = &quot;Start&quot;;
final String STOP_RECORDING = &quot;Stop&quot;;
final String PREVIEW_RECORDING = &quot;Preview Recorded Video&quot;;
final String ACCEPT_RECORDING = &quot;Accept Recorded Video&quot;;
final String DISCARD_RECORDING = &quot;Discard Recorded Video&quot;;
final String TITLE = &quot;miniRecorder&quot;;
final Color BACKGROUND = Color.WHITE;
/**
* constructor.
*/
public MiniRecorder() {
try {
QTSessionFactory.setupQTSsession();
getQTinfo();
initSequenceGrabber();
} catch (Exception ex) {
log(&quot;Unable to initialize camera&quot;);
QTSession.close();
}
initUI();
}&lt;/pre&gt;
private void getQTinfo() {
log(&quot;java.library.path: &quot; + System.getProperty(&quot;java.library.path&quot;));
log (&quot;VERSIONS:&quot;);
log(&quot;OpenGL : &quot; + javax.media.opengl.glu.GLU.versionString);
log(&quot;QT     : &quot; + QTSession.getMajorVersion( ) + &quot;.&quot; + QTSession.getMinorVersion( ));
log(&quot;QTJ    : &quot; +QTBuild.getVersion( )+&quot;.&quot; +QTBuild.getSubVersion( ));
}

private void initSequenceGrabber() throws Exception {
sg = new SequenceGrabber();
SGVideoChannel vc = new SGVideoChannel(sg);
// init pixelData
QDRect cameraImageSize = new QDRect(IMAGEWIDTH ,IMAGEHEIGHT);
gWorld = new QDGraphics(cameraImageSize);
WIDTH = gWorld.getPixMap().getPixelData().getRowBytes() / 4;
HEIGHT = cameraImageSize.getHeight();
pixelData=IntBuffer.allocate(WIDTH * HEIGHT);
newPixelData=IntBuffer.allocate(WIDTH * HEIGHT);

sg.setGWorld(gWorld, null);

vc.setBounds(cameraImageSize);
vc.setUsage(quicktime.std.StdQTConstants.seqGrabRecord
| quicktime.std.StdQTConstants.seqGrabPlayDuringRecord);
vc.setFrameRate(maxFrameRate);
vc.setCompressorType(compressorType);
vc.settingsDialog( );
SGSoundChannel sc = new SGSoundChannel (sg);
sc.setUsage(StdQTConstants.seqGrabRecord);

// init bufferedImage
int intsPerRow = gWorld.getPixMap().getPixelData().getRowBytes() / 4;
pixelData = IntBuffer.allocate(intsPerRow * cameraImageSize.getHeight());

cameraReady = true;
}

private void initUI() {

frame = new JFrame(TITLE);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBackground(BACKGROUND);

// buttons panel
buttonsPanel = new JPanel();
buttonsPanel.setBackground(BACKGROUND);
startButton = new JButton(START_RECORDING);
buttonsPanel.add(startButton);
startButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
try {
startRecording();
} catch (Exception e) {
e.printStackTrace();
}
}
});

stopButton = new JButton(STOP_RECORDING);
stopButton.setEnabled(false);
buttonsPanel.add(stopButton);
stopButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
stopRecording();
}
});

previewButton = new JButton(PREVIEW_RECORDING);
previewButton.setEnabled(false);
buttonsPanel.add(previewButton);
previewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
previewRecording();
}
});

acceptButton = new JButton(ACCEPT_RECORDING);
acceptButton.setEnabled(false);
buttonsPanel.add(acceptButton);
acceptButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
acceptRecording();
}
});

discardButton = new JButton(DISCARD_RECORDING);
discardButton.setEnabled(false);
buttonsPanel.add(discardButton);
discardButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
discardRecording();
}
});

// bottom panel - for buttons
JLabel space = new JLabel(&quot;  &quot;);
buttonsPanel.add(space);
frame.add(BorderLayout.SOUTH, buttonsPanel);

// image panel
centerPanel = new JPanel();
centerPanel.setBackground(BACKGROUND);

emptyPanel = new JPanel();
emptyPanel.setPreferredSize(new Dimension(IMAGEWIDTH, IMAGEHEIGHT));
emptyPanel.setBackground(Color.ORANGE);

if (cameraReady) {
imagePanel = buildOpenGLCameraView();
centerPanel.add(imagePanel);
} else {
centerPanel.add(emptyPanel);
}

frame.add(BorderLayout.CENTER, centerPanel);
Toolkit toolkit = java.awt.Toolkit.getDefaultToolkit ();
Dimension screensize = toolkit.getScreenSize ();
frame.setBounds(0, 0, screensize.width, screensize.height-250);
frame.setVisible(true);

}

private void startRecording() {
log(&quot;start recording&quot;);
isRecording = true;
startButton.setEnabled(false);
stopButton.setEnabled(true);
buttonsPanel.validate();
startMilli = System.currentTimeMillis();

try {
prepareAndStartRecord();
} catch (QTException e) {
log(&quot;Unable to start recording&quot;);
} catch (QTNullPointerException e) {
log(&quot;Unable to start recording&quot;);
}

}

public void stopRecording() {
log (&quot;stop recording&quot;);
try {
endMilli = System.currentTimeMillis();
sg.stop();
log(&quot;recording stopped&quot;);
double seconds = (endMilli - startMilli) / 1000;
double previewFps = paintCount / seconds;
log(&quot;preview stats: seconds=&quot; + seconds + &quot; fps=&quot; + previewFps);

} catch (StdQTException e) {
log(&quot;Unable to stop recording&quot;);
}
isRecording = false;
stopButton.setEnabled(false);
previewButton.setEnabled(true);
frame.validate();
}

public void previewRecording() {
log(&quot;preview recording&quot;);
previewButton.setEnabled(false);
acceptButton.setEnabled(true);
discardButton.setEnabled(true);

// replace previewPanel with movie player
qtc = getQuicktimeMovieComponent(qtFile);
qtc.setPreferredSize(new Dimension(IMAGEWIDTH ,IMAGEHEIGHT));
setCenterComponent(qtc);

// Start playing the movie
try {
movie.start();
log(&quot;movie playing&quot;);
} catch (Exception e) {
e.printStackTrace();
}
}

public void acceptRecording() {
log(&quot;accept recording &quot; + qtFile.getName());
acceptButton.setEnabled(false);
discardButton.setEnabled(false);
startButton.setEnabled(true);
setCenterComponent(imagePanel);
try {
movie.stop();
log(&quot;movie stopped&quot;);
} catch (StdQTException e) {
e.printStackTrace();
}
}

public void discardRecording() {
log(&quot;discard recording &quot; + qtFile.getName());
acceptButton.setEnabled(false);
discardButton.setEnabled(false);
startButton.setEnabled(true);
setCenterComponent(imagePanel);
try {
movie.stop();
log(&quot;movie stopped&quot;);
} catch (StdQTException e) {
e.printStackTrace();
}
discardQTFile();
}

private void setCenterComponent(Component component) {
centerPanel.removeAll();
centerPanel.add(&quot;Center&quot;, component);
frame.validate();
}

/**
* Initializes the SequenceGrabber. Gets it's source video bounds, creates a
* gWorld with that size. Configures the video channel for grabbing,
* previewing and playing during recording.
*/

private void prepareAndStartRecord() throws QTException {
QTFile movieFile = getQTFile();
sg.setDataOutput(movieFile,
quicktime.std.StdQTConstants.seqGrabToDisk);
sg.prepare(false, true);
sg.startRecord();

// setting up a thread, to idle the sequence grabber
Runnable idleCamera = new Runnable() {

public void run() {
try {
while (sg != null &amp;&amp; isRecording) {
Thread.sleep(taskingDelay);
synchronized (sg) {
sg.idleMore();
sg.update(null);
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
};
(new Thread(idleCamera)).start();
}

/**
* This creates a Panel, which displays the camera image using OpenGL
*/
public Component buildOpenGLCameraView() {
GLEventListener glEventListener = new GLEventListener() {

// Called by the drawable immediately after the OpenGL context is initialized.
public void init(GLAutoDrawable drawable) {
log(&quot;init OpenGL&quot;);
GL gl = drawable.getGL();
gl.glClearColor(1.0f, 1.0f, 1.0f, 0.0f);
gl.glShadeModel(GL.GL_FLAT);
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
}

// Called by the drawable to initiate OpenGL rendering by the client.
public void display(GLAutoDrawable drawable) {
if (!isRecording) {
return;
}
GL gl = drawable.getGL();
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
gl.glPixelStorei(GL.GL_UNPACK_ALIGNMENT, 1);
gWorld.getPixMap().getPixelData().copyToArray(0, pixelData.array(), 0,
WIDTH * HEIGHT);
flipVertically(pixelData);
gl.glDrawPixels(WIDTH, HEIGHT, gl.GL_BGRA,
gl.GL_UNSIGNED_INT_8_8_8_8_REV, newPixelData);
paintCount++;
}

public void flipVertically( IntBuffer pixelData ) {
for ( int row=0; row&lt;HEIGHT; row++ ) {
System.arraycopy(pixelData.array(), row*WIDTH, newPixelData.array(), (HEIGHT-row-1)*WIDTH, WIDTH) ;
}
}
// Called by the drawable during the first repaint after the
// component has been resized.
public void reshape(GLAutoDrawable drawable, int i, int x, int width,
int height) {

GL gl = drawable.getGL();
// MR GLU glu = drawable.getGLU();
gl.glViewport(0, 0, WIDTH, HEIGHT);
gl.glMatrixMode(GL.GL_PROJECTION);
gl.glLoadIdentity();
// MR glu.gluOrtho2D(0.0, (double) WIDTH, 0.0, (double) HEIGHT);
gl.glMatrixMode(GL.GL_MODELVIEW);
gl.glLoadIdentity();

}

// Called by the drawable when the display mode or the display device
// associated with the GLDrawable has changed.
public void displayChanged(GLAutoDrawable drawable,
boolean modeChanged, boolean deviceChanged) {
}

};

GLCapabilities caps = new GLCapabilities();
canvas=new GLCanvas(caps);
canvas.addGLEventListener(glEventListener);
canvas.setBounds(0, 0, IMAGEWIDTH ,IMAGEHEIGHT);
Animator animator = new Animator(canvas);
animator.start();
return canvas;
}

public QTFile getQTFile() {
String path = activeDirectory + fileName;
int count = 0;
qtFile = new QTFile(path + count);
while (qtFile.exists()) {
count++;
qtFile = new QTFile(path + count);
}
log(&quot;getQTFile: &quot; + path + count);
return qtFile;
}

public void discardQTFile() {
log(&quot;discardQTFile: &quot; + qtFile.getName());
qtFile.deleteOnExit();
}

public void log(String text) {
System.out.println(text);
}

/**
* Gets a Movie component for the specified file
*/
protected JComponent getQuicktimeMovieComponent(QTFile qtFile) {
QTJComponent qtcmp = null;

try {
// Create the movie
movie = Movie.fromFile(OpenMovieFile.asRead(qtFile));
movie.setBounds(new QDRect(IMAGEWIDTH ,IMAGEHEIGHT));
moviePlayer = new MoviePlayer(movie);

// Create the QuickTime Movie Component
qtcmp = QTFactory.makeQTJComponent(moviePlayer);
return qtcmp.asJComponent();
} catch (QTException err) {
err.printStackTrace();
return null;
}
}

public static void main(String args[]) {
new MiniRecorder();
}
}
</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/macintoshnotes.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/macintoshnotes.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/macintoshnotes.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/macintoshnotes.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/macintoshnotes.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/macintoshnotes.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/macintoshnotes.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/macintoshnotes.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/macintoshnotes.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/macintoshnotes.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/macintoshnotes.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/macintoshnotes.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/macintoshnotes.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/macintoshnotes.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=macintoshnotes.wordpress.com&amp;blog=9270679&amp;post=34&amp;subd=macintoshnotes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://macintoshnotes.wordpress.com/2009/09/03/building-with-qtjava-a-video-recorder-that-allows-previewing-while-recording/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f251e0cf64be75b3cd37aa9c95dddf66?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ronchet</media:title>
		</media:content>
	</item>
	</channel>
</rss>
