<?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>toxicsoftware.com &#187; toxicmedia</title>
	<atom:link href="http://toxicsoftware.com/tag/toxicmedia/feed/" rel="self" type="application/rss+xml" />
	<link>http://toxicsoftware.com</link>
	<description>RANDOMIZE USR 0</description>
	<lastBuildDate>Sun, 01 Aug 2010 17:49:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Obligatory WWDC Wrap-Up and Leopard Analysis</title>
		<link>http://toxicsoftware.com/wwdc06/</link>
		<comments>http://toxicsoftware.com/wwdc06/#comments</comments>
		<pubDate>Thu, 17 Aug 2006 02:22:08 +0000</pubDate>
		<dc:creator>schwa</dc:creator>
				<category><![CDATA[Default]]></category>
		<category><![CDATA[toxicmedia]]></category>
		<category><![CDATA[wwdc]]></category>

		<guid isPermaLink="false">http://toxicsoftware.com/wwdc06/</guid>
		<description><![CDATA[Everyone else is doing it so I figure I ought to. This was my seventh WWDC and was definitely the most social one I&#8217;ve attended by far. I met a tonne of people (mostly guys from #macsb who I&#8217;d known &#8230; <a href="http://toxicsoftware.com/wwdc06/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.google.com/search?q=wwdc+wrap+up">Everyone</a> <a href="http://gusmueller.com/blog/archives/2006/08/wwdc06.html">else</a> is <a href="http://www.stuffonfire.com/2006/08/11/wwdc-wrap-up/">doing</a> <a href="http://blogs.roguesheep.com/?p=13">it</a> so I figure I ought to.</p>

<p>This was my seventh WWDC and was definitely the most social one I&#8217;ve attended by far. I met a tonne of people (mostly guys from #macsb who I&#8217;d known virtually for almost year or so) including a lot of developers whose work I really respect.</p>

<p>Buzz&#8217;s <a href="http://weblog.scifihifi.com/2006/07/23/party-time-excellent/">weblogger&#8217;s party</a> was a great success, and I managed to stay mostly sober this time. I&#8217;d really like to thank Buzz and co. for doing such a great job and I hope this remains a Monday night WWDC tradition.</p>

<p><a href="http://gusmueller.com/blog/">Gus Mueller</a> did a great job introducing me (and everyone else) to every single attendee at WWDC (all 4000+ of them). The list of everyone I met this year is too long to post (or remember).</p>

<p>I can&#8217;t talk too much about Leopard (that dreary NDA thing gets in the way) but it looks really great so far. From a user&#8217;s perspective Leopard is good (Time Machine is something we&#8217;ve wanted for a long time), but from a developer&#8217;s perspective, WOW. I spent the first day after the Keynote and the &#8220;State of the Union&#8221; sessions being stunned and overwhelmed by all the new technology. There are so many goodies in 10.5 for developers that Apple have made it a very hard for developers to continue supporting 10.4. It will be a constant struggle to keep my head out of the clouds and remember that the end-users are still running 10.4 and won&#8217;t be upgrading en-masse for a long while (excluding those who have &#8220;found&#8221; a copy on bittorrent).</p>

<p>However, predictably Apple has gone and stomped on my toes. A few of the <a href="http://toxic-public.googlecode.com/svn/tags/BlogTag_20070927_729/Frameworks/ToxicMedia/">frameworks</a> and Cocoa classes I&#8217;ve developed over the years have been superseded or replaced by code in 10.5. This is generally a good thing, once 10.5 ships it&#8217;ll be relatively easy to switch to Apple&#8217;s code and then abandon my code (probably into my <a href="http://toxic-public.googlecode.com/svn/tags/BlogTag_20070927_729/Graveyard/">code graveyard</a>). Supporting my own code has some advantages, mainly I can support 10.4 and older OSes if needed be. I&#8217;m still trying to decide what to do with my public code that has been duplicated by Apple, should I support it &#8211; or abandon it now? There is certainly a lot of life in my code before Leopard ships.</p>
]]></content:encoded>
			<wfw:commentRss>http://toxicsoftware.com/wwdc06/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>ToxicMedia &amp; SequenceGrabber Stable</title>
		<link>http://toxicsoftware.com/toxicmedia_sequencegrabber_stable/</link>
		<comments>http://toxicsoftware.com/toxicmedia_sequencegrabber_stable/#comments</comments>
		<pubDate>Mon, 14 Nov 2005 04:32:34 +0000</pubDate>
		<dc:creator>schwa</dc:creator>
				<category><![CDATA[Default]]></category>
		<category><![CDATA[Source Code]]></category>
		<category><![CDATA[toxicmedia]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[I&#8217;ve moved all the SequenceGrabber utility code into its own framework: ToxicMedia.framework, the code is available from trunk/Frameworks/ToxicMedia. All my projects that use CoreImage, CoreVideo or QTKit now depend on this framework. Now I don&#8217;t need to update 4 or &#8230; <a href="http://toxicsoftware.com/toxicmedia_sequencegrabber_stable/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve moved all the SequenceGrabber utility code into its own framework: ToxicMedia.framework, the code is available from <a href="http://toxic-public.googlecode.com/svn/tags/BlogTag_20070927_729/Frameworks/ToxicMedia/">trunk/Frameworks/ToxicMedia</a>. All my projects that use CoreImage, CoreVideo or QTKit now depend on this framework. Now I don&#8217;t need to update 4 or 5 projects every time something changes.</p>

<p>I&#8217;ve also branched all the test projects and the framework. You can find the branch here: <a href="http://toxic-public.googlecode.com//branches/SequenceGrabber%20Stable/">branches/SequenceGrabber Stable</a>. This branch is intended to be relatively stable, I&#8217;ll make sure the code can always build and run. If you don&#8217;t feel like dealing with the churn in the trunk then this branch is for you.</p>
]]></content:encoded>
			<wfw:commentRss>http://toxicsoftware.com/toxicmedia_sequencegrabber_stable/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>CoreVideoFunHouse</title>
		<link>http://toxicsoftware.com/corevideofunhouse/</link>
		<comments>http://toxicsoftware.com/corevideofunhouse/#comments</comments>
		<pubDate>Thu, 27 Oct 2005 10:56:42 +0000</pubDate>
		<dc:creator>schwa</dc:creator>
				<category><![CDATA[Default]]></category>
		<category><![CDATA[CoreImage]]></category>
		<category><![CDATA[corevideo]]></category>
		<category><![CDATA[isight]]></category>
		<category><![CDATA[quicktime]]></category>
		<category><![CDATA[sequence grabber]]></category>
		<category><![CDATA[toxicmedia]]></category>

		<guid isPermaLink="false">http://toxicsoftware.com/blog/corevideofunhouse/</guid>
		<description><![CDATA[A quick demo movie of my CoreVideoFunHouse (does that name sound familiar?) code. The project shares code with my Sequence Grabber project and renders QuickTime movies using QTKit and CoreVideo. It also uses macros made up of multiple Core Image &#8230; <a href="http://toxicsoftware.com/corevideofunhouse/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A quick <a href="http://toxicsoftware.com/uploads/CoreVideoFunHouse.mp4">demo movie</a> of my <a href="http://toxic-public.googlecode.com/svn/tags/BlogTag_20070927_729/Frameworks/ToxicMedia/Samples/CoreVideoFunHouse">CoreVideoFunHouse</a> (does that name sound <a href="http://developer.apple.com/macosx/coreimage.html">familiar</a>?) code.</p>

<p>The project shares code with my Sequence Grabber project and renders QuickTime movies using QTKit and CoreVideo. It also uses macros made up of multiple Core Image filters and defined in a simple XML file, each item in the popup menu is a macro of one or more Core Image filters that are linked together to produce the effect. I&#8217;ve also written a Python script to import Core Image Fun House data files and convert them into my &#8220;cimacro&#8221; files (this functionality will be rewritten in ObjC one day).</p>

<p>The latest version of the code (checked in but not shown in the demo movie) also features crude animation and allows the video source to be selected on the fly between a movie file and an iSight.</p>
]]></content:encoded>
			<wfw:commentRss>http://toxicsoftware.com/corevideofunhouse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://toxicsoftware.com/uploads/CoreVideoFunHouse.mp4" length="2658841" type="video/mp4" />
		</item>
		<item>
		<title>More SequenceGrabber Updates</title>
		<link>http://toxicsoftware.com/more_sequencegrabber_updates/</link>
		<comments>http://toxicsoftware.com/more_sequencegrabber_updates/#comments</comments>
		<pubDate>Fri, 21 Oct 2005 01:11:14 +0000</pubDate>
		<dc:creator>schwa</dc:creator>
				<category><![CDATA[Default]]></category>
		<category><![CDATA[CoreImage]]></category>
		<category><![CDATA[corevideo]]></category>
		<category><![CDATA[isight]]></category>
		<category><![CDATA[quicktime]]></category>
		<category><![CDATA[sequence grabber]]></category>
		<category><![CDATA[Source Code]]></category>
		<category><![CDATA[toxicmedia]]></category>

		<guid isPermaLink="false">http://toxicsoftware.com/blog/more_sequencegrabber_updates/</guid>
		<description><![CDATA[Spurred on by interest in my Sequence Grabber source code I&#8217;ve added a whole slew of new functionality to it tonight (for various reasons this code is a lot of fun to work on). The most important change is CCoreImageView &#8230; <a href="http://toxicsoftware.com/more_sequencegrabber_updates/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Spurred on by interest in my <a href="http://toxic-public.googlecode.com/svn/tags/BlogTag_20070927_729/Frameworks/ToxicMedia/Samples/SequenceGrabber">Sequence Grabber</a> source code I&#8217;ve added a whole slew of new functionality to it tonight (for various reasons this code is a lot of fun to work on). The most important change is <a href="http://toxic-public.googlecode.com/svn/tags/BlogTag_20070927_729/Frameworks/ToxicMedia/Framework/Source/CCoreImageView.h">CCoreImageView</a> now supports Cocoa bindings and has an Interface Builder palette. This means you can easily create a view in Interface Builder and bind it to your controller/model objects without writing a line of code! <a href="http://toxic-public.googlecode.com/svn/tags/BlogTag_20070927_729/Frameworks/ToxicMedia/Framework/Source/SequenceGrabber/CSequenceGrabberView.h">CSequenceGrabberView</a> isn&#8217;t in the palette yet but will be soon, when it is you&#8217;ll be able add iSight support to your Cocoa application without writing any code.
I&#8217;ve spent some time simplifying and improving the sequence grabber <a href="http://toxic-public.googlecode.com/svn/tags/BlogTag_20070927_729/Frameworks/ToxicMedia/Framework/Source/SequenceGrabber/CSequenceGrabberVideoChannel.h">video channel</a> classes. The code is now much easier to understand and modify (a lot of this code is based on some pretty badly written Apple sample code and needed a lot of tidying up before it is readable).</p>

<p>The easiest way to use the sequence grabber is just to add a CSequenceGrabberView to your project. The view supports start and stop actions so you can wire your user interface directly to the view. You can also access the underlying CSequenceGrabber object directly if needed. There are plenty of hooks in the code to add your custom functionality &#8211; <a href="http://toxic-public.googlecode.com/svn/tags/BlogTag_20070927_729/Frameworks/ToxicMedia/Framework/Source/SequenceGrabber/CSequenceGrabber.h">CSequenceGrabber</a> (and its children video and sound channel objects) sends many useful NSNotifications. I&#8217;m also going to make the code use Cocoa bindings as much as possible. That way you can use bindings and/or notifications as your need dictates.</p>

<p>I&#8217;ve improved the &#8220;<a href="http://toxic-public.googlecode.com/svn/tags/BlogTag_20070927_729/Frameworks/ToxicMedia/Samples/SequenceGrabber/QuadView">QuadView</a>&#8221; sample code to take advantage of Cocoa bindings support in CCoreImageView. One thing I&#8217;ve noticed is that the core image filtering just isn&#8217;t very fast. After two or three live video streams running through Core Image filters the frame rate drops rather dramatically. I will look into this further and hope to make big improvements if my code is actually the bottleneck. Or maybe it is time to just order that Quad G5 now that they&#8217;re available (one 2.5GHz core per video stream sounds like a great idea!).</p>

<p>If you are having trouble building the code &#8211; remember all projects require Xcode 2.1 (or newer, I am using Xcode 2.2 for development). Also you <em>will</em> need subversion to check out a full copy of the code.</p>

<p>Finally I&#8217;ve been really encouraged by the interest that my Sequence Grabber code has generated. I&#8217;m getting a few emails a week from people using it in their projects. I love hearing about the uses people are putting the code to and encourage anyone using it to append a comment to this blog posting.</p>
]]></content:encoded>
			<wfw:commentRss>http://toxicsoftware.com/more_sequencegrabber_updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sequence Grabber Updated</title>
		<link>http://toxicsoftware.com/sequence_grabber_updated/</link>
		<comments>http://toxicsoftware.com/sequence_grabber_updated/#comments</comments>
		<pubDate>Thu, 13 Oct 2005 16:23:46 +0000</pubDate>
		<dc:creator>schwa</dc:creator>
				<category><![CDATA[Default]]></category>
		<category><![CDATA[CoreImage]]></category>
		<category><![CDATA[corevideo]]></category>
		<category><![CDATA[isight]]></category>
		<category><![CDATA[quicktime]]></category>
		<category><![CDATA[sequence grabber]]></category>
		<category><![CDATA[Source Code]]></category>
		<category><![CDATA[toxicmedia]]></category>

		<guid isPermaLink="false">http://toxicsoftware.com/blog/sequence_grabber_updated/</guid>
		<description><![CDATA[My sequence grabber code (previously mentioned here) has been updated. It should be a lot easier to get up and running now &#8211; I&#8217;ve added a &#8220;CSequenceGrabberView&#8221; NSView subclasss that you just need to drag and drop into your nib&#8217;s &#8230; <a href="http://toxicsoftware.com/sequence_grabber_updated/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>My sequence grabber code (previously mentioned <a href="/blog/sequence_grabber_code_now_with_coregoodness/">here</a>) has been updated. It should be a lot easier to get up and running now &#8211; I&#8217;ve added a &#8220;<a href="http://toxic-public.googlecode.com/svn/tags/BlogTag_20070927_729/Frameworks/ToxicMedia/Framework/Source/SequenceGrabber/CSequenceGrabberView.h">CSequenceGrabberView</a>&#8221; NSView subclasss that you just need to drag and drop into your nib&#8217;s NSWindow. I&#8217;ve also improved the error handling so that the lack of a plugged in iSight camera won&#8217;t cause a crash.</p>
]]></content:encoded>
			<wfw:commentRss>http://toxicsoftware.com/sequence_grabber_updated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sequence Grabber code now has Motion Detection</title>
		<link>http://toxicsoftware.com/sequence_grabber_code_now_has_motion_detection/</link>
		<comments>http://toxicsoftware.com/sequence_grabber_code_now_has_motion_detection/#comments</comments>
		<pubDate>Thu, 18 Aug 2005 14:29:59 +0000</pubDate>
		<dc:creator>schwa</dc:creator>
				<category><![CDATA[Default]]></category>
		<category><![CDATA[CoreImage]]></category>
		<category><![CDATA[corevideo]]></category>
		<category><![CDATA[isight]]></category>
		<category><![CDATA[quicktime]]></category>
		<category><![CDATA[sequence grabber]]></category>
		<category><![CDATA[Source Code]]></category>
		<category><![CDATA[toxicmedia]]></category>

		<guid isPermaLink="false">http://toxicsoftware.com/blog/sequence_grabber_code_now_has_motion_detection/</guid>
		<description><![CDATA[I&#8217;ve added basic motion detection capabilities to Cocoa Sequence Grabber code now. This is what happens when your cat wakes you up too darn early after peeing under the computer desk. Sample movie (MP4/QuickTime 7 required, 64KB file): MotionDetection.mp4 No &#8230; <a href="http://toxicsoftware.com/sequence_grabber_code_now_has_motion_detection/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve added basic motion detection capabilities to <a href="/blog/sequence_grabber_code_now_with_coregoodness/">Cocoa Sequence Grabber</a> code now.</p>

<p>This is what happens when your cat wakes you up too darn early after peeing under the computer desk.</p>

<p>Sample movie (MP4/QuickTime 7 required, 64KB file): <a href="/uploads/MotionDetection.mp4">MotionDetection.mp4</a></p>

<p>No those aren&#8217;t mpeg encoding artefacts, those are my attempts to highlight the motion in the movie.</p>

<p>Source code: <a href="http://toxic-public.googlecode.com/svn/tags/BlogTag_20070927_729/Frameworks/ToxicMedia/Samples/SequenceGrabber">http://toxic-public.googlecode.com/svn/tags/BlogTag_20070927_729/Frameworks/ToxicMedia/Samples/SequenceGrabber</a> (see MotionDetector subdirectory)</p>

<p>Have fun.</p>

<p><img src="/uploads/MotionDetector.jpg" border="0" alt="image" name="image" width="641" height="504" /></p>
]]></content:encoded>
			<wfw:commentRss>http://toxicsoftware.com/sequence_grabber_code_now_has_motion_detection/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Sequence Grabber Code &#8211; now with CoreGoodness</title>
		<link>http://toxicsoftware.com/sequence_grabber_code_now_with_coregoodness/</link>
		<comments>http://toxicsoftware.com/sequence_grabber_code_now_with_coregoodness/#comments</comments>
		<pubDate>Tue, 09 Aug 2005 01:47:10 +0000</pubDate>
		<dc:creator>schwa</dc:creator>
				<category><![CDATA[Default]]></category>
		<category><![CDATA[CoreImage]]></category>
		<category><![CDATA[corevideo]]></category>
		<category><![CDATA[isight]]></category>
		<category><![CDATA[quicktime]]></category>
		<category><![CDATA[sequence grabber]]></category>
		<category><![CDATA[Source Code]]></category>
		<category><![CDATA[toxicmedia]]></category>

		<guid isPermaLink="false">http://toxicsoftware.com/blog/sequence_grabber_code_now_with_coregoodness/</guid>
		<description><![CDATA[I&#8217;ve improved my Cocoa Sequence Grabber code (read: iSight code). I&#8217;ve added a couple of extra classes to represent audio and video channels. Gone are the dependencies on my MoreFile framework and some of my other Cocoa/Carbon utility classes (making &#8230; <a href="http://toxicsoftware.com/sequence_grabber_code_now_with_coregoodness/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve improved my Cocoa <a href="/blog/sequence_grabber_cocoa_source_code/">Sequence Grabber</a> code (read: iSight code). I&#8217;ve added a couple of extra classes to represent audio and video channels. Gone are the dependencies on my MoreFile framework and some of my other Cocoa/Carbon utility classes (making the project more lightweight). I&#8217;ve improved the code all round &#8211; but the key addition is the ability to receive frames from the sequence grabber as CoreImage images. This means you can perform extra processing on the frames including applying CoreImage filters&#8230;</p>

<p>See screenshot: <a href="/uploads/SequenceGrabber_1.png" onclick="window.open('/uploads/SequenceGrabber_1.png','popup','width=656,height=519,scrollbars=no,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false">SequenceGrabber_1.png</a>.</p>

<p>Note that QuickTime movie saved to disk is not passed through CoreImage. Frames from the SequenceGrabber are exposed to client code through standard Cocoa delegate methods (well one method) so you can do whatever you want with the images (including add them to a QTKit movie).</p>

<p>The code is still in a work in progress but it is pretty functional right now. My aim is to keep it all quite simple (unlike some of the Apple sample code parts of it was based on) and usable when just dropped into a 3rd party project.</p>

<p>Source code: <a href="http://toxic-public.googlecode.com/svn/tags/BlogTag_20070927_729/Frameworks/ToxicMedia/">http://toxic-public.googlecode.com/svn/tags/BlogTag_20070927_729/Frameworks/ToxicMedia/</a> links.</p>
]]></content:encoded>
			<wfw:commentRss>http://toxicsoftware.com/sequence_grabber_code_now_with_coregoodness/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Sequence Grabber Cocoa Source Code</title>
		<link>http://toxicsoftware.com/sequence_grabber_cocoa_source_code/</link>
		<comments>http://toxicsoftware.com/sequence_grabber_cocoa_source_code/#comments</comments>
		<pubDate>Tue, 23 Nov 2004 04:19:15 +0000</pubDate>
		<dc:creator>schwa</dc:creator>
				<category><![CDATA[Default]]></category>
		<category><![CDATA[CoreImage]]></category>
		<category><![CDATA[corevideo]]></category>
		<category><![CDATA[Headline]]></category>
		<category><![CDATA[isight]]></category>
		<category><![CDATA[quicktime]]></category>
		<category><![CDATA[sequence grabber]]></category>
		<category><![CDATA[Source Code]]></category>
		<category><![CDATA[toxicmedia]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Cocoa source code showing how to use a QuickTime Sequence Grabber (e.g. an iSight camera) from your Cocoa application. Update. I&#8217;ve uploaded a new version of the SequenceGrabber source code that should compile cleanly on any Mac OS X 10.3 &#8230; <a href="http://toxicsoftware.com/sequence_grabber_cocoa_source_code/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Cocoa source code showing how to use a QuickTime Sequence Grabber (e.g. an iSight camera) from your Cocoa application.</p>

<p>Update. I&#8217;ve uploaded a new version of the SequenceGrabber source code that should compile cleanly on any Mac OS X 10.3 machine. Thanks to &#8220;jlecuyer&#8221; for pointing out the original version was broken.</p>

<p>Update: Information on new version <a href="/blog/sequence_grabber_code_now_with_coregoodness/">here</a></p>

<p>Update: Link to source deleted, see my <a href="/toxicmedia/">ToxicMedia</a> page.</p>
]]></content:encoded>
			<wfw:commentRss>http://toxicsoftware.com/sequence_grabber_cocoa_source_code/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
