{"id":1078,"date":"2009-10-06T21:26:23","date_gmt":"2009-10-06T19:26:23","guid":{"rendered":"https:\/\/alax.info\/blog\/?p=1078"},"modified":"2009-10-06T21:26:23","modified_gmt":"2009-10-06T19:26:23","slug":"directshow-filter-graph-spy-log-filters-and-connection-media-types","status":"publish","type":"post","link":"https:\/\/alax.info\/blog\/1078","title":{"rendered":"DirectShow Filter Graph Spy: Log Filters and Connection Media Types"},"content":{"rendered":"<p>Having hard time to connect to remote filter graph on Windows 7 machine, I suspected that some of the filters do not like being connected through marshaling and freeze. Or, actually more likely, it is SDK&#8217;s proppage.dll which hosts proxy stub pairs behaves itself in a not quite expected way and freezes remote application (Graph Edit or similar) during attempt to connect to remote graph.<\/p>\n<p>As the goal was to find out details about connection media types between the filters being spied over, the spy received a new feature of logging graph details each time the graph is going to running state:<\/p>\n<blockquote>\n<pre>Filter 7: Name \"[1BDADev]\", Class {17CCA71B-ECD7-11D0-B908-00A0C9223196}, State 2\r\n Pin 1: Name \"MPEG2 Transport\", Direction \"Input\", Peer \"[0BDATnr].MPEG2 Transport\"\r\n Connection media type:\r\n majortype {E436EB83-524F-11CE-9F53-0020AF0BA770}, subtype {E06D8023-DB46-11CF-B4D1-00805F6CBBEA}, pUnk 0x00000000\r\n bFixedSizeSamples 0, bTemporalCompression 0, lSampleSize 1\r\n formattype {8DEDA6FD-AC5F-4334-8ECF-A4BA8FA7D0F0}, cbFormat 24, pbFormat 0x00350868\r\n [0x0000] BC 00 00 00 38 9A 00 00 00 00 00 00 00 00 00 00\r\n [0x0010] 00 00 00 00 00 00 00 00\r\n Pin 2: Name \"MPEG2 Transport\", Direction \"Output\", Peer \"Infinite Pin Tee Filter[BDATsIft].Input\"\r\n Connection media type:\r\n majortype {E436EB83-524F-11CE-9F53-0020AF0BA770}, subtype {F4AEB342-0329-4FDD-A8FD-4AFF4926C978}, pUnk 0x00000000\r\n bFixedSizeSamples 1, bTemporalCompression 0, lSampleSize 39480\r\n formattype {0F6417D6-C318-11D0-A43F-00A0C9223196}, cbFormat 0, pbFormat 0x00000000\r\nFilter 8: Name \"[0BDATnr]\", Class {17CCA71B-ECD7-11D0-B908-00A0C9223196}, State 2\r\n Pin 1: Name \"Input0\", Direction \"Input\", Peer \"Microsoft Network Provider[NwPvd].Antenna Out\"\r\n Connection media type:\r\n majortype {71985F41-1CA1-11D3-9CC8-00C04F7971E0}, subtype {E436EB8E-524F-11CE-9F53-0020AF0BA770}, pUnk 0x00000000\r\n bFixedSizeSamples 0, bTemporalCompression 0, lSampleSize 1\r\n formattype {0F6417D6-C318-11D0-A43F-00A0C9223196}, cbFormat 0, pbFormat 0x00000000\r\n Pin 2: Name \"MPEG2 Transport\", Direction \"Output\", Peer \"[1BDADev].MPEG2 Transport\"\r\n Connection media type:\r\n majortype {E436EB83-524F-11CE-9F53-0020AF0BA770}, subtype {E06D8023-DB46-11CF-B4D1-00805F6CBBEA}, pUnk 0x00000000\r\n bFixedSizeSamples 0, bTemporalCompression 0, lSampleSize 1\r\n formattype {8DEDA6FD-AC5F-4334-8ECF-A4BA8FA7D0F0}, cbFormat 24, pbFormat 0x00350868\r\n [0x0000] BC 00 00 00 38 9A 00 00 00 00 00 00 00 00 00 00\r\n [0x0010] 00 00 00 00 00 00 00 00<\/pre>\n<\/blockquote>\n<p>Partial Visual C++ .NET 2008 source code is <a href=\"http:\/\/code.assembla.com\/roatl-utilities\/subversion\/nodes\/trunk\/FilterGraphSpy\">available from SVN<\/a>, release binary <a href=\"http:\/\/code.assembla.com\/roatl-utilities\/subversion\/nodes\/trunk\/FilterGraphSpy\/Release%20Trace\/FilterGraphSpy.dll?format=raw\">included<\/a>; installation instructions are in <a href=\"https:\/\/alax.info\/blog\/777\">another post<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Having hard time to connect to remote filter graph on Windows 7 machine, I suspected that some of the filters do not like being connected through marshaling and freeze. Or, actually more likely, it is SDK&#8217;s proppage.dll which hosts proxy stub pairs behaves itself in a not quite expected way and freezes remote application (Graph&hellip; <\/p>\n<p><a class=\"moretag\" href=\"https:\/\/alax.info\/blog\/1078\">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],"tags":[78,119,163,271,164],"class_list":["post-1078","post","type-post","status-publish","format-standard","hentry","category-technology","tag-directshow","tag-filter","tag-graph","tag-media","tag-spy"],"_links":{"self":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts\/1078","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=1078"}],"version-history":[{"count":0,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts\/1078\/revisions"}],"wp:attachment":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/media?parent=1078"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/categories?post=1078"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/tags?post=1078"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}