[wdmaudiodev] Re: KSPROPERTY_CONNECTION_ALLOCATORFRAMING

  • From: Waldemar Haszlakiewicz <waldemar.haszlakiewicz@xxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Wed, 21 May 2003 13:46:29 +0200

Hi

I have a question here also.
As you sad you can change the framing before KsCreatePin, but this
doesn't really help as after opening of the pin, formats are changed
(e.g. 16bit sample to 24bit packed ).

So what now?
Lets assume the driver framing size is set according to number of
samples driver wishes to process then the framing
should be changed at format change also.
But how can we do this?

Lets assume we allocate KSALLOCATOR_FRAMING_EX for every pin, now if
Pin_SetDataFormat would return STATUS_SUCCESS, can we just change
the KSPIN->Descriptor->AllocatorFraming?
The problem is that both the upper structures are declared as
const-> which we could assume that Microsoft programmers assumed that
those structures wont change in the process.

But now if you look when would one allocate buffers you can be sure
that you would allocate them at the end of the connection format
process.

Could this 'patching' work?

Waldemar



WO> BlazeAudio Developer wrote:
>> Do Frames refer to "sample frames" or sort of a "block" of samples?

WO> Frames is basically the number of IOCTL_KS_READ_STREAM requests that are
WO> kept pending for the port driver.

>> Is the FrameSize in bytes?

WO> Yes.

>> If yes, then the FrameSize will change based on the format used by the
>> client! How do I report that?

WO> It took me a long time tracing IOCTLs and printing out their contents
WO> before I finally twigged to the following kludge: the data format for a
WO> given connection is buried inside the FileObject->FileName string when
WO> the IRP_MJ_CREATE occurs. After the name string (KSNAME_Pin), there is a
WO> KSPIN_CONNECT structure, followed by a KSDATAFORMAT structure. If you
WO> were sufficiently clairvoyant, you could perhaps deduce this from the
WO> doc for KsCreatePin.

WO> What I observed, then, was that someone was picking a data format based
WO> on the data intersection reported by the port driver and then calling
WO> KsCreatePin. The port driver then decides what allocator framing it
WO> wants based on the chosen data format and reports *that* when asked for
WO> the ALLOCATORFRAMING property.

WO> --
WO> Walter Oney, Consulting and Training
WO> Basic and Advanced Driver Programming Seminars
WO> Check out our schedule at http://www.oneysoft.com
WO> ******************

WO> WDMAUDIODEV addresses:
WO> Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
WO> Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
WO> Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
WO> Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

WO> URL to WDMAUDIODEV page:
WO> http://www.wdmaudiodev.de/

******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
http://www.wdmaudiodev.de/

Other related posts: