<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Webinar Q&amp;amp;A: Building Consumer Electronics Devices using Windows Embedded.</title><link>http://blogs.msdn.com/mikehall/archive/2007/02/28/webinar-q-a-building-consumer-electronics-devices-using-windows-embedded.aspx</link><description>Today Jeff Albertson and I hosted a Webinar with CMP on the topic of " Building Consumer Electronics Devices using Windows Embedded " - the webinar will be posted on the CMP site. There were a number of questions asked that we didn't have time to answer</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title> Windows Embedded CE Webcast</title><link>http://blogs.msdn.com/mikehall/archive/2007/02/28/webinar-q-a-building-consumer-electronics-devices-using-windows-embedded.aspx#1776691</link><pubDate>Thu, 01 Mar 2007 05:22:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1776691</guid><dc:creator> Windows Embedded CE Webcast</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://edablog.com/2007/02/28/embedded-ce-webinar/"&gt;http://edablog.com/2007/02/28/embedded-ce-webinar/&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: Webinar Q&amp;A: Building Consumer Electronics Devices using Windows Embedded.</title><link>http://blogs.msdn.com/mikehall/archive/2007/02/28/webinar-q-a-building-consumer-electronics-devices-using-windows-embedded.aspx#1780791</link><pubDate>Thu, 01 Mar 2007 21:49:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1780791</guid><dc:creator>Brad Carey</dc:creator><description>&lt;p&gt;I have two questions:&lt;/p&gt;
&lt;p&gt;1. I would assume that WinCE 6.0 supports services to all interface to the new &amp;quot;Home Server&amp;quot; product? &amp;nbsp;Can you elaborate if there will be difficulties building CE multimedia devices that connect to Home Server.&lt;/p&gt;
&lt;p&gt;2. Does the DRM capabilities of WinCE allow configuration of an embedded media server that would allow DVD movie content to ripped to HD and managed as DRM content on the server?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Brad&lt;/p&gt;
</description></item><item><title>re: Webinar Q&amp;A: Building Consumer Electronics Devices using Windows Embedded.</title><link>http://blogs.msdn.com/mikehall/archive/2007/02/28/webinar-q-a-building-consumer-electronics-devices-using-windows-embedded.aspx#1780920</link><pubDate>Thu, 01 Mar 2007 22:28:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1780920</guid><dc:creator>William</dc:creator><description>&lt;p&gt;I'm running platform builder in visual studio 2006 and it takes around 15-30 mins to complete a built. &amp;nbsp;Which particular component on my computer (i.e. &amp;nbsp;should I get a quad core processor or 4GB of RAM) if any should decrease that build time significantly?&lt;/p&gt;
</description></item><item><title>re: Webinar Q&amp;A: Building Consumer Electronics Devices using Windows Embedded.</title><link>http://blogs.msdn.com/mikehall/archive/2007/02/28/webinar-q-a-building-consumer-electronics-devices-using-windows-embedded.aspx#1780923</link><pubDate>Thu, 01 Mar 2007 22:29:57 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1780923</guid><dc:creator>William</dc:creator><description>&lt;p&gt;Sorry, I meant Visual Studio 2005 Professional Edition. &amp;nbsp;&lt;/p&gt;
</description></item><item><title>re: Webinar Q&amp;A: Building Consumer Electronics Devices using Windows Embedded.</title><link>http://blogs.msdn.com/mikehall/archive/2007/02/28/webinar-q-a-building-consumer-electronics-devices-using-windows-embedded.aspx#1780943</link><pubDate>Thu, 01 Mar 2007 22:34:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1780943</guid><dc:creator>mikehall</dc:creator><description>&lt;p&gt;the build process is very disc intensive, having a fast machine with plenty of ram and fast hard drives will improve the build time.&lt;/p&gt;
&lt;p&gt;- Mike&lt;/p&gt;
</description></item><item><title>re: Webinar Q&amp;A: Building Consumer Electronics Devices using Windows Embedded.</title><link>http://blogs.msdn.com/mikehall/archive/2007/02/28/webinar-q-a-building-consumer-electronics-devices-using-windows-embedded.aspx#1782619</link><pubDate>Fri, 02 Mar 2007 03:53:57 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1782619</guid><dc:creator>mikehall</dc:creator><description>&lt;p&gt;Brad,&lt;/p&gt;
&lt;p&gt;How do you see a Windows CE device being linked to a Home Server ? - what content/files are you wanting to exchange ?&lt;/p&gt;
&lt;p&gt;If Home Server is running Windows Media Connect then you can 'stream' content from the home server - if the home server exposes file shares then you can also read/write to the shares.&lt;/p&gt;
&lt;p&gt;What other scenarios would you like to see exposed ?&lt;/p&gt;
&lt;p&gt;- Mike&lt;/p&gt;
</description></item><item><title>re: Webinar Q&amp;A: Building Consumer Electronics Devices using Windows Embedded.</title><link>http://blogs.msdn.com/mikehall/archive/2007/02/28/webinar-q-a-building-consumer-electronics-devices-using-windows-embedded.aspx#1797059</link><pubDate>Sat, 03 Mar 2007 17:55:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1797059</guid><dc:creator>Thirupathi Reddy</dc:creator><description>&lt;p&gt;I worked on Windows CE/Windows Mobile Multimedia as a platform developer for around 3 yrs. I also worked on other OSes such as Symbian and eLinux in the field of multimedia. I would rate Windows CE/Windows Mobile as worst among all these OSes w.r.t. multimedia platform development. &lt;/p&gt;
&lt;p&gt;Few of the reasons are as follows:&lt;/p&gt;
&lt;p&gt;- Windows CE/Windows Mobile multimedia technologies such as DirectShow, DirectDraw etc. are directly re-used from Desktop without any optimizaiton for Memory, Performance and Power. If your hardware is optimized for performance and power, it is not guaranteed that you will achieve the similar figures when Windows CE/Windows Mobile is running on top of the hardware due to lack of optimization in the memory copies, data path etc.&lt;/p&gt;
&lt;p&gt;- DirectShow is the multimedia infrastructure that Windows CE/Windows Mobile provides for playback and capture pipelines. In these pipelines few of the components such as Video Renderer, Video Capture etc. are designed by Microsoft. Designing components such as encoders/decoders to work with Microsoft components has been nightmare, as the behaviour of microsoft components is not documented well and there is no source code for them. Even if somethings are documented, the documentation is not correct as it only applies to Desktop.&lt;/p&gt;
&lt;p&gt;- The support for Windows Embedded Multimedia is very poor in the newsgroups. There are hardly any eMVPs in the field of Windows Embedded Multimedia.&lt;/p&gt;
&lt;p&gt;- The wave API for audio is insufficient for Windows Embedded devices, as it does not have built-in provision to indicate details about the wave streams such as priority, type (alert, notification, media playback) etc. This results in poor resource management and performance optimization at the platform level.&lt;/p&gt;
&lt;p&gt;- They hardly have any roadmap for multimedia except that they may have roadmaps for their own technologies such as Windows Media Codecs, Windows Media DRM, Direct3D etc. &lt;/p&gt;
&lt;p&gt;- Windows CE/Windows Mobile complaince to the open multimedia standards such as OpenMAX,Open GL, 3GPP, OMA etc. is poor. The ODM/OEM has to assemble the software required to be in complaince with these standards, which increases the product cost and time to market.&lt;/p&gt;
</description></item><item><title>re: Webinar Q&amp;A: Building Consumer Electronics Devices using Windows Embedded.</title><link>http://blogs.msdn.com/mikehall/archive/2007/02/28/webinar-q-a-building-consumer-electronics-devices-using-windows-embedded.aspx#1805698</link><pubDate>Sun, 04 Mar 2007 23:54:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1805698</guid><dc:creator>Andy Raffman</dc:creator><description>&lt;p&gt;Let me try to address, as honestly as I know how, some of Thirupathi's comments. Pardon me for paraphrasing him:&lt;/p&gt;
&lt;p&gt;1. ... multimedia technologies such as DirectShow, DirectDraw etc. are directly re-used from Desktop without any optimization...&lt;/p&gt;
&lt;p&gt;- Most of the multimedia code, while it may distantly descend from the desktop, is heavily rewritten and optimized for size and performance. Our graphics and wave drivers and DirectDraw and D3DM implementation are completely written from scratch, and we've spent alot of time working on optimizing DirectShow components. Believe me, I really wish we could just grab code from the desktop and reuse it; it would make my job alot easier.&lt;/p&gt;
&lt;p&gt;2. DirectShow is hard to program for, is poorly documented, and MS doesn't ship source code.&lt;/p&gt;
&lt;p&gt;- Gee, don't hold back, let me know how you really feel. Seriously, we're working on improving the documentation, including more sample/source code, and improving the debuggability/error logging in the future. &lt;/p&gt;
&lt;p&gt;3. The support for Windows Embedded Multimedia is very poor in the newsgroups.&lt;/p&gt;
&lt;p&gt;- I can't speak for the MVPs, but I know alot of us on the MM team read the newsgroups and try to offer assistance. &lt;/p&gt;
&lt;p&gt;4. The wave API is insufficient for Windows Embedded devices.&lt;/p&gt;
&lt;p&gt;- Partly true. I don't agree that it's a resource management or perf optimization issue though: audio in general takes very little CPU and it's fairly trivial to support an unlimited number of audio streams independent of what your hardware supports (all the hardware I develop for only supports one stream, but the sw mixer takes care of that). The bigger issues tend to be questions like how to automatically attenuate MP3 playback while a phone call is in progress, deciding where to route audio (e.g. between a headset, external speakers, internal phone call, etc.), and choosing the best sample rate for playback. We've addressed some of these issues in the wavedev2 audio driver for Smartphone/PPC (which is applicable to embedded devices as well), but I'll be the first to say the design could be improved. &lt;/p&gt;
&lt;p&gt;5 &amp;amp; 6. They hardly have any roadmap for multimedia except they may have roadmaps for their own technologies...compliance to the open multimedia standards such as OpenMAX,Open GL, 3GPP, OMA etc. is poor..&lt;/p&gt;
&lt;p&gt;- I'm not really sure how to respond to this. Yes, we tend to support Microsoft technologies because we're...you know...Microsoft. Seriously, we tend to support our own APIs first for the following reasons:&lt;/p&gt;
&lt;p&gt;a. Where we feel they give us a competitive advantage/differentiation over other APIs, and allow us the flexibility to move the platform forward.&lt;/p&gt;
&lt;p&gt;b. Where we have a large internal source-code or development infrastructure.&lt;/p&gt;
&lt;p&gt;In general we don't have anything against other APIs such as OpenMax/OpenGL/etc. In cases where the above issues don't apply, or where we see overwhelming customer demand, we're definitely open to supporting these APIs (I think we already do alot with 3GPP and OMA, but that's outside my realm of expertise). &amp;nbsp;&lt;/p&gt;
&lt;p&gt;In any case, we're always willing to assist OEMs with WinCE/Windows Mobile products even if they use non-Microsoft APIs (just last week we offered general assistance to a party interested in running OpenGL ES on a Windows CE device). In such cases, our limiting factor is not desire to help; it's more often resource/time constraints and our own lack of experience with those APIs.&lt;/p&gt;
&lt;p&gt;-Andy&lt;/p&gt;
</description></item><item><title>re: Webinar Q&amp;A: Building Consumer Electronics Devices using Windows Embedded.</title><link>http://blogs.msdn.com/mikehall/archive/2007/02/28/webinar-q-a-building-consumer-electronics-devices-using-windows-embedded.aspx#1810444</link><pubDate>Mon, 05 Mar 2007 18:38:11 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1810444</guid><dc:creator>Thirupathi Reddy</dc:creator><description>&lt;p&gt;Hi Andy,&lt;/p&gt;
&lt;p&gt;Following are few reasons (my opinions and experiences), based on which i suggest DirectShow is not optimized for performance and battery life due to 'memory copies&amp;quot; and &amp;quot;long data paths&amp;quot;. &lt;/p&gt;
&lt;p&gt;- Support for Direct Rendering: DShow do not provide an explicit support for direct rendering i.e. rendering the decoded data directly onto the screen/audio codec without passing through system layers. For direct video rendering, platform documentation says DirectShow Video Renderer provides a mechanism using IOverlay and IOverlayNotify to let the hw accelerated decoder exploit the direct video rendering capability. We initially designed our decoder based on this assumption. Finally, realised that video renderer does not notify the video window position changes. I suspect this part of documentation applies to desktop only. For direct audio rendering, there is no offfical support from DirectShow. 2 methods were tried out, both of them failed with the introduction of a2dp based wave driver. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;- Few of the Windows Embedded application frameworks (Camcorder, VoIP) insist on using conversion based codecs such as ACM/DMOs. If you have a DSP/HW optimized implementation of a codec, the data buffers need to be typically physically contigous, follow certain alignment constraints. ACM/DMO codecs exchange blocks of uncompressed and compressed bit streams with the clients through the memory blocks allocated and managed by the client. The client buffers may not obey the buffer constraints of data exchanged between the host and the accelerator. As a result, client buffers cannot be directly used for data transfer between the accelerator/dsp and host. This typically leads to an implementation involving a DMA transfer to/from pre-allocated physical memory (following the HW constraints) and a copy to/from the client buffers. This happens on the both input and output sides=&amp;gt; there are two definite memcpy’s in accelerated ACM and DMO codecs. This kind of implementation introduces performance degradation due to additional two mem cpy’s and extra power consumption due to the CPU involvement in the memcpy’s. For high quality video this may have significant impact.&lt;/p&gt;
&lt;p&gt;Such kind of drawbacks can be avoided, if the frameworks follow bottom-up buffering. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;- A media player infrastructure which is optimized for power should release the hw resources such as wave out device, DSP codec etc. during long haul pauses (i.e. if the user has paused for long durations). A directshow based decoder/encoder do not have any information on the application being minimized or in the background/de-activated etc for power related optimizations.&lt;/p&gt;
&lt;p&gt;I think the above were few other reasons (apart from DRM constraints), to have a different pipeline for WMV. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;There are certain asymmetries and missing interfaces from Windows Embedded Multimedia Infrastructures:&lt;/p&gt;
&lt;p&gt;VoIP application framework uses ACM based audio codecs. Where as Camcorder application enforces to use DMO based audio encoder. This means that for integrating the same codec, we are forced to develop two plug-ins (ACM codec and encoder DMO).&lt;/p&gt;
&lt;p&gt;For ex: To be in compliance with Camcorder, we need to develop an AMR encoder DMO. Also to be in compliance with MS VoIP app, we need to develop AMR ACM codec. Do you have any strong justification for such kind of asymmetry?&lt;/p&gt;
&lt;p&gt;There are no standardized interfaces for advanced codec features such as Packet Loss Concealment, Rate Adaptation, Enabling/Disabling VAD etc in any of the Dshow codec plug-in models (ACM, DMO, Native DShow filter). There are no standardized format tags and format blocks for 3GPP codecs such as H.263, H.264, AMR etc. There may be some defacto standards for the same. Otherwise also it is possible to define some of them on our own. But it compromises the interoperability and their usability. I have discussed somethings here: &lt;a rel="nofollow" target="_new" href="http://blogs.msdn.com/cenet/archive/2006/11/08/what-s-new-in-real-time-communication-rtc-1-5.aspx#comments"&gt;http://blogs.msdn.com/cenet/archive/2006/11/08/what-s-new-in-real-time-communication-rtc-1-5.aspx#comments&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In general, DirectShow platform documentation can be improved as follows:&lt;/p&gt;
&lt;p&gt;- You can remove the documentation that is applicable to desktop only.&lt;/p&gt;
&lt;p&gt;- You can document the dynamic behaviour of out-of-the box modules such as rendererers, capture sources, parsers etc. &amp;nbsp;This will help to pre-verify the designs of the codecs.&lt;/p&gt;
&lt;p&gt;- You can standardize the missing interfaces. This helps the interoperability of the pipeline modules designed by different companies.&lt;/p&gt;
&lt;p&gt;For specific points about DirectShow/other documentation, i tried using &amp;quot;Documentation Feedback&amp;quot; in the help. There is no acknowledgement for the feedback.&lt;/p&gt;
&lt;p&gt;The rationale regarding incompleteness of wave api is posted as a comment in medmedia blog @: &lt;a rel="nofollow" target="_new" href="http://blogs.msdn.com/medmedia/archive/2007/01/16/the-wavedev2-forcespeaker-api.aspx#comments"&gt;http://blogs.msdn.com/medmedia/archive/2007/01/16/the-wavedev2-forcespeaker-api.aspx#comments&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;
</description></item><item><title>Webcast: Rapidly Building Consumer Devices on Windows Embedded CE.</title><link>http://blogs.msdn.com/mikehall/archive/2007/02/28/webinar-q-a-building-consumer-electronics-devices-using-windows-embedded.aspx#1811041</link><pubDate>Mon, 05 Mar 2007 20:12:42 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1811041</guid><dc:creator>Mikehall's Embedded WEblog</dc:creator><description>&lt;p&gt;The recent Webcast which discussed Rapidly Building Consumer Devices on Windows Embedded CE (which has&lt;/p&gt;
</description></item><item><title>re: Webinar Q&amp;A: Building Consumer Electronics Devices using Windows Embedded.</title><link>http://blogs.msdn.com/mikehall/archive/2007/02/28/webinar-q-a-building-consumer-electronics-devices-using-windows-embedded.aspx#1811060</link><pubDate>Mon, 05 Mar 2007 20:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1811060</guid><dc:creator>luciad</dc:creator><description>&lt;p&gt;Hi Thirupathy,&lt;/p&gt;
&lt;p&gt;The IOverlay &amp;amp; IOverlayNotify should be supported in WindowsCE. We were not aware of any issues with the interfaces not being called for video window position changes, please let us know in more detail what the problems were so that we can try to fix them.&lt;/p&gt;
&lt;p&gt;The problems you describe regarding memory constraints with DMOs is a known one, and that's why we are trying to recommend from now on to use filters instead of DMOs. With filters, there's the possibility of creating your own allocator, and the filter can decide where memory should be. There are other advantages of filters over DMOs as well:&lt;/p&gt;
&lt;p&gt;- DMOs don't have &amp;quot;pause&amp;quot; (or filter state) knowledge. DMOs just stop/start receiving data.&lt;/p&gt;
&lt;p&gt;- DMOs don't have current rate knowledge.&lt;/p&gt;
&lt;p&gt;- DMOs don't have control over the number of buffers, and also can't provide an allocator.&lt;/p&gt;
&lt;p&gt;It's true that DMOs are simpler to implement, but I don't think the constraints they impose are worth in some of the cases.&lt;/p&gt;
&lt;p&gt;Lucia&lt;/p&gt;
</description></item><item><title>re: Webinar Q&amp;A: Building Consumer Electronics Devices using Windows Embedded.</title><link>http://blogs.msdn.com/mikehall/archive/2007/02/28/webinar-q-a-building-consumer-electronics-devices-using-windows-embedded.aspx#1817952</link><pubDate>Tue, 06 Mar 2007 19:16:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1817952</guid><dc:creator>Thirupathi Reddy</dc:creator><description>&lt;p&gt;Hi Lucia,&lt;/p&gt;
&lt;p&gt;Thanks for following up the comments. Please see my comments below:&lt;/p&gt;
&lt;p&gt;Regarding IOverlay and IOverlayNotify,&lt;/p&gt;
&lt;p&gt;Video decoder had success in querying the INotify and advising its IOverlayNotify interface on the video renderer. However the video renderer does not notify about clipping changes i.e the function OnClipChange doesnot get called when we click on menu of media player(ceplayer) or if any window overlaps with the media player video window/etc. Note that decoder requested the video renderer for advising about position (ADVISE_POSITION ) and clipping (ADVISE_CLIPPING) changes.&lt;/p&gt;
&lt;p&gt;Regarding DMOs,&lt;/p&gt;
&lt;p&gt;We had done analysis on the advantages and disadvantages of of all three possible codec plug-in models viz. DMO, ACM and native DShow filters long back. Realised that native Dshow codec filters are sophisticated and superior compared to other plug-in(DMO, ACM) models. So we implemented all codecs as DShow filters. But we had lot of setbacks when we started integrating our DShow filters with Microsoft OOB applications as listed below:&lt;/p&gt;
&lt;p&gt;- Microsoft Camcorder application hard codes to use only DMO based encoder =&amp;gt; Already developed DShow filters become obsolete, although they work seamlessly with custom/3rd party camcorder apps.&lt;/p&gt;
&lt;p&gt;- WMP 10.x Mobile can play an mp3 file only if you plug-in mp3 decoder as a DMO. &lt;/p&gt;
&lt;p&gt;- VoIP application Framework/RTC 1.x, uses ACM based audio codecs only =&amp;gt; we have to redevelop some of the audio codec plug-ins, although they are available as DMOs/DShow filters.&lt;/p&gt;
&lt;p&gt;As platform developers, we clearly do not know when is going to take place what (?) change in Windows Embedded multimedia applications and frameworks. &lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;
</description></item><item><title>re: Webinar Q&amp;A: Building Consumer Electronics Devices using Windows Embedded.</title><link>http://blogs.msdn.com/mikehall/archive/2007/02/28/webinar-q-a-building-consumer-electronics-devices-using-windows-embedded.aspx#1935393</link><pubDate>Fri, 23 Mar 2007 08:59:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1935393</guid><dc:creator>keyur47831</dc:creator><description>&lt;p&gt;I cannot find any information on streaming mp3 data on Windows mobile&lt;/p&gt;
</description></item></channel></rss>