Category: ATL

Active Template Library related

Thread synchronization and context switches

A basic task in thread synchronization is putting something on one thread and getting it out on another thread for further processing. Two or more threads of execution are accessing certain data, and in order to keep data consistent and solid the access is split into atomic operations which are only allowed for one thread…

Read the full article

Recursive SRW Locks

Windows Vista added new synchronization API, Slim Reader/Writer (SRW) Locks, which is a powerful alternative to critical sections. The detailed description is, as always on MSDN, and what makes it really cool is simple: unlike critical sections, SRW Locks provide reader and writer access synchronization making it possible for 2 and more reader to not…

Read the full article

Attributed ATL: Accessing BLOB with ISequentialStream

Before attributed ATL was deprecated, it was a convenient way to access databases using attributed classes on top of OLEDB Consumer Templates. Does not it look nice? [ db_command(“SELECT ServerData FROM Server WHERE Server = ?”) ] class CGetServerData { public: [ db_param(1) ] LONG m_nServer; [ db_column(1, length = “m_nDataLength”) ] ISequentialStream* m_pDataStream; DBLENGTH…

Read the full article

DirectShow Filter Graph Spy: 64-bit version and hook API

Today’s update for DirectShow Filter Graph Spy introduces 64-bit version (mind the beta state) and a mini-API for an external module to be involved into graph building process. Filter Graph Spy is offering three new interfaces that provide extensibility of the spy: IFilterGraphAddRemoveHook IFilterGraphConnectHook IFilterGraphStateControlHook The interfaces are contained in the type library and can…

Read the full article

How to use windowless Video Mixing Renderer Filter to show video fullscreen

The question is being asked from time to time. Everyone knows what is full screen video. Video renderers implement full screen capability since long ago through their IVideoWindow::put_FullScreenMode property, and even Filter Graph Manager exposes its own IVideoWindow interface to forward calls to filter’s implementation of IVideoWindow interface. However, for Video Mixing Renderers, version 7…

Read the full article