Category: Technology

How To: Implement DirectShow Filter using DirectX Media Object DMO (Part 1: Starting the Project)

This post is starting a step by step tutorial on writing a simple DirectShow filter using a simplified DirectX Media Objects (DMO) API. From the very scratch, the goal is to make a DirectShow/DMO video processing filter which implements video brightness and contrast correction. DirectX Media Objects are COM-based components. To implement a COM object…

Read the full article

FFDShow is getting more annoying

Surprisingly fast I got new problems having ffdshow installed as a part of K-Lite Codec Pack. No wonder though because let us take a look at registration information: Display Name: @device:sw:{083863F1-70DE-11D0-BD40-00A0C911CE86}\{0F40E1E5-4F79-4988-B1A9-CC98794E6B55} CLSID: {0F40E1E5-4F79-4988-B1A9-CC98794E6B55} Friendly Name: ffdshow Audio Decoder Path: C:\Program Files\K-Lite Codec Pack\ffdshow\ffdshow.ax Merit: 0x3fffffff Nice merit, ain’t it? What is merit anyway? Let us…

Read the full article

ATL’s CenterWindow

It appears that ATL does not center window correctly on multi-monitor systems. ATL code checks screen work area coordinates in CWindow::CenterWindow to ensure new position is within visible area, however since SystemParametersInfo/SPI_GETWORKAREA is used target rectangle is always on a primary monitor. This hotfix works the problem around:

Windows Image Mastering IMAPI

In continuation of Nero API… Windows IMAPI is much more convenient to use, it is built on COM, it is “more Windows” etc, however there was an issue even there. Normally IEnumXXX::Next enumerator method accepts third parameter NULL since if we are getting items one by one, we are fine processing return code S_OK/S_FALSE and…

Read the full article

Did you know that: LVN_GETINFOTIP?

Did you know that when you handle LVN_GETINFOTIP notification message and you are provided with NMLVGETINFOTIP structure, you cannot just supply your own pszText string for the tooltip text? Instead you have to copy your string into supplied buffer, such as using _tcsncpy function. Otherwise things would not work. BEGIN_MSG_MAP_EX(CFooPropertyPage) CHAIN_MSG_MAP(CPropertyPageT) … MSG_LVN_GETINFOTIP(IDC_FOOLISTVIEW, OnFooListViewGetInfoTip) REFLECT_NOTIFICATIONS()…

Read the full article

Vendor

We have a very interesting hardware vendor from Taiwan, which keeps on surprising. In past our software supported their PCI boards. They were quite popular for their price. Yes they were cheap and were based on a very popular video/audio capture chip which was probably too difficult to screw but they made their attempts. While…

Read the full article