Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
DirectShow
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Reception== ===Awards=== On January 8, 2007. Microsoft received the Emmy award for Streaming Media Architectures and Components at the 58th Annual [[Technology & Engineering Emmy Award]]s.<ref>{{cite web|url=http://www.emmyonline.tv/releases/pdf/58th_Tech_Eng_winners.pdf |title=NATIONAL TELEVISION ACADEMY ANNOUNCES EMMY WINNING ACHIEVEMENTS: HONORS BESTOWED AT 58th ANNUAL TECHNOLOGY & ENGINEERING EMMY AWARDS |work=Emmy Award |publisher=National Television Academy |date=January 2007 |access-date=2007-01-08 |url-status=dead |archive-url=https://web.archive.org/web/20100922181223/http://emmyonline.tv/releases/pdf/58th_Tech_Eng_winners.pdf |archive-date=2010-09-22 }}</ref> ===Simplicity=== Commanding DirectShow to play a file is a relatively simple task. However, while programming more advanced customizations, such as commanding DirectShow to display certain windows messages from the video window or creating custom filters, multiple developers complain of difficulties.<ref>{{cite web |url=http://www.mperfect.net/mceDirectShow/ |title=Using DirectShow with Media Center Edition |work=/mceDirectShow |access-date=2010-08-18 |url-status=dead |archive-url=https://web.archive.org/web/20101121141842/http://www.mperfect.net/mceDirectShow/ |archive-date=2010-11-21 }}</ref><ref>{{cite web|url=http://www.gamedev.net/reference/articles/article1345.asp|title=The Basics to using DirectShow|author=Roushu, Kurifu|work=Gamedev.net|date=2001-03-13|access-date=2010-08-18|url-status=dead|archive-url=https://web.archive.org/web/20120208101104/http://www.gamedev.net/page/resources/_/technical/directx-and-xna/the-basics-to-using-directshow-r1345|archive-date=2012-02-08}}</ref> It is regarded as one of Microsoft's most complex development libraries/APIs.<ref>{{cite web|first=Mark |last=Richards |url=http://www.mquter.qut.edu.au/mobile/ARTFilterDX/files/ARTFilterDX09-10.doc |title=Overview: What is the Augmented Reality Toolkit? |date=2008-08-26 |access-date=2009-01-25 |url-status=dead |archive-url=https://web.archive.org/web/20080719030713/http://www.mquter.qut.edu.au/mobile/ARTFilterDX/files/ARTFilterDX09-10.doc |archive-date=2008-07-19 }}</ref>{{Citation needed|date=August 2010}} Developers rarely create DirectShow filters from scratch. Rather, they employ DirectShow Base Classes.{{Citation needed|date=August 2010}} The Base Classes can often simplify development, allowing the programmer to bypass certain tasks. However, the process may remain relatively complex;{{Citation needed|date=August 2010}} the code found in the Base Classes is nearly half the size of the entire [[Microsoft Foundation Class Library|MFC library]].{{Citation needed|date=August 2010}} As a result, even with the Base Classes, the number of COM objects that DirectShow contains often overwhelms developers.{{Citation needed|date=August 2010}}{{Weasel inline|date=August 2010}} In some cases, DirectShow's API deviates from traditional COM rules, particularly with regard to the parameters used for [[Method (computer science)|methods]].{{Citation needed|date=August 2010}}{{Weasel inline|date=August 2010}} To overcome their difficulties with DirectShow's unique COM rules, developers often turn to a higher level API that uses DirectShow, notably, ''Windows Media Player SDK'', an API provides the developer with an ActiveX Control that has fewer COM interfaces to deal with.{{Citation needed|date=August 2010}}{{Weasel inline|date=August 2010}} Although DirectShow is capable of dynamically building a graph to render a given media type, in certain instances it is difficult for developers to rely on this functionality and they need to resort to manually building filter graphs if the resulting filter graph is variable.{{Citation needed|date=April 2008}} It is possible for filter graphs to change over time as new filters are installed on the computer.{{Citation needed|date=August 2010}} ===Codec hell=== Codec hell (a term derived from [[DLL hell]]) is when multiple DirectShow filters conflict for performing the same task. A large number of companies now develop codecs in the form of DirectShow filters, resulting in the presence of several filters that can decode the same media type.<ref>{{cite web|url=http://www.homevideo101.com/codec-hell/|title=Codec Hell|work=HomeVideo101 Blog|date=2007-06-22|access-date=2010-08-18|url-status=dead|archive-url=https://web.archive.org/web/20120211125026/http://www.homevideo101.com/codec-hell/|archive-date=2012-02-11}}</ref><ref name="Arms Race">{{cite web |url=http://msmvps.com/blogs/chrisl/archive/2005/01/27/34039.aspx#34071 |title=New Age DLL Hell? Hell Yes |author=Lanier, Chris |work=Chris Lanier's Blog |publisher=MSMVPS.COM |date=2005-01-27 |access-date=2007-02-27 |url-status=dead |archive-url=https://web.archive.org/web/20070212213535/http://msmvps.com/blogs/chrisl/archive/2005/01/27/34039.aspx#34071 |archive-date=2007-02-12 }}</ref> This issue is further exacerbated by DirectShow's merit system, where filter implementations end up competing with one another by registering themselves with increasingly elevated priority.<ref name="Arms Race"/> Microsoft's Ted Youmans explained that "DirectShow was based on the merit system, with the idea being that, using a combination of the filter’s merit and how specific the media type/sub type is, one could reasonably pick the right codec every time. It wasn't really designed for a competing merit nuclear arms race."<ref name="Arms Race"/> A tool to help in the troubleshooting of "codec hell" issues usually referenced is the GSpot Codec Information Appliance, which can be useful in determining what codec is used to render video files in [[Audio Video Interleave|AVI]] and other containers.<ref>{{cite web|url=http://www.headbands.com/gspot/|title=The GSpot Codec Information Appliance|access-date=2010-08-18}}</ref> [[GraphEdit]] can also help understanding the sequence of filters that DirectShow is using to render the media file. Codec hell can be resolved by manually building filter graphs, using a media player that supports ignoring or overriding filter merits, or by using a filter manager that changes filter merits in the [[Windows Registry]].<ref name="GraphEdit"/>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)