|
6 | 6 | * PROGRAMMERS: |
7 | 7 | * Johannes Anderwald (johannes.anderwald@reactos.org) |
8 | 8 | */ |
9 | | -#define YDEBUG |
| 9 | +#define NDEBUG |
10 | 10 | #include "usbvideo.h" |
11 | 11 |
|
12 | 12 | static const JFIF_APP0 g_JfifApp0 = { |
@@ -37,20 +37,20 @@ UvcPatchAvi1ToJfif( |
37 | 37 |
|
38 | 38 | if (pFrame[0] != 0xFF || pFrame[1] != 0xD8) |
39 | 39 | { |
40 | | - DPRINT1("invalid soi\n"); |
| 40 | + DPRINT("invalid soi\n"); |
41 | 41 | return STATUS_INVALID_PARAMETER; |
42 | 42 | } |
43 | 43 |
|
44 | 44 | if (pFrame[2] != 0xFF || pFrame[3] != 0xE0) |
45 | 45 | { |
46 | | - DPRINT1("no app maker\n"); |
| 46 | + DPRINT("no app maker\n"); |
47 | 47 | return STATUS_INVALID_PARAMETER; |
48 | 48 | } |
49 | 49 |
|
50 | 50 | USHORT app0Len = (pFrame[4] << 8) | pFrame[5]; |
51 | 51 | if (frameSize < (ULONG)(2 + 2 + app0Len)) |
52 | 52 | { |
53 | | - DPRINT1("unexpected app0len\n"); |
| 53 | + DPRINT("unexpected app0len\n"); |
54 | 54 | return STATUS_INVALID_PARAMETER; |
55 | 55 | } |
56 | 56 |
|
@@ -122,6 +122,7 @@ USBVideoDeliverFrame( |
122 | 122 | { |
123 | 123 | PKSSTREAM_POINTER StreamPointer; |
124 | 124 | PKSPIN Pin; |
| 125 | + NTSTATUS Status; |
125 | 126 |
|
126 | 127 | if (!DeviceExtension || !DeviceExtension->Pin) |
127 | 128 | { |
@@ -151,12 +152,19 @@ USBVideoDeliverFrame( |
151 | 152 | if (BytesToCopy > 0) |
152 | 153 | { |
153 | 154 | DPRINT("USBVideoDeliverFrame: Copying %u bytes to user buffer (frame size %u)\n", BytesToCopy, FrameSize); |
154 | | - RtlCopyMemory(StreamPointer->StreamHeader->Data, FrameBuffer, BytesToCopy); |
155 | | - StreamPointer->StreamHeader->DataUsed = BytesToCopy; |
156 | | - |
157 | | - /* Advance the stream pointer to deliver the buffer */ |
158 | | - KsStreamPointerAdvance(StreamPointer); |
159 | | - DPRINT("USBVideoDeliverFrame: Frame delivered\n"); |
| 155 | + Status = UvcPatchAvi1ToJfif(FrameBuffer, BytesToCopy, StreamPointer->StreamHeader->Data, &BytesToCopy); |
| 156 | + //RtlCopyMemory(StreamPointer->StreamHeader->Data, FrameBuffer, BytesToCopy); |
| 157 | + //Status = STATUS_SUCCESS; |
| 158 | + if (NT_SUCCESS(Status)) |
| 159 | + { |
| 160 | + /* Advance the stream pointer to deliver the buffer */ |
| 161 | + KsStreamPointerAdvanceOffsetsAndUnlock(StreamPointer, 0, BytesToCopy, FALSE); |
| 162 | + KsStreamPointerUnlock(StreamPointer, FALSE); |
| 163 | + } |
| 164 | + else |
| 165 | + { |
| 166 | + KsStreamPointerUnlock(StreamPointer, FALSE); |
| 167 | + } |
160 | 168 | } |
161 | 169 | else |
162 | 170 | { |
|
0 commit comments