{"id":1233,"date":"2011-07-08T17:26:06","date_gmt":"2011-07-08T15:26:06","guid":{"rendered":"https:\/\/alax.info\/blog\/?p=1233"},"modified":"2011-07-25T16:32:16","modified_gmt":"2011-07-25T14:32:16","slug":"directshow-app-mess-google-video-chat-vs-skype","status":"publish","type":"post","link":"https:\/\/alax.info\/blog\/1233","title":{"rendered":"DirectShow App Mess: Google Video Chat vs. Skype"},"content":{"rendered":"<p>Two widely popular applications, which use DirectShow API appeared to be locked in a combat: Google video chat is installing a plugin which registers artificial video capture sources &#8220;Google Camera Adapter 0&#8221; and &#8220;Google Camera Adapter 1&#8221;.<\/p>\n<p>As the application does not announce any integration capabilities and is only using video for internal purposes for in-browser video, the approach with system-wide device registration is, well, questionable.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1234\" title=\"Google Chat DirectShow Video Sources\" src=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/07\/Image004.png\" alt=\"\" width=\"593\" height=\"399\" srcset=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/07\/Image004.png 593w, https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/07\/Image004-320x215.png 320w\" sizes=\"auto, (max-width: 593px) 100vw, 593px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1236\" title=\"Video Capture Devices on AMCAP\" src=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/07\/Image001.png\" alt=\"\" width=\"655\" height=\"557\" srcset=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/07\/Image001.png 655w, https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/07\/Image001-320x272.png 320w\" sizes=\"auto, (max-width: 655px) 100vw, 655px\" \/><\/p>\n<p>No need to mention, that devices are not operational: they are giving ERROR_DLL_INIT_FAILED (Error 0x8007045A) as soon as you try to instantiate a filter in a DirectShow video capture enabled application.<\/p>\n<p>In-browser Google Video Chat itself does work and shows video from &#8220;real&#8221; DirectShow devices, including such artificial as created by <a href=\"https:\/\/alax.info\/blog\/1216\">IP Video Source<\/a> tool. Google developers prefer still to take data off the device and as soon as possible leave DirectShow domain, as their graph looks like:<\/p>\n<p style=\"padding-left: 30px;\">Video Capture Source -&gt; <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/dd377612%28VS.85%29.aspx\">Smart Tee Filter<\/a> -&gt; <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/dd377544%28VS.85%29.aspx\">Sample Grabber Filter<\/a> -&gt; <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/dd390934%28VS.85%29.aspx\">Null Renderer Filter<\/a><\/p>\n<p>While Google plugin developers might need some interprocess synchronization, as the plugin runs in a child &#8220;plugin container&#8221; process (plugin-container.exe), introduction of virtual video capture devices is not necessary, but is a plain garbage for the operating system and DirectShow environment.<\/p>\n<p>For some reason, Google developers decided to introduce a special thing: they mirror captured video left-to right when it comes to showing picture capture locally. Well, quite possibly it starts a new era in video conferencing: one will not see a direct copy of video sent remotely, but instead he will be given a mirrored thing.<\/p>\n<p><a href=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/07\/Image005.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-1235\" title=\"Mirrored Video on Google Video Chat\" src=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/07\/Image005-800x253.png\" alt=\"\" width=\"620\" height=\"196\" srcset=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/07\/Image005-800x253.png 800w, https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/07\/Image005-320x101.png 320w, https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/07\/Image005.png 1065w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p>The curious part is, however, the effect the broken devices introduce to another popular software &#8211; Skype.<\/p>\n<p><!--more-->As Skype is capable of video capturing from a DirectShow device, for video-enabled conferencing, it enumerates the available devices and definitely gets in touch with the aliens from Google planet, which are already known to be broken junk.<\/p>\n<p>The outcome appears to be subject to chances, there are two possible outcomes and only one is such that is more or less good for a user:<\/p>\n<ul>\n<li>either, Skype shows other available devices and ignores Google adapters (while basically any reasonable DirectShow video capture device would still list those devices &#8211; after all they are registered as existing!)<\/li>\n<li>or, Skype stumbles upon a broken thing, stops enumeration and show no video capture devices available at all! Since Skype does enumeration only once on startup, if it fails to discover devices a user needs to close Skype completely and start it again for another try with video hardware.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/07\/Image002.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1237\" title=\"Skype with No Cameras\" src=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/07\/Image002-320x273.png\" alt=\"\" width=\"320\" height=\"273\" srcset=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/07\/Image002-320x273.png 320w, https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/07\/Image002-701x600.png 701w, https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/07\/Image002.png 716w\" sizes=\"auto, (max-width: 320px) 100vw, 320px\" \/><\/a> <a href=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/07\/Image003.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1238\" title=\"Skype with non-Google Cameras\" src=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/07\/Image003-320x273.png\" alt=\"\" width=\"320\" height=\"273\" srcset=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/07\/Image003-320x273.png 320w, https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/07\/Image003-702x600.png 702w, https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/07\/Image003.png 714w\" sizes=\"auto, (max-width: 320px) 100vw, 320px\" \/><\/a><\/p>\n<p>It appears that both applications have severe issues.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Two widely popular applications, which use DirectShow API appeared to be locked in a combat: Google video chat is installing a plugin which registers artificial video capture sources &#8220;Google Camera Adapter 0&#8221; and &#8220;Google Camera Adapter 1&#8221;. As the application does not announce any integration capabilities and is only using video for internal purposes for&hellip; <\/p>\n<p><a class=\"moretag\" href=\"https:\/\/alax.info\/blog\/1233\">Read the full article<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,2,10],"tags":[350,43,78,40,155,486],"class_list":["post-1233","post","type-post","status-publish","format-standard","hentry","category-technology","category-utilities","category-video","tag-bugware","tag-chat","tag-directshow","tag-google","tag-skype","tag-video"],"_links":{"self":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts\/1233","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/comments?post=1233"}],"version-history":[{"count":0,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts\/1233\/revisions"}],"wp:attachment":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/media?parent=1233"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/categories?post=1233"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/tags?post=1233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}