I've implemented the changes suggested by gwright and ehyche. Committed to Neptune 116, 123, Cayenne 150, and HEAD. (did I miss any?)
Reviewed by: gwright and ehyche -- Kevin > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Kevin Ross > Sent: Monday, May 02, 2005 10:47 PM > To: [EMAIL PROTECTED]; > [EMAIL PROTECTED] > Subject: [Client-dev] CR-Client: Implement opaque stream > support (for SecureAudio Path) > > Synopsis: > Implement opaque streams, which will be used initially by > Secure Audio Path. > > Overview: > Secure Audio Path (SAP) is used by certain DRM content, in > which the audio data is fed to our application in an > encrypted state, and is decrypted by the audio driver. > Therefore, our app must not do anything to modify the data > during its journey through the core. > > This is implemented by adding the concept of an opaque audio > stream. New header values were added to the audio stream to > signify this is an opaque stream. Audio services will see > this header, and go into an "opaque mode". > This causes audio services to allow only one stream, and no > modifications may be done to it (no up/down mix, no pre- or > post-mix hooks, etc). Also, the audio device will be opened > in an opaque mode, passing to it any special data needed for > this type of opaque stream. For SAP, this is a custom > WAVEFORMATEX header with which the audio device must be opened. > > Files Modified: > client/audiosvc/hxaudses.cpp/.h: Add flag for opaque mode, > opens audio device in opaque mode if needed, disables > post-mix hooks in opaque mode > client/audiosvc/hxaudstr_new.cpp/.h: Read audio stream > headers for opaque mode, sets audio session to opaque mode if needed > client/audiosvc/mixengine.cpp/.h: Disables modifications to > audio data if in opaque mode common/include/hxausvc.h and > hxiids.h: Add new interface IHXOpaqueAudioDevice > audio/device/hxaudev.cpp/.h: Implement IHXOpaqueAudioDevice interface. > Calls derived _Imp_OpaqueOpen in platform-specific audio device > audio/device/platform/win/hxaudevds.cpp/.h: Implemented > opaque mode, uses passed-in WAVEFORMATEX struct instead of > building one when in opaque mode, also disables real-time hooks. > > Image Size and Heap Use impact: > Didn't measure, shouldn't add more than 1K total for image > size and heap use. > > Platforms and Profiles Affected: > All > > Distribution Libraries affected: > none > > Distribution library impact and planned action: > none > > ----------------------------------------------------------- > > Platforms and Profiles Build Verified: > win32-i386-vc7, helix-client-all-defines > > Platforms and Profiles Functionality verified: > win32-i386-vc7, helix-client-all-defines > > Branch: > neptune 116, 123, 150, and HEAD (I think that's all) > > QA Instructions: > A seperate test plan has been written > _______________________________________________ Audio-dev mailing list [email protected] http://lists.helixcommunity.org/mailman/listinfo/audio-dev
