The volume state may be briefly displayed on the screen every time a sound is played through the speakers of a DisplayPort or HDMI-connected external monitor


Symptoms


Consider the following scenario:

  • You have a Windows 7 or Vista PC that is connected to an external display using a DisplayPort or HDMI cable. 
  • The external display has built-in speakers.
  • The display's speakers are set as the default audio playback device in Windows.
  • You are running an on-screen display (OSD) application that displays the volume level or screen brightness state whenever there is a change in levels.

In this scenario you may notice that whenever audio is played through the external display's speakers, the OSD application will appear for a couple of seconds and display the volume level.  The expected behavior is that the application should only display the volume state when the volume is changed or muted.

Cause


Windows is notifying the application every time a new audio stream is created for some types of digital audio streams, regardless if the audio volume has changed or not.

More Information


In Windows 7 Service Pack 1 and earlier, IAudioEndpointVOlumeCallback::OnNotify is called every time the software volume control is inserted into the audio path.  Application developers can mitigate this issue by checking if the endpoint has a software volume control and if they find one, track the volume so they can ignore volume notifications where the volume has not changed.