mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 09:25:10 +00:00
[USBAUDIO]
- fix buffer calculation for usb headsets - usb headsets now partially work with usbaudio in win2k3 svn path=/trunk/; revision=73124
This commit is contained in:
parent
f3d71d8a6b
commit
20ff103b96
2 changed files with 4 additions and 4 deletions
|
@ -874,6 +874,7 @@ PinRenderProcess(
|
|||
IoSetCompletionRoutine(Irp, UsbAudioRenderComplete, Pin, TRUE, TRUE, TRUE);
|
||||
|
||||
/* calculate packet count */
|
||||
/* FIXME support various sample rates */
|
||||
WaveFormatEx = (PKSDATAFORMAT_WAVEFORMATEX)Pin->ConnectionFormat;
|
||||
TotalPacketSize = WaveFormatEx->WaveFormatEx.nAvgBytesPerSec / 1000;
|
||||
ASSERT(TotalPacketSize <= PinContext->DeviceExtension->InterfaceInfo->Pipes[0].MaximumPacketSize);
|
||||
|
@ -883,8 +884,6 @@ PinRenderProcess(
|
|||
|
||||
ASSERT(PacketCount < 255);
|
||||
|
||||
//DPRINT1("PinRenderProcess Irp %p TotalPacketSize %lu MaximumPacketSize %lu PacketCount %lu Count %lu Data %p\n", Irp, TotalPacketSize, PinContext->DeviceExtension->InterfaceInfo->Pipes[0].MaximumPacketSize, PacketCount, CloneStreamPointer->OffsetIn.Count, CloneStreamPointer->OffsetIn.Data);
|
||||
|
||||
Urb = (PURB)AllocFunction(GET_ISO_URB_SIZE(PacketCount));
|
||||
ASSERT(Urb);
|
||||
|
||||
|
@ -893,8 +892,8 @@ PinRenderProcess(
|
|||
Urb->UrbIsochronousTransfer.Hdr.Length = GET_ISO_URB_SIZE(PacketCount);
|
||||
Urb->UrbIsochronousTransfer.PipeHandle = PinContext->DeviceExtension->InterfaceInfo->Pipes[0].PipeHandle;
|
||||
Urb->UrbIsochronousTransfer.TransferFlags = USBD_TRANSFER_DIRECTION_OUT | USBD_START_ISO_TRANSFER_ASAP;
|
||||
Urb->UrbIsochronousTransfer.TransferBufferLength = CloneStreamPointer->OffsetIn.Remaining;
|
||||
Urb->UrbIsochronousTransfer.TransferBuffer = CloneStreamPointer->OffsetIn.Data;
|
||||
Urb->UrbIsochronousTransfer.TransferBufferLength = PacketCount * TotalPacketSize;
|
||||
Urb->UrbIsochronousTransfer.TransferBuffer = CloneStreamPointer->StreamHeader->Data;
|
||||
Urb->UrbIsochronousTransfer.NumberOfPackets = PacketCount;
|
||||
Urb->UrbIsochronousTransfer.StartFrame = 0;
|
||||
|
||||
|
|
|
@ -205,6 +205,7 @@ typedef struct
|
|||
PKSWORKER CaptureWorker; /* capture worker */
|
||||
WORK_QUEUE_ITEM StarvationWorkItem; /* work item */
|
||||
PKSWORKER StarvationWorker; /* capture worker */
|
||||
ULONG BufferOffset;
|
||||
}PIN_CONTEXT, *PPIN_CONTEXT;
|
||||
|
||||
/* filter.c */
|
||||
|
|
Loading…
Reference in a new issue