49 "acmDriverOpen(): rc = %08x, should be %08x\n",
60 fd.cbStruct =
sizeof(
fd);
73 "acmFormatDetailsA(): rc = %08x, should be %08x\n",
81 "acmFormatDetailsA(): rc = %08x, should be %08x\n",
86 fd.fdwSupport = 0xdeadbeef;
89 "acmFormatDetailsA(): rc = %08x, should be %08x\n",
97 "acmFormatDetailsA(): rc = %08x, should be %08x\n",
104 "acmFormatDetailsA(): rc = %08x, should be %08x\n",
113 "acmFormatSuggest(): rc = %08x, should be %08x\n",
118 "acmFormatSuggest(): rc = %08x, should be %08x\n",
122 aftd_pcm.
cbStruct =
sizeof(aftd_pcm);
130 "acmFormatSuggest(): rc = %08x, should be %08x\n",
135 "acmFormatSuggest(): rc = %08x, should be %08x\n",
139 dst.wFormatTag = 0xbeef;
142 "acmFormatSuggest(): rc = %08x, should be %08x\n",
149 "acmFormatSuggest(): rc = %08x, should be %08x\n",
156 "acmFormatSuggest(): rc = %08x, should be %08x\n",
164 "acmFormatSuggest(): rc = %08x, should be %08x\n",
169 "acmFormatSuggest(): rc = %08x, should be %08x\n",
175 "acmFormatSuggest(): rc = %08x, should be %08x\n",
180 "acmFormatSuggest(): rc = %08x, should be %08x\n",
184 dst.wFormatTag = 0xbeef;
187 "acmFormatSuggest(): rc = %08x, should be %08x\n",
193 fd.dwFormatIndex =
i;
197 fd.pwfx->cbSize = 0xbeef;
200 "acmFormatDetailsA(): rc = %08x, should be %08x\n",
207 fd.pwfx->cbSize = 0xbeef;
211 "acmFormatDetailsA(): rc = %08x, should be %08x\n",
216 "got %d\n",
fd.pwfx->cbSize);
224 "acmFormatDetailsA(): rc = %08x, should be %08x\n",
258 "acmFormatSuggest(): rc = %08x, should be %08x\n",
273 "acmFormatSuggest(): rc = %08x, should be %08x\n",
282 ok(
dst->wBitsPerSample == 16,
283 "expected %d, got %d\n", 16,
dst->wBitsPerSample);
292 "acmFormatSuggest(): rc = %08x, should be %08x\n",
303 "acmFormatSuggest(): rc = %08x, should be %08x\n",
308 "acmFormatSuggest(): rc = %08x, should be %08x\n",
325 DWORD dwDriverPriority;
326 DWORD dwDriverSupport;
329 trace(
"id: %p\n", hadid);
330 trace(
" Supports:\n");
332 trace(
" async conversions\n");
334 trace(
" different format conversions\n");
336 trace(
" same format conversions\n");
338 trace(
" filtering\n");
344 "acmDriverDetailsA(): rc = %08x, should be %08x\n",
351 "acmDriverDetailsA(): rc = %08x, should be %08x\n",
358 "acmDriverDetailsA(): rc = %08x, should be %08x\n",
365 "acmDriverDetailsA(): rc = %08x, should be %08x\n",
371 "acmDriverDetailsA(): rc = %08x, should be %08x\n",
377 "acmDriverDetailsA(): rc = %08x, should be %08x\n",
383 "acmDriverDetailsA(): rc = %08x, should be %08x\n",
390 static const struct {
391 const char *shortname;
395 } *iter, expected_ids[] = {
405 "acmDriverDetailsA(): cbStruct = %08x\n", dd.
cbStruct);
407 for (iter = expected_ids; iter->shortname; ++iter) {
410 if (iter->pid_alt && iter->pid != dd.
wPid)
411 ok(iter->mid == dd.
wMid && iter->pid_alt == dd.
wPid,
412 "Got wrong manufacturer (0x%x vs 0x%x) or product (0x%x vs 0x%x)\n",
414 dd.
wPid, iter->pid_alt);
416 ok(iter->mid == dd.
wMid && iter->pid == dd.
wPid,
417 "Got wrong manufacturer (0x%x vs 0x%x) or product (0x%x vs 0x%x)\n",
439 "acmMetrics(): rc = %08x, should be %08x\n",
445 "acmMetrics(): rc = %08x, should be %08x\n",
451 "acmMetrics(): rc = %08x, should be %08x\n",
457 "acmMetrics(): rc = %08x, should be %08x\n",
463 "acmMetrics(): rc = %08x, should be %08x\n",
469 "acmMetrics(): rc = %08x, should be %08x\n",
475 "acmMetrics(): rc = %08x, should be %08x\n",
481 "acmMetrics(): rc = %08x, should be %08x\n",
487 "acmDriverOpen(): rc = %08x, should be %08x\n",
493 "acmDriverOpen(): rc = %08x, should be %08x\n",
499 "acmDriverOpen(): rc = %08x, should be %08x\n",
505 "acmDriverOpen(): rc = %08x, should be %08x\n",
515 "acmDriverID(): rc = %08x, should be %08x\n",
521 "acmDriverID(): rc = %08x, should be %08x\n",
527 "acmDriverID(): rc = %08x, should be %08x\n",
533 "acmDriverID(): rc = %08x, should be %08x\n",
539 "acmDriverID(): rc = %08x, should be %08x\n",
542 "acmDriverID() returned ID %p doesn't equal %p\n",
548 "acmMetrics(): rc = %08x, should be %08x\n",
554 "acmMetrics(): rc = %08x, should be %08x\n",
560 "acmMetrics(): rc = %08x, should be %08x\n",
566 "acmMetrics(): rc = %08x, should be %08x\n",
576 "acmFormatEnumA(): rc = %08x, should be %08x\n",
583 "acmFormatEnumA(): rc = %08x, should be %08x\n",
586 fd.cbStruct =
sizeof(
fd) - 1;
589 "acmFormatEnumA(): rc = %08x, should be %08x\n",
598 fd.cbStruct =
sizeof(
fd);
606 "acmFormatEnumA(): rc = %08x, should be %08x\n",
613 "acmFormatEnumA(): rc = %08x, should be %08x\n",
618 fd.fdwSupport = 0xdeadbeef;
621 "acmFormatEnumA(): rc = %08x, should be %08x\n",
629 "acmFormatEnumA(): rc = %08x, should be %08x\n",
636 "acmFormatEnumA(): rc = %08x, should be %08x\n",
642 "acmFormatTagEnumA(): rc = %08x, should be %08x\n",
649 "acmFormatTagEnumA(): rc = %08x, should be %08x\n",
655 "acmFormatTagEnumA(): rc = %08x, should be %08x\n",
664 "acmFormatTagEnumA(): rc = %08x, should be %08x\n",
670 "acmFormatTagEnumA(): rc = %08x, should be %08x\n",
676 "acmFormatDetailsA(): rc = %08x, should be %08x\n",
683 "acmFormatDetailsA(): rc = %08x, should be %08x\n",
686 fd.cbStruct =
sizeof(
fd) - 1;
689 "acmFormatDetailsA(): rc = %08x, should be %08x\n",
692 fd.cbStruct =
sizeof(
fd);
701 "acmFormatDetailsA(): rc = %08x, should be %08x\n",
709 "acmDriverClose(): rc = %08x, should be %08x\n",
715 "acmDriverClose(): rc = %08x, should be %08x\n",
721 "acmDriverClose(): rc = %08x, should be %08x\n",
727 "acmDriverClose(): rc = %08x, should be %08x\n",
739 return "ACM_METRIC_COUNT_CODECS";
741 return "ACM_METRIC_COUNT_CONVERTERS";
743 return "ACM_METRIC_COUNT_DISABLED";
745 return "ACM_METRIC_COUNT_DRIVERS";
747 return "ACM_METRIC_COUNT_FILTERS";
749 return "ACM_METRIC_COUNT_HARDWARE";
751 return "ACM_METRIC_COUNT_LOCAL_CODECS";
753 return "ACM_METRIC_COUNT_LOCAL_CONVERTERS";
755 return "ACM_METRIC_COUNT_LOCAL_DISABLED";
757 return "ACM_METRIC_COUNT_LOCAL_DRIVERS";
759 return "ACM_METRIC_COUNT_LOCAL_FILTERS";
761 return "ACM_METRIC_DRIVER_PRIORITY";
763 return "ACM_METRIC_DRIVER_SUPPORT";
765 return "ACM_METRIC_HARDWARE_WAVE_INPUT";
767 return "ACM_METRIC_HARDWARE_WAVE_OUTPUT";
769 return "ACM_METRIC_MAX_SIZE_FILTER";
771 return "ACM_METRIC_MAX_SIZE_FORMAT";
785 "acmMetrics(NULL, %s, 0): rc = 0x%08x, should be 0x%08x\n",
789 rc =
acmMetrics((HACMOBJ)1, uMetric, &dwMetric);
791 "acmMetrics(1, %s, %p): rc = 0x%08x, should be 0x%08x\n",
797 "acmMetrics(1, %s, 0): rc = 0x%08x, should be 0x%08x\n",
814 trace(
"ACM version = %u.%02u build %u%s\n",
815 HIWORD(dwACMVersion) >> 8,
816 HIWORD(dwACMVersion) & 0xff,
818 LOWORD(dwACMVersion) == 0 ?
" (Retail)" :
"");
834 trace(
"enabled drivers:\n");
838 "acmDriverEnum() failed, rc=%08x, should be 0x%08x\n",
854 src->wfx.cbSize = 32;
856 src->wfx.nSamplesPerSec = 22050;
857 src->wfx.wBitsPerSample = 4;
858 src->wfx.nChannels = 1;
859 src->wfx.nBlockAlign = 512;
860 src->wfx.nAvgBytesPerSec = 11025;
861 src->wSamplesPerBlock = 0x3f4;
863 coef[0].iCoef1 = 0x0100;
864 coef[0].iCoef2 = 0x0000;
865 coef[1].iCoef1 = 0x0200;
866 coef[1].iCoef2 = 0xff00;
867 coef[2].iCoef1 = 0x0000;
868 coef[2].iCoef2 = 0x0000;
869 coef[3].iCoef1 = 0x00c0;
870 coef[3].iCoef2 = 0x0040;
871 coef[4].iCoef1 = 0x00f0;
872 coef[4].iCoef2 = 0x0000;
873 coef[5].iCoef1 = 0x01cc;
874 coef[5].iCoef2 = 0xff30;
875 coef[6].iCoef1 = 0x0188;
876 coef[6].iCoef2 = 0xff18;
880 dst.nSamplesPerSec = 22050;
881 dst.wBitsPerSample = 8;
883 dst.nBlockAlign =
dst.wBitsPerSample *
dst.nChannels / 8;
884 dst.nAvgBytesPerSec =
dst.nSamplesPerSec *
dst.nBlockAlign;
891 hdr.cbStruct =
sizeof(
hdr);
895 hdr.cbDstLength =
sizeof(pcm);
903 ok(
hdr.fdwStatus == 0,
"header wasn't unprepared: 0x%x\n",
hdr.fdwStatus);
906 hdr.cbStruct =
sizeof(
hdr);
910 hdr.cbDstLength =
sizeof(pcm);
915 hdr.cbSrcLength =
src->wfx.nBlockAlign - 1;
919 hdr.cbSrcLength =
src->wfx.nBlockAlign + 1;
926 hdr.cbSrcLength =
src->wfx.nBlockAlign;
937 hdr.cbStruct =
sizeof(
hdr);
941 hdr.cbDstLength =
sizeof(pcm);
948 hdr.cbSrcLengthUsed = 12345;
949 hdr.cbDstLengthUsed = 12345;
950 hdr.fdwStatus &= ~ACMSTREAMHEADER_STATUSF_DONE;
954 ok(
hdr.cbSrcLengthUsed ==
hdr.cbSrcLength,
"expected %d, got %d\n",
hdr.cbSrcLength,
hdr.cbSrcLengthUsed);
956 ok(
hdr.cbDstLengthUsed == 1010,
"expected 1010, got %d\n",
hdr.cbDstLengthUsed);
964 hdr.cbStruct =
sizeof(
hdr);
968 hdr.cbDstLength = -4;
971 if (
sizeof(
void *) == 4)
976 hdr.cbSrcLengthUsed = 12345;
977 hdr.cbDstLengthUsed = 12345;
978 hdr.fdwStatus &= ~ACMSTREAMHEADER_STATUSF_DONE;
982 ok(
hdr.cbSrcLengthUsed ==
hdr.cbSrcLength,
"expected %d, got %d\n",
hdr.cbSrcLength,
hdr.cbSrcLengthUsed);
984 ok(
hdr.cbDstLengthUsed == 1010,
"expected 1010, got %d\n",
hdr.cbDstLengthUsed);
995 hdr.cbStruct =
sizeof(
hdr);
997 hdr.cbSrcLength = 24;
999 hdr.cbDstLength = -4;
1002 ok(
hdr.fdwStatus == 0,
"expected 0, got 0x%x\n",
hdr.fdwStatus);
1004 hdr.cbSrcLengthUsed = 12345;
1005 hdr.cbDstLengthUsed = 12345;
1008 ok(
hdr.cbSrcLengthUsed == 12345,
"expected 12345, got %d\n",
hdr.cbSrcLengthUsed);
1009 ok(
hdr.cbDstLengthUsed == 12345,
"expected 12345, got %d\n",
hdr.cbDstLengthUsed);
1016 hdr.cbStruct =
sizeof(
hdr);
1020 hdr.cbDstLength = 32;
1026 hdr.cbSrcLengthUsed = 12345;
1027 hdr.cbDstLengthUsed = 12345;
1028 hdr.fdwStatus &= ~ACMSTREAMHEADER_STATUSF_DONE;
1033 ok(
hdr.cbSrcLengthUsed ==
hdr.cbSrcLength,
"expected %d, got %d\n",
hdr.cbSrcLength,
hdr.cbSrcLengthUsed);
1035 ok(
hdr.cbDstLengthUsed ==
hdr.cbDstLength,
"expected %d, got %d\n",
hdr.cbDstLength,
hdr.cbDstLengthUsed);
1045static const BYTE input[64] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63};
1058 {{
WAVE_FORMAT_PCM, 1, 8000, 8000, 1, 8}, {
WAVE_FORMAT_PCM, 1, 8000, 8000, 1, 8}, {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63}, 64,
FALSE},
1061 {{
WAVE_FORMAT_PCM, 1, 8000, 8000, 1, 8}, {
WAVE_FORMAT_PCM, 2, 8000, 16000, 2, 8}, {0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30,31,31,32,32,33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40,41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48,49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57,58,58,59,59,60,60,61,61,62,62,63,63}, 128,
FALSE},
1064 {{
WAVE_FORMAT_PCM, 2, 8000, 16000, 2, 8}, {
WAVE_FORMAT_PCM, 1, 8000, 8000, 1, 8}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 32,
FALSE},
1067 {{
WAVE_FORMAT_PCM, 2, 8000, 16000, 2, 8}, {
WAVE_FORMAT_PCM, 2, 8000, 16000, 2, 8}, {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63}, 64,
FALSE},
1070 {{
WAVE_FORMAT_PCM, 1, 8000, 8000, 1, 8}, {
WAVE_FORMAT_PCM, 1, 8000, 16000, 2, 16}, {0,128,0,129,0,130,0,131,0,132,0,133,0,134,0,135,0,136,0,137,0,138,0,139,0,140,0,141,0,142,0,143,0,144,0,145,0,146,0,147,0,148,0,149,0,150,0,151,0,152,0,153,0,154,0,155,0,156,0,157,0,158,0,159,0,160,0,161,0,162,0,163,0,164,0,165,0,166,0,167,0,168,0,169,0,170,0,171,0,172,0,173,0,174,0,175,0,176,0,177,0,178,0,179,0,180,0,181,0,182,0,183,0,184,0,185,0,186,0,187,0,188,0,189,0,190,0,191}, 128,
FALSE},
1073 {{
WAVE_FORMAT_PCM, 1, 8000, 16000, 2, 16}, {
WAVE_FORMAT_PCM, 1, 8000, 8000, 1, 8}, {129,131,133,135,137,139,141,143,145,147,149,151,153,155,157,159,161,163,165,167,169,171,173,175,177,179,181,183,185,187,189,191}, 32,
FALSE},
1076 {{
WAVE_FORMAT_PCM, 2, 8000, 32000, 4, 16}, {
WAVE_FORMAT_PCM, 1, 8000, 16000, 2, 16}, {2,4,10,12,18,20,26,28,34,36,42,44,50,52,58,60,66,68,74,76,82,84,90,92,98,100,106,108,114,116,122,124}, 32,
FALSE},
1080 {{
WAVE_FORMAT_PCM, 1, 8000, 8000, 1, 8}, {
WAVE_FORMAT_PCM, 1, 11025, 11025, 1, 8}, {0,1,1,2,3,4,4,5,6,7,7,8,9,9,10,11,12,12,13,14,15,15,16,17,17,18,19,20,20,21,22,22,23,24,25,25,26,27,28,28,29,30,30,31,32,33,33,34,35,36,36,37,38,38,39,40,41,41,42,43,44,44,45,46,46,47,48,49,49,50,51,52,52,53,54,54,55,56,57,57,58,59,60,60,61,62,62,63}, 88,
TRUE},
1083 {{
WAVE_FORMAT_PCM, 1, 8000, 8000, 1, 8}, {
WAVE_FORMAT_PCM, 1, 22050, 22050, 1, 8}, {0,0,1,1,1,2,2,3,3,3,4,4,4,5,5,5,6,6,7,7,7,8,8,8,9,9,9,10,10,11,11,11,12,12,12,13,13,13,14,14,15,15,15,16,16,16,17,17,17,18,18,19,19,19,20,20,20,21,21,21,22,22,22,23,23,24,24,24,25,25,25,26,26,26,27,27,28,28,28,29,29,29,30,30,30,31,31,32,32,32,33,33,33,34,34,34,35,35,36,36,36,37,37,37,38,38,38,39,39,40,40,40,41,41,41,42,42,42,43,43,44,44,44,45,45,45,46,46,46,47,47,48,48,48,49,49,49,50,50,50,51,51,52,52,52,53,53,53,54,54,54,55,55,56,56,56,57,57,57,58,58,58,59,59,60,60,60,61,61,61,62,62,62,63,63,63}, 176,
TRUE},
1086 {{
WAVE_FORMAT_PCM, 1, 11025, 11025, 1, 8}, {
WAVE_FORMAT_PCM, 1, 22050, 22050, 1, 8}, {0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30,31,31,32,32,33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40,41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48,49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57,58,58,59,59,60,60,61,61,62,62,63,63}, 128,
FALSE},
1089 {{
WAVE_FORMAT_PCM, 1, 22050, 22050, 1, 8}, {
WAVE_FORMAT_PCM, 1, 11025, 11025, 1, 8}, {1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63}, 32,
FALSE},
1092 {{
WAVE_FORMAT_PCM, 1, 11025, 11025, 1, 8}, {
WAVE_FORMAT_PCM, 1, 8000, 8000, 1, 8}, {0,2,3,4,6,7,8,10,11,13,14,15,17,18,19,21,22,24,25,26,28,29,31,32,33,35,36,37,39,40,42,43,44,46,47,48,50,51,53,54,55,57,58,59,61,62}, 46,
FALSE},
1095 {{
WAVE_FORMAT_PCM, 1, 22050, 22050, 1, 8}, {
WAVE_FORMAT_PCM, 1, 8000, 8000, 1, 8}, {1,4,6,9,12,15,17,20,23,26,28,31,34,37,39,42,45,48,50,53,56,59,62}, 23,
FALSE},
1098 {{
WAVE_FORMAT_PCM, 1, 44100, 44100, 1, 8}, {
WAVE_FORMAT_PCM, 1, 8000, 8000, 1, 8}, {2,8,13,19,24,30,35,41,46,52,57,63}, 12,
FALSE},
1115 hdr.cbStruct =
sizeof(
hdr);
1129 ok(
hdr.cbSrcLengthUsed ==
hdr.cbSrcLength,
"#%d: expected %d, got %d\n",
i,
hdr.cbSrcLength,
hdr.cbSrcLengthUsed);
1155 src.nSamplesPerSec = 8000;
1156 src.nAvgBytesPerSec = 16000;
1157 src.nBlockAlign = 2;
1158 src.wBitsPerSample = 16;
1164 ok(
src.wFormatTag ==
dst.wFormatTag,
"expected %d, got %d\n",
src.wFormatTag,
dst.wFormatTag);
1165 ok(
src.nChannels ==
dst.nChannels,
"expected %d, got %d\n",
src.nChannels,
dst.nChannels);
1166 ok(
src.nSamplesPerSec ==
dst.nSamplesPerSec,
"expected %d, got %d\n",
src.nSamplesPerSec,
dst.nSamplesPerSec);
1167 ok(
src.nAvgBytesPerSec ==
dst.nAvgBytesPerSec,
"expected %d, got %d\n",
src.nAvgBytesPerSec,
dst.nAvgBytesPerSec);
1168 ok(
src.nBlockAlign ==
dst.nBlockAlign,
"expected %d, got %d\n",
src.nBlockAlign,
dst.nBlockAlign);
1169 ok(
src.wBitsPerSample ==
dst.wBitsPerSample,
"expected %d, got %d\n",
src.wBitsPerSample,
dst.wBitsPerSample);
1179 ok(
src.wFormatTag ==
dst.wFormatTag,
"expected %d, got %d\n",
src.wFormatTag,
dst.wFormatTag);
1180 ok(
src.nChannels ==
dst.nChannels,
"expected %d, got %d\n",
src.nChannels,
dst.nChannels);
1181 ok(
src.nSamplesPerSec ==
dst.nSamplesPerSec,
"expected %d, got %d\n",
src.nSamplesPerSec,
dst.nSamplesPerSec);
1182 ok(
src.nAvgBytesPerSec ==
dst.nAvgBytesPerSec,
"expected %d, got %d\n",
src.nAvgBytesPerSec,
dst.nAvgBytesPerSec);
1183 ok(
src.nBlockAlign ==
dst.nBlockAlign,
"expected %d, got %d\n",
src.nBlockAlign,
dst.nBlockAlign);
1184 ok(
src.wBitsPerSample ==
dst.wBitsPerSample,
"expected %d, got %d\n",
src.wBitsPerSample,
dst.wBitsPerSample);
1188 src.nSamplesPerSec = 0xdeadbeef;
1194 ok(
dst.nSamplesPerSec == 0xdeadbeef,
"expected %d, got %d\n", 0xdeadbeef,
dst.nSamplesPerSec);
1196 src.nSamplesPerSec = 8000;
1199 src.wFormatTag = 0xbeef;
1210 src.nSamplesPerSec = 8000;
1211 src.nAvgBytesPerSec = 8000;
1212 src.nBlockAlign = 1;
1213 src.wBitsPerSample = 8;
1288 src.wfx.nSamplesPerSec = 11025;
1289 src.wfx.wBitsPerSample = 0;
1290 src.wfx.nChannels = 1;
1291 src.wfx.nBlockAlign = 576;
1292 src.wfx.nAvgBytesPerSec = 2000;
1296 src.nBlockSize = 576;
1297 src.nFramesPerBlock = 1;
1298 src.nCodecDelay = 0;
1302 dst.nSamplesPerSec = 11025;
1303 dst.wBitsPerSample = 16;
1305 dst.nBlockAlign =
dst.wBitsPerSample *
dst.nChannels / 8;
1306 dst.nAvgBytesPerSec =
dst.nSamplesPerSec *
dst.nBlockAlign;
1326 "failed with error 0x%x\n", mr);
1332 src.nBlockSize = 576;
1333 src.wfx.nAvgBytesPerSec = 0;
1337 "failed with error 0x%x\n", mr);
1347 src.wfx.nAvgBytesPerSec = 2000;
1351 "failed with error 0x%x\n", mr);
1423 ptr->vdwACM = 0x01000000;
1424 ptr->vdwDriver = 0x01000000;
1426 ptr->cFormatTags = 1;
1427 ptr->cFilterTags = 0;
1430 strcpy(
ptr->szLongName,
"Wine Test Codec");
1431 strcpy(
ptr->szCopyright,
"Brought to you by the Wine team...");
1432 strcpy(
ptr->szLicensing,
"Refer to LICENSE file");
1433 ptr->szFeatures[0] = 0;
1509 memset(&acm, 0,
sizeof(acm));
1513 acm.drv_details.cbStruct =
sizeof(acm.drv_details);
int strcmp(const char *String1, const char *String2)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
char * strcpy(char *DstString, const char *SrcString)
#define WAVE_FORMAT_ADPCM
#define HeapFree(x, y, z)
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
MMRESULT WINAPI acmDriverOpen(PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen)
MMRESULT WINAPI acmDriverClose(HACMDRIVER had, DWORD fdwClose)
MMRESULT WINAPI acmDriverID(HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID)
MMRESULT WINAPI acmDriverEnum(ACMDRIVERENUMCB fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum)
MMRESULT WINAPI acmDriverDetailsA(HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, DWORD fdwDetails)
MMRESULT WINAPI acmDriverAddA(PHACMDRIVERID phadid, HINSTANCE hinstModule, LPARAM lParam, DWORD dwPriority, DWORD fdwAdd)
MMRESULT WINAPI acmStreamClose(HACMSTREAM has, DWORD fdwClose)
MMRESULT WINAPI acmStreamPrepareHeader(HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare)
MMRESULT WINAPI acmStreamConvert(HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert)
MMRESULT WINAPI acmStreamSize(HACMSTREAM has, DWORD cbInput, LPDWORD pdwOutputBytes, DWORD fdwSize)
MMRESULT WINAPI acmStreamUnprepareHeader(HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare)
MMRESULT WINAPI acmStreamOpen(PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen)
LRESULT WINAPI DefDriverProc(DWORD_PTR dwDriverIdentifier, HDRVR hDrv, UINT Msg, LPARAM lParam1, LPARAM lParam2)
GLenum GLuint GLenum GLsizei const GLchar * buf
GLenum GLenum GLenum input
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define MM_FRAUNHOFER_IIS
#define WAVE_FORMAT_UNKNOWN
#define WAVE_FORMAT_IMA_ADPCM
#define MM_FHGIIS_MPEGLAYER3_PROFESSIONAL
#define MPEGLAYER3_ID_MPEG
#define MPEGLAYER3_WFX_EXTRA_BYTES
#define WAVE_FORMAT_MPEGLAYER3
#define MM_MSFT_ACM_MSADPCM
#define MM_MSFT_ACM_IMAADPCM
#define MM_FHGIIS_MPEGLAYER3_DECODE
#define DRV_QUERYCONFIGURE
#define MMSYSERR_NOTSUPPORTED
#define MMSYSERR_NODRIVER
struct pcmwaveformat_tag PCMWAVEFORMAT
#define MMSYSERR_INVALHANDLE
#define MMSYSERR_INVALPARAM
#define MMSYSERR_INVALFLAG
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
#define todo_wine_if(is_todo)
MMRESULT WINAPI acmMetrics(HACMOBJ hao, UINT uMetric, LPVOID pMetric)
DWORD WINAPI acmGetVersion(void)
static struct @1681 driver_calls
static void test_mp3(void)
static void test_acmDriverAdd(void)
static const BYTE input[64]
struct @1681::@1684 stream
static const char * get_metric(UINT uMetric)
static void test_convert(void)
struct @1681::@1683 format
static void test_acmFormatTagDetails(void)
static void test_prepareheader(void)
static void test_acmFormatSuggest(void)
static void driver_tests(void)
static LRESULT CALLBACK acm_driver_func(DWORD_PTR id, HDRVR handle, UINT msg, LPARAM param1, LPARAM param2)
static void check_count(UINT uMetric)
static BOOL CALLBACK FormatEnumProc(HACMDRIVERID hadid, LPACMFORMATDETAILSA pafd, DWORD_PTR dwInstance, DWORD fd)
struct @1681::@1682 driver
static BOOL CALLBACK DriverEnumProc(HACMDRIVERID hadid, DWORD_PTR dwInstance, DWORD fdwSupport)
static const struct stream_output expected_output[]
static void test_acmFormatChoose(void)
static BOOL CALLBACK FormatTagEnumProc(HACMDRIVERID hadid, PACMFORMATTAGDETAILSA paftd, DWORD_PTR dwInstance, DWORD fdwSupport)
#define ACM_DRIVERADDF_FUNCTION
#define ACM_METRIC_HARDWARE_WAVE_INPUT
#define ACMDRIVERDETAILS_SUPPORTF_CONVERTER
#define ACM_METRIC_COUNT_DISABLED
#define ACM_METRIC_MAX_SIZE_FORMAT
#define ACMDM_DRIVER_ABOUT
#define ACM_METRIC_COUNT_FILTERS
#define ACM_METRIC_COUNT_LOCAL_CODECS
#define ACM_FORMATTAGDETAILSF_FORMATTAG
#define ACM_STREAMCONVERTF_BLOCKALIGN
#define ACMDRIVERDETAILS_SUPPORTF_FILTER
#define ACM_METRIC_MAX_SIZE_FILTER
#define ACMSTREAMHEADER_STATUSF_PREPARED
#define ACM_METRIC_COUNT_LOCAL_DISABLED
#define ACMDRIVERDETAILS_FCCCOMP_UNDEFINED
#define ACMERR_UNPREPARED
#define ACMDRIVERDETAILS_SUPPORTF_ASYNC
#define ACM_METRIC_HARDWARE_WAVE_OUTPUT
#define ACM_METRIC_COUNT_LOCAL_FILTERS
#define ACM_METRIC_COUNT_HARDWARE
#define ACM_FORMATSUGGESTF_WFORMATTAG
#define ACM_FORMATSUGGESTF_NCHANNELS
#define ACMERR_NOTPOSSIBLE
#define ACM_METRIC_COUNT_CODECS
#define ACMSTREAMHEADER_STATUSF_DONE
#define ACM_METRIC_DRIVER_PRIORITY
#define ACM_FORMATDETAILSF_FORMAT
#define ACM_METRIC_COUNT_CONVERTERS
#define ACM_STREAMSIZEF_SOURCE
#define ACM_METRIC_COUNT_LOCAL_CONVERTERS
#define ACM_FORMATTAGDETAILSF_LARGESTSIZE
#define ACM_METRIC_COUNT_LOCAL_DRIVERS
#define ACM_METRIC_DRIVER_SUPPORT
#define ACM_FORMATDETAILSF_INDEX
#define ACM_FORMATSUGGESTF_WBITSPERSAMPLE
#define ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC
#define ACMDRIVERDETAILS_SUPPORTF_CODEC
#define ACM_FORMATSUGGESTF_NSAMPLESPERSEC
#define ACM_METRIC_COUNT_DRIVERS
#define ACMDM_STREAM_PREPARE
#define ACMDM_STREAM_CLOSE
#define ACMDM_STREAM_CONVERT
#define ACMDM_FORMAT_SUGGEST
#define ACMDM_DRIVER_NOTIFY
#define ACMDM_FORMAT_DETAILS
#define ACMDM_STREAM_SIZE
#define ACMDM_FORMATTAG_DETAILS
#define ACMDM_STREAM_UNPREPARE
#define ACMDM_STREAM_OPEN
#define ACMDM_DRIVER_DETAILS
#define ACMDM_STREAM_RESET
CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS]
CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS]
CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS]
CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS]
CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS]
_In_ ULONG_PTR _In_ ULONG _Out_ ULONG_PTR * pid