{"id":719,"date":"2008-11-24T18:16:29","date_gmt":"2008-11-24T16:16:29","guid":{"rendered":"https:\/\/alax.info\/blog\/?p=719"},"modified":"2008-11-24T18:16:29","modified_gmt":"2008-11-24T16:16:29","slug":"ffdshow-strikes-back","status":"publish","type":"post","link":"https:\/\/alax.info\/blog\/719","title":{"rendered":"FFDShow strikes back"},"content":{"rendered":"<p><a href=\"http:\/\/sourceforge.net\/projects\/ffdshow\">FFDShow<\/a> is already known for it issues (including for example <a href=\"https:\/\/alax.info\/blog\/398\">mentioned one<\/a>). Today&#8217;s featured one is related to its Video Decoder. A great deal of FFDShow related issues amy be worked around with a single shot by listing the image name as an FFDShow exclusion under registry:<\/p>\n<pre>HKEY_CURRENT_USER\\Software\\GNU\\ffdshow; blacklist<\/pre>\n<p>but I felt relaxed and the problem re-occurred from Windows service where HKEY_CURRENT_USER was not available\/applicable.<\/p>\n<p>FFDShow Video Decoder registration looks like:<\/p>\n<p><a href=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2008\/11\/24-image001.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-720\" title=\"FFDSHOW Video Decoder Registation\" src=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2008\/11\/24-image001.png\" alt=\"\" width=\"450\" height=\"530\" srcset=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2008\/11\/24-image001.png 450w, https:\/\/alax.info\/blog\/wp-content\/uploads\/2008\/11\/24-image001-254x300.png 254w\" sizes=\"auto, (max-width: 450px) 100vw, 450px\" \/><\/a><\/p>\n<p>It is immediately clear that the filter registered with extremely (and definitely unreasonably, <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ms783757(VS.85).aspx\">breaking guidelines<\/a>) high merit in conjunction with generic video media type will be taken as a possible decoder in every single graph rendered. At the very least, this is a perofrmance issue, similar to frequently reported like this recent one: <a href=\"http:\/\/groups.google.com\/group\/microsoft.public.win32.programmer.directx.video\/browse_thread\/thread\/a14756925dff15e5#\"><span id=\"thread_subject_site\">How to reduce time during pin connection on vista ultimate using RenderStream function&#8230;?<\/span><\/a>.<\/p>\n<p>However the real problem was that the filter was accepting connection on my source pin and pretending it could be a valid decoder instead my own one (definitely registered with a proper merit of 0\u00d700800000 (MERIT_PREFERRED). Did it actually decode? No, just sent blackness on the output&#8230; It seems that it is getting a good manner to distance from this crapware by implementing <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ms783952%28VS.85%29.aspx\">IAMGraphBuilderCallback<\/a> interface on the graph builder site and reject consideration of FFDShow A\/V Decoders as candidates.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>FFDShow is already known for it issues (including for example mentioned one). Today&#8217;s featured one is related to its Video Decoder. A great deal of FFDShow related issues amy be worked around with a single shot by listing the image name as an FFDShow exclusion under registry: HKEY_CURRENT_USER\\Software\\GNU\\ffdshow; blacklist but I felt relaxed and the&hellip; <\/p>\n<p><a class=\"moretag\" href=\"https:\/\/alax.info\/blog\/719\">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":[21,10],"tags":[98,78,79],"class_list":["post-719","post","type-post","status-publish","format-standard","hentry","category-seriously","category-video","tag-confuse","tag-directshow","tag-ffdshow"],"_links":{"self":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts\/719","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=719"}],"version-history":[{"count":0,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts\/719\/revisions"}],"wp:attachment":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/media?parent=719"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/categories?post=719"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/tags?post=719"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}