Always think in terms of the current screen orientation

Today I am going to write a short development note on a GPE-based display driver for Windows CE as we noticed that this stuff is not clearly documented online and have confused many people including those who are writing display drivers for new platforms at MS. Hopefully this entry might save a few strands of…

2

Keeping your module section count below 16 on Windows CE

Here’s a quick blog about an issue that we just hit today; most will merely find it interesting, but I hope it saves someone somewhere a little time, effort, and confusion. We recently got a new codec library drop which we integrated into our mainline code tree. The codec team spends alot of time developing…

2

DLL Forwarders in Windows CE

I haven’t seen this information consolidated online, so here it is:   A DLL Forwarder is used if you want to export an entry point from one DLL (or, more likely, for historical purposes you’ve already exported it from one dll), but you want to actually implement it in a different DLL.   For example, suppose you want to…

0

More about A/V synchronization in DShow

In our previous entry, we talked about how video is synchronized to audio. In this short entry, we will talk about time stamps, master clocks, how adjustments to the master clock are made and how to deal with live streams. About Reference Clocks and Stream Time All fiters in a filter graph are synchronized to the same clock,…

1

Wavedev2 Porting Guide

Foreword  I’ve been working on a wavedev2 porting guide over the last few weeks and decided that it’s better to post what I’ve go so far rather than wait until it’s what I would consider finished. Expect future updates/additions as time allows, and feel free to ask for specific information in the comments.  Overview   This whitepaper gives an…

7

The Video Renderer Connection Process

The video renderer is the last filter in the video pipe, and it is responsible for displaying the output of upstream filters. The video renderer is just a controller for the underlying display driver, and does not do any processing on the image samples themselves. The video renderer operates in two distinct modes: GDI DirectDraw When the graph is…

6

Basics of A/V synchronization in DirectShow

All filters in a DirectShow graph should be synchronized to the same clock, the reference clock. The filter graph manager makes sure that it finds one component that will be the reference clock, in the following simplified order: user-specified clock, renderer (usually audio renderer), or system clock if none available before. The stream time is…

1

The Wavedev2 ForceSpeaker API

This is just a quick note describing the behavior of the MM_WOM_FORCESPEAKER API built into the wavedev2 wave driver.   One issue in Smartphone devices is determining where to route ringtones and other high-priority notifications. This is driven by two scenarios:   1. A fairly common design feature of Smartphone devices is a separate “high-volume” speaker on the…

13

Multichannel Audio in Windows CE

Most of the infrastructure is in place to support multichannel audio in Windows CE, although the number of components that we ship to actually implement it is limited. In this blog I’ll cover the varying types of multichannel audio and what features are in place in Windows CE to support it. For the purposes of…

10

Windows CE Audio: What does the term "mixer" mean?

In the Windows CE audio stack, the term “mixer” is used to refer to a couple of different, unrelated components. This blog will try to define each of them and how they differ. There are usually three different contexts in which “mixer” is used: the “Software Mixer”, the “WaveDev2 Mixer”, and the “Mixer API”. The…

4