ksmedia.h 170 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. #if !defined(_KSMEDIA_)
  7. #define _KSMEDIA_
  8. #include <ks.h>
  9. typedef struct {
  10. KSPROPERTY Property;
  11. KSMULTIPLE_ITEM MultipleItem;
  12. } KSMULTIPLE_DATA_PROP,*PKSMULTIPLE_DATA_PROP;
  13. #define STATIC_KSMEDIUMSETID_MidiBus \
  14. 0x05908040,0x3246,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
  15. DEFINE_GUIDSTRUCT("05908040-3246-11D0-A5D6-28DB04C10000",KSMEDIUMSETID_MidiBus);
  16. #define KSMEDIUMSETID_MidiBus DEFINE_GUIDNAMED(KSMEDIUMSETID_MidiBus)
  17. #define STATIC_KSMEDIUMSETID_VPBus \
  18. 0xA18C15EC,0xCE43,0x11D0,0xAB,0xE7,0x00,0xA0,0xC9,0x22,0x31,0x96
  19. DEFINE_GUIDSTRUCT("A18C15EC-CE43-11D0-ABE7-00A0C9223196",KSMEDIUMSETID_VPBus);
  20. #define KSMEDIUMSETID_VPBus DEFINE_GUIDNAMED(KSMEDIUMSETID_VPBus)
  21. #define STATIC_KSINTERFACESETID_Media \
  22. 0x3A13EB40,0x30A7,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
  23. DEFINE_GUIDSTRUCT("3A13EB40-30A7-11D0-A5D6-28DB04C10000",KSINTERFACESETID_Media);
  24. #define KSINTERFACESETID_Media DEFINE_GUIDNAMED(KSINTERFACESETID_Media)
  25. typedef enum {
  26. KSINTERFACE_MEDIA_MUSIC,
  27. KSINTERFACE_MEDIA_WAVE_BUFFERED,
  28. KSINTERFACE_MEDIA_WAVE_QUEUED
  29. } KSINTERFACE_MEDIA;
  30. #ifndef INIT_USBAUDIO_MID
  31. #define INIT_USBAUDIO_MID(guid,id) \
  32. { \
  33. (guid)->Data1 = 0x4e1cecd2 + (USHORT)(id); \
  34. (guid)->Data2 = 0x1679; \
  35. (guid)->Data3 = 0x463b; \
  36. (guid)->Data4[0] = 0xa7; \
  37. (guid)->Data4[1] = 0x2f; \
  38. (guid)->Data4[2] = 0xa5; \
  39. (guid)->Data4[3] = 0xbf; \
  40. (guid)->Data4[4] = 0x64; \
  41. (guid)->Data4[5] = 0xc8; \
  42. (guid)->Data4[6] = 0x6e; \
  43. (guid)->Data4[7] = 0xba; \
  44. }
  45. #define EXTRACT_USBAUDIO_MID(guid) \
  46. (USHORT)((guid)->Data1 - 0x4e1cecd2)
  47. #define DEFINE_USBAUDIO_MID_GUID(id) \
  48. 0x4e1cecd2+(USHORT)(id),0x1679,0x463b,0xa7,0x2f,0xa5,0xbf,0x64,0xc8,0x6e,0xba
  49. #define IS_COMPATIBLE_USBAUDIO_MID(guid) \
  50. (((guid)->Data1 >= 0x4e1cecd2) && \
  51. ((guid)->Data1 < 0x4e1cecd2 + 0xffff) && \
  52. ((guid)->Data2 == 0x1679) && \
  53. ((guid)->Data3 == 0x463b) && \
  54. ((guid)->Data4[0] == 0xa7) && \
  55. ((guid)->Data4[1] == 0x2f) && \
  56. ((guid)->Data4[2] == 0xa5) && \
  57. ((guid)->Data4[3] == 0xbf) && \
  58. ((guid)->Data4[4] == 0x64) && \
  59. ((guid)->Data4[5] == 0xc8) && \
  60. ((guid)->Data4[6] == 0x6e) && \
  61. ((guid)->Data4[7] == 0xba) )
  62. #endif /* INIT_USBAUDIO_MID */
  63. #ifndef INIT_USBAUDIO_PID
  64. #define INIT_USBAUDIO_PID(guid,id) \
  65. { \
  66. (guid)->Data1 = 0xabcc5a5e + (USHORT)(id); \
  67. (guid)->Data2 = 0xc263; \
  68. (guid)->Data3 = 0x463b; \
  69. (guid)->Data4[0] = 0xa7; \
  70. (guid)->Data4[1] = 0x2f; \
  71. (guid)->Data4[2] = 0xa5; \
  72. (guid)->Data4[3] = 0xbf; \
  73. (guid)->Data4[4] = 0x64; \
  74. (guid)->Data4[5] = 0xc8; \
  75. (guid)->Data4[6] = 0x6e; \
  76. (guid)->Data4[7] = 0xba; \
  77. }
  78. #define EXTRACT_USBAUDIO_PID(guid) \
  79. (USHORT)((guid)->Data1 - 0xabcc5a5e)
  80. #define DEFINE_USBAUDIO_PID_GUID(id) \
  81. 0xabcc5a5e+(USHORT)(id),0xc263,0x463b,0xa7,0x2f,0xa5,0xbf,0x64,0xc8,0x6e,0xba
  82. #define IS_COMPATIBLE_USBAUDIO_PID(guid) \
  83. (((guid)->Data1 >= 0xabcc5a5e) && \
  84. ((guid)->Data1 < 0xabcc5a5e + 0xffff) && \
  85. ((guid)->Data2 == 0xc263) && \
  86. ((guid)->Data3 == 0x463b) && \
  87. ((guid)->Data4[0] == 0xa7) && \
  88. ((guid)->Data4[1] == 0x2f) && \
  89. ((guid)->Data4[2] == 0xa5) && \
  90. ((guid)->Data4[3] == 0xbf) && \
  91. ((guid)->Data4[4] == 0x64) && \
  92. ((guid)->Data4[5] == 0xc8) && \
  93. ((guid)->Data4[6] == 0x6e) && \
  94. ((guid)->Data4[7] == 0xba) )
  95. #endif /* INIT_USBAUDIO_PID */
  96. #ifndef INIT_USBAUDIO_PRODUCT_NAME
  97. #define INIT_USBAUDIO_PRODUCT_NAME(guid,vid,pid,strIndex) \
  98. { \
  99. (guid)->Data1 = 0XFC575048 + (USHORT)(vid); \
  100. (guid)->Data2 = 0x2E08 + (USHORT)(pid); \
  101. (guid)->Data3 = 0x463B + (USHORT)(strIndex); \
  102. (guid)->Data4[0] = 0xA7; \
  103. (guid)->Data4[1] = 0x2F; \
  104. (guid)->Data4[2] = 0xA5; \
  105. (guid)->Data4[3] = 0xBF; \
  106. (guid)->Data4[4] = 0x64; \
  107. (guid)->Data4[5] = 0xC8; \
  108. (guid)->Data4[6] = 0x6E; \
  109. (guid)->Data4[7] = 0xBA; \
  110. }
  111. #define DEFINE_USBAUDIO_PRODUCT_NAME(vid,pid,strIndex) \
  112. 0xFC575048+(USHORT)(vid),0x2E08+(USHORT)(pid),0x463B+(USHORT)(strIndex),0xA7,0x2F,0xA5,0xBF,0x64,0xC8,0x6E,0xBA
  113. #endif /* INIT_USBAUDIO_PRODUCT_NAME */
  114. #define STATIC_KSCOMPONENTID_USBAUDIO \
  115. 0x8F1275F0,0x26E9,0x4264,0xBA,0x4D,0x39,0xFF,0xF0,0x1D,0x94,0xAA
  116. DEFINE_GUIDSTRUCT("8F1275F0-26E9-4264-BA4D-39FFF01D94AA",KSCOMPONENTID_USBAUDIO);
  117. #define KSCOMPONENTID_USBAUDIO DEFINE_GUIDNAMED(KSCOMPONENTID_USBAUDIO)
  118. #define INIT_USB_TERMINAL(guid,id) \
  119. { \
  120. (guid)->Data1 = 0xDFF219E0 + (USHORT)(id); \
  121. (guid)->Data2 = 0xF70F; \
  122. (guid)->Data3 = 0x11D0; \
  123. (guid)->Data4[0] = 0xb9; \
  124. (guid)->Data4[1] = 0x17; \
  125. (guid)->Data4[2] = 0x00; \
  126. (guid)->Data4[3] = 0xa0; \
  127. (guid)->Data4[4] = 0xc9; \
  128. (guid)->Data4[5] = 0x22; \
  129. (guid)->Data4[6] = 0x31; \
  130. (guid)->Data4[7] = 0x96; \
  131. }
  132. #define EXTRACT_USB_TERMINAL(guid) \
  133. (USHORT)((guid)->Data1 - 0xDFF219E0)
  134. #define DEFINE_USB_TERMINAL_GUID(id) \
  135. 0xDFF219E0+(USHORT)(id),0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
  136. #define STATIC_KSNODETYPE_MICROPHONE \
  137. DEFINE_USB_TERMINAL_GUID(0x0201)
  138. DEFINE_GUIDSTRUCT("DFF21BE1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_MICROPHONE);
  139. #define KSNODETYPE_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_MICROPHONE)
  140. #define STATIC_KSNODETYPE_DESKTOP_MICROPHONE \
  141. DEFINE_USB_TERMINAL_GUID(0x0202)
  142. DEFINE_GUIDSTRUCT("DFF21BE2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DESKTOP_MICROPHONE);
  143. #define KSNODETYPE_DESKTOP_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_DESKTOP_MICROPHONE)
  144. #define STATIC_KSNODETYPE_PERSONAL_MICROPHONE \
  145. DEFINE_USB_TERMINAL_GUID(0x0203)
  146. DEFINE_GUIDSTRUCT("DFF21BE3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_PERSONAL_MICROPHONE);
  147. #define KSNODETYPE_PERSONAL_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_PERSONAL_MICROPHONE)
  148. #define STATIC_KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE \
  149. DEFINE_USB_TERMINAL_GUID(0x0204)
  150. DEFINE_GUIDSTRUCT("DFF21BE4-F70F-11D0-B917-00A0C9223196",KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE);
  151. #define KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE)
  152. #define STATIC_KSNODETYPE_MICROPHONE_ARRAY \
  153. DEFINE_USB_TERMINAL_GUID(0x0205)
  154. DEFINE_GUIDSTRUCT("DFF21BE5-F70F-11D0-B917-00A0C9223196",KSNODETYPE_MICROPHONE_ARRAY);
  155. #define KSNODETYPE_MICROPHONE_ARRAY DEFINE_GUIDNAMED(KSNODETYPE_MICROPHONE_ARRAY)
  156. #define STATIC_KSNODETYPE_PROCESSING_MICROPHONE_ARRAY \
  157. DEFINE_USB_TERMINAL_GUID(0x0206)
  158. DEFINE_GUIDSTRUCT("DFF21BE6-F70F-11D0-B917-00A0C9223196",KSNODETYPE_PROCESSING_MICROPHONE_ARRAY);
  159. #define KSNODETYPE_PROCESSING_MICROPHONE_ARRAY DEFINE_GUIDNAMED(KSNODETYPE_PROCESSING_MICROPHONE_ARRAY)
  160. #define STATIC_KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR \
  161. 0x830a44f2,0xa32d,0x476b,0xbe,0x97,0x42,0x84,0x56,0x73,0xb3,0x5a
  162. DEFINE_GUIDSTRUCT("830a44f2-a32d-476b-be97-42845673b35a",KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR);
  163. #define KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR DEFINE_GUIDNAMED(KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR)
  164. #define STATIC_KSNODETYPE_SPEAKER \
  165. DEFINE_USB_TERMINAL_GUID(0x0301)
  166. DEFINE_GUIDSTRUCT("DFF21CE1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_SPEAKER);
  167. #define KSNODETYPE_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_SPEAKER)
  168. #define STATIC_KSNODETYPE_HEADPHONES \
  169. DEFINE_USB_TERMINAL_GUID(0x0302)
  170. DEFINE_GUIDSTRUCT("DFF21CE2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_HEADPHONES);
  171. #define KSNODETYPE_HEADPHONES DEFINE_GUIDNAMED(KSNODETYPE_HEADPHONES)
  172. #define STATIC_KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO \
  173. DEFINE_USB_TERMINAL_GUID(0x0303)
  174. DEFINE_GUIDSTRUCT("DFF21CE3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO);
  175. #define KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO)
  176. #define STATIC_KSNODETYPE_DESKTOP_SPEAKER \
  177. DEFINE_USB_TERMINAL_GUID(0x0304)
  178. DEFINE_GUIDSTRUCT("DFF21CE4-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DESKTOP_SPEAKER);
  179. #define KSNODETYPE_DESKTOP_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_DESKTOP_SPEAKER)
  180. #define STATIC_KSNODETYPE_ROOM_SPEAKER \
  181. DEFINE_USB_TERMINAL_GUID(0x0305)
  182. DEFINE_GUIDSTRUCT("DFF21CE5-F70F-11D0-B917-00A0C9223196",KSNODETYPE_ROOM_SPEAKER);
  183. #define KSNODETYPE_ROOM_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_ROOM_SPEAKER)
  184. #define STATIC_KSNODETYPE_COMMUNICATION_SPEAKER \
  185. DEFINE_USB_TERMINAL_GUID(0x0306)
  186. DEFINE_GUIDSTRUCT("DFF21CE6-F70F-11D0-B917-00A0C9223196",KSNODETYPE_COMMUNICATION_SPEAKER);
  187. #define KSNODETYPE_COMMUNICATION_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_COMMUNICATION_SPEAKER)
  188. #define STATIC_KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER \
  189. DEFINE_USB_TERMINAL_GUID(0x0307)
  190. DEFINE_GUIDSTRUCT("DFF21CE7-F70F-11D0-B917-00A0C9223196",KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER);
  191. #define KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER)
  192. #define STATIC_KSNODETYPE_HANDSET \
  193. DEFINE_USB_TERMINAL_GUID(0x0401)
  194. DEFINE_GUIDSTRUCT("DFF21DE1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_HANDSET);
  195. #define KSNODETYPE_HANDSET DEFINE_GUIDNAMED(KSNODETYPE_HANDSET)
  196. #define STATIC_KSNODETYPE_HEADSET \
  197. DEFINE_USB_TERMINAL_GUID(0x0402)
  198. DEFINE_GUIDSTRUCT("DFF21DE2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_HEADSET);
  199. #define KSNODETYPE_HEADSET DEFINE_GUIDNAMED(KSNODETYPE_HEADSET)
  200. #define STATIC_KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION \
  201. DEFINE_USB_TERMINAL_GUID(0x0403)
  202. DEFINE_GUIDSTRUCT("DFF21DE3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION);
  203. #define KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION DEFINE_GUIDNAMED(KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION)
  204. #define STATIC_KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE \
  205. DEFINE_USB_TERMINAL_GUID(0x0404)
  206. DEFINE_GUIDSTRUCT("DFF21DE4-F70F-11D0-B917-00A0C9223196",KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE);
  207. #define KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE DEFINE_GUIDNAMED(KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE)
  208. #define STATIC_KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE \
  209. DEFINE_USB_TERMINAL_GUID(0x0405)
  210. DEFINE_GUIDSTRUCT("DFF21DE5-F70F-11D0-B917-00A0C9223196",KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE);
  211. #define KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE DEFINE_GUIDNAMED(KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE)
  212. #define STATIC_KSNODETYPE_PHONE_LINE \
  213. DEFINE_USB_TERMINAL_GUID(0x0501)
  214. DEFINE_GUIDSTRUCT("DFF21EE1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_PHONE_LINE);
  215. #define KSNODETYPE_PHONE_LINE DEFINE_GUIDNAMED(KSNODETYPE_PHONE_LINE)
  216. #define STATIC_KSNODETYPE_TELEPHONE \
  217. DEFINE_USB_TERMINAL_GUID(0x0502)
  218. DEFINE_GUIDSTRUCT("DFF21EE2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_TELEPHONE);
  219. #define KSNODETYPE_TELEPHONE DEFINE_GUIDNAMED(KSNODETYPE_TELEPHONE)
  220. #define STATIC_KSNODETYPE_DOWN_LINE_PHONE \
  221. DEFINE_USB_TERMINAL_GUID(0x0503)
  222. DEFINE_GUIDSTRUCT("DFF21EE3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DOWN_LINE_PHONE);
  223. #define KSNODETYPE_DOWN_LINE_PHONE DEFINE_GUIDNAMED(KSNODETYPE_DOWN_LINE_PHONE)
  224. #define STATIC_KSNODETYPE_ANALOG_CONNECTOR \
  225. DEFINE_USB_TERMINAL_GUID(0x601)
  226. DEFINE_GUIDSTRUCT("DFF21FE1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_ANALOG_CONNECTOR);
  227. #define KSNODETYPE_ANALOG_CONNECTOR DEFINE_GUIDNAMED(KSNODETYPE_ANALOG_CONNECTOR)
  228. #define STATIC_KSNODETYPE_DIGITAL_AUDIO_INTERFACE \
  229. DEFINE_USB_TERMINAL_GUID(0x0602)
  230. DEFINE_GUIDSTRUCT("DFF21FE2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DIGITAL_AUDIO_INTERFACE);
  231. #define KSNODETYPE_DIGITAL_AUDIO_INTERFACE DEFINE_GUIDNAMED(KSNODETYPE_DIGITAL_AUDIO_INTERFACE)
  232. #define STATIC_KSNODETYPE_LINE_CONNECTOR \
  233. DEFINE_USB_TERMINAL_GUID(0x0603)
  234. DEFINE_GUIDSTRUCT("DFF21FE3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_LINE_CONNECTOR);
  235. #define KSNODETYPE_LINE_CONNECTOR DEFINE_GUIDNAMED(KSNODETYPE_LINE_CONNECTOR)
  236. #define STATIC_KSNODETYPE_LEGACY_AUDIO_CONNECTOR \
  237. DEFINE_USB_TERMINAL_GUID(0x0604)
  238. DEFINE_GUIDSTRUCT("DFF21FE4-F70F-11D0-B917-00A0C9223196",KSNODETYPE_LEGACY_AUDIO_CONNECTOR);
  239. #define KSNODETYPE_LEGACY_AUDIO_CONNECTOR DEFINE_GUIDNAMED(KSNODETYPE_LEGACY_AUDIO_CONNECTOR)
  240. #define STATIC_KSNODETYPE_SPDIF_INTERFACE \
  241. DEFINE_USB_TERMINAL_GUID(0x0605)
  242. DEFINE_GUIDSTRUCT("DFF21FE5-F70F-11D0-B917-00A0C9223196",KSNODETYPE_SPDIF_INTERFACE);
  243. #define KSNODETYPE_SPDIF_INTERFACE DEFINE_GUIDNAMED(KSNODETYPE_SPDIF_INTERFACE)
  244. #define STATIC_KSNODETYPE_1394_DA_STREAM \
  245. DEFINE_USB_TERMINAL_GUID(0x0606)
  246. DEFINE_GUIDSTRUCT("DFF21FE6-F70F-11D0-B917-00A0C9223196",KSNODETYPE_1394_DA_STREAM);
  247. #define KSNODETYPE_1394_DA_STREAM DEFINE_GUIDNAMED(KSNODETYPE_1394_DA_STREAM)
  248. #define STATIC_KSNODETYPE_1394_DV_STREAM_SOUNDTRACK \
  249. DEFINE_USB_TERMINAL_GUID(0x0607)
  250. DEFINE_GUIDSTRUCT("DFF21FE7-F70F-11D0-B917-00A0C9223196",KSNODETYPE_1394_DV_STREAM_SOUNDTRACK);
  251. #define KSNODETYPE_1394_DV_STREAM_SOUNDTRACK DEFINE_GUIDNAMED(KSNODETYPE_1394_DV_STREAM_SOUNDTRACK)
  252. #define STATIC_KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE \
  253. DEFINE_USB_TERMINAL_GUID(0x0701)
  254. DEFINE_GUIDSTRUCT("DFF220E1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE);
  255. #define KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE DEFINE_GUIDNAMED(KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE)
  256. #define STATIC_KSNODETYPE_EQUALIZATION_NOISE \
  257. DEFINE_USB_TERMINAL_GUID(0x0702)
  258. DEFINE_GUIDSTRUCT("DFF220E2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_EQUALIZATION_NOISE);
  259. #define KSNODETYPE_EQUALIZATION_NOISE DEFINE_GUIDNAMED(KSNODETYPE_EQUALIZATION_NOISE)
  260. #define STATIC_KSNODETYPE_CD_PLAYER \
  261. DEFINE_USB_TERMINAL_GUID(0x0703)
  262. DEFINE_GUIDSTRUCT("DFF220E3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_CD_PLAYER);
  263. #define KSNODETYPE_CD_PLAYER DEFINE_GUIDNAMED(KSNODETYPE_CD_PLAYER)
  264. #define STATIC_KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE \
  265. DEFINE_USB_TERMINAL_GUID(0x0704)
  266. DEFINE_GUIDSTRUCT("DFF220E4-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE);
  267. #define KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE DEFINE_GUIDNAMED(KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE)
  268. #define STATIC_KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE \
  269. DEFINE_USB_TERMINAL_GUID(0x0705)
  270. DEFINE_GUIDSTRUCT("DFF220E5-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE);
  271. #define KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE DEFINE_GUIDNAMED(KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE)
  272. #define STATIC_KSNODETYPE_MINIDISK \
  273. DEFINE_USB_TERMINAL_GUID(0x0706)
  274. DEFINE_GUIDSTRUCT("DFF220E6-F70F-11D0-B917-00A0C9223196",KSNODETYPE_MINIDISK);
  275. #define KSNODETYPE_MINIDISK DEFINE_GUIDNAMED(KSNODETYPE_MINIDISK)
  276. #define STATIC_KSNODETYPE_ANALOG_TAPE \
  277. DEFINE_USB_TERMINAL_GUID(0x0707)
  278. DEFINE_GUIDSTRUCT("DFF220E7-F70F-11D0-B917-00A0C9223196",KSNODETYPE_ANALOG_TAPE);
  279. #define KSNODETYPE_ANALOG_TAPE DEFINE_GUIDNAMED(KSNODETYPE_ANALOG_TAPE)
  280. #define STATIC_KSNODETYPE_PHONOGRAPH \
  281. DEFINE_USB_TERMINAL_GUID(0x0708)
  282. DEFINE_GUIDSTRUCT("DFF220E8-F70F-11D0-B917-00A0C9223196",KSNODETYPE_PHONOGRAPH);
  283. #define KSNODETYPE_PHONOGRAPH DEFINE_GUIDNAMED(KSNODETYPE_PHONOGRAPH)
  284. #define STATIC_KSNODETYPE_VCR_AUDIO \
  285. DEFINE_USB_TERMINAL_GUID(0x0708)
  286. DEFINE_GUIDSTRUCT("DFF220E9-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VCR_AUDIO);
  287. #define KSNODETYPE_VCR_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_VCR_AUDIO)
  288. #define STATIC_KSNODETYPE_VIDEO_DISC_AUDIO \
  289. DEFINE_USB_TERMINAL_GUID(0x070A)
  290. DEFINE_GUIDSTRUCT("DFF220EA-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_DISC_AUDIO);
  291. #define KSNODETYPE_VIDEO_DISC_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_DISC_AUDIO)
  292. #define STATIC_KSNODETYPE_DVD_AUDIO \
  293. DEFINE_USB_TERMINAL_GUID(0x070B)
  294. DEFINE_GUIDSTRUCT("DFF220EB-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DVD_AUDIO);
  295. #define KSNODETYPE_DVD_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_DVD_AUDIO)
  296. #define STATIC_KSNODETYPE_TV_TUNER_AUDIO \
  297. DEFINE_USB_TERMINAL_GUID(0x070C)
  298. DEFINE_GUIDSTRUCT("DFF220EC-F70F-11D0-B917-00A0C9223196",KSNODETYPE_TV_TUNER_AUDIO);
  299. #define KSNODETYPE_TV_TUNER_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_TV_TUNER_AUDIO)
  300. #define STATIC_KSNODETYPE_SATELLITE_RECEIVER_AUDIO \
  301. DEFINE_USB_TERMINAL_GUID(0x070D)
  302. DEFINE_GUIDSTRUCT("DFF220ED-F70F-11D0-B917-00A0C9223196",KSNODETYPE_SATELLITE_RECEIVER_AUDIO);
  303. #define KSNODETYPE_SATELLITE_RECEIVER_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_SATELLITE_RECEIVER_AUDIO)
  304. #define STATIC_KSNODETYPE_CABLE_TUNER_AUDIO \
  305. DEFINE_USB_TERMINAL_GUID(0x070E)
  306. DEFINE_GUIDSTRUCT("DFF220EE-F70F-11D0-B917-00A0C9223196",KSNODETYPE_CABLE_TUNER_AUDIO);
  307. #define KSNODETYPE_CABLE_TUNER_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_CABLE_TUNER_AUDIO)
  308. #define STATIC_KSNODETYPE_DSS_AUDIO \
  309. DEFINE_USB_TERMINAL_GUID(0x070F)
  310. DEFINE_GUIDSTRUCT("DFF220EF-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DSS_AUDIO);
  311. #define KSNODETYPE_DSS_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_DSS_AUDIO)
  312. #define STATIC_KSNODETYPE_RADIO_RECEIVER \
  313. DEFINE_USB_TERMINAL_GUID(0x0710)
  314. DEFINE_GUIDSTRUCT("DFF220F0-F70F-11D0-B917-00A0C9223196",KSNODETYPE_RADIO_RECEIVER);
  315. #define KSNODETYPE_RADIO_RECEIVER DEFINE_GUIDNAMED(KSNODETYPE_RADIO_RECEIVER)
  316. #define STATIC_KSNODETYPE_RADIO_TRANSMITTER \
  317. DEFINE_USB_TERMINAL_GUID(0x0711)
  318. DEFINE_GUIDSTRUCT("DFF220F1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_RADIO_TRANSMITTER);
  319. #define KSNODETYPE_RADIO_TRANSMITTER DEFINE_GUIDNAMED(KSNODETYPE_RADIO_TRANSMITTER)
  320. #define STATIC_KSNODETYPE_MULTITRACK_RECORDER \
  321. DEFINE_USB_TERMINAL_GUID(0x0712)
  322. DEFINE_GUIDSTRUCT("DFF220F2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_MULTITRACK_RECORDER);
  323. #define KSNODETYPE_MULTITRACK_RECORDER DEFINE_GUIDNAMED(KSNODETYPE_MULTITRACK_RECORDER)
  324. #define STATIC_KSNODETYPE_SYNTHESIZER \
  325. DEFINE_USB_TERMINAL_GUID(0x0713)
  326. DEFINE_GUIDSTRUCT("DFF220F3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_SYNTHESIZER);
  327. #define KSNODETYPE_SYNTHESIZER DEFINE_GUIDNAMED(KSNODETYPE_SYNTHESIZER)
  328. #if NTDDI_VERSION < NTDDI_VISTA
  329. #define STATIC_KSNODETYPE_SWSYNTH \
  330. 0x423274A0,0x8B81,0x11D1,0xA0,0x50,0x00,0x00,0xF8,0x00,0x47,0x88
  331. DEFINE_GUIDSTRUCT("423274A0-8B81-11D1-A050-0000F8004788",KSNODETYPE_SWSYNTH);
  332. #define KSNODETYPE_SWSYNTH DEFINE_GUIDNAMED(KSNODETYPE_SWSYNTH)
  333. #define STATIC_KSNODETYPE_SWMIDI \
  334. 0xCB9BEFA0,0xA251,0x11D1,0xA0,0x50,0x00,0x00,0xF8,0x00,0x47,0x88
  335. DEFINE_GUIDSTRUCT("CB9BEFA0-A251-11D1-A050-0000F8004788",KSNODETYPE_SWMIDI);
  336. #define KSNODETYPE_SWMIDI DEFINE_GUIDNAMED(KSNODETYPE_SWMIDI)
  337. #endif /* NTDDI_VERSION < NTDDI_VISTA */
  338. #define STATIC_KSNODETYPE_DRM_DESCRAMBLE \
  339. 0xFFBB6E3F,0xCCFE,0x4D84,0x90,0xD9,0x42,0x14,0x18,0xB0,0x3A,0x8E
  340. DEFINE_GUIDSTRUCT("FFBB6E3F-CCFE-4D84-90D9-421418B03A8E",KSNODETYPE_DRM_DESCRAMBLE);
  341. #define KSNODETYPE_DRM_DESCRAMBLE DEFINE_GUIDNAMED(KSNODETYPE_DRM_DESCRAMBLE)
  342. #define STATIC_KSCATEGORY_AUDIO \
  343. 0x6994AD04,0x93EF,0x11D0,0xA3,0xCC,0x00,0xA0,0xC9,0x22,0x31,0x96
  344. DEFINE_GUIDSTRUCT("6994AD04-93EF-11D0-A3CC-00A0C9223196",KSCATEGORY_AUDIO);
  345. #define KSCATEGORY_AUDIO DEFINE_GUIDNAMED(KSCATEGORY_AUDIO)
  346. #define STATIC_KSCATEGORY_VIDEO \
  347. 0x6994AD05,0x93EF,0x11D0,0xA3,0xCC,0x00,0xA0,0xC9,0x22,0x31,0x96
  348. DEFINE_GUIDSTRUCT("6994AD05-93EF-11D0-A3CC-00A0C9223196",KSCATEGORY_VIDEO);
  349. #define KSCATEGORY_VIDEO DEFINE_GUIDNAMED(KSCATEGORY_VIDEO)
  350. #define STATIC_KSCATEGORY_TEXT \
  351. 0x6994AD06,0x93EF,0x11D0,0xA3,0xCC,0x00,0xA0,0xC9,0x22,0x31,0x96
  352. DEFINE_GUIDSTRUCT("6994AD06-93EF-11D0-A3CC-00A0C9223196",KSCATEGORY_TEXT);
  353. #define KSCATEGORY_TEXT DEFINE_GUIDNAMED(KSCATEGORY_TEXT)
  354. #if NTDDI_VERSION >= NTDDI_VISTA
  355. #define STATIC_KSCATEGORY_REALTIME \
  356. 0xEB115FFCL,0x10C8,0x4964,0x83,0x1D,0x6D,0xCB,0x02,0xE6,0xF2,0x3F
  357. DEFINE_GUIDSTRUCT("EB115FFC-10C8-4964-831D-6DCB02E6F23F",KSCATEGORY_REALTIME);
  358. #define KSCATEGORY_REALTIME DEFINE_GUIDNAMED(KSCATEGORY_REALTIME)
  359. #endif /* NTDDI_VERSION >= NTDDI_VISTA */
  360. #define STATIC_KSCATEGORY_NETWORK \
  361. 0x67C9CC3C,0x69C4,0x11D2,0x87,0x59,0x00,0xA0,0xC9,0x22,0x31,0x96
  362. DEFINE_GUIDSTRUCT("67C9CC3C-69C4-11D2-8759-00A0C9223196",KSCATEGORY_NETWORK);
  363. #define KSCATEGORY_NETWORK DEFINE_GUIDNAMED(KSCATEGORY_NETWORK)
  364. #define STATIC_KSCATEGORY_TOPOLOGY \
  365. 0xDDA54A40,0x1E4C,0x11D1,0xA0,0x50,0x40,0x57,0x05,0xC1,0x00,0x00
  366. DEFINE_GUIDSTRUCT("DDA54A40-1E4C-11D1-A050-405705C10000",KSCATEGORY_TOPOLOGY);
  367. #define KSCATEGORY_TOPOLOGY DEFINE_GUIDNAMED(KSCATEGORY_TOPOLOGY)
  368. #define STATIC_KSCATEGORY_VIRTUAL \
  369. 0x3503EAC4,0x1F26,0x11D1,0x8A,0xB0,0x00,0xA0,0xC9,0x22,0x31,0x96
  370. DEFINE_GUIDSTRUCT("3503EAC4-1F26-11D1-8AB0-00A0C9223196",KSCATEGORY_VIRTUAL);
  371. #define KSCATEGORY_VIRTUAL DEFINE_GUIDNAMED(KSCATEGORY_VIRTUAL)
  372. #define STATIC_KSCATEGORY_ACOUSTIC_ECHO_CANCEL \
  373. 0xBF963D80,0xC559,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
  374. DEFINE_GUIDSTRUCT("BF963D80-C559-11D0-8A2B-00A0C9255AC1",KSCATEGORY_ACOUSTIC_ECHO_CANCEL);
  375. #define KSCATEGORY_ACOUSTIC_ECHO_CANCEL DEFINE_GUIDNAMED(KSCATEGORY_ACOUSTIC_ECHO_CANCEL)
  376. #if NTDDI_VERSION < NTDDI_VISTA
  377. #define STATIC_KSCATEGORY_SYSAUDIO \
  378. 0xA7C7A5B1,0x5AF3,0x11D1,0x9C,0xED,0x00,0xA0,0x24,0xBF,0x04,0x07
  379. DEFINE_GUIDSTRUCT("A7C7A5B1-5AF3-11D1-9CED-00A024BF0407",KSCATEGORY_SYSAUDIO);
  380. #define KSCATEGORY_SYSAUDIO DEFINE_GUIDNAMED(KSCATEGORY_SYSAUDIO)
  381. #define STATIC_KSCATEGORY_WDMAUD \
  382. 0x3E227E76,0x690D,0x11D2,0x81,0x61,0x00,0x00,0xF8,0x77,0x5B,0xF1
  383. DEFINE_GUIDSTRUCT("3E227E76-690D-11D2-8161-0000F8775BF1",KSCATEGORY_WDMAUD);
  384. #define KSCATEGORY_WDMAUD DEFINE_GUIDNAMED(KSCATEGORY_WDMAUD)
  385. #define STATIC_KSCATEGORY_AUDIO_GFX \
  386. 0x9BAF9572,0x340C,0x11D3,0xAB,0xDC,0x00,0xA0,0xC9,0x0A,0xB1,0x6F
  387. DEFINE_GUIDSTRUCT("9BAF9572-340C-11D3-ABDC-00A0C90AB16F",KSCATEGORY_AUDIO_GFX);
  388. #define KSCATEGORY_AUDIO_GFX DEFINE_GUIDNAMED(KSCATEGORY_AUDIO_GFX)
  389. #define STATIC_KSCATEGORY_AUDIO_SPLITTER \
  390. 0x9EA331FA,0xB91B,0x45F8,0x92,0x85,0xBD,0x2B,0xC7,0x7A,0xFC,0xDE
  391. DEFINE_GUIDSTRUCT("9EA331FA-B91B-45F8-9285-BD2BC77AFCDE",KSCATEGORY_AUDIO_SPLITTER);
  392. #define KSCATEGORY_AUDIO_SPLITTER DEFINE_GUIDNAMED(KSCATEGORY_AUDIO_SPLITTER)
  393. #endif /* NTDDI_VERSION < NTDDI_VISTA */
  394. #define STATIC_KSCATEGORY_SYNTHESIZER STATIC_KSNODETYPE_SYNTHESIZER
  395. #define KSCATEGORY_SYNTHESIZER KSNODETYPE_SYNTHESIZER
  396. #define STATIC_KSCATEGORY_DRM_DESCRAMBLE STATIC_KSNODETYPE_DRM_DESCRAMBLE
  397. #define KSCATEGORY_DRM_DESCRAMBLE KSNODETYPE_DRM_DESCRAMBLE
  398. #if NTDDI_VERSION < NTDDI_VISTA
  399. #define STATIC_KSCATEGORY_AUDIO_DEVICE \
  400. 0xFBF6F530,0x07B9,0x11D2,0xA7,0x1E,0x00,0x00,0xF8,0x00,0x47,0x88
  401. DEFINE_GUIDSTRUCT("FBF6F530-07B9-11D2-A71E-0000F8004788",KSCATEGORY_AUDIO_DEVICE);
  402. #define KSCATEGORY_AUDIO_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_AUDIO_DEVICE)
  403. #define STATIC_KSCATEGORY_PREFERRED_WAVEOUT_DEVICE \
  404. 0xD6C5066E,0x72C1,0x11D2,0x97,0x55,0x00,0x00,0xF8,0x00,0x47,0x88
  405. DEFINE_GUIDSTRUCT("D6C5066E-72C1-11D2-9755-0000F8004788",KSCATEGORY_PREFERRED_WAVEOUT_DEVICE);
  406. #define KSCATEGORY_PREFERRED_WAVEOUT_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_PREFERRED_WAVEOUT_DEVICE)
  407. #define STATIC_KSCATEGORY_PREFERRED_WAVEIN_DEVICE \
  408. 0xD6C50671,0x72C1,0x11D2,0x97,0x55,0x00,0x00,0xF8,0x00,0x47,0x88
  409. DEFINE_GUIDSTRUCT("D6C50671-72C1-11D2-9755-0000F8004788",KSCATEGORY_PREFERRED_WAVEIN_DEVICE);
  410. #define KSCATEGORY_PREFERRED_WAVEIN_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_PREFERRED_WAVEIN_DEVICE)
  411. #define STATIC_KSCATEGORY_PREFERRED_MIDIOUT_DEVICE \
  412. 0xD6C50674,0x72C1,0x11D2,0x97,0x55,0x00,0x00,0xF8,0x00,0x47,0x88
  413. DEFINE_GUIDSTRUCT("D6C50674-72C1-11D2-9755-0000F8004788",KSCATEGORY_PREFERRED_MIDIOUT_DEVICE);
  414. #define KSCATEGORY_PREFERRED_MIDIOUT_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_PREFERRED_MIDIOUT_DEVICE)
  415. #endif /* NTDDI_VERSION < NTDDI_VISTA */
  416. #define STATIC_KSCATEGORY_WDMAUD_USE_PIN_NAME \
  417. 0x47A4FA20,0xA251,0x11D1,0xA0,0x50,0x00,0x00,0xF8,0x00,0x47,0x88
  418. DEFINE_GUIDSTRUCT("47A4FA20-A251-11D1-A050-0000F8004788",KSCATEGORY_WDMAUD_USE_PIN_NAME);
  419. #define KSCATEGORY_WDMAUD_USE_PIN_NAME DEFINE_GUIDNAMED(KSCATEGORY_WDMAUD_USE_PIN_NAME)
  420. #define STATIC_KSCATEGORY_ESCALANTE_PLATFORM_DRIVER \
  421. 0x74f3aea8,0x9768,0x11d1,0x8e,0x07,0x00,0xa0,0xc9,0x5e,0xc2,0x2e
  422. DEFINE_GUIDSTRUCT("74f3aea8-9768-11d1-8e07-00a0c95ec22e",KSCATEGORY_ESCALANTE_PLATFORM_DRIVER);
  423. #define KSCATEGORY_ESCALANTE_PLATFORM_DRIVER DEFINE_GUIDNAMED(KSCATEGORY_ESCALANTE_PLATFORM_DRIVER)
  424. #define STATIC_KSDATAFORMAT_TYPE_VIDEO \
  425. 0x73646976,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71
  426. DEFINE_GUIDSTRUCT("73646976-0000-0010-8000-00aa00389b71",KSDATAFORMAT_TYPE_VIDEO);
  427. #define KSDATAFORMAT_TYPE_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_VIDEO)
  428. #define STATIC_KSDATAFORMAT_TYPE_AUDIO \
  429. 0x73647561,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71
  430. DEFINE_GUIDSTRUCT("73647561-0000-0010-8000-00aa00389b71",KSDATAFORMAT_TYPE_AUDIO);
  431. #define KSDATAFORMAT_TYPE_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_AUDIO)
  432. #define STATIC_KSDATAFORMAT_TYPE_TEXT \
  433. 0x73747874,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71
  434. DEFINE_GUIDSTRUCT("73747874-0000-0010-8000-00aa00389b71",KSDATAFORMAT_TYPE_TEXT);
  435. #define KSDATAFORMAT_TYPE_TEXT DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_TEXT)
  436. #if !defined(DEFINE_WAVEFORMATEX_GUID)
  437. #define DEFINE_WAVEFORMATEX_GUID(x) \
  438. (USHORT)(x),0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71
  439. #endif
  440. #define STATIC_KSDATAFORMAT_SUBTYPE_WAVEFORMATEX \
  441. 0x00000000,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71
  442. DEFINE_GUIDSTRUCT("00000000-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_WAVEFORMATEX);
  443. #define KSDATAFORMAT_SUBTYPE_WAVEFORMATEX DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_WAVEFORMATEX)
  444. #define INIT_WAVEFORMATEX_GUID(Guid,x) \
  445. { \
  446. *(Guid) = KSDATAFORMAT_SUBTYPE_WAVEFORMATEX; \
  447. (Guid)->Data1 = (USHORT)(x); \
  448. }
  449. #define EXTRACT_WAVEFORMATEX_ID(Guid) \
  450. (USHORT)((Guid)->Data1)
  451. #define IS_VALID_WAVEFORMATEX_GUID(Guid) \
  452. (!memcmp(((PUSHORT)&KSDATAFORMAT_SUBTYPE_WAVEFORMATEX) + 1, ((PUSHORT)(Guid)) + 1,sizeof(GUID) - sizeof(USHORT)))
  453. #ifndef INIT_MMREG_MID
  454. #define INIT_MMREG_MID(guid,id) \
  455. { \
  456. (guid)->Data1 = 0xd5a47fa7 + (USHORT)(id); \
  457. (guid)->Data2 = 0x6d98; \
  458. (guid)->Data3 = 0x11d1; \
  459. (guid)->Data4[0] = 0xa2; \
  460. (guid)->Data4[1] = 0x1a; \
  461. (guid)->Data4[2] = 0x00; \
  462. (guid)->Data4[3] = 0xa0; \
  463. (guid)->Data4[4] = 0xc9; \
  464. (guid)->Data4[5] = 0x22; \
  465. (guid)->Data4[6] = 0x31; \
  466. (guid)->Data4[7] = 0x96; \
  467. }
  468. #define EXTRACT_MMREG_MID(guid) \
  469. (USHORT)((guid)->Data1 - 0xd5a47fa7)
  470. #define DEFINE_MMREG_MID_GUID(id) \
  471. 0xd5a47fa7+(USHORT)(id),0x6d98,0x11d1,0xa2,0x1a,0x00,0xa0,0xc9,0x22,0x31,0x96
  472. #define IS_COMPATIBLE_MMREG_MID(guid) \
  473. (((guid)->Data1 >= 0xd5a47fa7) && \
  474. ((guid)->Data1 < 0xd5a47fa7 + 0xffff) && \
  475. ((guid)->Data2 == 0x6d98) && \
  476. ((guid)->Data3 == 0x11d1) && \
  477. ((guid)->Data4[0] == 0xa2) && \
  478. ((guid)->Data4[1] == 0x1a) && \
  479. ((guid)->Data4[2] == 0x00) && \
  480. ((guid)->Data4[3] == 0xa0) && \
  481. ((guid)->Data4[4] == 0xc9) && \
  482. ((guid)->Data4[5] == 0x22) && \
  483. ((guid)->Data4[6] == 0x31) && \
  484. ((guid)->Data4[7] == 0x96) )
  485. #endif /* INIT_MMREG_MID */
  486. #ifndef INIT_MMREG_PID
  487. #define INIT_MMREG_PID(guid,id) \
  488. { \
  489. (guid)->Data1 = 0xe36dc2ac + (USHORT)(id); \
  490. (guid)->Data2 = 0x6d9a; \
  491. (guid)->Data3 = 0x11d1; \
  492. (guid)->Data4[0] = 0xa2; \
  493. (guid)->Data4[1] = 0x1a; \
  494. (guid)->Data4[2] = 0x00; \
  495. (guid)->Data4[3] = 0xa0; \
  496. (guid)->Data4[4] = 0xc9; \
  497. (guid)->Data4[5] = 0x22; \
  498. (guid)->Data4[6] = 0x31; \
  499. (guid)->Data4[7] = 0x96; \
  500. }
  501. #define EXTRACT_MMREG_PID(guid) \
  502. (USHORT)((guid)->Data1 - 0xe36dc2ac)
  503. #define DEFINE_MMREG_PID_GUID(id) \
  504. 0xe36dc2ac+(USHORT)(id),0x6d9a,0x11d1,0xa2,0x1a,0x00,0xa0,0xc9,0x22,0x31,0x96
  505. #define IS_COMPATIBLE_MMREG_PID(guid) \
  506. (((guid)->Data1 >= 0xe36dc2ac) && \
  507. ((guid)->Data1 < 0xe36dc2ac + 0xffff) && \
  508. ((guid)->Data2 == 0x6d9a) && \
  509. ((guid)->Data3 == 0x11d1) && \
  510. ((guid)->Data4[0] == 0xa2) && \
  511. ((guid)->Data4[1] == 0x1a) && \
  512. ((guid)->Data4[2] == 0x00) && \
  513. ((guid)->Data4[3] == 0xa0) && \
  514. ((guid)->Data4[4] == 0xc9) && \
  515. ((guid)->Data4[5] == 0x22) && \
  516. ((guid)->Data4[6] == 0x31) && \
  517. ((guid)->Data4[7] == 0x96) )
  518. #endif /* INIT_MMREG_PID */
  519. #define STATIC_KSDATAFORMAT_SUBTYPE_ANALOG \
  520. 0x6dba3190,0x67bd,0x11cf,0xa0,0xf7,0x00,0x20,0xaf,0xd1,0x56,0xe4
  521. DEFINE_GUIDSTRUCT("6dba3190-67bd-11cf-a0f7-0020afd156e4",KSDATAFORMAT_SUBTYPE_ANALOG);
  522. #define KSDATAFORMAT_SUBTYPE_ANALOG DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_ANALOG)
  523. #define STATIC_KSDATAFORMAT_SUBTYPE_PCM \
  524. DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_PCM)
  525. DEFINE_GUIDSTRUCT("00000001-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_PCM);
  526. #define KSDATAFORMAT_SUBTYPE_PCM DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_PCM)
  527. #ifdef _INC_MMREG
  528. #define STATIC_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT \
  529. DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_IEEE_FLOAT)
  530. DEFINE_GUIDSTRUCT("00000003-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_IEEE_FLOAT);
  531. #define KSDATAFORMAT_SUBTYPE_IEEE_FLOAT DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_IEEE_FLOAT)
  532. #define STATIC_KSDATAFORMAT_SUBTYPE_DRM \
  533. DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_DRM)
  534. DEFINE_GUIDSTRUCT("00000009-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_DRM);
  535. #define KSDATAFORMAT_SUBTYPE_DRM DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DRM)
  536. #define STATIC_KSDATAFORMAT_SUBTYPE_ALAW \
  537. DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_ALAW)
  538. DEFINE_GUIDSTRUCT("00000006-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_ALAW);
  539. #define KSDATAFORMAT_SUBTYPE_ALAW DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_ALAW)
  540. #define STATIC_KSDATAFORMAT_SUBTYPE_MULAW \
  541. DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_MULAW)
  542. DEFINE_GUIDSTRUCT("00000007-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_MULAW);
  543. #define KSDATAFORMAT_SUBTYPE_MULAW DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MULAW)
  544. #define STATIC_KSDATAFORMAT_SUBTYPE_ADPCM \
  545. DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_ADPCM)
  546. DEFINE_GUIDSTRUCT("00000002-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_ADPCM);
  547. #define KSDATAFORMAT_SUBTYPE_ADPCM DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_ADPCM)
  548. #define STATIC_KSDATAFORMAT_SUBTYPE_MPEG \
  549. DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_MPEG)
  550. DEFINE_GUIDSTRUCT("00000050-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_MPEG);
  551. #define KSDATAFORMAT_SUBTYPE_MPEG DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG)
  552. #endif /* _INC_MMREG */
  553. #define STATIC_KSDATAFORMAT_SPECIFIER_VC_ID \
  554. 0xAD98D184,0xAAC3,0x11D0,0xA4,0x1C,0x00,0xA0,0xC9,0x22,0x31,0x96
  555. DEFINE_GUIDSTRUCT("AD98D184-AAC3-11D0-A41C-00A0C9223196",KSDATAFORMAT_SPECIFIER_VC_ID);
  556. #define KSDATAFORMAT_SPECIFIER_VC_ID DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_VC_ID)
  557. #define STATIC_KSDATAFORMAT_SPECIFIER_WAVEFORMATEX \
  558. 0x05589f81,0xc356,0x11ce,0xbf,0x01,0x00,0xaa,0x00,0x55,0x59,0x5a
  559. DEFINE_GUIDSTRUCT("05589f81-c356-11ce-bf01-00aa0055595a",KSDATAFORMAT_SPECIFIER_WAVEFORMATEX);
  560. #define KSDATAFORMAT_SPECIFIER_WAVEFORMATEX DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
  561. #define STATIC_KSDATAFORMAT_SPECIFIER_DSOUND \
  562. 0x518590a2,0xa184,0x11d0,0x85,0x22,0x00,0xc0,0x4f,0xd9,0xba,0xf3
  563. DEFINE_GUIDSTRUCT("518590a2-a184-11d0-8522-00c04fd9baf3",KSDATAFORMAT_SPECIFIER_DSOUND);
  564. #define KSDATAFORMAT_SPECIFIER_DSOUND DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DSOUND)
  565. #if defined(_INC_MMSYSTEM) || defined(_INC_MMREG)
  566. #if !defined(PACK_PRAGMAS_NOT_SUPPORTED)
  567. #include <pshpack1.h>
  568. #endif
  569. typedef struct {
  570. KSDATAFORMAT DataFormat;
  571. WAVEFORMATEX WaveFormatEx;
  572. } KSDATAFORMAT_WAVEFORMATEX,*PKSDATAFORMAT_WAVEFORMATEX;
  573. #ifndef _WAVEFORMATEXTENSIBLE_
  574. #define _WAVEFORMATEXTENSIBLE_
  575. typedef struct {
  576. WAVEFORMATEX Format;
  577. union {
  578. WORD wValidBitsPerSample;
  579. WORD wSamplesPerBlock;
  580. WORD wReserved;
  581. } Samples;
  582. DWORD dwChannelMask;
  583. GUID SubFormat;
  584. } WAVEFORMATEXTENSIBLE,*PWAVEFORMATEXTENSIBLE;
  585. #endif /* _WAVEFORMATEXTENSIBLE_ */
  586. #if !defined(WAVE_FORMAT_EXTENSIBLE)
  587. #define WAVE_FORMAT_EXTENSIBLE 0xFFFE
  588. #endif
  589. typedef struct {
  590. ULONG Flags;
  591. ULONG Control;
  592. WAVEFORMATEX WaveFormatEx;
  593. } KSDSOUND_BUFFERDESC,*PKSDSOUND_BUFFERDESC;
  594. typedef struct {
  595. KSDATAFORMAT DataFormat;
  596. KSDSOUND_BUFFERDESC BufferDesc;
  597. } KSDATAFORMAT_DSOUND,*PKSDATAFORMAT_DSOUND;
  598. #if !defined(PACK_PRAGMAS_NOT_SUPPORTED)
  599. #include <poppack.h>
  600. #endif
  601. #endif /* defined(_INC_MMSYSTEM) || defined(_INC_MMREG) */
  602. #define KSDSOUND_BUFFER_PRIMARY 0x00000001
  603. #define KSDSOUND_BUFFER_STATIC 0x00000002
  604. #define KSDSOUND_BUFFER_LOCHARDWARE 0x00000004
  605. #define KSDSOUND_BUFFER_LOCSOFTWARE 0x00000008
  606. #define KSDSOUND_BUFFER_CTRL_3D 0x00000001
  607. #define KSDSOUND_BUFFER_CTRL_FREQUENCY 0x00000002
  608. #define KSDSOUND_BUFFER_CTRL_PAN 0x00000004
  609. #define KSDSOUND_BUFFER_CTRL_VOLUME 0x00000008
  610. #define KSDSOUND_BUFFER_CTRL_POSITIONNOTIFY 0x00000010
  611. typedef struct {
  612. DWORDLONG PlayOffset;
  613. DWORDLONG WriteOffset;
  614. } KSAUDIO_POSITION,*PKSAUDIO_POSITION;
  615. typedef struct _DS3DVECTOR {
  616. __C89_NAMELESS union {
  617. FLOAT x;
  618. FLOAT dvX;
  619. };
  620. __C89_NAMELESS union {
  621. FLOAT y;
  622. FLOAT dvY;
  623. };
  624. __C89_NAMELESS union {
  625. FLOAT z;
  626. FLOAT dvZ;
  627. };
  628. } DS3DVECTOR,*PDS3DVECTOR;
  629. #define STATIC_KSPROPSETID_DirectSound3DListener \
  630. 0x437b3414,0xd060,0x11d0,0x85,0x83,0x00,0xc0,0x4f,0xd9,0xba,0xf3
  631. DEFINE_GUIDSTRUCT("437b3414-d060-11d0-8583-00c04fd9baf3",KSPROPSETID_DirectSound3DListener);
  632. #define KSPROPSETID_DirectSound3DListener DEFINE_GUIDNAMED(KSPROPSETID_DirectSound3DListener)
  633. typedef enum {
  634. KSPROPERTY_DIRECTSOUND3DLISTENER_ALL,
  635. KSPROPERTY_DIRECTSOUND3DLISTENER_POSITION,
  636. KSPROPERTY_DIRECTSOUND3DLISTENER_VELOCITY,
  637. KSPROPERTY_DIRECTSOUND3DLISTENER_ORIENTATION,
  638. KSPROPERTY_DIRECTSOUND3DLISTENER_DISTANCEFACTOR,
  639. KSPROPERTY_DIRECTSOUND3DLISTENER_ROLLOFFFACTOR,
  640. KSPROPERTY_DIRECTSOUND3DLISTENER_DOPPLERFACTOR,
  641. KSPROPERTY_DIRECTSOUND3DLISTENER_BATCH,
  642. KSPROPERTY_DIRECTSOUND3DLISTENER_ALLOCATION
  643. } KSPROPERTY_DIRECTSOUND3DLISTENER;
  644. typedef struct {
  645. DS3DVECTOR Position;
  646. DS3DVECTOR Velocity;
  647. DS3DVECTOR OrientFront;
  648. DS3DVECTOR OrientTop;
  649. FLOAT DistanceFactor;
  650. FLOAT RolloffFactor;
  651. FLOAT DopplerFactor;
  652. } KSDS3D_LISTENER_ALL,*PKSDS3D_LISTENER_ALL;
  653. typedef struct {
  654. DS3DVECTOR Front;
  655. DS3DVECTOR Top;
  656. } KSDS3D_LISTENER_ORIENTATION,*PKSDS3D_LISTENER_ORIENTATION;
  657. #define STATIC_KSPROPSETID_DirectSound3DBuffer \
  658. 0x437b3411,0xd060,0x11d0,0x85,0x83,0x00,0xc0,0x4f,0xd9,0xba,0xf3
  659. DEFINE_GUIDSTRUCT("437b3411-d060-11d0-8583-00c04fd9baf3",KSPROPSETID_DirectSound3DBuffer);
  660. #define KSPROPSETID_DirectSound3DBuffer DEFINE_GUIDNAMED(KSPROPSETID_DirectSound3DBuffer)
  661. typedef enum {
  662. KSPROPERTY_DIRECTSOUND3DBUFFER_ALL,
  663. KSPROPERTY_DIRECTSOUND3DBUFFER_POSITION,
  664. KSPROPERTY_DIRECTSOUND3DBUFFER_VELOCITY,
  665. KSPROPERTY_DIRECTSOUND3DBUFFER_CONEANGLES,
  666. KSPROPERTY_DIRECTSOUND3DBUFFER_CONEORIENTATION,
  667. KSPROPERTY_DIRECTSOUND3DBUFFER_CONEOUTSIDEVOLUME,
  668. KSPROPERTY_DIRECTSOUND3DBUFFER_MINDISTANCE,
  669. KSPROPERTY_DIRECTSOUND3DBUFFER_MAXDISTANCE,
  670. KSPROPERTY_DIRECTSOUND3DBUFFER_MODE
  671. } KSPROPERTY_DIRECTSOUND3DBUFFER;
  672. typedef struct {
  673. DS3DVECTOR Position;
  674. DS3DVECTOR Velocity;
  675. ULONG InsideConeAngle;
  676. ULONG OutsideConeAngle;
  677. DS3DVECTOR ConeOrientation;
  678. LONG ConeOutsideVolume;
  679. FLOAT MinDistance;
  680. FLOAT MaxDistance;
  681. ULONG Mode;
  682. } KSDS3D_BUFFER_ALL,*PKSDS3D_BUFFER_ALL;
  683. typedef struct {
  684. ULONG InsideConeAngle;
  685. ULONG OutsideConeAngle;
  686. } KSDS3D_BUFFER_CONE_ANGLES,*PKSDS3D_BUFFER_CONE_ANGLES;
  687. #define KSAUDIO_STEREO_SPEAKER_GEOMETRY_HEADPHONE (-1)
  688. #define KSAUDIO_STEREO_SPEAKER_GEOMETRY_MIN 5
  689. #define KSAUDIO_STEREO_SPEAKER_GEOMETRY_NARROW 10
  690. #define KSAUDIO_STEREO_SPEAKER_GEOMETRY_WIDE 20
  691. #define KSAUDIO_STEREO_SPEAKER_GEOMETRY_MAX 180
  692. #define KSDSOUND_3D_MODE_NORMAL 0x00000000
  693. #define KSDSOUND_3D_MODE_HEADRELATIVE 0x00000001
  694. #define KSDSOUND_3D_MODE_DISABLE 0x00000002
  695. #define KSDSOUND_BUFFER_CTRL_HRTF_3D 0x40000000
  696. typedef struct {
  697. ULONG Size;
  698. ULONG Enabled;
  699. WINBOOL SwapChannels;
  700. WINBOOL ZeroAzimuth;
  701. WINBOOL CrossFadeOutput;
  702. ULONG FilterSize;
  703. } KSDS3D_HRTF_PARAMS_MSG,*PKSDS3D_HRTF_PARAMS_MSG;
  704. typedef enum {
  705. FULL_FILTER,
  706. LIGHT_FILTER,
  707. KSDS3D_FILTER_QUALITY_COUNT
  708. } KSDS3D_HRTF_FILTER_QUALITY;
  709. typedef struct {
  710. ULONG Size;
  711. KSDS3D_HRTF_FILTER_QUALITY Quality;
  712. FLOAT SampleRate;
  713. ULONG MaxFilterSize;
  714. ULONG FilterTransientMuteLength;
  715. ULONG FilterOverlapBufferLength;
  716. ULONG OutputOverlapBufferLength;
  717. ULONG Reserved;
  718. } KSDS3D_HRTF_INIT_MSG,*PKSDS3D_HRTF_INIT_MSG;
  719. typedef enum {
  720. FLOAT_COEFF,
  721. SHORT_COEFF,
  722. KSDS3D_COEFF_COUNT
  723. } KSDS3D_HRTF_COEFF_FORMAT;
  724. typedef enum {
  725. DIRECT_FORM,
  726. CASCADE_FORM,
  727. KSDS3D_FILTER_METHOD_COUNT
  728. } KSDS3D_HRTF_FILTER_METHOD;
  729. typedef enum {
  730. DS3D_HRTF_VERSION_1
  731. } KSDS3D_HRTF_FILTER_VERSION;
  732. typedef struct {
  733. KSDS3D_HRTF_FILTER_METHOD FilterMethod;
  734. KSDS3D_HRTF_COEFF_FORMAT CoeffFormat;
  735. KSDS3D_HRTF_FILTER_VERSION Version;
  736. ULONG Reserved;
  737. } KSDS3D_HRTF_FILTER_FORMAT_MSG,*PKSDS3D_HRTF_FILTER_FORMAT_MSG;
  738. #define STATIC_KSPROPSETID_Hrtf3d \
  739. 0xb66decb0,0xa083,0x11d0,0x85,0x1e,0x00,0xc0,0x4f,0xd9,0xba,0xf3
  740. DEFINE_GUIDSTRUCT("b66decb0-a083-11d0-851e-00c04fd9baf3",KSPROPSETID_Hrtf3d);
  741. #define KSPROPSETID_Hrtf3d DEFINE_GUIDNAMED(KSPROPSETID_Hrtf3d)
  742. typedef enum {
  743. KSPROPERTY_HRTF3D_PARAMS = 0,
  744. KSPROPERTY_HRTF3D_INITIALIZE,
  745. KSPROPERTY_HRTF3D_FILTER_FORMAT
  746. } KSPROPERTY_HRTF3D;
  747. typedef struct {
  748. LONG Channel;
  749. FLOAT VolSmoothScale;
  750. FLOAT TotalDryAttenuation;
  751. FLOAT TotalWetAttenuation;
  752. LONG SmoothFrequency;
  753. LONG Delay;
  754. } KSDS3D_ITD_PARAMS,*PKSDS3D_ITD_PARAMS;
  755. typedef struct {
  756. ULONG Enabled;
  757. KSDS3D_ITD_PARAMS LeftParams;
  758. KSDS3D_ITD_PARAMS RightParams;
  759. ULONG Reserved;
  760. } KSDS3D_ITD_PARAMS_MSG,*PKSDS3D_ITD_PARAMS_MSG;
  761. #define STATIC_KSPROPSETID_Itd3d \
  762. 0x6429f090,0x9fd9,0x11d0,0xa7,0x5b,0x00,0xa0,0xc9,0x03,0x65,0xe3
  763. DEFINE_GUIDSTRUCT("6429f090-9fd9-11d0-a75b-00a0c90365e3",KSPROPSETID_Itd3d);
  764. #define KSPROPSETID_Itd3d DEFINE_GUIDNAMED(KSPROPSETID_Itd3d)
  765. typedef enum {
  766. KSPROPERTY_ITD3D_PARAMS = 0
  767. } KSPROPERTY_ITD3D;
  768. typedef struct {
  769. KSDATARANGE DataRange;
  770. ULONG MaximumChannels;
  771. ULONG MinimumBitsPerSample;
  772. ULONG MaximumBitsPerSample;
  773. ULONG MinimumSampleFrequency;
  774. ULONG MaximumSampleFrequency;
  775. } KSDATARANGE_AUDIO,*PKSDATARANGE_AUDIO;
  776. #define STATIC_KSDATAFORMAT_SUBTYPE_RIFF \
  777. 0x4995DAEE,0x9EE6,0x11D0,0xA4,0x0E,0x00,0xA0,0xC9,0x22,0x31,0x96
  778. DEFINE_GUIDSTRUCT("4995DAEE-9EE6-11D0-A40E-00A0C9223196",KSDATAFORMAT_SUBTYPE_RIFF);
  779. #define KSDATAFORMAT_SUBTYPE_RIFF DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_RIFF)
  780. #define STATIC_KSDATAFORMAT_SUBTYPE_RIFFWAVE \
  781. 0xe436eb8b,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70
  782. DEFINE_GUIDSTRUCT("e436eb8b-524f-11ce-9f53-0020af0ba770",KSDATAFORMAT_SUBTYPE_RIFFWAVE);
  783. #define KSDATAFORMAT_SUBTYPE_RIFFWAVE DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_RIFFWAVE)
  784. #define STATIC_KSPROPSETID_Bibliographic \
  785. 0x07BA150E,0xE2B1,0x11D0,0xAC,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
  786. DEFINE_GUIDSTRUCT("07BA150E-E2B1-11D0-AC17-00A0C9223196",KSPROPSETID_Bibliographic);
  787. #define KSPROPSETID_Bibliographic DEFINE_GUIDNAMED(KSPROPSETID_Bibliographic)
  788. typedef enum {
  789. KSPROPERTY_BIBLIOGRAPHIC_LEADER = 'RDL ',
  790. KSPROPERTY_BIBLIOGRAPHIC_LCCN = '010 ',
  791. KSPROPERTY_BIBLIOGRAPHIC_ISBN = '020 ',
  792. KSPROPERTY_BIBLIOGRAPHIC_ISSN = '220 ',
  793. KSPROPERTY_BIBLIOGRAPHIC_CATALOGINGSOURCE = '040 ',
  794. KSPROPERTY_BIBLIOGRAPHIC_MAINPERSONALNAME = '001 ',
  795. KSPROPERTY_BIBLIOGRAPHIC_MAINCORPORATEBODY = '011 ',
  796. KSPROPERTY_BIBLIOGRAPHIC_MAINMEETINGNAME = '111 ',
  797. KSPROPERTY_BIBLIOGRAPHIC_MAINUNIFORMTITLE = '031 ',
  798. KSPROPERTY_BIBLIOGRAPHIC_UNIFORMTITLE = '042 ',
  799. KSPROPERTY_BIBLIOGRAPHIC_TITLESTATEMENT = '542 ',
  800. KSPROPERTY_BIBLIOGRAPHIC_VARYINGFORMTITLE = '642 ',
  801. KSPROPERTY_BIBLIOGRAPHIC_PUBLICATION = '062 ',
  802. KSPROPERTY_BIBLIOGRAPHIC_PHYSICALDESCRIPTION = '003 ',
  803. KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYTITLE = '044 ',
  804. KSPROPERTY_BIBLIOGRAPHIC_SERIESSTATEMENT = '094 ',
  805. KSPROPERTY_BIBLIOGRAPHIC_GENERALNOTE = '005 ',
  806. KSPROPERTY_BIBLIOGRAPHIC_BIBLIOGRAPHYNOTE = '405 ',
  807. KSPROPERTY_BIBLIOGRAPHIC_CONTENTSNOTE = '505 ',
  808. KSPROPERTY_BIBLIOGRAPHIC_CREATIONCREDIT = '805 ',
  809. KSPROPERTY_BIBLIOGRAPHIC_CITATION = '015 ',
  810. KSPROPERTY_BIBLIOGRAPHIC_PARTICIPANT = '115 ',
  811. KSPROPERTY_BIBLIOGRAPHIC_SUMMARY = '025 ',
  812. KSPROPERTY_BIBLIOGRAPHIC_TARGETAUDIENCE = '125 ',
  813. KSPROPERTY_BIBLIOGRAPHIC_ADDEDFORMAVAILABLE = '035 ',
  814. KSPROPERTY_BIBLIOGRAPHIC_SYSTEMDETAILS = '835 ',
  815. KSPROPERTY_BIBLIOGRAPHIC_AWARDS = '685 ',
  816. KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYPERSONALNAME = '006 ',
  817. KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYTOPICALTERM = '056 ',
  818. KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYGEOGRAPHIC = '156 ',
  819. KSPROPERTY_BIBLIOGRAPHIC_INDEXTERMGENRE = '556 ',
  820. KSPROPERTY_BIBLIOGRAPHIC_INDEXTERMCURRICULUM = '856 ',
  821. KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYUNIFORMTITLE = '037 ',
  822. KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYRELATED = '047 ',
  823. KSPROPERTY_BIBLIOGRAPHIC_SERIESSTATEMENTPERSONALNAME = '008 ',
  824. KSPROPERTY_BIBLIOGRAPHIC_SERIESSTATEMENTUNIFORMTITLE = '038 '
  825. } KSPROPERTY_BIBLIOGRAPHIC;
  826. #define STATIC_KSPROPSETID_TopologyNode \
  827. 0x45FFAAA1,0x6E1B,0x11D0,0xBC,0xF2,0x44,0x45,0x53,0x54,0x00,0x00
  828. DEFINE_GUIDSTRUCT("45FFAAA1-6E1B-11D0-BCF2-444553540000",KSPROPSETID_TopologyNode);
  829. #define KSPROPSETID_TopologyNode DEFINE_GUIDNAMED(KSPROPSETID_TopologyNode)
  830. typedef enum {
  831. KSPROPERTY_TOPOLOGYNODE_ENABLE = 1,
  832. KSPROPERTY_TOPOLOGYNODE_RESET
  833. } KSPROPERTY_TOPOLOGYNODE;
  834. #define STATIC_KSPROPSETID_RtAudio \
  835. 0xa855a48c,0x2f78,0x4729,0x90,0x51,0x19,0x68,0x74,0x6b,0x9e,0xef
  836. DEFINE_GUIDSTRUCT("A855A48C-2F78-4729-9051-1968746B9EEF",KSPROPSETID_RtAudio);
  837. #define KSPROPSETID_RtAudio DEFINE_GUIDNAMED(KSPROPSETID_RtAudio)
  838. typedef enum {
  839. KSPROPERTY_RTAUDIO_GETPOSITIONFUNCTION
  840. } KSPROPERTY_RTAUDIO;
  841. #define STATIC_KSPROPSETID_DrmAudioStream \
  842. 0x2f2c8ddd,0x4198,0x4fac,0xba,0x29,0x61,0xbb,0x5,0xb7,0xde,0x6
  843. DEFINE_GUIDSTRUCT("2F2C8DDD-4198-4fac-BA29-61BB05B7DE06",KSPROPSETID_DrmAudioStream);
  844. #define KSPROPSETID_DrmAudioStream DEFINE_GUIDNAMED(KSPROPSETID_DrmAudioStream)
  845. typedef enum {
  846. KSPROPERTY_DRMAUDIOSTREAM_CONTENTID
  847. } KSPROPERTY_DRMAUDIOSTREAM;
  848. #define STATIC_KSPROPSETID_Audio \
  849. 0x45FFAAA0,0x6E1B,0x11D0,0xBC,0xF2,0x44,0x45,0x53,0x54,0x00,0x00
  850. DEFINE_GUIDSTRUCT("45FFAAA0-6E1B-11D0-BCF2-444553540000",KSPROPSETID_Audio);
  851. #define KSPROPSETID_Audio DEFINE_GUIDNAMED(KSPROPSETID_Audio)
  852. typedef enum {
  853. KSPROPERTY_AUDIO_LATENCY = 1,
  854. KSPROPERTY_AUDIO_COPY_PROTECTION,
  855. KSPROPERTY_AUDIO_CHANNEL_CONFIG,
  856. KSPROPERTY_AUDIO_VOLUMELEVEL,
  857. KSPROPERTY_AUDIO_POSITION,
  858. KSPROPERTY_AUDIO_DYNAMIC_RANGE,
  859. KSPROPERTY_AUDIO_QUALITY,
  860. KSPROPERTY_AUDIO_SAMPLING_RATE,
  861. KSPROPERTY_AUDIO_DYNAMIC_SAMPLING_RATE,
  862. KSPROPERTY_AUDIO_MIX_LEVEL_TABLE,
  863. KSPROPERTY_AUDIO_MIX_LEVEL_CAPS,
  864. KSPROPERTY_AUDIO_MUX_SOURCE,
  865. KSPROPERTY_AUDIO_MUTE,
  866. KSPROPERTY_AUDIO_BASS,
  867. KSPROPERTY_AUDIO_MID,
  868. KSPROPERTY_AUDIO_TREBLE,
  869. KSPROPERTY_AUDIO_BASS_BOOST,
  870. KSPROPERTY_AUDIO_EQ_LEVEL,
  871. KSPROPERTY_AUDIO_NUM_EQ_BANDS,
  872. KSPROPERTY_AUDIO_EQ_BANDS,
  873. KSPROPERTY_AUDIO_AGC,
  874. KSPROPERTY_AUDIO_DELAY,
  875. KSPROPERTY_AUDIO_LOUDNESS,
  876. KSPROPERTY_AUDIO_WIDE_MODE,
  877. KSPROPERTY_AUDIO_WIDENESS,
  878. KSPROPERTY_AUDIO_REVERB_LEVEL,
  879. KSPROPERTY_AUDIO_CHORUS_LEVEL,
  880. KSPROPERTY_AUDIO_DEV_SPECIFIC,
  881. KSPROPERTY_AUDIO_DEMUX_DEST,
  882. KSPROPERTY_AUDIO_STEREO_ENHANCE,
  883. KSPROPERTY_AUDIO_MANUFACTURE_GUID,
  884. KSPROPERTY_AUDIO_PRODUCT_GUID,
  885. KSPROPERTY_AUDIO_CPU_RESOURCES,
  886. KSPROPERTY_AUDIO_STEREO_SPEAKER_GEOMETRY,
  887. KSPROPERTY_AUDIO_SURROUND_ENCODE,
  888. KSPROPERTY_AUDIO_3D_INTERFACE,
  889. KSPROPERTY_AUDIO_PEAKMETER,
  890. KSPROPERTY_AUDIO_ALGORITHM_INSTANCE,
  891. KSPROPERTY_AUDIO_FILTER_STATE,
  892. KSPROPERTY_AUDIO_PREFERRED_STATUS
  893. } KSPROPERTY_AUDIO;
  894. #define KSAUDIO_QUALITY_WORST 0x0
  895. #define KSAUDIO_QUALITY_PC 0x1
  896. #define KSAUDIO_QUALITY_BASIC 0x2
  897. #define KSAUDIO_QUALITY_ADVANCED 0x3
  898. #define KSAUDIO_CPU_RESOURCES_NOT_HOST_CPU 0x00000000
  899. #define KSAUDIO_CPU_RESOURCES_HOST_CPU 0x7FFFFFFF
  900. typedef struct {
  901. WINBOOL fCopyrighted;
  902. WINBOOL fOriginal;
  903. } KSAUDIO_COPY_PROTECTION,*PKSAUDIO_COPY_PROTECTION;
  904. typedef struct {
  905. LONG ActiveSpeakerPositions;
  906. } KSAUDIO_CHANNEL_CONFIG,*PKSAUDIO_CHANNEL_CONFIG;
  907. #ifndef _SPEAKER_POSITIONS_
  908. #define _SPEAKER_POSITIONS_
  909. #define SPEAKER_FRONT_LEFT 0x1
  910. #define SPEAKER_FRONT_RIGHT 0x2
  911. #define SPEAKER_FRONT_CENTER 0x4
  912. #define SPEAKER_LOW_FREQUENCY 0x8
  913. #define SPEAKER_BACK_LEFT 0x10
  914. #define SPEAKER_BACK_RIGHT 0x20
  915. #define SPEAKER_FRONT_LEFT_OF_CENTER 0x40
  916. #define SPEAKER_FRONT_RIGHT_OF_CENTER 0x80
  917. #define SPEAKER_BACK_CENTER 0x100
  918. #define SPEAKER_SIDE_LEFT 0x200
  919. #define SPEAKER_SIDE_RIGHT 0x400
  920. #define SPEAKER_TOP_CENTER 0x800
  921. #define SPEAKER_TOP_FRONT_LEFT 0x1000
  922. #define SPEAKER_TOP_FRONT_CENTER 0x2000
  923. #define SPEAKER_TOP_FRONT_RIGHT 0x4000
  924. #define SPEAKER_TOP_BACK_LEFT 0x8000
  925. #define SPEAKER_TOP_BACK_CENTER 0x10000
  926. #define SPEAKER_TOP_BACK_RIGHT 0x20000
  927. #define SPEAKER_RESERVED 0x7FFC0000
  928. #define SPEAKER_ALL 0x80000000
  929. #endif /* _SPEAKER_POSITIONS_ */
  930. #define KSAUDIO_SPEAKER_DIRECTOUT 0
  931. #define KSAUDIO_SPEAKER_MONO (SPEAKER_FRONT_CENTER)
  932. #define KSAUDIO_SPEAKER_STEREO (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT)
  933. #define KSAUDIO_SPEAKER_QUAD (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
  934. SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT)
  935. #define KSAUDIO_SPEAKER_SURROUND (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
  936. SPEAKER_FRONT_CENTER | SPEAKER_BACK_CENTER)
  937. #define KSAUDIO_SPEAKER_5POINT1 (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
  938. SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \
  939. SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT)
  940. #define KSAUDIO_SPEAKER_7POINT1 (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
  941. SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \
  942. SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT | \
  943. SPEAKER_FRONT_LEFT_OF_CENTER | SPEAKER_FRONT_RIGHT_OF_CENTER)
  944. #define KSAUDIO_SPEAKER_5POINT1_SURROUND (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
  945. SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \
  946. SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT)
  947. #define KSAUDIO_SPEAKER_7POINT1_SURROUND (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
  948. SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \
  949. SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT | \
  950. SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT)
  951. #define KSAUDIO_SPEAKER_5POINT1_BACK KSAUDIO_SPEAKER_5POINT1
  952. #define KSAUDIO_SPEAKER_7POINT1_WIDE KSAUDIO_SPEAKER_7POINT1
  953. #define KSAUDIO_SPEAKER_GROUND_FRONT_LEFT SPEAKER_FRONT_LEFT
  954. #define KSAUDIO_SPEAKER_GROUND_FRONT_CENTER SPEAKER_FRONT_CENTER
  955. #define KSAUDIO_SPEAKER_GROUND_FRONT_RIGHT SPEAKER_FRONT_RIGHT
  956. #define KSAUDIO_SPEAKER_GROUND_REAR_LEFT SPEAKER_BACK_LEFT
  957. #define KSAUDIO_SPEAKER_GROUND_REAR_RIGHT SPEAKER_BACK_RIGHT
  958. #define KSAUDIO_SPEAKER_TOP_MIDDLE SPEAKER_TOP_CENTER
  959. #define KSAUDIO_SPEAKER_SUPER_WOOFER SPEAKER_LOW_FREQUENCY
  960. typedef struct {
  961. ULONG QuietCompression;
  962. ULONG LoudCompression;
  963. } KSAUDIO_DYNAMIC_RANGE,*PKSAUDIO_DYNAMIC_RANGE;
  964. typedef struct {
  965. WINBOOL Mute;
  966. LONG Level;
  967. } KSAUDIO_MIXLEVEL,*PKSAUDIO_MIXLEVEL;
  968. typedef struct {
  969. WINBOOL Mute;
  970. LONG Minimum;
  971. LONG Maximum;
  972. LONG Reset;
  973. } KSAUDIO_MIX_CAPS,*PKSAUDIO_MIX_CAPS;
  974. typedef struct {
  975. ULONG InputChannels;
  976. ULONG OutputChannels;
  977. KSAUDIO_MIX_CAPS Capabilities[1];
  978. } KSAUDIO_MIXCAP_TABLE,*PKSAUDIO_MIXCAP_TABLE;
  979. typedef enum {
  980. SE_TECH_NONE,
  981. SE_TECH_ANALOG_DEVICES_PHAT,
  982. SE_TECH_CREATIVE,
  983. SE_TECH_NATIONAL_SEMI,
  984. SE_TECH_YAMAHA_YMERSION,
  985. SE_TECH_BBE,
  986. SE_TECH_CRYSTAL_SEMI,
  987. SE_TECH_QSOUND_QXPANDER,
  988. SE_TECH_SPATIALIZER,
  989. SE_TECH_SRS,
  990. SE_TECH_PLATFORM_TECH,
  991. SE_TECH_AKM,
  992. SE_TECH_AUREAL,
  993. SE_TECH_AZTECH,
  994. SE_TECH_BINAURA,
  995. SE_TECH_ESS_TECH,
  996. SE_TECH_HARMAN_VMAX,
  997. SE_TECH_NVIDEA,
  998. SE_TECH_PHILIPS_INCREDIBLE,
  999. SE_TECH_TEXAS_INST,
  1000. SE_TECH_VLSI_TECH
  1001. } SE_TECHNIQUE;
  1002. typedef struct {
  1003. SE_TECHNIQUE Technique;
  1004. ULONG Center;
  1005. ULONG Depth;
  1006. ULONG Reserved;
  1007. } KSAUDIO_STEREO_ENHANCE,*PKSAUDIO_STEREO_ENHANCE;
  1008. #if NTDDI_VERSION < NTDDI_VISTA
  1009. typedef enum {
  1010. KSPROPERTY_SYSAUDIO_NORMAL_DEFAULT = 0,
  1011. KSPROPERTY_SYSAUDIO_PLAYBACK_DEFAULT,
  1012. KSPROPERTY_SYSAUDIO_RECORD_DEFAULT,
  1013. KSPROPERTY_SYSAUDIO_MIDI_DEFAULT,
  1014. KSPROPERTY_SYSAUDIO_MIXER_DEFAULT
  1015. } KSPROPERTY_SYSAUDIO_DEFAULT_TYPE;
  1016. typedef struct {
  1017. WINBOOL Enable;
  1018. KSPROPERTY_SYSAUDIO_DEFAULT_TYPE DeviceType;
  1019. ULONG Flags;
  1020. ULONG Reserved;
  1021. } KSAUDIO_PREFERRED_STATUS,*PKSAUDIO_PREFERRED_STATUS;
  1022. #endif /* NTDDI_VERSION < NTDDI_VISTA */
  1023. #define STATIC_KSNODETYPE_DAC \
  1024. 0x507AE360,0xC554,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
  1025. DEFINE_GUIDSTRUCT("507AE360-C554-11D0-8A2B-00A0C9255AC1",KSNODETYPE_DAC);
  1026. #define KSNODETYPE_DAC DEFINE_GUIDNAMED(KSNODETYPE_DAC)
  1027. #define STATIC_KSNODETYPE_ADC \
  1028. 0x4D837FE0,0xC555,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
  1029. DEFINE_GUIDSTRUCT("4D837FE0-C555-11D0-8A2B-00A0C9255AC1",KSNODETYPE_ADC);
  1030. #define KSNODETYPE_ADC DEFINE_GUIDNAMED(KSNODETYPE_ADC)
  1031. #define STATIC_KSNODETYPE_SRC \
  1032. 0x9DB7B9E0,0xC555,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
  1033. DEFINE_GUIDSTRUCT("9DB7B9E0-C555-11D0-8A2B-00A0C9255AC1",KSNODETYPE_SRC);
  1034. #define KSNODETYPE_SRC DEFINE_GUIDNAMED(KSNODETYPE_SRC)
  1035. #define STATIC_KSNODETYPE_SUPERMIX \
  1036. 0xE573ADC0,0xC555,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
  1037. DEFINE_GUIDSTRUCT("E573ADC0-C555-11D0-8A2B-00A0C9255AC1",KSNODETYPE_SUPERMIX);
  1038. #define KSNODETYPE_SUPERMIX DEFINE_GUIDNAMED(KSNODETYPE_SUPERMIX)
  1039. #define STATIC_KSNODETYPE_MUX \
  1040. 0x2CEAF780,0xC556,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
  1041. DEFINE_GUIDSTRUCT("2CEAF780-C556-11D0-8A2B-00A0C9255AC1",KSNODETYPE_MUX);
  1042. #define KSNODETYPE_MUX DEFINE_GUIDNAMED(KSNODETYPE_MUX)
  1043. #define STATIC_KSNODETYPE_DEMUX \
  1044. 0xC0EB67D4,0xE807,0x11D0,0x95,0x8A,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1045. DEFINE_GUIDSTRUCT("C0EB67D4-E807-11D0-958A-00C04FB925D3",KSNODETYPE_DEMUX);
  1046. #define KSNODETYPE_DEMUX DEFINE_GUIDNAMED(KSNODETYPE_DEMUX)
  1047. #define STATIC_KSNODETYPE_SUM \
  1048. 0xDA441A60,0xC556,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
  1049. DEFINE_GUIDSTRUCT("DA441A60-C556-11D0-8A2B-00A0C9255AC1",KSNODETYPE_SUM);
  1050. #define KSNODETYPE_SUM DEFINE_GUIDNAMED(KSNODETYPE_SUM)
  1051. #define STATIC_KSNODETYPE_MUTE \
  1052. 0x02B223C0,0xC557,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
  1053. DEFINE_GUIDSTRUCT("02B223C0-C557-11D0-8A2B-00A0C9255AC1",KSNODETYPE_MUTE);
  1054. #define KSNODETYPE_MUTE DEFINE_GUIDNAMED(KSNODETYPE_MUTE)
  1055. #define STATIC_KSNODETYPE_VOLUME \
  1056. 0x3A5ACC00,0xC557,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
  1057. DEFINE_GUIDSTRUCT("3A5ACC00-C557-11D0-8A2B-00A0C9255AC1",KSNODETYPE_VOLUME);
  1058. #define KSNODETYPE_VOLUME DEFINE_GUIDNAMED(KSNODETYPE_VOLUME)
  1059. #define STATIC_KSNODETYPE_TONE \
  1060. 0x7607E580,0xC557,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
  1061. DEFINE_GUIDSTRUCT("7607E580-C557-11D0-8A2B-00A0C9255AC1",KSNODETYPE_TONE);
  1062. #define KSNODETYPE_TONE DEFINE_GUIDNAMED(KSNODETYPE_TONE)
  1063. #define STATIC_KSNODETYPE_EQUALIZER \
  1064. 0x9D41B4A0,0xC557,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
  1065. DEFINE_GUIDSTRUCT("9D41B4A0-C557-11D0-8A2B-00A0C9255AC1",KSNODETYPE_EQUALIZER);
  1066. #define KSNODETYPE_EQUALIZER DEFINE_GUIDNAMED(KSNODETYPE_EQUALIZER)
  1067. #define STATIC_KSNODETYPE_AGC \
  1068. 0xE88C9BA0,0xC557,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
  1069. DEFINE_GUIDSTRUCT("E88C9BA0-C557-11D0-8A2B-00A0C9255AC1",KSNODETYPE_AGC);
  1070. #define KSNODETYPE_AGC DEFINE_GUIDNAMED(KSNODETYPE_AGC)
  1071. #define STATIC_KSNODETYPE_NOISE_SUPPRESS \
  1072. 0xe07f903f,0x62fd,0x4e60,0x8c,0xdd,0xde,0xa7,0x23,0x66,0x65,0xb5
  1073. DEFINE_GUIDSTRUCT("E07F903F-62FD-4e60-8CDD-DEA7236665B5",KSNODETYPE_NOISE_SUPPRESS);
  1074. #define KSNODETYPE_NOISE_SUPPRESS DEFINE_GUIDNAMED(KSNODETYPE_NOISE_SUPPRESS)
  1075. #define STATIC_KSNODETYPE_DELAY \
  1076. 0x144981E0,0xC558,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
  1077. DEFINE_GUIDSTRUCT("144981E0-C558-11D0-8A2B-00A0C9255AC1",KSNODETYPE_DELAY);
  1078. #define KSNODETYPE_DELAY DEFINE_GUIDNAMED(KSNODETYPE_DELAY)
  1079. #define STATIC_KSNODETYPE_LOUDNESS \
  1080. 0x41887440,0xC558,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
  1081. DEFINE_GUIDSTRUCT("41887440-C558-11D0-8A2B-00A0C9255AC1",KSNODETYPE_LOUDNESS);
  1082. #define KSNODETYPE_LOUDNESS DEFINE_GUIDNAMED(KSNODETYPE_LOUDNESS)
  1083. #define STATIC_KSNODETYPE_PROLOGIC_DECODER \
  1084. 0x831C2C80,0xC558,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
  1085. DEFINE_GUIDSTRUCT("831C2C80-C558-11D0-8A2B-00A0C9255AC1",KSNODETYPE_PROLOGIC_DECODER);
  1086. #define KSNODETYPE_PROLOGIC_DECODER DEFINE_GUIDNAMED(KSNODETYPE_PROLOGIC_DECODER)
  1087. #define STATIC_KSNODETYPE_STEREO_WIDE \
  1088. 0xA9E69800,0xC558,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
  1089. DEFINE_GUIDSTRUCT("A9E69800-C558-11D0-8A2B-00A0C9255AC1",KSNODETYPE_STEREO_WIDE);
  1090. #define KSNODETYPE_STEREO_WIDE DEFINE_GUIDNAMED(KSNODETYPE_STEREO_WIDE)
  1091. #define STATIC_KSNODETYPE_STEREO_ENHANCE \
  1092. 0xAF6878AC,0xE83F,0x11D0,0x95,0x8A,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1093. DEFINE_GUIDSTRUCT("AF6878AC-E83F-11D0-958A-00C04FB925D3",KSNODETYPE_STEREO_ENHANCE);
  1094. #define KSNODETYPE_STEREO_ENHANCE DEFINE_GUIDNAMED(KSNODETYPE_STEREO_ENHANCE)
  1095. #define STATIC_KSNODETYPE_REVERB \
  1096. 0xEF0328E0,0xC558,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
  1097. DEFINE_GUIDSTRUCT("EF0328E0-C558-11D0-8A2B-00A0C9255AC1",KSNODETYPE_REVERB);
  1098. #define KSNODETYPE_REVERB DEFINE_GUIDNAMED(KSNODETYPE_REVERB)
  1099. #define STATIC_KSNODETYPE_CHORUS \
  1100. 0x20173F20,0xC559,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
  1101. DEFINE_GUIDSTRUCT("20173F20-C559-11D0-8A2B-00A0C9255AC1",KSNODETYPE_CHORUS);
  1102. #define KSNODETYPE_CHORUS DEFINE_GUIDNAMED(KSNODETYPE_CHORUS)
  1103. #define STATIC_KSNODETYPE_3D_EFFECTS \
  1104. 0x55515860,0xC559,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
  1105. DEFINE_GUIDSTRUCT("55515860-C559-11D0-8A2B-00A0C9255AC1",KSNODETYPE_3D_EFFECTS);
  1106. #define KSNODETYPE_3D_EFFECTS DEFINE_GUIDNAMED(KSNODETYPE_3D_EFFECTS)
  1107. #define STATIC_KSNODETYPE_ACOUSTIC_ECHO_CANCEL STATIC_KSCATEGORY_ACOUSTIC_ECHO_CANCEL
  1108. #define KSNODETYPE_ACOUSTIC_ECHO_CANCEL KSCATEGORY_ACOUSTIC_ECHO_CANCEL
  1109. #define STATIC_KSALGORITHMINSTANCE_SYSTEM_ACOUSTIC_ECHO_CANCEL \
  1110. 0x1c22c56d,0x9879,0x4f5b,0xa3,0x89,0x27,0x99,0x6d,0xdc,0x28,0x10
  1111. DEFINE_GUIDSTRUCT("1C22C56D-9879-4f5b-A389-27996DDC2810",KSALGORITHMINSTANCE_SYSTEM_ACOUSTIC_ECHO_CANCEL);
  1112. #define KSALGORITHMINSTANCE_SYSTEM_ACOUSTIC_ECHO_CANCEL DEFINE_GUIDNAMED(KSALGORITHMINSTANCE_SYSTEM_ACOUSTIC_ECHO_CANCEL)
  1113. #define STATIC_KSALGORITHMINSTANCE_SYSTEM_NOISE_SUPPRESS \
  1114. 0x5ab0882e,0x7274,0x4516,0x87,0x7d,0x4e,0xee,0x99,0xba,0x4f,0xd0
  1115. DEFINE_GUIDSTRUCT("5AB0882E-7274-4516-877D-4EEE99BA4FD0",KSALGORITHMINSTANCE_SYSTEM_NOISE_SUPPRESS);
  1116. #define KSALGORITHMINSTANCE_SYSTEM_NOISE_SUPPRESS DEFINE_GUIDNAMED(KSALGORITHMINSTANCE_SYSTEM_NOISE_SUPPRESS)
  1117. #define STATIC_KSALGORITHMINSTANCE_SYSTEM_AGC \
  1118. 0x950e55b9,0x877c,0x4c67,0xbe,0x8,0xe4,0x7b,0x56,0x11,0x13,0xa
  1119. DEFINE_GUIDSTRUCT("950E55B9-877C-4c67-BE08-E47B5611130A",KSALGORITHMINSTANCE_SYSTEM_AGC);
  1120. #define KSALGORITHMINSTANCE_SYSTEM_AGC DEFINE_GUIDNAMED(KSALGORITHMINSTANCE_SYSTEM_AGC)
  1121. #define STATIC_KSALGORITHMINSTANCE_SYSTEM_MICROPHONE_ARRAY_PROCESSOR \
  1122. 0xB6F5A0A0,0x9E61,0x4F8C,0x91,0xE3,0x76,0xCF,0xF,0x3C,0x47,0x1F
  1123. DEFINE_GUIDSTRUCT("B6F5A0A0-9E61-4f8c-91E3-76CF0F3C471F",KSALGORITHMINSTANCE_SYSTEM_MICROPHONE_ARRAY_PROCESSOR);
  1124. #define KSALGORITHMINSTANCE_SYSTEM_MICROPHONE_ARRAY_PROCESSOR DEFINE_GUIDNAMED(KSALGORITHMINSTANCE_SYSTEM_MICROPHONE_ARRAY_PROCESSOR)
  1125. #define STATIC_KSNODETYPE_MICROPHONE_ARRAY_PROCESSOR STATIC_KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR
  1126. #define KSNODETYPE_MICROPHONE_ARRAY_PROCESSOR KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR
  1127. #define STATIC_KSNODETYPE_DEV_SPECIFIC \
  1128. 0x941C7AC0,0xC559,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
  1129. DEFINE_GUIDSTRUCT("941C7AC0-C559-11D0-8A2B-00A0C9255AC1",KSNODETYPE_DEV_SPECIFIC);
  1130. #define KSNODETYPE_DEV_SPECIFIC DEFINE_GUIDNAMED(KSNODETYPE_DEV_SPECIFIC)
  1131. #define STATIC_KSNODETYPE_PROLOGIC_ENCODER \
  1132. 0x8074C5B2,0x3C66,0x11D2,0xB4,0x5A,0x30,0x78,0x30,0x2C,0x20,0x30
  1133. DEFINE_GUIDSTRUCT("8074C5B2-3C66-11D2-B45A-3078302C2030",KSNODETYPE_PROLOGIC_ENCODER);
  1134. #define KSNODETYPE_PROLOGIC_ENCODER DEFINE_GUIDNAMED(KSNODETYPE_PROLOGIC_ENCODER)
  1135. #define KSNODETYPE_SURROUND_ENCODER KSNODETYPE_PROLOGIC_ENCODER
  1136. #define STATIC_KSNODETYPE_PEAKMETER \
  1137. 0xa085651e,0x5f0d,0x4b36,0xa8,0x69,0xd1,0x95,0xd6,0xab,0x4b,0x9e
  1138. DEFINE_GUIDSTRUCT("A085651E-5F0D-4b36-A869-D195D6AB4B9E",KSNODETYPE_PEAKMETER);
  1139. #define KSNODETYPE_PEAKMETER DEFINE_GUIDNAMED(KSNODETYPE_PEAKMETER)
  1140. #define STATIC_KSAUDFNAME_BASS \
  1141. 0x185FEDE0,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1142. DEFINE_GUIDSTRUCT("185FEDE0-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_BASS);
  1143. #define KSAUDFNAME_BASS DEFINE_GUIDNAMED(KSAUDFNAME_BASS)
  1144. #define STATIC_KSAUDFNAME_TREBLE \
  1145. 0x185FEDE1,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1146. DEFINE_GUIDSTRUCT("185FEDE1-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_TREBLE);
  1147. #define KSAUDFNAME_TREBLE DEFINE_GUIDNAMED(KSAUDFNAME_TREBLE)
  1148. #define STATIC_KSAUDFNAME_3D_STEREO \
  1149. 0x185FEDE2,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1150. DEFINE_GUIDSTRUCT("185FEDE2-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_3D_STEREO);
  1151. #define KSAUDFNAME_3D_STEREO DEFINE_GUIDNAMED(KSAUDFNAME_3D_STEREO)
  1152. #define STATIC_KSAUDFNAME_MASTER_VOLUME \
  1153. 0x185FEDE3,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1154. DEFINE_GUIDSTRUCT("185FEDE3-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MASTER_VOLUME);
  1155. #define KSAUDFNAME_MASTER_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MASTER_VOLUME)
  1156. #define STATIC_KSAUDFNAME_MASTER_MUTE \
  1157. 0x185FEDE4,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1158. DEFINE_GUIDSTRUCT("185FEDE4-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MASTER_MUTE);
  1159. #define KSAUDFNAME_MASTER_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MASTER_MUTE)
  1160. #define STATIC_KSAUDFNAME_WAVE_VOLUME \
  1161. 0x185FEDE5,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1162. DEFINE_GUIDSTRUCT("185FEDE5-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_WAVE_VOLUME);
  1163. #define KSAUDFNAME_WAVE_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_VOLUME)
  1164. #define STATIC_KSAUDFNAME_WAVE_MUTE \
  1165. 0x185FEDE6,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1166. DEFINE_GUIDSTRUCT("185FEDE6-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_WAVE_MUTE);
  1167. #define KSAUDFNAME_WAVE_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_MUTE)
  1168. #define STATIC_KSAUDFNAME_MIDI_VOLUME \
  1169. 0x185FEDE7,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1170. DEFINE_GUIDSTRUCT("185FEDE7-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIDI_VOLUME);
  1171. #define KSAUDFNAME_MIDI_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIDI_VOLUME)
  1172. #define STATIC_KSAUDFNAME_MIDI_MUTE \
  1173. 0x185FEDE8,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1174. DEFINE_GUIDSTRUCT("185FEDE8-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIDI_MUTE);
  1175. #define KSAUDFNAME_MIDI_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MIDI_MUTE)
  1176. #define STATIC_KSAUDFNAME_CD_VOLUME \
  1177. 0x185FEDE9,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1178. DEFINE_GUIDSTRUCT("185FEDE9-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_CD_VOLUME);
  1179. #define KSAUDFNAME_CD_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_CD_VOLUME)
  1180. #define STATIC_KSAUDFNAME_CD_MUTE \
  1181. 0x185FEDEA,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1182. DEFINE_GUIDSTRUCT("185FEDEA-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_CD_MUTE);
  1183. #define KSAUDFNAME_CD_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_CD_MUTE)
  1184. #define STATIC_KSAUDFNAME_LINE_VOLUME \
  1185. 0x185FEDEB,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1186. DEFINE_GUIDSTRUCT("185FEDEB-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_LINE_VOLUME);
  1187. #define KSAUDFNAME_LINE_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_LINE_VOLUME)
  1188. #define STATIC_KSAUDFNAME_LINE_MUTE \
  1189. 0x185FEDEC,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1190. DEFINE_GUIDSTRUCT("185FEDEC-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_LINE_MUTE);
  1191. #define KSAUDFNAME_LINE_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_LINE_MUTE)
  1192. #define STATIC_KSAUDFNAME_MIC_VOLUME \
  1193. 0x185FEDED,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1194. DEFINE_GUIDSTRUCT("185FEDED-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIC_VOLUME);
  1195. #define KSAUDFNAME_MIC_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIC_VOLUME)
  1196. #define STATIC_KSAUDFNAME_MIC_MUTE \
  1197. 0x185FEDEE,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1198. DEFINE_GUIDSTRUCT("185FEDEE-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIC_MUTE);
  1199. #define KSAUDFNAME_MIC_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MIC_MUTE)
  1200. #define STATIC_KSAUDFNAME_RECORDING_SOURCE \
  1201. 0x185FEDEF,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1202. DEFINE_GUIDSTRUCT("185FEDEF-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_RECORDING_SOURCE);
  1203. #define KSAUDFNAME_RECORDING_SOURCE DEFINE_GUIDNAMED(KSAUDFNAME_RECORDING_SOURCE)
  1204. #define STATIC_KSAUDFNAME_PC_SPEAKER_VOLUME \
  1205. 0x185FEDF0,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1206. DEFINE_GUIDSTRUCT("185FEDF0-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_PC_SPEAKER_VOLUME);
  1207. #define KSAUDFNAME_PC_SPEAKER_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_PC_SPEAKER_VOLUME)
  1208. #define STATIC_KSAUDFNAME_PC_SPEAKER_MUTE \
  1209. 0x185FEDF1,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1210. DEFINE_GUIDSTRUCT("185FEDF1-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_PC_SPEAKER_MUTE);
  1211. #define KSAUDFNAME_PC_SPEAKER_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_PC_SPEAKER_MUTE)
  1212. #define STATIC_KSAUDFNAME_MIDI_IN_VOLUME \
  1213. 0x185FEDF2,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1214. DEFINE_GUIDSTRUCT("185FEDF2-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIDI_IN_VOLUME);
  1215. #define KSAUDFNAME_MIDI_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIDI_IN_VOLUME)
  1216. #define STATIC_KSAUDFNAME_CD_IN_VOLUME \
  1217. 0x185FEDF3,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1218. DEFINE_GUIDSTRUCT("185FEDF3-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_CD_IN_VOLUME);
  1219. #define KSAUDFNAME_CD_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_CD_IN_VOLUME)
  1220. #define STATIC_KSAUDFNAME_LINE_IN_VOLUME \
  1221. 0x185FEDF4,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1222. DEFINE_GUIDSTRUCT("185FEDF4-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_LINE_IN_VOLUME);
  1223. #define KSAUDFNAME_LINE_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_LINE_IN_VOLUME)
  1224. #define STATIC_KSAUDFNAME_MIC_IN_VOLUME \
  1225. 0x185FEDF5,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1226. DEFINE_GUIDSTRUCT("185FEDF5-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIC_IN_VOLUME);
  1227. #define KSAUDFNAME_MIC_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIC_IN_VOLUME)
  1228. #define STATIC_KSAUDFNAME_WAVE_IN_VOLUME \
  1229. 0x185FEDF6,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1230. DEFINE_GUIDSTRUCT("185FEDF6-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_WAVE_IN_VOLUME);
  1231. #define KSAUDFNAME_WAVE_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_IN_VOLUME)
  1232. #define STATIC_KSAUDFNAME_VOLUME_CONTROL \
  1233. 0x185FEDF7,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1234. DEFINE_GUIDSTRUCT("185FEDF7-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_VOLUME_CONTROL);
  1235. #define KSAUDFNAME_VOLUME_CONTROL DEFINE_GUIDNAMED(KSAUDFNAME_VOLUME_CONTROL)
  1236. #define STATIC_KSAUDFNAME_MIDI \
  1237. 0x185FEDF8,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1238. DEFINE_GUIDSTRUCT("185FEDF8-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIDI);
  1239. #define KSAUDFNAME_MIDI DEFINE_GUIDNAMED(KSAUDFNAME_MIDI)
  1240. #define STATIC_KSAUDFNAME_LINE_IN \
  1241. 0x185FEDF9,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1242. DEFINE_GUIDSTRUCT("185FEDF9-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_LINE_IN);
  1243. #define KSAUDFNAME_LINE_IN DEFINE_GUIDNAMED(KSAUDFNAME_LINE_IN)
  1244. #define STATIC_KSAUDFNAME_RECORDING_CONTROL \
  1245. 0x185FEDFA,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1246. DEFINE_GUIDSTRUCT("185FEDFA-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_RECORDING_CONTROL);
  1247. #define KSAUDFNAME_RECORDING_CONTROL DEFINE_GUIDNAMED(KSAUDFNAME_RECORDING_CONTROL)
  1248. #define STATIC_KSAUDFNAME_CD_AUDIO \
  1249. 0x185FEDFB,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1250. DEFINE_GUIDSTRUCT("185FEDFB-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_CD_AUDIO);
  1251. #define KSAUDFNAME_CD_AUDIO DEFINE_GUIDNAMED(KSAUDFNAME_CD_AUDIO)
  1252. #define STATIC_KSAUDFNAME_AUX_VOLUME \
  1253. 0x185FEDFC,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1254. DEFINE_GUIDSTRUCT("185FEDFC-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_AUX_VOLUME);
  1255. #define KSAUDFNAME_AUX_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_AUX_VOLUME)
  1256. #define STATIC_KSAUDFNAME_AUX_MUTE \
  1257. 0x185FEDFD,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1258. DEFINE_GUIDSTRUCT("185FEDFD-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_AUX_MUTE);
  1259. #define KSAUDFNAME_AUX_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_AUX_MUTE)
  1260. #define STATIC_KSAUDFNAME_AUX \
  1261. 0x185FEDFE,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1262. DEFINE_GUIDSTRUCT("185FEDFE-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_AUX);
  1263. #define KSAUDFNAME_AUX DEFINE_GUIDNAMED(KSAUDFNAME_AUX)
  1264. #define STATIC_KSAUDFNAME_PC_SPEAKER \
  1265. 0x185FEDFF,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1266. DEFINE_GUIDSTRUCT("185FEDFF-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_PC_SPEAKER);
  1267. #define KSAUDFNAME_PC_SPEAKER DEFINE_GUIDNAMED(KSAUDFNAME_PC_SPEAKER)
  1268. #define STATIC_KSAUDFNAME_WAVE_OUT_MIX \
  1269. 0x185FEE00,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1270. DEFINE_GUIDSTRUCT("185FEE00-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_WAVE_OUT_MIX);
  1271. #define KSAUDFNAME_WAVE_OUT_MIX DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_OUT_MIX)
  1272. #define STATIC_KSAUDFNAME_MONO_OUT \
  1273. 0xf9b41dc3,0x96e2,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
  1274. DEFINE_GUIDSTRUCT("F9B41DC3-96E2-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MONO_OUT);
  1275. #define KSAUDFNAME_MONO_OUT DEFINE_GUIDNAMED(KSAUDFNAME_MONO_OUT)
  1276. #define STATIC_KSAUDFNAME_STEREO_MIX \
  1277. 0xdff077,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
  1278. DEFINE_GUIDSTRUCT("00DFF077-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_STEREO_MIX);
  1279. #define KSAUDFNAME_STEREO_MIX DEFINE_GUIDNAMED(KSAUDFNAME_STEREO_MIX)
  1280. #define STATIC_KSAUDFNAME_MONO_MIX \
  1281. 0xdff078,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
  1282. DEFINE_GUIDSTRUCT("00DFF078-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MONO_MIX);
  1283. #define KSAUDFNAME_MONO_MIX DEFINE_GUIDNAMED(KSAUDFNAME_MONO_MIX)
  1284. #define STATIC_KSAUDFNAME_MONO_OUT_VOLUME \
  1285. 0x1ad247eb,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
  1286. DEFINE_GUIDSTRUCT("1AD247EB-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MONO_OUT_VOLUME);
  1287. #define KSAUDFNAME_MONO_OUT_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MONO_OUT_VOLUME)
  1288. #define STATIC_KSAUDFNAME_MONO_OUT_MUTE \
  1289. 0x1ad247ec,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
  1290. DEFINE_GUIDSTRUCT("1AD247EC-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MONO_OUT_MUTE);
  1291. #define KSAUDFNAME_MONO_OUT_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MONO_OUT_MUTE)
  1292. #define STATIC_KSAUDFNAME_STEREO_MIX_VOLUME \
  1293. 0x1ad247ed,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
  1294. DEFINE_GUIDSTRUCT("1AD247ED-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_STEREO_MIX_VOLUME);
  1295. #define KSAUDFNAME_STEREO_MIX_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_STEREO_MIX_VOLUME)
  1296. #define STATIC_KSAUDFNAME_STEREO_MIX_MUTE \
  1297. 0x22b0eafd,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
  1298. DEFINE_GUIDSTRUCT("22B0EAFD-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_STEREO_MIX_MUTE);
  1299. #define KSAUDFNAME_STEREO_MIX_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_STEREO_MIX_MUTE)
  1300. #define STATIC_KSAUDFNAME_MONO_MIX_VOLUME \
  1301. 0x22b0eafe,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
  1302. DEFINE_GUIDSTRUCT("22B0EAFE-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MONO_MIX_VOLUME);
  1303. #define KSAUDFNAME_MONO_MIX_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MONO_MIX_VOLUME)
  1304. #define STATIC_KSAUDFNAME_MONO_MIX_MUTE \
  1305. 0x2bc31d69,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
  1306. DEFINE_GUIDSTRUCT("2BC31D69-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MONO_MIX_MUTE);
  1307. #define KSAUDFNAME_MONO_MIX_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MONO_MIX_MUTE)
  1308. #define STATIC_KSAUDFNAME_MICROPHONE_BOOST \
  1309. 0x2bc31d6a,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
  1310. DEFINE_GUIDSTRUCT("2BC31D6A-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MICROPHONE_BOOST);
  1311. #define KSAUDFNAME_MICROPHONE_BOOST DEFINE_GUIDNAMED(KSAUDFNAME_MICROPHONE_BOOST)
  1312. #define STATIC_KSAUDFNAME_ALTERNATE_MICROPHONE \
  1313. 0x2bc31d6b,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
  1314. DEFINE_GUIDSTRUCT("2BC31D6B-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_ALTERNATE_MICROPHONE);
  1315. #define KSAUDFNAME_ALTERNATE_MICROPHONE DEFINE_GUIDNAMED(KSAUDFNAME_ALTERNATE_MICROPHONE)
  1316. #define STATIC_KSAUDFNAME_3D_DEPTH \
  1317. 0x63ff5747,0x991f,0x11d2,0xac,0x4d,0x0,0xc0,0x4f,0x8e,0xfb,0x68
  1318. DEFINE_GUIDSTRUCT("63FF5747-991F-11d2-AC4D-00C04F8EFB68",KSAUDFNAME_3D_DEPTH);
  1319. #define KSAUDFNAME_3D_DEPTH DEFINE_GUIDNAMED(KSAUDFNAME_3D_DEPTH)
  1320. #define STATIC_KSAUDFNAME_3D_CENTER \
  1321. 0x9f0670b4,0x991f,0x11d2,0xac,0x4d,0x0,0xc0,0x4f,0x8e,0xfb,0x68
  1322. DEFINE_GUIDSTRUCT("9F0670B4-991F-11d2-AC4D-00C04F8EFB68",KSAUDFNAME_3D_CENTER);
  1323. #define KSAUDFNAME_3D_CENTER DEFINE_GUIDNAMED(KSAUDFNAME_3D_CENTER)
  1324. #define STATIC_KSAUDFNAME_VIDEO_VOLUME \
  1325. 0x9b46e708,0x992a,0x11d2,0xac,0x4d,0x0,0xc0,0x4f,0x8e,0xfb,0x68
  1326. DEFINE_GUIDSTRUCT("9B46E708-992A-11d2-AC4D-00C04F8EFB68",KSAUDFNAME_VIDEO_VOLUME);
  1327. #define KSAUDFNAME_VIDEO_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_VIDEO_VOLUME)
  1328. #define STATIC_KSAUDFNAME_VIDEO_MUTE \
  1329. 0x9b46e709,0x992a,0x11d2,0xac,0x4d,0x0,0xc0,0x4f,0x8e,0xfb,0x68
  1330. DEFINE_GUIDSTRUCT("9B46E709-992A-11d2-AC4D-00C04F8EFB68",KSAUDFNAME_VIDEO_MUTE);
  1331. #define KSAUDFNAME_VIDEO_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_VIDEO_MUTE)
  1332. #define STATIC_KSAUDFNAME_VIDEO \
  1333. 0x915daec4,0xa434,0x11d2,0xac,0x52,0x0,0xc0,0x4f,0x8e,0xfb,0x68
  1334. DEFINE_GUIDSTRUCT("915DAEC4-A434-11d2-AC52-00C04F8EFB68",KSAUDFNAME_VIDEO);
  1335. #define KSAUDFNAME_VIDEO DEFINE_GUIDNAMED(KSAUDFNAME_VIDEO)
  1336. #define STATIC_KSAUDFNAME_PEAKMETER \
  1337. 0x57e24340,0xfc5b,0x4612,0xa5,0x62,0x72,0xb1,0x1a,0x29,0xdf,0xae
  1338. DEFINE_GUIDSTRUCT("57E24340-FC5B-4612-A562-72B11A29DFAE",KSAUDFNAME_PEAKMETER);
  1339. #define KSAUDFNAME_PEAKMETER DEFINE_GUIDNAMED(KSAUDFNAME_PEAKMETER)
  1340. #define KSNODEPIN_STANDARD_IN 1
  1341. #define KSNODEPIN_STANDARD_OUT 0
  1342. #define KSNODEPIN_SUM_MUX_IN 1
  1343. #define KSNODEPIN_SUM_MUX_OUT 0
  1344. #define KSNODEPIN_DEMUX_IN 0
  1345. #define KSNODEPIN_DEMUX_OUT 1
  1346. #if NTDDI_VERSION < NTDDI_VISTA
  1347. #define KSNODEPIN_AEC_RENDER_IN 1
  1348. #define KSNODEPIN_AEC_RENDER_OUT 0
  1349. #define KSNODEPIN_AEC_CAPTURE_IN 2
  1350. #define KSNODEPIN_AEC_CAPTURE_OUT 3
  1351. #endif /* NTDDI_VERSION < NTDDI_VISTA */
  1352. #define STATIC_KSMETHODSETID_Wavetable \
  1353. 0xDCEF31EB,0xD907,0x11D0,0x95,0x83,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1354. DEFINE_GUIDSTRUCT("DCEF31EB-D907-11D0-9583-00C04FB925D3",KSMETHODSETID_Wavetable);
  1355. #define KSMETHODSETID_Wavetable DEFINE_GUIDNAMED(KSMETHODSETID_Wavetable)
  1356. typedef enum {
  1357. KSMETHOD_WAVETABLE_WAVE_ALLOC,
  1358. KSMETHOD_WAVETABLE_WAVE_FREE,
  1359. KSMETHOD_WAVETABLE_WAVE_FIND,
  1360. KSMETHOD_WAVETABLE_WAVE_WRITE
  1361. } KSMETHOD_WAVETABLE;
  1362. typedef struct {
  1363. KSIDENTIFIER Identifier;
  1364. ULONG Size;
  1365. WINBOOL Looped;
  1366. ULONG LoopPoint;
  1367. WINBOOL InROM;
  1368. KSDATAFORMAT Format;
  1369. } KSWAVETABLE_WAVE_DESC,*PKSWAVETABLE_WAVE_DESC;
  1370. #if NTDDI_VERSION < NTDDI_VISTA
  1371. #define STATIC_KSPROPSETID_Acoustic_Echo_Cancel \
  1372. 0xd7a4af8b,0x3dc1,0x4902,0x91,0xea,0x8a,0x15,0xc9,0x0e,0x05,0xb2
  1373. DEFINE_GUIDSTRUCT("D7A4AF8B-3DC1-4902-91EA-8A15C90E05B2",KSPROPSETID_Acoustic_Echo_Cancel);
  1374. #define KSPROPSETID_Acoustic_Echo_Cancel DEFINE_GUIDNAMED(KSPROPSETID_Acoustic_Echo_Cancel)
  1375. #endif /* NTDDI_VERSION < NTDDI_VISTA */
  1376. typedef enum {
  1377. KSPROPERTY_AEC_NOISE_FILL_ENABLE = 0,
  1378. KSPROPERTY_AEC_STATUS,
  1379. KSPROPERTY_AEC_MODE
  1380. } KSPROPERTY_AEC;
  1381. #define AEC_STATUS_FD_HISTORY_UNINITIALIZED 0x0
  1382. #define AEC_STATUS_FD_HISTORY_CONTINUOUSLY_CONVERGED 0x1
  1383. #define AEC_STATUS_FD_HISTORY_PREVIOUSLY_DIVERGED 0x2
  1384. #define AEC_STATUS_FD_CURRENTLY_CONVERGED 0x8
  1385. #define AEC_MODE_PASS_THROUGH 0x0
  1386. #define AEC_MODE_HALF_DUPLEX 0x1
  1387. #define AEC_MODE_FULL_DUPLEX 0x2
  1388. #if (NTDDI_VERSION < NTDDI_WS03)
  1389. #define STATIC_KSPROPSETID_Wave_Queued \
  1390. 0x16a15b10,0x16f0,0x11d0,0xa1,0x95,0x00,0x20,0xaf,0xd1,0x56,0xe4
  1391. DEFINE_GUIDSTRUCT("16a15b10-16f0-11d0-a195-0020afd156e4", KSPROPSETID_Wave_Queued);
  1392. #define KSPROPSETID_Wave_Queued DEFINE_GUIDNAMED(KSPROPSETID_Wave_Queued)
  1393. #endif /* NTDDI_VERSION < NTDDI_WS03 */
  1394. #define STATIC_KSPROPSETID_Wave \
  1395. 0x924e54b0,0x630f,0x11cf,0xad,0xa7,0x08,0x00,0x3e,0x30,0x49,0x4a
  1396. DEFINE_GUIDSTRUCT("924e54b0-630f-11cf-ada7-08003e30494a",KSPROPSETID_Wave);
  1397. #define KSPROPSETID_Wave DEFINE_GUIDNAMED(KSPROPSETID_Wave)
  1398. typedef enum {
  1399. KSPROPERTY_WAVE_COMPATIBLE_CAPABILITIES,
  1400. KSPROPERTY_WAVE_INPUT_CAPABILITIES,
  1401. KSPROPERTY_WAVE_OUTPUT_CAPABILITIES,
  1402. KSPROPERTY_WAVE_BUFFER,
  1403. KSPROPERTY_WAVE_FREQUENCY,
  1404. KSPROPERTY_WAVE_VOLUME,
  1405. KSPROPERTY_WAVE_PAN
  1406. } KSPROPERTY_WAVE;
  1407. typedef struct {
  1408. ULONG ulDeviceType;
  1409. } KSWAVE_COMPATCAPS,*PKSWAVE_COMPATCAPS;
  1410. #define KSWAVE_COMPATCAPS_INPUT 0x00000000
  1411. #define KSWAVE_COMPATCAPS_OUTPUT 0x00000001
  1412. typedef struct {
  1413. ULONG MaximumChannelsPerConnection;
  1414. ULONG MinimumBitsPerSample;
  1415. ULONG MaximumBitsPerSample;
  1416. ULONG MinimumSampleFrequency;
  1417. ULONG MaximumSampleFrequency;
  1418. ULONG TotalConnections;
  1419. ULONG ActiveConnections;
  1420. } KSWAVE_INPUT_CAPABILITIES,*PKSWAVE_INPUT_CAPABILITIES;
  1421. typedef struct {
  1422. ULONG MaximumChannelsPerConnection;
  1423. ULONG MinimumBitsPerSample;
  1424. ULONG MaximumBitsPerSample;
  1425. ULONG MinimumSampleFrequency;
  1426. ULONG MaximumSampleFrequency;
  1427. ULONG TotalConnections;
  1428. ULONG StaticConnections;
  1429. ULONG StreamingConnections;
  1430. ULONG ActiveConnections;
  1431. ULONG ActiveStaticConnections;
  1432. ULONG ActiveStreamingConnections;
  1433. ULONG Total3DConnections;
  1434. ULONG Static3DConnections;
  1435. ULONG Streaming3DConnections;
  1436. ULONG Active3DConnections;
  1437. ULONG ActiveStatic3DConnections;
  1438. ULONG ActiveStreaming3DConnections;
  1439. ULONG TotalSampleMemory;
  1440. ULONG FreeSampleMemory;
  1441. ULONG LargestFreeContiguousSampleMemory;
  1442. } KSWAVE_OUTPUT_CAPABILITIES,*PKSWAVE_OUTPUT_CAPABILITIES;
  1443. typedef struct {
  1444. LONG LeftAttenuation;
  1445. LONG RightAttenuation;
  1446. } KSWAVE_VOLUME,*PKSWAVE_VOLUME;
  1447. #define KSWAVE_BUFFER_ATTRIBUTEF_LOOPING 0x00000001
  1448. #define KSWAVE_BUFFER_ATTRIBUTEF_STATIC 0x00000002
  1449. typedef struct {
  1450. ULONG Attributes;
  1451. ULONG BufferSize;
  1452. PVOID BufferAddress;
  1453. } KSWAVE_BUFFER,*PKSWAVE_BUFFER;
  1454. #define STATIC_KSMUSIC_TECHNOLOGY_PORT \
  1455. 0x86C92E60,0x62E8,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
  1456. DEFINE_GUIDSTRUCT("86C92E60-62E8-11CF-A5D6-28DB04C10000",KSMUSIC_TECHNOLOGY_PORT);
  1457. #define KSMUSIC_TECHNOLOGY_PORT DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_PORT)
  1458. #define STATIC_KSMUSIC_TECHNOLOGY_SQSYNTH \
  1459. 0x0ECF4380,0x62E9,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
  1460. DEFINE_GUIDSTRUCT("0ECF4380-62E9-11CF-A5D6-28DB04C10000",KSMUSIC_TECHNOLOGY_SQSYNTH);
  1461. #define KSMUSIC_TECHNOLOGY_SQSYNTH DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_SQSYNTH)
  1462. #define STATIC_KSMUSIC_TECHNOLOGY_FMSYNTH \
  1463. 0x252C5C80,0x62E9,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
  1464. DEFINE_GUIDSTRUCT("252C5C80-62E9-11CF-A5D6-28DB04C10000",KSMUSIC_TECHNOLOGY_FMSYNTH);
  1465. #define KSMUSIC_TECHNOLOGY_FMSYNTH DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_FMSYNTH)
  1466. #define STATIC_KSMUSIC_TECHNOLOGY_WAVETABLE \
  1467. 0x394EC7C0,0x62E9,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
  1468. DEFINE_GUIDSTRUCT("394EC7C0-62E9-11CF-A5D6-28DB04C10000",KSMUSIC_TECHNOLOGY_WAVETABLE);
  1469. #define KSMUSIC_TECHNOLOGY_WAVETABLE DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_WAVETABLE)
  1470. #define STATIC_KSMUSIC_TECHNOLOGY_SWSYNTH \
  1471. 0x37407736,0x3620,0x11D1,0x85,0xD3,0x00,0x00,0xF8,0x75,0x43,0x80
  1472. DEFINE_GUIDSTRUCT("37407736-3620-11D1-85D3-0000F8754380",KSMUSIC_TECHNOLOGY_SWSYNTH);
  1473. #define KSMUSIC_TECHNOLOGY_SWSYNTH DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_SWSYNTH)
  1474. #if NTDDI_VERSION < NTDDI_WS03
  1475. #define STATIC_KSPROPSETID_WaveTable \
  1476. 0x8539E660,0x62E9,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
  1477. DEFINE_GUIDSTRUCT("8539E660-62E9-11CF-A5D6-28DB04C10000",KSPROPSETID_WaveTable);
  1478. #define KSPROPSETID_WaveTable DEFINE_GUIDNAMED(KSPROPSETID_WaveTable)
  1479. typedef enum {
  1480. KSPROPERTY_WAVETABLE_LOAD_SAMPLE,
  1481. KSPROPERTY_WAVETABLE_UNLOAD_SAMPLE,
  1482. KSPROPERTY_WAVETABLE_MEMORY,
  1483. KSPROPERTY_WAVETABLE_VERSION
  1484. } KSPROPERTY_WAVETABLE;
  1485. #endif /* NTDDI_VERSION < NTDDI_WS03 */
  1486. typedef struct {
  1487. KSDATARANGE DataRange;
  1488. GUID Technology;
  1489. ULONG Channels;
  1490. ULONG Notes;
  1491. ULONG ChannelMask;
  1492. } KSDATARANGE_MUSIC,*PKSDATARANGE_MUSIC;
  1493. #if NTDDI_VERSION < NTDDI_WS03
  1494. #define STATIC_KSEVENTSETID_Cyclic \
  1495. 0x142C1AC0,0x072A,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
  1496. DEFINE_GUIDSTRUCT("142C1AC0-072A-11D0-A5D6-28DB04C10000",KSEVENTSETID_Cyclic);
  1497. #define KSEVENTSETID_Cyclic DEFINE_GUIDNAMED(KSEVENTSETID_Cyclic)
  1498. typedef enum {
  1499. KSEVENT_CYCLIC_TIME_INTERVAL
  1500. } KSEVENT_CYCLIC_TIME;
  1501. #endif /* NTDDI_VERSION < NTDDI_WS03 */
  1502. #define STATIC_KSPROPSETID_Cyclic \
  1503. 0x3FFEAEA0,0x2BEE,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
  1504. DEFINE_GUIDSTRUCT("3FFEAEA0-2BEE-11CF-A5D6-28DB04C10000",KSPROPSETID_Cyclic);
  1505. #define KSPROPSETID_Cyclic DEFINE_GUIDNAMED(KSPROPSETID_Cyclic)
  1506. typedef enum {
  1507. KSPROPERTY_CYCLIC_POSITION
  1508. } KSPROPERTY_CYCLIC;
  1509. #define STATIC_KSEVENTSETID_AudioControlChange \
  1510. 0xE85E9698,0xFA2F,0x11D1,0x95,0xBD,0x00,0xC0,0x4F,0xB9,0x25,0xD3
  1511. DEFINE_GUIDSTRUCT("E85E9698-FA2F-11D1-95BD-00C04FB925D3",KSEVENTSETID_AudioControlChange);
  1512. #define KSEVENTSETID_AudioControlChange DEFINE_GUIDNAMED(KSEVENTSETID_AudioControlChange)
  1513. typedef enum {
  1514. KSEVENT_CONTROL_CHANGE
  1515. } KSEVENT_AUDIO_CONTROL_CHANGE;
  1516. #define STATIC_KSEVENTSETID_LoopedStreaming \
  1517. 0x4682B940,0xC6EF,0x11D0,0x96,0xD8,0x00,0xAA,0x00,0x51,0xE5,0x1D
  1518. DEFINE_GUIDSTRUCT("4682B940-C6EF-11D0-96D8-00AA0051E51D",KSEVENTSETID_LoopedStreaming);
  1519. #define KSEVENTSETID_LoopedStreaming DEFINE_GUIDNAMED(KSEVENTSETID_LoopedStreaming)
  1520. typedef enum {
  1521. KSEVENT_LOOPEDSTREAMING_POSITION
  1522. } KSEVENT_LOOPEDSTREAMING;
  1523. typedef struct {
  1524. KSEVENTDATA KsEventData;
  1525. DWORDLONG Position;
  1526. } LOOPEDSTREAMING_POSITION_EVENT_DATA,*PLOOPEDSTREAMING_POSITION_EVENT_DATA;
  1527. #if NTDDI_VERSION < NTDDI_VISTA
  1528. #define STATIC_KSPROPSETID_Sysaudio \
  1529. 0xCBE3FAA0,0xCC75,0x11D0,0xB4,0x65,0x00,0x00,0x1A,0x18,0x18,0xE6
  1530. DEFINE_GUIDSTRUCT("CBE3FAA0-CC75-11D0-B465-00001A1818E6",KSPROPSETID_Sysaudio);
  1531. #define KSPROPSETID_Sysaudio DEFINE_GUIDNAMED(KSPROPSETID_Sysaudio)
  1532. typedef enum {
  1533. KSPROPERTY_SYSAUDIO_DEVICE_COUNT = 1,
  1534. KSPROPERTY_SYSAUDIO_DEVICE_FRIENDLY_NAME = 2,
  1535. KSPROPERTY_SYSAUDIO_DEVICE_INSTANCE = 3,
  1536. KSPROPERTY_SYSAUDIO_DEVICE_INTERFACE_NAME = 4,
  1537. KSPROPERTY_SYSAUDIO_SELECT_GRAPH = 5,
  1538. KSPROPERTY_SYSAUDIO_CREATE_VIRTUAL_SOURCE = 6,
  1539. KSPROPERTY_SYSAUDIO_DEVICE_DEFAULT = 7,
  1540. KSPROPERTY_SYSAUDIO_INSTANCE_INFO = 14,
  1541. KSPROPERTY_SYSAUDIO_COMPONENT_ID = 16
  1542. } KSPROPERTY_SYSAUDIO;
  1543. typedef struct {
  1544. KSPROPERTY Property;
  1545. GUID PinCategory;
  1546. GUID PinName;
  1547. } SYSAUDIO_CREATE_VIRTUAL_SOURCE,*PSYSAUDIO_CREATE_VIRTUAL_SOURCE;
  1548. typedef struct {
  1549. KSPROPERTY Property;
  1550. ULONG PinId;
  1551. ULONG NodeId;
  1552. ULONG Flags;
  1553. ULONG Reserved;
  1554. } SYSAUDIO_SELECT_GRAPH,*PSYSAUDIO_SELECT_GRAPH;
  1555. typedef struct {
  1556. KSPROPERTY Property;
  1557. ULONG Flags;
  1558. ULONG DeviceNumber;
  1559. } SYSAUDIO_INSTANCE_INFO,*PSYSAUDIO_INSTANCE_INFO;
  1560. #define SYSAUDIO_FLAGS_DONT_COMBINE_PINS 0x00000001
  1561. #define STATIC_KSPROPSETID_Sysaudio_Pin \
  1562. 0xA3A53220,0xC6E4,0x11D0,0xB4,0x65,0x00,0x00,0x1A,0x18,0x18,0xE6
  1563. DEFINE_GUIDSTRUCT("A3A53220-C6E4-11D0-B465-00001A1818E6",KSPROPSETID_Sysaudio_Pin);
  1564. #define KSPROPSETID_Sysaudio_Pin DEFINE_GUIDNAMED(KSPROPSETID_Sysaudio_Pin)
  1565. typedef enum {
  1566. KSPROPERTY_SYSAUDIO_ATTACH_VIRTUAL_SOURCE = 1
  1567. } KSPROPERTY_SYSAUDIO_PIN;
  1568. typedef struct {
  1569. KSPROPERTY Property;
  1570. ULONG MixerPinId;
  1571. ULONG Reserved;
  1572. } SYSAUDIO_ATTACH_VIRTUAL_SOURCE,*PSYSAUDIO_ATTACH_VIRTUAL_SOURCE;
  1573. #endif /* NTDDI_VERSION < NTDDI_VISTA */
  1574. typedef struct {
  1575. KSPROPERTY Property;
  1576. ULONG NodeId;
  1577. ULONG Reserved;
  1578. } KSNODEPROPERTY,*PKSNODEPROPERTY;
  1579. typedef struct {
  1580. KSNODEPROPERTY NodeProperty;
  1581. LONG Channel;
  1582. ULONG Reserved;
  1583. } KSNODEPROPERTY_AUDIO_CHANNEL,*PKSNODEPROPERTY_AUDIO_CHANNEL;
  1584. typedef struct {
  1585. KSNODEPROPERTY NodeProperty;
  1586. ULONG DevSpecificId;
  1587. ULONG DeviceInfo;
  1588. ULONG Length;
  1589. } KSNODEPROPERTY_AUDIO_DEV_SPECIFIC,*PKSNODEPROPERTY_AUDIO_DEV_SPECIFIC;
  1590. typedef struct {
  1591. KSNODEPROPERTY NodeProperty;
  1592. PVOID ListenerId;
  1593. #ifndef _WIN64
  1594. ULONG Reserved;
  1595. #endif
  1596. } KSNODEPROPERTY_AUDIO_3D_LISTENER,*PKSNODEPROPERTY_AUDIO_3D_LISTENER;
  1597. typedef struct {
  1598. KSNODEPROPERTY NodeProperty;
  1599. PVOID AppContext;
  1600. ULONG Length;
  1601. #ifndef _WIN64
  1602. ULONG Reserved;
  1603. #endif
  1604. } KSNODEPROPERTY_AUDIO_PROPERTY,*PKSNODEPROPERTY_AUDIO_PROPERTY;
  1605. #if NTDDI_VERSION < NTDDI_VISTA
  1606. #define STATIC_KSPROPSETID_AudioGfx \
  1607. 0x79a9312e,0x59ae,0x43b0,0xa3,0x50,0x8b,0x5,0x28,0x4c,0xab,0x24
  1608. DEFINE_GUIDSTRUCT("79A9312E-59AE-43b0-A350-8B05284CAB24",KSPROPSETID_AudioGfx);
  1609. #define KSPROPSETID_AudioGfx DEFINE_GUIDNAMED(KSPROPSETID_AudioGfx)
  1610. #endif /* NTDDI_VERSION < NTDDI_VISTA */
  1611. typedef enum {
  1612. KSPROPERTY_AUDIOGFX_RENDERTARGETDEVICEID,
  1613. KSPROPERTY_AUDIOGFX_CAPTURETARGETDEVICEID
  1614. } KSPROPERTY_AUDIOGFX;
  1615. #if NTDDI_VERSION < NTDDI_WS03
  1616. #define STATIC_KSPROPSETID_Linear \
  1617. 0x5A2FFE80,0x16B9,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
  1618. DEFINE_GUIDSTRUCT("5A2FFE80-16B9-11D0-A5D6-28DB04C10000",KSPROPSETID_Linear);
  1619. #define KSPROPSETID_Linear DEFINE_GUIDNAMED(KSPROPSETID_Linear)
  1620. typedef enum {
  1621. KSPROPERTY_LINEAR_POSITION
  1622. } KSPROPERTY_LINEAR;
  1623. #endif /* NTDDI_VERSION < NTDDI_WS03 */
  1624. #define STATIC_KSDATAFORMAT_TYPE_MUSIC \
  1625. 0xE725D360,0x62CC,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
  1626. DEFINE_GUIDSTRUCT("E725D360-62CC-11CF-A5D6-28DB04C10000",KSDATAFORMAT_TYPE_MUSIC);
  1627. #define KSDATAFORMAT_TYPE_MUSIC DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MUSIC)
  1628. #define STATIC_KSDATAFORMAT_TYPE_MIDI \
  1629. 0x7364696D,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71
  1630. DEFINE_GUIDSTRUCT("7364696D-0000-0010-8000-00aa00389b71",KSDATAFORMAT_TYPE_MIDI);
  1631. #define KSDATAFORMAT_TYPE_MIDI DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MIDI)
  1632. #define STATIC_KSDATAFORMAT_SUBTYPE_MIDI \
  1633. 0x1D262760,0xE957,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
  1634. DEFINE_GUIDSTRUCT("1D262760-E957-11CF-A5D6-28DB04C10000",KSDATAFORMAT_SUBTYPE_MIDI);
  1635. #define KSDATAFORMAT_SUBTYPE_MIDI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MIDI)
  1636. #define STATIC_KSDATAFORMAT_SUBTYPE_MIDI_BUS \
  1637. 0x2CA15FA0,0x6CFE,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
  1638. DEFINE_GUIDSTRUCT("2CA15FA0-6CFE-11CF-A5D6-28DB04C10000",KSDATAFORMAT_SUBTYPE_MIDI_BUS);
  1639. #define KSDATAFORMAT_SUBTYPE_MIDI_BUS DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MIDI_BUS)
  1640. #define STATIC_KSDATAFORMAT_SUBTYPE_RIFFMIDI \
  1641. 0x4995DAF0,0x9EE6,0x11D0,0xA4,0x0E,0x00,0xA0,0xC9,0x22,0x31,0x96
  1642. DEFINE_GUIDSTRUCT("4995DAF0-9EE6-11D0-A40E-00A0C9223196",KSDATAFORMAT_SUBTYPE_RIFFMIDI);
  1643. #define KSDATAFORMAT_SUBTYPE_RIFFMIDI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_RIFFMIDI)
  1644. typedef struct {
  1645. ULONG TimeDeltaMs;
  1646. ULONG ByteCount;
  1647. } KSMUSICFORMAT,*PKSMUSICFORMAT;
  1648. #define STATIC_KSDATAFORMAT_TYPE_STANDARD_ELEMENTARY_STREAM \
  1649. 0x36523b11,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
  1650. DEFINE_GUIDSTRUCT("36523B11-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_TYPE_STANDARD_ELEMENTARY_STREAM);
  1651. #define KSDATAFORMAT_TYPE_STANDARD_ELEMENTARY_STREAM DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_STANDARD_ELEMENTARY_STREAM)
  1652. #define STATIC_KSDATAFORMAT_TYPE_STANDARD_PES_PACKET \
  1653. 0x36523b12,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
  1654. DEFINE_GUIDSTRUCT("36523B12-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_TYPE_STANDARD_PES_PACKET);
  1655. #define KSDATAFORMAT_TYPE_STANDARD_PES_PACKET DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_STANDARD_PES_PACKET)
  1656. #define STATIC_KSDATAFORMAT_TYPE_STANDARD_PACK_HEADER \
  1657. 0x36523b13,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
  1658. DEFINE_GUIDSTRUCT("36523B13-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_TYPE_STANDARD_PACK_HEADER);
  1659. #define KSDATAFORMAT_TYPE_STANDARD_PACK_HEADER DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_STANDARD_PACK_HEADER)
  1660. #define STATIC_KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_VIDEO \
  1661. 0x36523b21,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
  1662. DEFINE_GUIDSTRUCT("36523B21-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_VIDEO);
  1663. #define KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_VIDEO)
  1664. #define STATIC_KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_AUDIO \
  1665. 0x36523b22,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
  1666. DEFINE_GUIDSTRUCT("36523B22-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_AUDIO);
  1667. #define KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_AUDIO)
  1668. #define STATIC_KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_VIDEO \
  1669. 0x36523b23,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
  1670. DEFINE_GUIDSTRUCT("36523B23-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_VIDEO);
  1671. #define KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_VIDEO)
  1672. #define STATIC_KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_AUDIO \
  1673. 0x36523b24,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
  1674. DEFINE_GUIDSTRUCT("36523B24-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_AUDIO);
  1675. #define KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_AUDIO)
  1676. #define STATIC_KSDATAFORMAT_SUBTYPE_STANDARD_AC3_AUDIO \
  1677. 0x36523b25,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
  1678. DEFINE_GUIDSTRUCT("36523B25-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SUBTYPE_STANDARD_AC3_AUDIO);
  1679. #define KSDATAFORMAT_SUBTYPE_STANDARD_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_STANDARD_AC3_AUDIO)
  1680. #define STATIC_KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_VIDEO \
  1681. 0x36523b31,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
  1682. DEFINE_GUIDSTRUCT("36523B31-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_VIDEO);
  1683. #define KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_VIDEO)
  1684. #define STATIC_KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_AUDIO \
  1685. 0x36523b32,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
  1686. DEFINE_GUIDSTRUCT("36523B32-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_AUDIO);
  1687. #define KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_AUDIO)
  1688. #define STATIC_KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_VIDEO \
  1689. 0x36523b33,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
  1690. DEFINE_GUIDSTRUCT("36523B33-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_VIDEO);
  1691. #define KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_VIDEO)
  1692. #define STATIC_KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_AUDIO \
  1693. 0x36523b34,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
  1694. DEFINE_GUIDSTRUCT("36523B34-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_AUDIO);
  1695. #define KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_AUDIO)
  1696. #define STATIC_KSDATAFORMAT_SPECIFIER_DIALECT_AC3_AUDIO \
  1697. 0x36523b35,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
  1698. DEFINE_GUIDSTRUCT("36523B35-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SPECIFIER_DIALECT_AC3_AUDIO);
  1699. #define KSDATAFORMAT_SPECIFIER_DIALECT_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DIALECT_AC3_AUDIO)
  1700. #define STATIC_KSDATAFORMAT_SUBTYPE_DSS_VIDEO \
  1701. 0xa0af4f81,0xe163,0x11d0,0xba,0xd9,0x00,0x60,0x97,0x44,0x11,0x1a
  1702. DEFINE_GUIDSTRUCT("a0af4f81-e163-11d0-bad9-00609744111a",KSDATAFORMAT_SUBTYPE_DSS_VIDEO);
  1703. #define KSDATAFORMAT_SUBTYPE_DSS_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DSS_VIDEO)
  1704. #define STATIC_KSDATAFORMAT_SUBTYPE_DSS_AUDIO \
  1705. 0xa0af4f82,0xe163,0x11d0,0xba,0xd9,0x00,0x60,0x97,0x44,0x11,0x1a
  1706. DEFINE_GUIDSTRUCT("a0af4f82-e163-11d0-bad9-00609744111a",KSDATAFORMAT_SUBTYPE_DSS_AUDIO);
  1707. #define KSDATAFORMAT_SUBTYPE_DSS_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DSS_AUDIO)
  1708. #define STATIC_KSDATAFORMAT_SUBTYPE_MPEG1Packet \
  1709. 0xe436eb80,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70
  1710. DEFINE_GUIDSTRUCT("e436eb80-524f-11ce-9F53-0020af0ba770",KSDATAFORMAT_SUBTYPE_MPEG1Packet);
  1711. #define KSDATAFORMAT_SUBTYPE_MPEG1Packet DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG1Packet)
  1712. #define STATIC_KSDATAFORMAT_SUBTYPE_MPEG1Payload \
  1713. 0xe436eb81,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70
  1714. DEFINE_GUIDSTRUCT("e436eb81-524f-11ce-9F53-0020af0ba770",KSDATAFORMAT_SUBTYPE_MPEG1Payload);
  1715. #define KSDATAFORMAT_SUBTYPE_MPEG1Payload DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG1Payload)
  1716. #define STATIC_KSDATAFORMAT_SUBTYPE_MPEG1Video \
  1717. 0xe436eb86,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70
  1718. DEFINE_GUIDSTRUCT("e436eb86-524f-11ce-9f53-0020af0ba770",KSDATAFORMAT_SUBTYPE_MPEG1Video);
  1719. #define KSDATAFORMAT_SUBTYPE_MPEG1Video DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG1Video)
  1720. #define STATIC_KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO \
  1721. 0x05589f82,0xc356,0x11ce,0xbf,0x01,0x00,0xaa,0x00,0x55,0x59,0x5a
  1722. DEFINE_GUIDSTRUCT("05589f82-c356-11ce-bf01-00aa0055595a",KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO);
  1723. #define KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO)
  1724. #define STATIC_KSDATAFORMAT_TYPE_MPEG2_PES \
  1725. 0xe06d8020,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
  1726. DEFINE_GUIDSTRUCT("e06d8020-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_TYPE_MPEG2_PES);
  1727. #define KSDATAFORMAT_TYPE_MPEG2_PES DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MPEG2_PES)
  1728. #define STATIC_KSDATAFORMAT_TYPE_MPEG2_PROGRAM \
  1729. 0xe06d8022,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
  1730. DEFINE_GUIDSTRUCT("e06d8022-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_TYPE_MPEG2_PROGRAM);
  1731. #define KSDATAFORMAT_TYPE_MPEG2_PROGRAM DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MPEG2_PROGRAM)
  1732. #define STATIC_KSDATAFORMAT_TYPE_MPEG2_TRANSPORT \
  1733. 0xe06d8023,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
  1734. DEFINE_GUIDSTRUCT("e06d8023-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_TYPE_MPEG2_TRANSPORT);
  1735. #define KSDATAFORMAT_TYPE_MPEG2_TRANSPORT DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MPEG2_TRANSPORT)
  1736. #define STATIC_KSDATAFORMAT_SUBTYPE_MPEG2_VIDEO \
  1737. 0xe06d8026,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
  1738. DEFINE_GUIDSTRUCT("e06d8026-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_MPEG2_VIDEO);
  1739. #define KSDATAFORMAT_SUBTYPE_MPEG2_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG2_VIDEO)
  1740. #define STATIC_KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO \
  1741. 0xe06d80e3,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
  1742. DEFINE_GUIDSTRUCT("e06d80e3-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO);
  1743. #define KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO)
  1744. #define STATIC_KSPROPSETID_Mpeg2Vid \
  1745. 0xC8E11B60,0x0CC9,0x11D0,0xBD,0x69,0x00,0x35,0x05,0xC1,0x03,0xA9
  1746. DEFINE_GUIDSTRUCT("C8E11B60-0CC9-11D0-BD69-003505C103A9",KSPROPSETID_Mpeg2Vid);
  1747. #define KSPROPSETID_Mpeg2Vid DEFINE_GUIDNAMED(KSPROPSETID_Mpeg2Vid)
  1748. typedef enum {
  1749. KSPROPERTY_MPEG2VID_MODES,
  1750. KSPROPERTY_MPEG2VID_CUR_MODE,
  1751. KSPROPERTY_MPEG2VID_4_3_RECT,
  1752. KSPROPERTY_MPEG2VID_16_9_RECT,
  1753. KSPROPERTY_MPEG2VID_16_9_PANSCAN
  1754. } KSPROPERTY_MPEG2VID;
  1755. #define KSMPEGVIDMODE_PANSCAN 0x0001
  1756. #define KSMPEGVIDMODE_LTRBOX 0x0002
  1757. #define KSMPEGVIDMODE_SCALE 0x0004
  1758. typedef struct _KSMPEGVID_RECT {
  1759. ULONG StartX;
  1760. ULONG StartY;
  1761. ULONG EndX;
  1762. ULONG EndY;
  1763. } KSMPEGVID_RECT,*PKSMPEGVID_RECT;
  1764. #define STATIC_KSDATAFORMAT_SUBTYPE_MPEG2_AUDIO \
  1765. 0xe06d802b,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
  1766. DEFINE_GUIDSTRUCT("e06d802b-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_MPEG2_AUDIO);
  1767. #define KSDATAFORMAT_SUBTYPE_MPEG2_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG2_AUDIO)
  1768. #define STATIC_KSDATAFORMAT_SPECIFIER_MPEG2_AUDIO \
  1769. 0xe06d80e5,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
  1770. DEFINE_GUIDSTRUCT("e06d80e5-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SPECIFIER_MPEG2_AUDIO);
  1771. #define KSDATAFORMAT_SPECIFIER_MPEG2_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_MPEG2_AUDIO)
  1772. #define STATIC_KSDATAFORMAT_SUBTYPE_LPCM_AUDIO \
  1773. 0xe06d8032,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
  1774. DEFINE_GUIDSTRUCT("e06d8032-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_LPCM_AUDIO);
  1775. #define KSDATAFORMAT_SUBTYPE_LPCM_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_LPCM_AUDIO)
  1776. #define STATIC_KSDATAFORMAT_SPECIFIER_LPCM_AUDIO \
  1777. 0xe06d80e6,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
  1778. DEFINE_GUIDSTRUCT("e06d80e6-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SPECIFIER_LPCM_AUDIO);
  1779. #define KSDATAFORMAT_SPECIFIER_LPCM_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_LPCM_AUDIO)
  1780. #define STATIC_KSDATAFORMAT_SUBTYPE_AC3_AUDIO \
  1781. 0xe06d802c,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
  1782. DEFINE_GUIDSTRUCT("e06d802c-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_AC3_AUDIO);
  1783. #define KSDATAFORMAT_SUBTYPE_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_AC3_AUDIO)
  1784. #define STATIC_KSDATAFORMAT_SPECIFIER_AC3_AUDIO \
  1785. 0xe06d80e4,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
  1786. DEFINE_GUIDSTRUCT("e06d80e4-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SPECIFIER_AC3_AUDIO);
  1787. #define KSDATAFORMAT_SPECIFIER_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_AC3_AUDIO)
  1788. #define STATIC_KSPROPSETID_AC3 \
  1789. 0xBFABE720,0x6E1F,0x11D0,0xBC,0xF2,0x44,0x45,0x53,0x54,0x00,0x00
  1790. DEFINE_GUIDSTRUCT("BFABE720-6E1F-11D0-BCF2-444553540000",KSPROPSETID_AC3);
  1791. #define KSPROPSETID_AC3 DEFINE_GUIDNAMED(KSPROPSETID_AC3)
  1792. typedef enum {
  1793. KSPROPERTY_AC3_ERROR_CONCEALMENT = 1,
  1794. KSPROPERTY_AC3_ALTERNATE_AUDIO,
  1795. KSPROPERTY_AC3_DOWNMIX,
  1796. KSPROPERTY_AC3_BIT_STREAM_MODE,
  1797. KSPROPERTY_AC3_DIALOGUE_LEVEL,
  1798. KSPROPERTY_AC3_LANGUAGE_CODE,
  1799. KSPROPERTY_AC3_ROOM_TYPE
  1800. } KSPROPERTY_AC3;
  1801. typedef struct {
  1802. WINBOOL fRepeatPreviousBlock;
  1803. WINBOOL fErrorInCurrentBlock;
  1804. } KSAC3_ERROR_CONCEALMENT,*PKSAC3_ERROR_CONCEALMENT;
  1805. typedef struct {
  1806. WINBOOL fStereo;
  1807. ULONG DualMode;
  1808. } KSAC3_ALTERNATE_AUDIO,*PKSAC3_ALTERNATE_AUDIO;
  1809. #define KSAC3_ALTERNATE_AUDIO_1 1
  1810. #define KSAC3_ALTERNATE_AUDIO_2 2
  1811. #define KSAC3_ALTERNATE_AUDIO_BOTH 3
  1812. typedef struct {
  1813. WINBOOL fDownMix;
  1814. WINBOOL fDolbySurround;
  1815. } KSAC3_DOWNMIX,*PKSAC3_DOWNMIX;
  1816. typedef struct {
  1817. LONG BitStreamMode;
  1818. } KSAC3_BIT_STREAM_MODE,*PKSAC3_BIT_STREAM_MODE;
  1819. #define KSAC3_SERVICE_MAIN_AUDIO 0
  1820. #define KSAC3_SERVICE_NO_DIALOG 1
  1821. #define KSAC3_SERVICE_VISUALLY_IMPAIRED 2
  1822. #define KSAC3_SERVICE_HEARING_IMPAIRED 3
  1823. #define KSAC3_SERVICE_DIALOG_ONLY 4
  1824. #define KSAC3_SERVICE_COMMENTARY 5
  1825. #define KSAC3_SERVICE_EMERGENCY_FLASH 6
  1826. #define KSAC3_SERVICE_VOICE_OVER 7
  1827. typedef struct {
  1828. ULONG DialogueLevel;
  1829. } KSAC3_DIALOGUE_LEVEL,*PKSAC3_DIALOGUE_LEVEL;
  1830. typedef struct {
  1831. WINBOOL fLargeRoom;
  1832. } KSAC3_ROOM_TYPE,*PKSAC3_ROOM_TYPE;
  1833. #define STATIC_KSDATAFORMAT_SUBTYPE_DTS_AUDIO \
  1834. 0xe06d8033,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
  1835. DEFINE_GUIDSTRUCT("e06d8033-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_DTS_AUDIO);
  1836. #define KSDATAFORMAT_SUBTYPE_DTS_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DTS_AUDIO)
  1837. #define STATIC_KSDATAFORMAT_SUBTYPE_SDDS_AUDIO \
  1838. 0xe06d8034,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
  1839. DEFINE_GUIDSTRUCT("e06d8034-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_SDDS_AUDIO);
  1840. #define KSDATAFORMAT_SUBTYPE_SDDS_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_SDDS_AUDIO)
  1841. #define STATIC_KSPROPSETID_AudioDecoderOut \
  1842. 0x6ca6e020,0x43bd,0x11d0,0xbd,0x6a,0x00,0x35,0x05,0xc1,0x03,0xa9
  1843. DEFINE_GUIDSTRUCT("6ca6e020-43bd-11d0-bd6a-003505c103a9",KSPROPSETID_AudioDecoderOut);
  1844. #define KSPROPSETID_AudioDecoderOut DEFINE_GUIDNAMED(KSPROPSETID_AudioDecoderOut)
  1845. typedef enum {
  1846. KSPROPERTY_AUDDECOUT_MODES,
  1847. KSPROPERTY_AUDDECOUT_CUR_MODE
  1848. } KSPROPERTY_AUDDECOUT;
  1849. #define KSAUDDECOUTMODE_STEREO_ANALOG 0x0001
  1850. #define KSAUDDECOUTMODE_PCM_51 0x0002
  1851. #define KSAUDDECOUTMODE_SPDIFF 0x0004
  1852. #define STATIC_KSDATAFORMAT_SUBTYPE_SUBPICTURE \
  1853. 0xe06d802d,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
  1854. DEFINE_GUIDSTRUCT("e06d802d-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_SUBPICTURE);
  1855. #define KSDATAFORMAT_SUBTYPE_SUBPICTURE DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_SUBPICTURE)
  1856. #define STATIC_KSPROPSETID_DvdSubPic \
  1857. 0xac390460,0x43af,0x11d0,0xbd,0x6a,0x00,0x35,0x05,0xc1,0x03,0xa9
  1858. DEFINE_GUIDSTRUCT("ac390460-43af-11d0-bd6a-003505c103a9",KSPROPSETID_DvdSubPic);
  1859. #define KSPROPSETID_DvdSubPic DEFINE_GUIDNAMED(KSPROPSETID_DvdSubPic)
  1860. typedef enum {
  1861. KSPROPERTY_DVDSUBPIC_PALETTE,
  1862. KSPROPERTY_DVDSUBPIC_HLI,
  1863. KSPROPERTY_DVDSUBPIC_COMPOSIT_ON
  1864. } KSPROPERTY_DVDSUBPIC;
  1865. typedef struct _KS_DVD_YCrCb {
  1866. UCHAR Reserved;
  1867. UCHAR Y;
  1868. UCHAR Cr;
  1869. UCHAR Cb;
  1870. } KS_DVD_YCrCb,*PKS_DVD_YCrCb;
  1871. typedef struct _KS_DVD_YUV {
  1872. UCHAR Reserved;
  1873. UCHAR Y;
  1874. UCHAR V;
  1875. UCHAR U;
  1876. } KS_DVD_YUV,*PKS_DVD_YUV;
  1877. typedef struct _KSPROPERTY_SPPAL {
  1878. KS_DVD_YUV sppal[16];
  1879. } KSPROPERTY_SPPAL,*PKSPROPERTY_SPPAL;
  1880. typedef struct _KS_COLCON {
  1881. UCHAR emph1col:4;
  1882. UCHAR emph2col:4;
  1883. UCHAR backcol:4;
  1884. UCHAR patcol:4;
  1885. UCHAR emph1con:4;
  1886. UCHAR emph2con:4;
  1887. UCHAR backcon:4;
  1888. UCHAR patcon:4;
  1889. } KS_COLCON,*PKS_COLCON;
  1890. typedef struct _KSPROPERTY_SPHLI {
  1891. USHORT HLISS;
  1892. USHORT Reserved;
  1893. ULONG StartPTM;
  1894. ULONG EndPTM;
  1895. USHORT StartX;
  1896. USHORT StartY;
  1897. USHORT StopX;
  1898. USHORT StopY;
  1899. KS_COLCON ColCon;
  1900. } KSPROPERTY_SPHLI,*PKSPROPERTY_SPHLI;
  1901. typedef WINBOOL KSPROPERTY_COMPOSIT_ON,*PKSPROPERTY_COMPOSIT_ON;
  1902. #define STATIC_KSPROPSETID_CopyProt \
  1903. 0x0E8A0A40,0x6AEF,0x11D0,0x9E,0xD0,0x00,0xA0,0x24,0xCA,0x19,0xB3
  1904. DEFINE_GUIDSTRUCT("0E8A0A40-6AEF-11D0-9ED0-00A024CA19B3",KSPROPSETID_CopyProt);
  1905. #define KSPROPSETID_CopyProt DEFINE_GUIDNAMED(KSPROPSETID_CopyProt)
  1906. typedef enum {
  1907. KSPROPERTY_DVDCOPY_CHLG_KEY = 0x01,
  1908. KSPROPERTY_DVDCOPY_DVD_KEY1,
  1909. KSPROPERTY_DVDCOPY_DEC_KEY2,
  1910. KSPROPERTY_DVDCOPY_TITLE_KEY,
  1911. KSPROPERTY_COPY_MACROVISION,
  1912. KSPROPERTY_DVDCOPY_REGION,
  1913. KSPROPERTY_DVDCOPY_SET_COPY_STATE,
  1914. KSPROPERTY_DVDCOPY_DISC_KEY = 0x80
  1915. } KSPROPERTY_COPYPROT;
  1916. typedef struct _KS_DVDCOPY_CHLGKEY {
  1917. BYTE ChlgKey[10];
  1918. BYTE Reserved[2];
  1919. } KS_DVDCOPY_CHLGKEY,*PKS_DVDCOPY_CHLGKEY;
  1920. typedef struct _KS_DVDCOPY_BUSKEY {
  1921. BYTE BusKey[5];
  1922. BYTE Reserved[1];
  1923. } KS_DVDCOPY_BUSKEY,*PKS_DVDCOPY_BUSKEY;
  1924. typedef struct _KS_DVDCOPY_DISCKEY {
  1925. BYTE DiscKey[2048];
  1926. } KS_DVDCOPY_DISCKEY,*PKS_DVDCOPY_DISCKEY;
  1927. typedef struct _KS_DVDCOPY_REGION {
  1928. UCHAR Reserved;
  1929. UCHAR RegionData;
  1930. UCHAR Reserved2[2];
  1931. } KS_DVDCOPY_REGION,*PKS_DVDCOPY_REGION;
  1932. typedef struct _KS_DVDCOPY_TITLEKEY {
  1933. ULONG KeyFlags;
  1934. ULONG ReservedNT[2];
  1935. UCHAR TitleKey[6];
  1936. UCHAR Reserved[2];
  1937. } KS_DVDCOPY_TITLEKEY,*PKS_DVDCOPY_TITLEKEY;
  1938. typedef struct _KS_COPY_MACROVISION {
  1939. ULONG MACROVISIONLevel;
  1940. } KS_COPY_MACROVISION,*PKS_COPY_MACROVISION;
  1941. typedef struct _KS_DVDCOPY_SET_COPY_STATE {
  1942. ULONG DVDCopyState;
  1943. } KS_DVDCOPY_SET_COPY_STATE,*PKS_DVDCOPY_SET_COPY_STATE;
  1944. typedef enum {
  1945. KS_DVDCOPYSTATE_INITIALIZE,
  1946. KS_DVDCOPYSTATE_INITIALIZE_TITLE,
  1947. KS_DVDCOPYSTATE_AUTHENTICATION_NOT_REQUIRED,
  1948. KS_DVDCOPYSTATE_AUTHENTICATION_REQUIRED,
  1949. KS_DVDCOPYSTATE_DONE
  1950. } KS_DVDCOPYSTATE;
  1951. typedef enum {
  1952. KS_MACROVISION_DISABLED,
  1953. KS_MACROVISION_LEVEL1,
  1954. KS_MACROVISION_LEVEL2,
  1955. KS_MACROVISION_LEVEL3
  1956. } KS_COPY_MACROVISION_LEVEL,*PKS_COPY_MACROVISION_LEVEL;
  1957. #define KS_DVD_CGMS_RESERVED_MASK 0x00000078
  1958. #define KS_DVD_CGMS_COPY_PROTECT_MASK 0x00000018
  1959. #define KS_DVD_CGMS_COPY_PERMITTED 0x00000000
  1960. #define KS_DVD_CGMS_COPY_ONCE 0x00000010
  1961. #define KS_DVD_CGMS_NO_COPY 0x00000018
  1962. #define KS_DVD_COPYRIGHT_MASK 0x00000040
  1963. #define KS_DVD_NOT_COPYRIGHTED 0x00000000
  1964. #define KS_DVD_COPYRIGHTED 0x00000040
  1965. #define KS_DVD_SECTOR_PROTECT_MASK 0x00000020
  1966. #define KS_DVD_SECTOR_NOT_PROTECTED 0x00000000
  1967. #define KS_DVD_SECTOR_PROTECTED 0x00000020
  1968. #define STATIC_KSCATEGORY_TVTUNER \
  1969. 0xa799a800,0xa46d,0x11d0,0xa1,0x8c,0x00,0xa0,0x24,0x01,0xdc,0xd4
  1970. DEFINE_GUIDSTRUCT("a799a800-a46d-11d0-a18c-00a02401dcd4",KSCATEGORY_TVTUNER);
  1971. #define KSCATEGORY_TVTUNER DEFINE_GUIDNAMED(KSCATEGORY_TVTUNER)
  1972. #define STATIC_KSCATEGORY_CROSSBAR \
  1973. 0xa799a801,0xa46d,0x11d0,0xa1,0x8c,0x00,0xa0,0x24,0x01,0xdc,0xd4
  1974. DEFINE_GUIDSTRUCT("a799a801-a46d-11d0-a18c-00a02401dcd4",KSCATEGORY_CROSSBAR);
  1975. #define KSCATEGORY_CROSSBAR DEFINE_GUIDNAMED(KSCATEGORY_CROSSBAR)
  1976. #define STATIC_KSCATEGORY_TVAUDIO \
  1977. 0xa799a802,0xa46d,0x11d0,0xa1,0x8c,0x00,0xa0,0x24,0x01,0xdc,0xd4
  1978. DEFINE_GUIDSTRUCT("a799a802-a46d-11d0-a18c-00a02401dcd4",KSCATEGORY_TVAUDIO);
  1979. #define KSCATEGORY_TVAUDIO DEFINE_GUIDNAMED(KSCATEGORY_TVAUDIO)
  1980. #define STATIC_KSCATEGORY_VPMUX \
  1981. 0xa799a803,0xa46d,0x11d0,0xa1,0x8c,0x00,0xa0,0x24,0x01,0xdc,0xd4
  1982. DEFINE_GUIDSTRUCT("a799a803-a46d-11d0-a18c-00a02401dcd4",KSCATEGORY_VPMUX);
  1983. #define KSCATEGORY_VPMUX DEFINE_GUIDNAMED(KSCATEGORY_VPMUX)
  1984. #define STATIC_KSCATEGORY_VBICODEC \
  1985. 0x07dad660,0x22f1,0x11d1,0xa9,0xf4,0x00,0xc0,0x4f,0xbb,0xde,0x8f
  1986. DEFINE_GUIDSTRUCT("07dad660-22f1-11d1-a9f4-00c04fbbde8f",KSCATEGORY_VBICODEC);
  1987. #define KSCATEGORY_VBICODEC DEFINE_GUIDNAMED(KSCATEGORY_VBICODEC)
  1988. #define STATIC_KSDATAFORMAT_SUBTYPE_VPVideo \
  1989. 0x5a9b6a40,0x1a22,0x11d1,0xba,0xd9,0x0,0x60,0x97,0x44,0x11,0x1a
  1990. DEFINE_GUIDSTRUCT("5a9b6a40-1a22-11d1-bad9-00609744111a",KSDATAFORMAT_SUBTYPE_VPVideo);
  1991. #define KSDATAFORMAT_SUBTYPE_VPVideo DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_VPVideo)
  1992. #define STATIC_KSDATAFORMAT_SUBTYPE_VPVBI \
  1993. 0x5a9b6a41,0x1a22,0x11d1,0xba,0xd9,0x0,0x60,0x97,0x44,0x11,0x1a
  1994. DEFINE_GUIDSTRUCT("5a9b6a41-1a22-11d1-bad9-00609744111a",KSDATAFORMAT_SUBTYPE_VPVBI);
  1995. #define KSDATAFORMAT_SUBTYPE_VPVBI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_VPVBI)
  1996. #define STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO \
  1997. 0x05589f80,0xc356,0x11ce,0xbf,0x01,0x00,0xaa,0x00,0x55,0x59,0x5a
  1998. DEFINE_GUIDSTRUCT("05589f80-c356-11ce-bf01-00aa0055595a",KSDATAFORMAT_SPECIFIER_VIDEOINFO);
  1999. #define KSDATAFORMAT_SPECIFIER_VIDEOINFO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_VIDEOINFO)
  2000. #define STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO2 \
  2001. 0xf72a76A0,0xeb0a,0x11d0,0xac,0xe4,0x00,0x00,0xc0,0xcc,0x16,0xba
  2002. DEFINE_GUIDSTRUCT("f72a76A0-eb0a-11d0-ace4-0000c0cc16ba",KSDATAFORMAT_SPECIFIER_VIDEOINFO2);
  2003. #define KSDATAFORMAT_SPECIFIER_VIDEOINFO2 DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_VIDEOINFO2)
  2004. #define STATIC_KSDATAFORMAT_TYPE_ANALOGVIDEO \
  2005. 0x0482dde1,0x7817,0x11cf,0x8a,0x03,0x00,0xaa,0x00,0x6e,0xcb,0x65
  2006. DEFINE_GUIDSTRUCT("0482dde1-7817-11cf-8a03-00aa006ecb65",KSDATAFORMAT_TYPE_ANALOGVIDEO);
  2007. #define KSDATAFORMAT_TYPE_ANALOGVIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_ANALOGVIDEO)
  2008. #define STATIC_KSDATAFORMAT_SPECIFIER_ANALOGVIDEO \
  2009. 0x0482dde0,0x7817,0x11cf,0x8a,0x03,0x00,0xaa,0x00,0x6e,0xcb,0x65
  2010. DEFINE_GUIDSTRUCT("0482dde0-7817-11cf-8a03-00aa006ecb65",KSDATAFORMAT_SPECIFIER_ANALOGVIDEO);
  2011. #define KSDATAFORMAT_SPECIFIER_ANALOGVIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_ANALOGVIDEO)
  2012. #define STATIC_KSDATAFORMAT_TYPE_ANALOGAUDIO \
  2013. 0x0482dee1,0x7817,0x11cf,0x8a,0x03,0x00,0xaa,0x00,0x6e,0xcb,0x65
  2014. DEFINE_GUIDSTRUCT("0482DEE1-7817-11cf-8a03-00aa006ecb65",KSDATAFORMAT_TYPE_ANALOGAUDIO);
  2015. #define KSDATAFORMAT_TYPE_ANALOGAUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_ANALOGAUDIO)
  2016. #define STATIC_KSDATAFORMAT_SPECIFIER_VBI \
  2017. 0xf72a76e0,0xeb0a,0x11d0,0xac,0xe4,0x00,0x00,0xc0,0xcc,0x16,0xba
  2018. DEFINE_GUIDSTRUCT("f72a76e0-eb0a-11d0-ace4-0000c0cc16ba",KSDATAFORMAT_SPECIFIER_VBI);
  2019. #define KSDATAFORMAT_SPECIFIER_VBI DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_VBI)
  2020. #define STATIC_KSDATAFORMAT_TYPE_VBI \
  2021. 0xf72a76e1,0xeb0a,0x11d0,0xac,0xe4,0x00,0x00,0xc0,0xcc,0x16,0xba
  2022. DEFINE_GUIDSTRUCT("f72a76e1-eb0a-11d0-ace4-0000c0cc16ba",KSDATAFORMAT_TYPE_VBI);
  2023. #define KSDATAFORMAT_TYPE_VBI DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_VBI)
  2024. #define STATIC_KSDATAFORMAT_SUBTYPE_RAW8 \
  2025. 0xca20d9a0,0x3e3e,0x11d1,0x9b,0xf9,0x0,0xc0,0x4f,0xbb,0xde,0xbf
  2026. DEFINE_GUIDSTRUCT("ca20d9a0-3e3e-11d1-9bf9-00c04fbbdebf",KSDATAFORMAT_SUBTYPE_RAW8);
  2027. #define KSDATAFORMAT_SUBTYPE_RAW8 DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_RAW8)
  2028. #define STATIC_KSDATAFORMAT_SUBTYPE_CC \
  2029. 0x33214cc1,0x11f,0x11d2,0xb4,0xb1,0x0,0xa0,0xd1,0x2,0xcf,0xbe
  2030. DEFINE_GUIDSTRUCT("33214CC1-011F-11D2-B4B1-00A0D102CFBE",KSDATAFORMAT_SUBTYPE_CC);
  2031. #define KSDATAFORMAT_SUBTYPE_CC DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_CC)
  2032. #define STATIC_KSDATAFORMAT_SUBTYPE_NABTS \
  2033. 0xf72a76e2,0xeb0a,0x11d0,0xac,0xe4,0x00,0x00,0xc0,0xcc,0x16,0xba
  2034. DEFINE_GUIDSTRUCT("f72a76e2-eb0a-11d0-ace4-0000c0cc16ba",KSDATAFORMAT_SUBTYPE_NABTS);
  2035. #define KSDATAFORMAT_SUBTYPE_NABTS DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_NABTS)
  2036. #define STATIC_KSDATAFORMAT_SUBTYPE_TELETEXT \
  2037. 0xf72a76e3,0xeb0a,0x11d0,0xac,0xe4,0x00,0x00,0xc0,0xcc,0x16,0xba
  2038. DEFINE_GUIDSTRUCT("f72a76e3-eb0a-11d0-ace4-0000c0cc16ba",KSDATAFORMAT_SUBTYPE_TELETEXT);
  2039. #define KSDATAFORMAT_SUBTYPE_TELETEXT DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_TELETEXT)
  2040. #define KS_BI_RGB __MSABI_LONG(0)
  2041. #define KS_BI_RLE8 __MSABI_LONG(1)
  2042. #define KS_BI_RLE4 __MSABI_LONG(2)
  2043. #define KS_BI_BITFIELDS __MSABI_LONG(3)
  2044. typedef struct tagKS_RGBQUAD {
  2045. BYTE rgbBlue;
  2046. BYTE rgbGreen;
  2047. BYTE rgbRed;
  2048. BYTE rgbReserved;
  2049. } KS_RGBQUAD,*PKS_RGBQUAD;
  2050. #define KS_iPALETTE_COLORS 256
  2051. #define KS_iEGA_COLORS 16
  2052. #define KS_iMASK_COLORS 3
  2053. #define KS_iTRUECOLOR 16
  2054. #define KS_iRED 0
  2055. #define KS_iGREEN 1
  2056. #define KS_iBLUE 2
  2057. #define KS_iPALETTE 8
  2058. #define KS_iMAXBITS 8
  2059. #define KS_SIZE_EGA_PALETTE (KS_iEGA_COLORS *sizeof(KS_RGBQUAD))
  2060. #define KS_SIZE_PALETTE (KS_iPALETTE_COLORS *sizeof(KS_RGBQUAD))
  2061. typedef struct tagKS_BITMAPINFOHEADER {
  2062. DWORD biSize;
  2063. LONG biWidth;
  2064. LONG biHeight;
  2065. WORD biPlanes;
  2066. WORD biBitCount;
  2067. DWORD biCompression;
  2068. DWORD biSizeImage;
  2069. LONG biXPelsPerMeter;
  2070. LONG biYPelsPerMeter;
  2071. DWORD biClrUsed;
  2072. DWORD biClrImportant;
  2073. } KS_BITMAPINFOHEADER,*PKS_BITMAPINFOHEADER;
  2074. typedef struct tag_KS_TRUECOLORINFO {
  2075. DWORD dwBitMasks[KS_iMASK_COLORS];
  2076. KS_RGBQUAD bmiColors[KS_iPALETTE_COLORS];
  2077. } KS_TRUECOLORINFO,*PKS_TRUECOLORINFO;
  2078. #define KS_WIDTHBYTES(bits) ((DWORD)(((bits)+31) & (~31)) / 8)
  2079. #define KS_DIBWIDTHBYTES(bi) (DWORD)KS_WIDTHBYTES((DWORD)(bi).biWidth *(DWORD)(bi).biBitCount)
  2080. #define KS__DIBSIZE(bi) (KS_DIBWIDTHBYTES(bi) *(DWORD)(bi).biHeight)
  2081. #define KS_DIBSIZE(bi) ((bi).biHeight < 0 ? (-1)*(KS__DIBSIZE(bi)) : KS__DIBSIZE(bi))
  2082. #ifndef __REFERENCE_TIME_DEFINED
  2083. #define __REFERENCE_TIME_DEFINED
  2084. typedef LONGLONG REFERENCE_TIME;
  2085. #endif /*__REFERENCE_TIME_DEFINED*/
  2086. typedef struct tagKS_VIDEOINFOHEADER {
  2087. RECT rcSource;
  2088. RECT rcTarget;
  2089. DWORD dwBitRate;
  2090. DWORD dwBitErrorRate;
  2091. REFERENCE_TIME AvgTimePerFrame;
  2092. KS_BITMAPINFOHEADER bmiHeader;
  2093. } KS_VIDEOINFOHEADER,*PKS_VIDEOINFOHEADER;
  2094. typedef struct tagKS_VIDEOINFO {
  2095. RECT rcSource;
  2096. RECT rcTarget;
  2097. DWORD dwBitRate;
  2098. DWORD dwBitErrorRate;
  2099. REFERENCE_TIME AvgTimePerFrame;
  2100. KS_BITMAPINFOHEADER bmiHeader;
  2101. __C89_NAMELESS union {
  2102. KS_RGBQUAD bmiColors[KS_iPALETTE_COLORS];
  2103. DWORD dwBitMasks[KS_iMASK_COLORS];
  2104. KS_TRUECOLORINFO TrueColorInfo;
  2105. };
  2106. } KS_VIDEOINFO,*PKS_VIDEOINFO;
  2107. #define KS_SIZE_MASKS (KS_iMASK_COLORS *sizeof(DWORD))
  2108. #define KS_SIZE_PREHEADER (FIELD_OFFSET(KS_VIDEOINFOHEADER,bmiHeader))
  2109. #define KS_SIZE_VIDEOHEADER(pbmi) ((pbmi)->bmiHeader.biSize + KS_SIZE_PREHEADER)
  2110. typedef struct tagKS_VBIINFOHEADER {
  2111. ULONG StartLine;
  2112. ULONG EndLine;
  2113. ULONG SamplingFrequency;
  2114. ULONG MinLineStartTime;
  2115. ULONG MaxLineStartTime;
  2116. ULONG ActualLineStartTime;
  2117. ULONG ActualLineEndTime;
  2118. ULONG VideoStandard;
  2119. ULONG SamplesPerLine;
  2120. ULONG StrideInBytes;
  2121. ULONG BufferSize;
  2122. } KS_VBIINFOHEADER,*PKS_VBIINFOHEADER;
  2123. #define KS_VBIDATARATE_NABTS (__MSABI_LONG(5727272))
  2124. #define KS_VBIDATARATE_CC (__MSABI_LONG(503493))
  2125. #define KS_VBISAMPLINGRATE_4X_NABTS ((__LONG32)(4*KS_VBIDATARATE_NABTS))
  2126. #define KS_VBISAMPLINGRATE_47X_NABTS (__MSABI_LONG(27000000))
  2127. #define KS_VBISAMPLINGRATE_5X_NABTS ((__LONG32)(5*KS_VBIDATARATE_NABTS))
  2128. #define KS_47NABTS_SCALER (KS_VBISAMPLINGRATE_47X_NABTS/(double)KS_VBIDATARATE_NABTS)
  2129. typedef struct tagKS_AnalogVideoInfo {
  2130. RECT rcSource;
  2131. RECT rcTarget;
  2132. DWORD dwActiveWidth;
  2133. DWORD dwActiveHeight;
  2134. REFERENCE_TIME AvgTimePerFrame;
  2135. } KS_ANALOGVIDEOINFO,*PKS_ANALOGVIDEOINFO;
  2136. #define KS_TVTUNER_CHANGE_BEGIN_TUNE __MSABI_LONG(0x0001)
  2137. #define KS_TVTUNER_CHANGE_END_TUNE __MSABI_LONG(0x0002)
  2138. typedef struct tagKS_TVTUNER_CHANGE_INFO {
  2139. DWORD dwFlags;
  2140. DWORD dwCountryCode;
  2141. DWORD dwAnalogVideoStandard;
  2142. DWORD dwChannel;
  2143. } KS_TVTUNER_CHANGE_INFO,*PKS_TVTUNER_CHANGE_INFO;
  2144. typedef enum {
  2145. KS_MPEG2Level_Low,
  2146. KS_MPEG2Level_Main,
  2147. KS_MPEG2Level_High1440,
  2148. KS_MPEG2Level_High
  2149. } KS_MPEG2Level;
  2150. typedef enum {
  2151. KS_MPEG2Profile_Simple,
  2152. KS_MPEG2Profile_Main,
  2153. KS_MPEG2Profile_SNRScalable,
  2154. KS_MPEG2Profile_SpatiallyScalable,
  2155. KS_MPEG2Profile_High
  2156. } KS_MPEG2Profile;
  2157. #define KS_INTERLACE_IsInterlaced 0x00000001
  2158. #define KS_INTERLACE_1FieldPerSample 0x00000002
  2159. #define KS_INTERLACE_Field1First 0x00000004
  2160. #define KS_INTERLACE_UNUSED 0x00000008
  2161. #define KS_INTERLACE_FieldPatternMask 0x00000030
  2162. #define KS_INTERLACE_FieldPatField1Only 0x00000000
  2163. #define KS_INTERLACE_FieldPatField2Only 0x00000010
  2164. #define KS_INTERLACE_FieldPatBothRegular 0x00000020
  2165. #define KS_INTERLACE_FieldPatBothIrregular 0x00000030
  2166. #define KS_INTERLACE_DisplayModeMask 0x000000c0
  2167. #define KS_INTERLACE_DisplayModeBobOnly 0x00000000
  2168. #define KS_INTERLACE_DisplayModeWeaveOnly 0x00000040
  2169. #define KS_INTERLACE_DisplayModeBobOrWeave 0x00000080
  2170. #define KS_MPEG2_DoPanScan 0x00000001
  2171. #define KS_MPEG2_DVDLine21Field1 0x00000002
  2172. #define KS_MPEG2_DVDLine21Field2 0x00000004
  2173. #define KS_MPEG2_SourceIsLetterboxed 0x00000008
  2174. #define KS_MPEG2_FilmCameraMode 0x00000010
  2175. #define KS_MPEG2_LetterboxAnalogOut 0x00000020
  2176. #define KS_MPEG2_DSS_UserData 0x00000040
  2177. #define KS_MPEG2_DVB_UserData 0x00000080
  2178. #define KS_MPEG2_27MhzTimebase 0x00000100
  2179. typedef struct tagKS_VIDEOINFOHEADER2 {
  2180. RECT rcSource;
  2181. RECT rcTarget;
  2182. DWORD dwBitRate;
  2183. DWORD dwBitErrorRate;
  2184. REFERENCE_TIME AvgTimePerFrame;
  2185. DWORD dwInterlaceFlags;
  2186. DWORD dwCopyProtectFlags;
  2187. DWORD dwPictAspectRatioX;
  2188. DWORD dwPictAspectRatioY;
  2189. DWORD dwReserved1;
  2190. DWORD dwReserved2;
  2191. KS_BITMAPINFOHEADER bmiHeader;
  2192. } KS_VIDEOINFOHEADER2,*PKS_VIDEOINFOHEADER2;
  2193. typedef struct tagKS_MPEG1VIDEOINFO {
  2194. KS_VIDEOINFOHEADER hdr;
  2195. DWORD dwStartTimeCode;
  2196. DWORD cbSequenceHeader;
  2197. BYTE bSequenceHeader[1];
  2198. } KS_MPEG1VIDEOINFO,*PKS_MPEG1VIDEOINFO;
  2199. #define KS_MAX_SIZE_MPEG1_SEQUENCE_INFO 140
  2200. #define KS_SIZE_MPEG1VIDEOINFO(pv) (FIELD_OFFSET(KS_MPEG1VIDEOINFO,bSequenceHeader[0]) + (pv)->cbSequenceHeader)
  2201. #define KS_MPEG1_SEQUENCE_INFO(pv) ((const BYTE *)(pv)->bSequenceHeader)
  2202. typedef struct tagKS_MPEGVIDEOINFO2 {
  2203. KS_VIDEOINFOHEADER2 hdr;
  2204. DWORD dwStartTimeCode;
  2205. DWORD cbSequenceHeader;
  2206. DWORD dwProfile;
  2207. DWORD dwLevel;
  2208. DWORD dwFlags;
  2209. DWORD bSequenceHeader[1];
  2210. } KS_MPEGVIDEOINFO2,*PKS_MPEGVIDEOINFO2;
  2211. #define KS_SIZE_MPEGVIDEOINFO2(pv) (FIELD_OFFSET(KS_MPEGVIDEOINFO2,bSequenceHeader[0]) + (pv)->cbSequenceHeader)
  2212. #define KS_MPEG1_SEQUENCE_INFO(pv) ((const BYTE *)(pv)->bSequenceHeader)
  2213. #define KS_MPEGAUDIOINFO_27MhzTimebase 0x00000001
  2214. typedef struct tagKS_MPEAUDIOINFO {
  2215. DWORD dwFlags;
  2216. DWORD dwReserved1;
  2217. DWORD dwReserved2;
  2218. DWORD dwReserved3;
  2219. } KS_MPEGAUDIOINFO,*PKS_MPEGAUDIOINFO;
  2220. typedef struct tagKS_DATAFORMAT_VIDEOINFOHEADER {
  2221. KSDATAFORMAT DataFormat;
  2222. KS_VIDEOINFOHEADER VideoInfoHeader;
  2223. } KS_DATAFORMAT_VIDEOINFOHEADER,*PKS_DATAFORMAT_VIDEOINFOHEADER;
  2224. typedef struct tagKS_DATAFORMAT_VIDEOINFOHEADER2 {
  2225. KSDATAFORMAT DataFormat;
  2226. KS_VIDEOINFOHEADER2 VideoInfoHeader2;
  2227. } KS_DATAFORMAT_VIDEOINFOHEADER2,*PKS_DATAFORMAT_VIDEOINFOHEADER2;
  2228. typedef struct tagKS_DATAFORMAT_VIDEOINFO_PALETTE {
  2229. KSDATAFORMAT DataFormat;
  2230. KS_VIDEOINFO VideoInfo;
  2231. } KS_DATAFORMAT_VIDEOINFO_PALETTE,*PKS_DATAFORMAT_VIDEOINFO_PALETTE;
  2232. typedef struct tagKS_DATAFORMAT_VBIINFOHEADER {
  2233. KSDATAFORMAT DataFormat;
  2234. KS_VBIINFOHEADER VBIInfoHeader;
  2235. } KS_DATAFORMAT_VBIINFOHEADER,*PKS_DATAFORMAT_VBIINFOHEADER;
  2236. typedef struct _KS_VIDEO_STREAM_CONFIG_CAPS {
  2237. GUID guid;
  2238. ULONG VideoStandard;
  2239. SIZE InputSize;
  2240. SIZE MinCroppingSize;
  2241. SIZE MaxCroppingSize;
  2242. int CropGranularityX;
  2243. int CropGranularityY;
  2244. int CropAlignX;
  2245. int CropAlignY;
  2246. SIZE MinOutputSize;
  2247. SIZE MaxOutputSize;
  2248. int OutputGranularityX;
  2249. int OutputGranularityY;
  2250. int StretchTapsX;
  2251. int StretchTapsY;
  2252. int ShrinkTapsX;
  2253. int ShrinkTapsY;
  2254. LONGLONG MinFrameInterval;
  2255. LONGLONG MaxFrameInterval;
  2256. LONG MinBitsPerSecond;
  2257. LONG MaxBitsPerSecond;
  2258. } KS_VIDEO_STREAM_CONFIG_CAPS,*PKS_VIDEO_STREAM_CONFIG_CAPS;
  2259. typedef struct tagKS_DATARANGE_VIDEO {
  2260. KSDATARANGE DataRange;
  2261. WINBOOL bFixedSizeSamples;
  2262. WINBOOL bTemporalCompression;
  2263. DWORD StreamDescriptionFlags;
  2264. DWORD MemoryAllocationFlags;
  2265. KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
  2266. KS_VIDEOINFOHEADER VideoInfoHeader;
  2267. } KS_DATARANGE_VIDEO,*PKS_DATARANGE_VIDEO;
  2268. typedef struct tagKS_DATARANGE_VIDEO2 {
  2269. KSDATARANGE DataRange;
  2270. WINBOOL bFixedSizeSamples;
  2271. WINBOOL bTemporalCompression;
  2272. DWORD StreamDescriptionFlags;
  2273. DWORD MemoryAllocationFlags;
  2274. KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
  2275. KS_VIDEOINFOHEADER2 VideoInfoHeader;
  2276. } KS_DATARANGE_VIDEO2,*PKS_DATARANGE_VIDEO2;
  2277. typedef struct tagKS_DATARANGE_MPEG1_VIDEO {
  2278. KSDATARANGE DataRange;
  2279. WINBOOL bFixedSizeSamples;
  2280. WINBOOL bTemporalCompression;
  2281. DWORD StreamDescriptionFlags;
  2282. DWORD MemoryAllocationFlags;
  2283. KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
  2284. KS_MPEG1VIDEOINFO VideoInfoHeader;
  2285. } KS_DATARANGE_MPEG1_VIDEO,*PKS_DATARANGE_MPEG1_VIDEO;
  2286. typedef struct tagKS_DATARANGE_MPEG2_VIDEO {
  2287. KSDATARANGE DataRange;
  2288. WINBOOL bFixedSizeSamples;
  2289. WINBOOL bTemporalCompression;
  2290. DWORD StreamDescriptionFlags;
  2291. DWORD MemoryAllocationFlags;
  2292. KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
  2293. KS_MPEGVIDEOINFO2 VideoInfoHeader;
  2294. } KS_DATARANGE_MPEG2_VIDEO,*PKS_DATARANGE_MPEG2_VIDEO;
  2295. typedef struct tagKS_DATARANGE_VIDEO_PALETTE {
  2296. KSDATARANGE DataRange;
  2297. WINBOOL bFixedSizeSamples;
  2298. WINBOOL bTemporalCompression;
  2299. DWORD StreamDescriptionFlags;
  2300. DWORD MemoryAllocationFlags;
  2301. KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
  2302. KS_VIDEOINFO VideoInfo;
  2303. } KS_DATARANGE_VIDEO_PALETTE,*PKS_DATARANGE_VIDEO_PALETTE;
  2304. typedef struct tagKS_DATARANGE_VIDEO_VBI {
  2305. KSDATARANGE DataRange;
  2306. WINBOOL bFixedSizeSamples;
  2307. WINBOOL bTemporalCompression;
  2308. DWORD StreamDescriptionFlags;
  2309. DWORD MemoryAllocationFlags;
  2310. KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
  2311. KS_VBIINFOHEADER VBIInfoHeader;
  2312. } KS_DATARANGE_VIDEO_VBI,*PKS_DATARANGE_VIDEO_VBI;
  2313. typedef struct tagKS_DATARANGE_ANALOGVIDEO {
  2314. KSDATARANGE DataRange;
  2315. KS_ANALOGVIDEOINFO AnalogVideoInfo;
  2316. } KS_DATARANGE_ANALOGVIDEO,*PKS_DATARANGE_ANALOGVIDEO;
  2317. #define KS_VIDEOSTREAM_PREVIEW 0x0001
  2318. #define KS_VIDEOSTREAM_CAPTURE 0x0002
  2319. #define KS_VIDEOSTREAM_VBI 0x0010
  2320. #define KS_VIDEOSTREAM_NABTS 0x0020
  2321. #define KS_VIDEOSTREAM_CC 0x0100
  2322. #define KS_VIDEOSTREAM_EDS 0x0200
  2323. #define KS_VIDEOSTREAM_TELETEXT 0x0400
  2324. #define KS_VIDEOSTREAM_STILL 0x1000
  2325. #define KS_VIDEOSTREAM_IS_VPE 0x8000
  2326. #define KS_VIDEO_ALLOC_VPE_SYSTEM 0x0001
  2327. #define KS_VIDEO_ALLOC_VPE_DISPLAY 0x0002
  2328. #define KS_VIDEO_ALLOC_VPE_AGP 0x0004
  2329. #define STATIC_KSPROPSETID_VBICAP_PROPERTIES \
  2330. 0xf162c607,0x7b35,0x496f,0xad,0x7f,0x2d,0xca,0x3b,0x46,0xb7,0x18
  2331. DEFINE_GUIDSTRUCT("F162C607-7B35-496f-AD7F-2DCA3B46B718",KSPROPSETID_VBICAP_PROPERTIES);
  2332. #define KSPROPSETID_VBICAP_PROPERTIES DEFINE_GUIDNAMED(KSPROPSETID_VBICAP_PROPERTIES)
  2333. typedef enum {
  2334. KSPROPERTY_VBICAP_PROPERTIES_PROTECTION = 0x01
  2335. } KSPROPERTY_VBICAP;
  2336. typedef struct _VBICAP_PROPERTIES_PROTECTION_S {
  2337. KSPROPERTY Property;
  2338. ULONG StreamIndex;
  2339. ULONG Status;
  2340. } VBICAP_PROPERTIES_PROTECTION_S,*PVBICAP_PROPERTIES_PROTECTION_S;
  2341. #define KS_VBICAP_PROTECTION_MV_PRESENT __MSABI_LONG(0x0001)
  2342. #define KS_VBICAP_PROTECTION_MV_HARDWARE __MSABI_LONG(0x0002)
  2343. #define KS_VBICAP_PROTECTION_MV_DETECTED __MSABI_LONG(0x0004)
  2344. #define KS_NABTS_GROUPID_ORIGINAL_CONTENT_BASE 0x800
  2345. #define KS_NABTS_GROUPID_ORIGINAL_CONTENT_ADVERTISER_BASE 0x810
  2346. #define KS_NABTS_GROUPID_PRODUCTION_COMPANY_CONTENT_BASE 0x820
  2347. #define KS_NABTS_GROUPID_PRODUCTION_COMPANY_ADVERTISER_BASE 0x830
  2348. #define KS_NABTS_GROUPID_SYNDICATED_SHOW_CONTENT_BASE 0x840
  2349. #define KS_NABTS_GROUPID_SYNDICATED_SHOW_ADVERTISER_BASE 0x850
  2350. #define KS_NABTS_GROUPID_NETWORK_WIDE_CONTENT_BASE 0x860
  2351. #define KS_NABTS_GROUPID_NETWORK_WIDE_ADVERTISER_BASE 0x870
  2352. #define KS_NABTS_GROUPID_TELEVISION_STATION_CONTENT_BASE 0x880
  2353. #define KS_NABTS_GROUPID_TELEVISION_STATION_ADVERTISER_BASE 0x890
  2354. #define KS_NABTS_GROUPID_LOCAL_CABLE_SYSTEM_CONTENT_BASE 0x8A0
  2355. #define KS_NABTS_GROUPID_LOCAL_CABLE_SYSTEM_ADVERTISER_BASE 0x8B0
  2356. #define KS_NABTS_GROUPID_MICROSOFT_RESERVED_TEST_DATA_BASE 0x8F0
  2357. #define STATIC_KSDATAFORMAT_TYPE_NABTS \
  2358. 0xe757bca0,0x39ac,0x11d1,0xa9,0xf5,0x0,0xc0,0x4f,0xbb,0xde,0x8f
  2359. DEFINE_GUIDSTRUCT("E757BCA0-39AC-11d1-A9F5-00C04FBBDE8F",KSDATAFORMAT_TYPE_NABTS);
  2360. #define KSDATAFORMAT_TYPE_NABTS DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_NABTS)
  2361. #define STATIC_KSDATAFORMAT_SUBTYPE_NABTS_FEC \
  2362. 0xe757bca1,0x39ac,0x11d1,0xa9,0xf5,0x0,0xc0,0x4f,0xbb,0xde,0x8f
  2363. DEFINE_GUIDSTRUCT("E757BCA1-39AC-11d1-A9F5-00C04FBBDE8F",KSDATAFORMAT_SUBTYPE_NABTS_FEC);
  2364. #define KSDATAFORMAT_SUBTYPE_NABTS_FEC DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_NABTS_FEC)
  2365. #define MAX_NABTS_VBI_LINES_PER_FIELD 11
  2366. #define NABTS_LINES_PER_BUNDLE 16
  2367. #define NABTS_PAYLOAD_PER_LINE 28
  2368. #define NABTS_BYTES_PER_LINE 36
  2369. typedef struct _NABTSFEC_BUFFER {
  2370. ULONG dataSize;
  2371. USHORT groupID;
  2372. USHORT Reserved;
  2373. UCHAR data[NABTS_LINES_PER_BUNDLE *NABTS_PAYLOAD_PER_LINE];
  2374. } NABTSFEC_BUFFER,*PNABTSFEC_BUFFER;
  2375. #define STATIC_KSPROPSETID_VBICodecFiltering \
  2376. 0xcafeb0ca,0x8715,0x11d0,0xbd,0x6a,0x00,0x35,0xc0,0xed,0xba,0xbe
  2377. DEFINE_GUIDSTRUCT("cafeb0ca-8715-11d0-bd6a-0035c0edbabe",KSPROPSETID_VBICodecFiltering);
  2378. #define KSPROPSETID_VBICodecFiltering DEFINE_GUIDNAMED(KSPROPSETID_VBICodecFiltering)
  2379. typedef enum {
  2380. KSPROPERTY_VBICODECFILTERING_SCANLINES_REQUESTED_BIT_ARRAY = 0x01,
  2381. KSPROPERTY_VBICODECFILTERING_SCANLINES_DISCOVERED_BIT_ARRAY,
  2382. KSPROPERTY_VBICODECFILTERING_SUBSTREAMS_REQUESTED_BIT_ARRAY,
  2383. KSPROPERTY_VBICODECFILTERING_SUBSTREAMS_DISCOVERED_BIT_ARRAY,
  2384. KSPROPERTY_VBICODECFILTERING_STATISTICS
  2385. } KSPROPERTY_VBICODECFILTERING;
  2386. typedef struct _VBICODECFILTERING_SCANLINES {
  2387. DWORD DwordBitArray[32];
  2388. } VBICODECFILTERING_SCANLINES,*PVBICODECFILTERING_SCANLINES;
  2389. typedef struct _VBICODECFILTERING_NABTS_SUBSTREAMS {
  2390. DWORD SubstreamMask[128];
  2391. } VBICODECFILTERING_NABTS_SUBSTREAMS,*PVBICODECFILTERING_NABTS_SUBSTREAMS;
  2392. typedef struct _VBICODECFILTERING_CC_SUBSTREAMS {
  2393. DWORD SubstreamMask;
  2394. } VBICODECFILTERING_CC_SUBSTREAMS,*PVBICODECFILTERING_CC_SUBSTREAMS;
  2395. #define KS_CC_SUBSTREAM_ODD __MSABI_LONG(0x0001)
  2396. #define KS_CC_SUBSTREAM_EVEN __MSABI_LONG(0x0002)
  2397. #define KS_CC_SUBSTREAM_FIELD1_MASK __MSABI_LONG(0x00F0)
  2398. #define KS_CC_SUBSTREAM_SERVICE_CC1 __MSABI_LONG(0x0010)
  2399. #define KS_CC_SUBSTREAM_SERVICE_CC2 __MSABI_LONG(0x0020)
  2400. #define KS_CC_SUBSTREAM_SERVICE_T1 __MSABI_LONG(0x0040)
  2401. #define KS_CC_SUBSTREAM_SERVICE_T2 __MSABI_LONG(0x0080)
  2402. #define KS_CC_SUBSTREAM_FIELD2_MASK __MSABI_LONG(0x1F00)
  2403. #define KS_CC_SUBSTREAM_SERVICE_CC3 __MSABI_LONG(0x0100)
  2404. #define KS_CC_SUBSTREAM_SERVICE_CC4 __MSABI_LONG(0x0200)
  2405. #define KS_CC_SUBSTREAM_SERVICE_T3 __MSABI_LONG(0x0400)
  2406. #define KS_CC_SUBSTREAM_SERVICE_T4 __MSABI_LONG(0x0800)
  2407. #define KS_CC_SUBSTREAM_SERVICE_XDS __MSABI_LONG(0x1000)
  2408. #define CC_MAX_HW_DECODE_LINES 12
  2409. typedef struct _CC_BYTE_PAIR {
  2410. BYTE Decoded[2];
  2411. USHORT Reserved;
  2412. } CC_BYTE_PAIR,*PCC_BYTE_PAIR;
  2413. typedef struct _CC_HW_FIELD {
  2414. VBICODECFILTERING_SCANLINES ScanlinesRequested;
  2415. ULONG fieldFlags;
  2416. LONGLONG PictureNumber;
  2417. CC_BYTE_PAIR Lines[CC_MAX_HW_DECODE_LINES];
  2418. } CC_HW_FIELD,*PCC_HW_FIELD;
  2419. #ifndef PACK_PRAGMAS_NOT_SUPPORTED
  2420. #include <pshpack1.h>
  2421. #endif
  2422. typedef struct _NABTS_BUFFER_LINE {
  2423. BYTE Confidence;
  2424. BYTE Bytes[NABTS_BYTES_PER_LINE];
  2425. } NABTS_BUFFER_LINE,*PNABTS_BUFFER_LINE;
  2426. #define NABTS_BUFFER_PICTURENUMBER_SUPPORT 1
  2427. typedef struct _NABTS_BUFFER {
  2428. VBICODECFILTERING_SCANLINES ScanlinesRequested;
  2429. LONGLONG PictureNumber;
  2430. NABTS_BUFFER_LINE NabtsLines[MAX_NABTS_VBI_LINES_PER_FIELD];
  2431. } NABTS_BUFFER,*PNABTS_BUFFER;
  2432. #ifndef PACK_PRAGMAS_NOT_SUPPORTED
  2433. #include <poppack.h>
  2434. #endif
  2435. #define WST_TVTUNER_CHANGE_BEGIN_TUNE __MSABI_LONG(0x1000)
  2436. #define WST_TVTUNER_CHANGE_END_TUNE __MSABI_LONG(0x2000)
  2437. #define MAX_WST_VBI_LINES_PER_FIELD 17
  2438. #define WST_BYTES_PER_LINE 42
  2439. typedef struct _WST_BUFFER_LINE {
  2440. BYTE Confidence;
  2441. BYTE Bytes[WST_BYTES_PER_LINE];
  2442. } WST_BUFFER_LINE,*PWST_BUFFER_LINE;
  2443. typedef struct _WST_BUFFER {
  2444. VBICODECFILTERING_SCANLINES ScanlinesRequested;
  2445. WST_BUFFER_LINE WstLines[MAX_WST_VBI_LINES_PER_FIELD];
  2446. } WST_BUFFER,*PWST_BUFFER;
  2447. typedef struct _VBICODECFILTERING_STATISTICS_COMMON {
  2448. DWORD InputSRBsProcessed;
  2449. DWORD OutputSRBsProcessed;
  2450. DWORD SRBsIgnored;
  2451. DWORD InputSRBsMissing;
  2452. DWORD OutputSRBsMissing;
  2453. DWORD OutputFailures;
  2454. DWORD InternalErrors;
  2455. DWORD ExternalErrors;
  2456. DWORD InputDiscontinuities;
  2457. DWORD DSPFailures;
  2458. DWORD TvTunerChanges;
  2459. DWORD VBIHeaderChanges;
  2460. DWORD LineConfidenceAvg;
  2461. DWORD BytesOutput;
  2462. } VBICODECFILTERING_STATISTICS_COMMON,*PVBICODECFILTERING_STATISTICS_COMMON;
  2463. typedef struct _VBICODECFILTERING_STATISTICS_COMMON_PIN {
  2464. DWORD SRBsProcessed;
  2465. DWORD SRBsIgnored;
  2466. DWORD SRBsMissing;
  2467. DWORD InternalErrors;
  2468. DWORD ExternalErrors;
  2469. DWORD Discontinuities;
  2470. DWORD LineConfidenceAvg;
  2471. DWORD BytesOutput;
  2472. } VBICODECFILTERING_STATISTICS_COMMON_PIN,*PVBICODECFILTERING_STATISTICS_COMMON_PIN;
  2473. typedef struct _VBICODECFILTERING_STATISTICS_NABTS {
  2474. VBICODECFILTERING_STATISTICS_COMMON Common;
  2475. DWORD FECBundleBadLines;
  2476. DWORD FECQueueOverflows;
  2477. DWORD FECCorrectedLines;
  2478. DWORD FECUncorrectableLines;
  2479. DWORD BundlesProcessed;
  2480. DWORD BundlesSent2IP;
  2481. DWORD FilteredLines;
  2482. } VBICODECFILTERING_STATISTICS_NABTS,*PVBICODECFILTERING_STATISTICS_NABTS;
  2483. typedef struct _VBICODECFILTERING_STATISTICS_NABTS_PIN {
  2484. VBICODECFILTERING_STATISTICS_COMMON_PIN Common;
  2485. } VBICODECFILTERING_STATISTICS_NABTS_PIN,*PVBICODECFILTERING_STATISTICS_NABTS_PIN;
  2486. typedef struct _VBICODECFILTERING_STATISTICS_CC {
  2487. VBICODECFILTERING_STATISTICS_COMMON Common;
  2488. } VBICODECFILTERING_STATISTICS_CC,*PVBICODECFILTERING_STATISTICS_CC;
  2489. typedef struct _VBICODECFILTERING_STATISTICS_CC_PIN {
  2490. VBICODECFILTERING_STATISTICS_COMMON_PIN Common;
  2491. } VBICODECFILTERING_STATISTICS_CC_PIN,*PVBICODECFILTERING_STATISTICS_CC_PIN;
  2492. typedef struct _VBICODECFILTERING_STATISTICS_TELETEXT {
  2493. VBICODECFILTERING_STATISTICS_COMMON Common;
  2494. } VBICODECFILTERING_STATISTICS_TELETEXT,*PVBICODECFILTERING_STATISTICS_TELETEXT;
  2495. typedef struct _VBICODECFILTERING_STATISTICS_TELETEXT_PIN {
  2496. VBICODECFILTERING_STATISTICS_COMMON_PIN Common;
  2497. } VBICODECFILTERING_STATISTICS_TELETEXT_PIN,*PVBICODECFILTERING_STATISTICS_TELETEXT_PIN;
  2498. typedef struct {
  2499. KSPROPERTY Property;
  2500. VBICODECFILTERING_SCANLINES Scanlines;
  2501. } KSPROPERTY_VBICODECFILTERING_SCANLINES_S,*PKSPROPERTY_VBICODECFILTERING_SCANLINES_S;
  2502. typedef struct {
  2503. KSPROPERTY Property;
  2504. VBICODECFILTERING_NABTS_SUBSTREAMS Substreams;
  2505. } KSPROPERTY_VBICODECFILTERING_NABTS_SUBSTREAMS_S,*PKSPROPERTY_VBICODECFILTERING_NABTS_SUBSTREAMS_S;
  2506. typedef struct {
  2507. KSPROPERTY Property;
  2508. VBICODECFILTERING_CC_SUBSTREAMS Substreams;
  2509. } KSPROPERTY_VBICODECFILTERING_CC_SUBSTREAMS_S,*PKSPROPERTY_VBICODECFILTERING_CC_SUBSTREAMS_S;
  2510. typedef struct {
  2511. KSPROPERTY Property;
  2512. VBICODECFILTERING_STATISTICS_COMMON Statistics;
  2513. } KSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_S;
  2514. typedef struct {
  2515. KSPROPERTY Property;
  2516. VBICODECFILTERING_STATISTICS_COMMON_PIN Statistics;
  2517. } KSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_PIN_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_PIN_S;
  2518. typedef struct {
  2519. KSPROPERTY Property;
  2520. VBICODECFILTERING_STATISTICS_NABTS Statistics;
  2521. } KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S;
  2522. typedef struct {
  2523. KSPROPERTY Property;
  2524. VBICODECFILTERING_STATISTICS_NABTS_PIN Statistics;
  2525. } KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_PIN_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_PIN_S;
  2526. typedef struct {
  2527. KSPROPERTY Property;
  2528. VBICODECFILTERING_STATISTICS_CC Statistics;
  2529. } KSPROPERTY_VBICODECFILTERING_STATISTICS_CC_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_CC_S;
  2530. typedef struct {
  2531. KSPROPERTY Property;
  2532. VBICODECFILTERING_STATISTICS_CC_PIN Statistics;
  2533. } KSPROPERTY_VBICODECFILTERING_STATISTICS_CC_PIN_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_CC_PIN_S;
  2534. #define STATIC_PINNAME_VIDEO_CAPTURE \
  2535. 0xfb6c4281,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
  2536. #define STATIC_PINNAME_CAPTURE STATIC_PINNAME_VIDEO_CAPTURE
  2537. DEFINE_GUIDSTRUCT("FB6C4281-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_CAPTURE);
  2538. #define PINNAME_VIDEO_CAPTURE DEFINE_GUIDNAMED(PINNAME_VIDEO_CAPTURE)
  2539. #define PINNAME_CAPTURE PINNAME_VIDEO_CAPTURE
  2540. #define STATIC_PINNAME_VIDEO_CC_CAPTURE \
  2541. 0x1aad8061,0x12d,0x11d2,0xb4,0xb1,0x0,0xa0,0xd1,0x2,0xcf,0xbe
  2542. #define STATIC_PINNAME_CC_CAPTURE STATIC_PINNAME_VIDEO_CC_CAPTURE
  2543. DEFINE_GUIDSTRUCT("1AAD8061-012D-11d2-B4B1-00A0D102CFBE",PINNAME_VIDEO_CC_CAPTURE);
  2544. #define PINNAME_VIDEO_CC_CAPTURE DEFINE_GUIDNAMED(PINNAME_VIDEO_CC_CAPTURE)
  2545. #define STATIC_PINNAME_VIDEO_NABTS_CAPTURE \
  2546. 0x29703660,0x498a,0x11d2,0xb4,0xb1,0x0,0xa0,0xd1,0x2,0xcf,0xbe
  2547. #define STATIC_PINNAME_NABTS_CAPTURE STATIC_PINNAME_VIDEO_NABTS_CAPTURE
  2548. DEFINE_GUIDSTRUCT("29703660-498A-11d2-B4B1-00A0D102CFBE",PINNAME_VIDEO_NABTS_CAPTURE);
  2549. #define PINNAME_VIDEO_NABTS_CAPTURE DEFINE_GUIDNAMED(PINNAME_VIDEO_NABTS_CAPTURE)
  2550. #define STATIC_PINNAME_VIDEO_PREVIEW \
  2551. 0xfb6c4282,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
  2552. #define STATIC_PINNAME_PREVIEW STATIC_PINNAME_VIDEO_PREVIEW
  2553. DEFINE_GUIDSTRUCT("FB6C4282-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_PREVIEW);
  2554. #define PINNAME_VIDEO_PREVIEW DEFINE_GUIDNAMED(PINNAME_VIDEO_PREVIEW)
  2555. #define PINNAME_PREVIEW PINNAME_VIDEO_PREVIEW
  2556. #define STATIC_PINNAME_VIDEO_ANALOGVIDEOIN \
  2557. 0xfb6c4283,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
  2558. DEFINE_GUIDSTRUCT("FB6C4283-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_ANALOGVIDEOIN);
  2559. #define PINNAME_VIDEO_ANALOGVIDEOIN DEFINE_GUIDNAMED(PINNAME_VIDEO_ANALOGVIDEOIN)
  2560. #define STATIC_PINNAME_VIDEO_VBI \
  2561. 0xfb6c4284,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
  2562. DEFINE_GUIDSTRUCT("FB6C4284-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_VBI);
  2563. #define PINNAME_VIDEO_VBI DEFINE_GUIDNAMED(PINNAME_VIDEO_VBI)
  2564. #define STATIC_PINNAME_VIDEO_VIDEOPORT \
  2565. 0xfb6c4285,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
  2566. DEFINE_GUIDSTRUCT("FB6C4285-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_VIDEOPORT);
  2567. #define PINNAME_VIDEO_VIDEOPORT DEFINE_GUIDNAMED(PINNAME_VIDEO_VIDEOPORT)
  2568. #define STATIC_PINNAME_VIDEO_NABTS \
  2569. 0xfb6c4286,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
  2570. DEFINE_GUIDSTRUCT("FB6C4286-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_NABTS);
  2571. #define PINNAME_VIDEO_NABTS DEFINE_GUIDNAMED(PINNAME_VIDEO_NABTS)
  2572. #define STATIC_PINNAME_VIDEO_EDS \
  2573. 0xfb6c4287,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
  2574. DEFINE_GUIDSTRUCT("FB6C4287-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_EDS);
  2575. #define PINNAME_VIDEO_EDS DEFINE_GUIDNAMED(PINNAME_VIDEO_EDS)
  2576. #define STATIC_PINNAME_VIDEO_TELETEXT \
  2577. 0xfb6c4288,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
  2578. DEFINE_GUIDSTRUCT("FB6C4288-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_TELETEXT);
  2579. #define PINNAME_VIDEO_TELETEXT DEFINE_GUIDNAMED(PINNAME_VIDEO_TELETEXT)
  2580. #define STATIC_PINNAME_VIDEO_CC \
  2581. 0xfb6c4289,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
  2582. DEFINE_GUIDSTRUCT("FB6C4289-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_CC);
  2583. #define PINNAME_VIDEO_CC DEFINE_GUIDNAMED(PINNAME_VIDEO_CC)
  2584. #define STATIC_PINNAME_VIDEO_STILL \
  2585. 0xfb6c428A,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
  2586. DEFINE_GUIDSTRUCT("FB6C428A-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_STILL);
  2587. #define PINNAME_VIDEO_STILL DEFINE_GUIDNAMED(PINNAME_VIDEO_STILL)
  2588. #define STATIC_PINNAME_VIDEO_TIMECODE \
  2589. 0xfb6c428B,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
  2590. DEFINE_GUIDSTRUCT("FB6C428B-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_TIMECODE);
  2591. #define PINNAME_VIDEO_TIMECODE DEFINE_GUIDNAMED(PINNAME_VIDEO_TIMECODE)
  2592. #define STATIC_PINNAME_VIDEO_VIDEOPORT_VBI \
  2593. 0xfb6c428C,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
  2594. DEFINE_GUIDSTRUCT("FB6C428C-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_VIDEOPORT_VBI);
  2595. #define PINNAME_VIDEO_VIDEOPORT_VBI DEFINE_GUIDNAMED(PINNAME_VIDEO_VIDEOPORT_VBI)
  2596. typedef enum {
  2597. KS_CAPTURE_ALLOC_INVALID = 0,
  2598. KS_CAPTURE_ALLOC_SYSTEM = 0x0001,
  2599. KS_CAPTURE_ALLOC_VRAM = 0x0002,
  2600. KS_CAPTURE_ALLOC_SYSTEM_AGP = 0x0004,
  2601. KS_CAPTURE_ALLOC_VRAM_MAPPED = 0x0008
  2602. } CAPTURE_MEMORY_ALLOCATION_FLAGS,*PCAPTURE_MEMORY_ALLOCATION_FLAGS;
  2603. #define STATIC_KSPROPSETID_VramCapture \
  2604. 0xe73face3,0x2880,0x4902,0xb7,0x99,0x88,0xd0,0xcd,0x63,0x4e,0xf
  2605. DEFINE_GUIDSTRUCT("E73FACE3-2880-4902-B799-88D0CD634E0F", KSPROPSETID_VramCapture);
  2606. #define KSPROPSETID_VramCapture DEFINE_GUIDNAMED(KSPROPSETID_VramCapture)
  2607. typedef enum {
  2608. KSPROPERTY_DISPLAY_ADAPTER_GUID = 1,
  2609. KSPROPERTY_PREFERRED_CAPTURE_SURFACE,
  2610. KSPROPERTY_CURRENT_CAPTURE_SURFACE,
  2611. KSPROPERTY_MAP_CAPTURE_HANDLE_TO_VRAM_ADDRESS
  2612. } KSPROPERTY_VIDMEM_TRANSPORT;
  2613. #define DEFINE_KSPROPERTY_ITEM_DISPLAY_ADAPTER_GUID(GetHandler) \
  2614. DEFINE_KSPROPERTY_ITEM( \
  2615. KSPROPERTY_DISPLAY_ADAPTER_GUID, \
  2616. (GetHandler), \
  2617. sizeof(KSPROPERTY), \
  2618. sizeof(GUID), \
  2619. NULL,NULL,0,NULL,NULL,0)
  2620. #define DEFINE_KSPROPERTY_PREFERRED_CAPTURE_SURFACE(GetHandler) \
  2621. DEFINE_KSPROPERTY_ITEM( \
  2622. KSPROPERTY_PREFERRED_CAPTURE_SURFACE, \
  2623. (GetHandler), \
  2624. sizeof(KSPROPERTY), \
  2625. sizeof(CAPTURE_MEMORY_ALLOCATION_FLAGS),\
  2626. NULL,NULL,0,NULL,NULL,0)
  2627. #define DEFINE_KSPROPERTY_CURRENT_CAPTURE_SURFACE(GetHandler,SetHandler)\
  2628. DEFINE_KSPROPERTY_ITEM( \
  2629. KSPROPERTY_CURRENT_CAPTURE_SURFACE, \
  2630. (GetHandler), \
  2631. sizeof(KSPROPERTY), \
  2632. sizeof(CAPTURE_MEMORY_ALLOCATION_FLAGS),\
  2633. (SetHandler),NULL,0,NULL,NULL,0)
  2634. #define DEFINE_KSPROPERTY_MAP_CAPTURE_HANDLE_TO_VRAM_ADDRESS(GetHandler)\
  2635. DEFINE_KSPROPERTY_ITEM( \
  2636. KSPROPERTY_MAP_CAPTURE_HANDLE_TO_VRAM_ADDRESS,\
  2637. (GetHandler), \
  2638. sizeof(VRAM_SURFACE_INFO_PROPERTY_S), \
  2639. sizeof(DWORD), \
  2640. NULL,NULL,0,NULL,NULL,0)
  2641. typedef struct {
  2642. UINT_PTR hSurface;
  2643. LONGLONG VramPhysicalAddress;
  2644. DWORD cbCaptured;
  2645. DWORD dwWidth;
  2646. DWORD dwHeight;
  2647. DWORD dwLinearSize;
  2648. LONG lPitch;
  2649. ULONGLONG ullReserved[16];
  2650. } VRAM_SURFACE_INFO,*PVRAM_SURFACE_INFO;
  2651. typedef struct {
  2652. KSPROPERTY Property;
  2653. PVRAM_SURFACE_INFO pVramSurfaceInfo;
  2654. } VRAM_SURFACE_INFO_PROPERTY_S,*PVRAM_SURFACE_INFO_PROPERTY_S;
  2655. #define KS_VIDEO_FLAG_FRAME __MSABI_LONG(0x0000)
  2656. #define KS_VIDEO_FLAG_FIELD1 __MSABI_LONG(0x0001)
  2657. #define KS_VIDEO_FLAG_FIELD2 __MSABI_LONG(0x0002)
  2658. #define KS_VIDEO_FLAG_I_FRAME __MSABI_LONG(0x0000)
  2659. #define KS_VIDEO_FLAG_P_FRAME __MSABI_LONG(0x0010)
  2660. #define KS_VIDEO_FLAG_B_FRAME __MSABI_LONG(0x0020)
  2661. typedef struct tagKS_FRAME_INFO {
  2662. ULONG ExtendedHeaderSize;
  2663. DWORD dwFrameFlags;
  2664. LONGLONG PictureNumber;
  2665. LONGLONG DropCount;
  2666. HANDLE hDirectDraw;
  2667. HANDLE hSurfaceHandle;
  2668. RECT DirectDrawRect;
  2669. DWORD Reserved1;
  2670. DWORD Reserved2;
  2671. DWORD Reserved3;
  2672. DWORD Reserved4;
  2673. } KS_FRAME_INFO,*PKS_FRAME_INFO;
  2674. #define KS_VBI_FLAG_FIELD1 __MSABI_LONG(0x0001)
  2675. #define KS_VBI_FLAG_FIELD2 __MSABI_LONG(0x0002)
  2676. #define KS_VBI_FLAG_MV_PRESENT __MSABI_LONG(0x0100)
  2677. #define KS_VBI_FLAG_MV_HARDWARE __MSABI_LONG(0x0200)
  2678. #define KS_VBI_FLAG_MV_DETECTED __MSABI_LONG(0x0400)
  2679. #define KS_VBI_FLAG_TVTUNER_CHANGE __MSABI_LONG(0x0010)
  2680. #define KS_VBI_FLAG_VBIINFOHEADER_CHANGE __MSABI_LONG(0x0020)
  2681. typedef struct tagKS_VBI_FRAME_INFO {
  2682. ULONG ExtendedHeaderSize;
  2683. DWORD dwFrameFlags;
  2684. LONGLONG PictureNumber;
  2685. LONGLONG DropCount;
  2686. DWORD dwSamplingFrequency;
  2687. KS_TVTUNER_CHANGE_INFO TvTunerChangeInfo;
  2688. KS_VBIINFOHEADER VBIInfoHeader;
  2689. } KS_VBI_FRAME_INFO,*PKS_VBI_FRAME_INFO;
  2690. typedef enum
  2691. {
  2692. KS_AnalogVideo_None = 0x00000000,
  2693. KS_AnalogVideo_NTSC_M = 0x00000001,
  2694. KS_AnalogVideo_NTSC_M_J = 0x00000002,
  2695. KS_AnalogVideo_NTSC_433 = 0x00000004,
  2696. KS_AnalogVideo_PAL_B = 0x00000010,
  2697. KS_AnalogVideo_PAL_D = 0x00000020,
  2698. KS_AnalogVideo_PAL_G = 0x00000040,
  2699. KS_AnalogVideo_PAL_H = 0x00000080,
  2700. KS_AnalogVideo_PAL_I = 0x00000100,
  2701. KS_AnalogVideo_PAL_M = 0x00000200,
  2702. KS_AnalogVideo_PAL_N = 0x00000400,
  2703. KS_AnalogVideo_PAL_60 = 0x00000800,
  2704. KS_AnalogVideo_SECAM_B = 0x00001000,
  2705. KS_AnalogVideo_SECAM_D = 0x00002000,
  2706. KS_AnalogVideo_SECAM_G = 0x00004000,
  2707. KS_AnalogVideo_SECAM_H = 0x00008000,
  2708. KS_AnalogVideo_SECAM_K = 0x00010000,
  2709. KS_AnalogVideo_SECAM_K1 = 0x00020000,
  2710. KS_AnalogVideo_SECAM_L = 0x00040000,
  2711. KS_AnalogVideo_SECAM_L1 = 0x00080000,
  2712. KS_AnalogVideo_PAL_N_COMBO = 0x00100000
  2713. } KS_AnalogVideoStandard;
  2714. #define KS_AnalogVideo_NTSC_Mask 0x00000007
  2715. #define KS_AnalogVideo_PAL_Mask 0x00100FF0
  2716. #define KS_AnalogVideo_SECAM_Mask 0x000FF000
  2717. #define STATIC_PROPSETID_ALLOCATOR_CONTROL \
  2718. 0x53171960,0x148e,0x11d2,0x99,0x79,0x0,0x0,0xc0,0xcc,0x16,0xba
  2719. DEFINE_GUIDSTRUCT("53171960-148E-11d2-9979-0000C0CC16BA",PROPSETID_ALLOCATOR_CONTROL);
  2720. #define PROPSETID_ALLOCATOR_CONTROL DEFINE_GUIDNAMED(PROPSETID_ALLOCATOR_CONTROL)
  2721. typedef enum {
  2722. KSPROPERTY_ALLOCATOR_CONTROL_HONOR_COUNT,
  2723. KSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE,
  2724. KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS,
  2725. KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE
  2726. } KSPROPERTY_ALLOCATOR_CONTROL;
  2727. typedef struct {
  2728. ULONG CX;
  2729. ULONG CY;
  2730. } KSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE_S,*PKSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE_S;
  2731. typedef struct {
  2732. ULONG InterleavedCapSupported;
  2733. } KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS_S,*PKSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS_S;
  2734. typedef struct {
  2735. ULONG InterleavedCapPossible;
  2736. } KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE_S,*PKSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE_S;
  2737. #define STATIC_PROPSETID_VIDCAP_VIDEOPROCAMP \
  2738. 0xC6E13360,0x30AC,0x11d0,0xa1,0x8c,0x00,0xA0,0xC9,0x11,0x89,0x56
  2739. DEFINE_GUIDSTRUCT("C6E13360-30AC-11d0-A18C-00A0C9118956",PROPSETID_VIDCAP_VIDEOPROCAMP);
  2740. #define PROPSETID_VIDCAP_VIDEOPROCAMP DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEOPROCAMP)
  2741. typedef enum {
  2742. KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS,
  2743. KSPROPERTY_VIDEOPROCAMP_CONTRAST,
  2744. KSPROPERTY_VIDEOPROCAMP_HUE,
  2745. KSPROPERTY_VIDEOPROCAMP_SATURATION,
  2746. KSPROPERTY_VIDEOPROCAMP_SHARPNESS,
  2747. KSPROPERTY_VIDEOPROCAMP_GAMMA,
  2748. KSPROPERTY_VIDEOPROCAMP_COLORENABLE,
  2749. KSPROPERTY_VIDEOPROCAMP_WHITEBALANCE,
  2750. KSPROPERTY_VIDEOPROCAMP_BACKLIGHT_COMPENSATION,
  2751. KSPROPERTY_VIDEOPROCAMP_GAIN,
  2752. KSPROPERTY_VIDEOPROCAMP_DIGITAL_MULTIPLIER,
  2753. KSPROPERTY_VIDEOPROCAMP_DIGITAL_MULTIPLIER_LIMIT,
  2754. KSPROPERTY_VIDEOPROCAMP_WHITEBALANCE_COMPONENT,
  2755. KSPROPERTY_VIDEOPROCAMP_POWERLINE_FREQUENCY
  2756. } KSPROPERTY_VIDCAP_VIDEOPROCAMP;
  2757. typedef struct {
  2758. KSPROPERTY Property;
  2759. LONG Value;
  2760. ULONG Flags;
  2761. ULONG Capabilities;
  2762. } KSPROPERTY_VIDEOPROCAMP_S,*PKSPROPERTY_VIDEOPROCAMP_S;
  2763. typedef struct {
  2764. KSP_NODE NodeProperty;
  2765. LONG Value;
  2766. ULONG Flags;
  2767. ULONG Capabilities;
  2768. } KSPROPERTY_VIDEOPROCAMP_NODE_S,*PKSPROPERTY_VIDEOPROCAMP_NODE_S;
  2769. typedef struct {
  2770. KSPROPERTY Property;
  2771. LONG Value1;
  2772. ULONG Flags;
  2773. ULONG Capabilities;
  2774. LONG Value2;
  2775. } KSPROPERTY_VIDEOPROCAMP_S2,*PKSPROPERTY_VIDEOPROCAMP_S2;
  2776. typedef struct {
  2777. KSP_NODE NodeProperty;
  2778. LONG Value1;
  2779. ULONG Flags;
  2780. ULONG Capabilities;
  2781. LONG Value2;
  2782. } KSPROPERTY_VIDEOPROCAMP_NODE_S2,*PKSPROPERTY_VIDEOPROCAMP_NODE_S2;
  2783. #define KSPROPERTY_VIDEOPROCAMP_FLAGS_AUTO 0X0001L
  2784. #define KSPROPERTY_VIDEOPROCAMP_FLAGS_MANUAL 0X0002L
  2785. #define STATIC_PROPSETID_VIDCAP_SELECTOR \
  2786. 0x1ABDAECA,0x68B6,0x4F83,0x93,0x71,0xB4,0x13,0x90,0x7C,0x7B,0x9F
  2787. DEFINE_GUIDSTRUCT("1ABDAECA-68B6-4F83-9371-B413907C7B9F",PROPSETID_VIDCAP_SELECTOR);
  2788. #define PROPSETID_VIDCAP_SELECTOR DEFINE_GUIDNAMED(PROPSETID_VIDCAP_SELECTOR)
  2789. typedef enum {
  2790. KSPROPERTY_SELECTOR_SOURCE_NODE_ID,
  2791. KSPROPERTY_SELECTOR_NUM_SOURCES
  2792. } KSPROPERTY_VIDCAP_SELECTOR,*PKSPROPERTY_VIDCAP_SELECTOR;
  2793. typedef struct {
  2794. KSPROPERTY Property;
  2795. LONG Value;
  2796. ULONG Flags;
  2797. ULONG Capabilities;
  2798. } KSPROPERTY_SELECTOR_S,*PKSPROPERTY_SELECTOR_S;
  2799. typedef struct {
  2800. KSP_NODE NodeProperty;
  2801. LONG Value;
  2802. ULONG Flags;
  2803. ULONG Capabilities;
  2804. } KSPROPERTY_SELECTOR_NODE_S,*PKSPROPERTY_SELECTOR_NODE_S;
  2805. #define STATIC_PROPSETID_TUNER \
  2806. 0x6a2e0605,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
  2807. DEFINE_GUIDSTRUCT("6a2e0605-28e4-11d0-a18c-00a0c9118956",PROPSETID_TUNER);
  2808. #define PROPSETID_TUNER DEFINE_GUIDNAMED(PROPSETID_TUNER)
  2809. typedef enum {
  2810. KSPROPERTY_TUNER_CAPS,
  2811. KSPROPERTY_TUNER_MODE_CAPS,
  2812. KSPROPERTY_TUNER_MODE,
  2813. KSPROPERTY_TUNER_STANDARD,
  2814. KSPROPERTY_TUNER_FREQUENCY,
  2815. KSPROPERTY_TUNER_INPUT,
  2816. KSPROPERTY_TUNER_STATUS,
  2817. KSPROPERTY_TUNER_IF_MEDIUM
  2818. } KSPROPERTY_TUNER;
  2819. typedef enum {
  2820. KSPROPERTY_TUNER_MODE_TV = 0X0001,
  2821. KSPROPERTY_TUNER_MODE_FM_RADIO = 0X0002,
  2822. KSPROPERTY_TUNER_MODE_AM_RADIO = 0X0004,
  2823. KSPROPERTY_TUNER_MODE_DSS = 0X0008,
  2824. KSPROPERTY_TUNER_MODE_ATSC = 0X0010
  2825. } KSPROPERTY_TUNER_MODES;
  2826. typedef enum {
  2827. KS_TUNER_TUNING_EXACT = 1,
  2828. KS_TUNER_TUNING_FINE,
  2829. KS_TUNER_TUNING_COARSE
  2830. } KS_TUNER_TUNING_FLAGS;
  2831. typedef enum {
  2832. KS_TUNER_STRATEGY_PLL = 0X01,
  2833. KS_TUNER_STRATEGY_SIGNAL_STRENGTH = 0X02,
  2834. KS_TUNER_STRATEGY_DRIVER_TUNES = 0X04
  2835. } KS_TUNER_STRATEGY;
  2836. typedef struct {
  2837. KSPROPERTY Property;
  2838. ULONG ModesSupported;
  2839. KSPIN_MEDIUM VideoMedium;
  2840. KSPIN_MEDIUM TVAudioMedium;
  2841. KSPIN_MEDIUM RadioAudioMedium;
  2842. } KSPROPERTY_TUNER_CAPS_S,*PKSPROPERTY_TUNER_CAPS_S;
  2843. typedef struct {
  2844. KSPROPERTY Property;
  2845. KSPIN_MEDIUM IFMedium;
  2846. } KSPROPERTY_TUNER_IF_MEDIUM_S,*PKSPROPERTY_TUNER_IF_MEDIUM_S;
  2847. typedef struct {
  2848. KSPROPERTY Property;
  2849. ULONG Mode;
  2850. ULONG StandardsSupported;
  2851. ULONG MinFrequency;
  2852. ULONG MaxFrequency;
  2853. ULONG TuningGranularity;
  2854. ULONG NumberOfInputs;
  2855. ULONG SettlingTime;
  2856. ULONG Strategy;
  2857. } KSPROPERTY_TUNER_MODE_CAPS_S,*PKSPROPERTY_TUNER_MODE_CAPS_S;
  2858. typedef struct {
  2859. KSPROPERTY Property;
  2860. ULONG Mode;
  2861. } KSPROPERTY_TUNER_MODE_S,*PKSPROPERTY_TUNER_MODE_S;
  2862. typedef struct {
  2863. KSPROPERTY Property;
  2864. ULONG Frequency;
  2865. ULONG LastFrequency;
  2866. ULONG TuningFlags;
  2867. ULONG VideoSubChannel;
  2868. ULONG AudioSubChannel;
  2869. ULONG Channel;
  2870. ULONG Country;
  2871. } KSPROPERTY_TUNER_FREQUENCY_S,*PKSPROPERTY_TUNER_FREQUENCY_S;
  2872. typedef struct {
  2873. KSPROPERTY Property;
  2874. ULONG Standard;
  2875. } KSPROPERTY_TUNER_STANDARD_S,*PKSPROPERTY_TUNER_STANDARD_S;
  2876. typedef struct {
  2877. KSPROPERTY Property;
  2878. ULONG InputIndex;
  2879. } KSPROPERTY_TUNER_INPUT_S,*PKSPROPERTY_TUNER_INPUT_S;
  2880. typedef struct {
  2881. KSPROPERTY Property;
  2882. ULONG CurrentFrequency;
  2883. ULONG PLLOffset;
  2884. ULONG SignalStrength;
  2885. ULONG Busy;
  2886. } KSPROPERTY_TUNER_STATUS_S,*PKSPROPERTY_TUNER_STATUS_S;
  2887. #define STATIC_EVENTSETID_TUNER \
  2888. 0x6a2e0606,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
  2889. DEFINE_GUIDSTRUCT("6a2e0606-28e4-11d0-a18c-00a0c9118956",EVENTSETID_TUNER);
  2890. #define EVENTSETID_TUNER DEFINE_GUIDNAMED(EVENTSETID_TUNER)
  2891. typedef enum {
  2892. KSEVENT_TUNER_CHANGED
  2893. } KSEVENT_TUNER;
  2894. #define STATIC_KSNODETYPE_VIDEO_STREAMING \
  2895. 0xDFF229E1,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
  2896. DEFINE_GUIDSTRUCT("DFF229E1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_STREAMING);
  2897. #define KSNODETYPE_VIDEO_STREAMING DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_STREAMING)
  2898. #define STATIC_KSNODETYPE_VIDEO_INPUT_TERMINAL \
  2899. 0xDFF229E2,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
  2900. DEFINE_GUIDSTRUCT("DFF229E2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_INPUT_TERMINAL);
  2901. #define KSNODETYPE_VIDEO_INPUT_TERMINAL DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_INPUT_TERMINAL)
  2902. #define STATIC_KSNODETYPE_VIDEO_OUTPUT_TERMINAL \
  2903. 0xDFF229E3,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
  2904. DEFINE_GUIDSTRUCT("DFF229E3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_OUTPUT_TERMINAL);
  2905. #define KSNODETYPE_VIDEO_OUTPUT_TERMINAL DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_OUTPUT_TERMINAL)
  2906. #define STATIC_KSNODETYPE_VIDEO_SELECTOR \
  2907. 0xDFF229E4,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
  2908. DEFINE_GUIDSTRUCT("DFF229E4-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_SELECTOR);
  2909. #define KSNODETYPE_VIDEO_SELECTOR DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_SELECTOR)
  2910. #define STATIC_KSNODETYPE_VIDEO_PROCESSING \
  2911. 0xDFF229E5,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
  2912. DEFINE_GUIDSTRUCT("DFF229E5-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_PROCESSING);
  2913. #define KSNODETYPE_VIDEO_PROCESSING DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_PROCESSING)
  2914. #define STATIC_KSNODETYPE_VIDEO_CAMERA_TERMINAL \
  2915. 0xDFF229E6,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
  2916. DEFINE_GUIDSTRUCT("DFF229E6-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_CAMERA_TERMINAL);
  2917. #define KSNODETYPE_VIDEO_CAMERA_TERMINAL DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_CAMERA_TERMINAL)
  2918. #define STATIC_KSNODETYPE_VIDEO_INPUT_MTT \
  2919. 0xDFF229E7,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
  2920. DEFINE_GUIDSTRUCT("DFF229E7-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_INPUT_MTT);
  2921. #define KSNODETYPE_VIDEO_INPUT_MTT DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_INPUT_MTT)
  2922. #define STATIC_KSNODETYPE_VIDEO_OUTPUT_MTT \
  2923. 0xDFF229E8,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
  2924. DEFINE_GUIDSTRUCT("DFF229E8-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_OUTPUT_MTT);
  2925. #define KSNODETYPE_VIDEO_OUTPUT_MTT DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_OUTPUT_MTT)
  2926. #define STATIC_PROPSETID_VIDCAP_VIDEOENCODER \
  2927. 0x6a2e0610,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
  2928. DEFINE_GUIDSTRUCT("6a2e0610-28e4-11d0-a18c-00a0c9118956",PROPSETID_VIDCAP_VIDEOENCODER);
  2929. #define PROPSETID_VIDCAP_VIDEOENCODER DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEOENCODER)
  2930. typedef enum {
  2931. KSPROPERTY_VIDEOENCODER_CAPS,
  2932. KSPROPERTY_VIDEOENCODER_STANDARD,
  2933. KSPROPERTY_VIDEOENCODER_COPYPROTECTION,
  2934. KSPROPERTY_VIDEOENCODER_CC_ENABLE
  2935. } KSPROPERTY_VIDCAP_VIDEOENCODER;
  2936. typedef struct {
  2937. KSPROPERTY Property;
  2938. LONG Value;
  2939. ULONG Flags;
  2940. ULONG Capabilities;
  2941. } KSPROPERTY_VIDEOENCODER_S,*PKSPROPERTY_VIDEOENCODER_S;
  2942. #define STATIC_PROPSETID_VIDCAP_VIDEODECODER \
  2943. 0xC6E13350,0x30AC,0x11d0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56
  2944. DEFINE_GUIDSTRUCT("C6E13350-30AC-11d0-A18C-00A0C9118956",PROPSETID_VIDCAP_VIDEODECODER);
  2945. #define PROPSETID_VIDCAP_VIDEODECODER DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEODECODER)
  2946. typedef enum {
  2947. KSPROPERTY_VIDEODECODER_CAPS,
  2948. KSPROPERTY_VIDEODECODER_STANDARD,
  2949. KSPROPERTY_VIDEODECODER_STATUS,
  2950. KSPROPERTY_VIDEODECODER_OUTPUT_ENABLE,
  2951. KSPROPERTY_VIDEODECODER_VCR_TIMING
  2952. } KSPROPERTY_VIDCAP_VIDEODECODER;
  2953. typedef enum {
  2954. KS_VIDEODECODER_FLAGS_CAN_DISABLE_OUTPUT = 0X0001,
  2955. KS_VIDEODECODER_FLAGS_CAN_USE_VCR_LOCKING = 0X0002,
  2956. KS_VIDEODECODER_FLAGS_CAN_INDICATE_LOCKED = 0X0004
  2957. } KS_VIDEODECODER_FLAGS;
  2958. typedef struct {
  2959. KSPROPERTY Property;
  2960. ULONG StandardsSupported;
  2961. ULONG Capabilities;
  2962. ULONG SettlingTime;
  2963. ULONG HSyncPerVSync;
  2964. } KSPROPERTY_VIDEODECODER_CAPS_S,*PKSPROPERTY_VIDEODECODER_CAPS_S;
  2965. typedef struct {
  2966. KSPROPERTY Property;
  2967. ULONG NumberOfLines;
  2968. ULONG SignalLocked;
  2969. } KSPROPERTY_VIDEODECODER_STATUS_S,*PKSPROPERTY_VIDEODECODER_STATUS_S;
  2970. typedef struct {
  2971. KSPROPERTY Property;
  2972. ULONG Value;
  2973. } KSPROPERTY_VIDEODECODER_S,*PKSPROPERTY_VIDEODECODER_S;
  2974. #define STATIC_EVENTSETID_VIDEODECODER \
  2975. 0x6a2e0621,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
  2976. DEFINE_GUIDSTRUCT("6a2e0621-28e4-11d0-a18c-00a0c9118956",EVENTSETID_VIDEODECODER);
  2977. #define EVENTSETID_VIDEODECODER DEFINE_GUIDNAMED(EVENTSETID_VIDEODECODER)
  2978. typedef enum {
  2979. KSEVENT_VIDEODECODER_CHANGED
  2980. } KSEVENT_VIDEODECODER;
  2981. #define STATIC_PROPSETID_VIDCAP_CAMERACONTROL \
  2982. 0xC6E13370,0x30AC,0x11d0,0xa1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56
  2983. DEFINE_GUIDSTRUCT("C6E13370-30AC-11d0-A18C-00A0C9118956",PROPSETID_VIDCAP_CAMERACONTROL);
  2984. #define PROPSETID_VIDCAP_CAMERACONTROL DEFINE_GUIDNAMED(PROPSETID_VIDCAP_CAMERACONTROL)
  2985. typedef enum {
  2986. KSPROPERTY_CAMERACONTROL_PAN,
  2987. KSPROPERTY_CAMERACONTROL_TILT,
  2988. KSPROPERTY_CAMERACONTROL_ROLL,
  2989. KSPROPERTY_CAMERACONTROL_ZOOM,
  2990. KSPROPERTY_CAMERACONTROL_EXPOSURE,
  2991. KSPROPERTY_CAMERACONTROL_IRIS,
  2992. KSPROPERTY_CAMERACONTROL_FOCUS,
  2993. KSPROPERTY_CAMERACONTROL_SCANMODE,
  2994. KSPROPERTY_CAMERACONTROL_PRIVACY,
  2995. KSPROPERTY_CAMERACONTROL_PANTILT,
  2996. KSPROPERTY_CAMERACONTROL_PAN_RELATIVE,
  2997. KSPROPERTY_CAMERACONTROL_TILT_RELATIVE,
  2998. KSPROPERTY_CAMERACONTROL_ROLL_RELATIVE,
  2999. KSPROPERTY_CAMERACONTROL_ZOOM_RELATIVE,
  3000. KSPROPERTY_CAMERACONTROL_EXPOSURE_RELATIVE,
  3001. KSPROPERTY_CAMERACONTROL_IRIS_RELATIVE,
  3002. KSPROPERTY_CAMERACONTROL_FOCUS_RELATIVE,
  3003. KSPROPERTY_CAMERACONTROL_PANTILT_RELATIVE,
  3004. KSPROPERTY_CAMERACONTROL_FOCAL_LENGTH
  3005. } KSPROPERTY_VIDCAP_CAMERACONTROL;
  3006. typedef struct {
  3007. KSPROPERTY Property;
  3008. LONG Value;
  3009. ULONG Flags;
  3010. ULONG Capabilities;
  3011. } KSPROPERTY_CAMERACONTROL_S,*PKSPROPERTY_CAMERACONTROL_S;
  3012. typedef struct {
  3013. KSP_NODE NodeProperty;
  3014. LONG Value;
  3015. ULONG Flags;
  3016. ULONG Capabilities;
  3017. } KSPROPERTY_CAMERACONTROL_NODE_S,PKSPROPERTY_CAMERACONTROL_NODE_S;
  3018. typedef struct {
  3019. KSPROPERTY Property;
  3020. LONG Value1;
  3021. ULONG Flags;
  3022. ULONG Capabilities;
  3023. LONG Value2;
  3024. } KSPROPERTY_CAMERACONTROL_S2,*PKSPROPERTY_CAMERACONTROL_S2;
  3025. typedef struct {
  3026. KSP_NODE NodeProperty;
  3027. LONG Value1;
  3028. ULONG Flags;
  3029. ULONG Capabilities;
  3030. LONG Value2;
  3031. } KSPROPERTY_CAMERACONTROL_NODE_S2,*PKSPROPERTY_CAMERACONTROL_NODE_S2;
  3032. typedef struct {
  3033. KSPROPERTY Property;
  3034. LONG lOcularFocalLength;
  3035. LONG lObjectiveFocalLengthMin;
  3036. LONG lObjectiveFocalLengthMax;
  3037. } KSPROPERTY_CAMERACONTROL_FOCAL_LENGTH_S,*PKSPROPERTY_CAMERACONTROL_FOCAL_LENGTH_S;
  3038. typedef struct {
  3039. KSNODEPROPERTY NodeProperty;
  3040. LONG lOcularFocalLength;
  3041. LONG lObjectiveFocalLengthMin;
  3042. LONG lObjectiveFocalLengthMax;
  3043. } KSPROPERTY_CAMERACONTROL_NODE_FOCAL_LENGTH_S,*PKSPROPERTY_CAMERACONTROL_NODE_FOCAL_LENGTH_S;
  3044. #define KSPROPERTY_CAMERACONTROL_FLAGS_AUTO 0X0001L
  3045. #define KSPROPERTY_CAMERACONTROL_FLAGS_MANUAL 0X0002L
  3046. #define KSPROPERTY_CAMERACONTROL_FLAGS_ABSOLUTE 0X0000L
  3047. #define KSPROPERTY_CAMERACONTROL_FLAGS_RELATIVE 0X0010L
  3048. #ifndef __EDevCtrl__
  3049. #define __EDevCtrl__
  3050. #define STATIC_PROPSETID_EXT_DEVICE \
  3051. 0xB5730A90,0x1A2C,0x11cf,0x8c,0x23,0x00,0xAA,0x00,0x6B,0x68,0x14
  3052. DEFINE_GUIDSTRUCT("B5730A90-1A2C-11cf-8C23-00AA006B6814",PROPSETID_EXT_DEVICE);
  3053. #define PROPSETID_EXT_DEVICE DEFINE_GUIDNAMED(PROPSETID_EXT_DEVICE)
  3054. typedef enum {
  3055. KSPROPERTY_EXTDEVICE_ID,
  3056. KSPROPERTY_EXTDEVICE_VERSION,
  3057. KSPROPERTY_EXTDEVICE_POWER_STATE,
  3058. KSPROPERTY_EXTDEVICE_PORT,
  3059. KSPROPERTY_EXTDEVICE_CAPABILITIES
  3060. } KSPROPERTY_EXTDEVICE;
  3061. typedef struct tagDEVCAPS{
  3062. LONG CanRecord;
  3063. LONG CanRecordStrobe;
  3064. LONG HasAudio;
  3065. LONG HasVideo;
  3066. LONG UsesFiles;
  3067. LONG CanSave;
  3068. LONG DeviceType;
  3069. LONG TCRead;
  3070. LONG TCWrite;
  3071. LONG CTLRead;
  3072. LONG IndexRead;
  3073. LONG Preroll;
  3074. LONG Postroll;
  3075. LONG SyncAcc;
  3076. LONG NormRate;
  3077. LONG CanPreview;
  3078. LONG CanMonitorSrc;
  3079. LONG CanTest;
  3080. LONG VideoIn;
  3081. LONG AudioIn;
  3082. LONG Calibrate;
  3083. LONG SeekType;
  3084. LONG SimulatedHardware;
  3085. } DEVCAPS,*PDEVCAPS;
  3086. typedef struct {
  3087. KSPROPERTY Property;
  3088. union {
  3089. DEVCAPS Capabilities;
  3090. ULONG DevPort;
  3091. ULONG PowerState;
  3092. WCHAR pawchString[MAX_PATH];
  3093. DWORD NodeUniqueID[2];
  3094. } u;
  3095. } KSPROPERTY_EXTDEVICE_S,*PKSPROPERTY_EXTDEVICE_S;
  3096. #define STATIC_PROPSETID_EXT_TRANSPORT \
  3097. 0xA03CD5F0,0x3045,0x11cf,0x8c,0x44,0x00,0xAA,0x00,0x6B,0x68,0x14
  3098. DEFINE_GUIDSTRUCT("A03CD5F0-3045-11cf-8C44-00AA006B6814",PROPSETID_EXT_TRANSPORT);
  3099. #define PROPSETID_EXT_TRANSPORT DEFINE_GUIDNAMED(PROPSETID_EXT_TRANSPORT)
  3100. typedef enum {
  3101. KSPROPERTY_EXTXPORT_CAPABILITIES,
  3102. KSPROPERTY_EXTXPORT_INPUT_SIGNAL_MODE,
  3103. KSPROPERTY_EXTXPORT_OUTPUT_SIGNAL_MODE,
  3104. KSPROPERTY_EXTXPORT_LOAD_MEDIUM,
  3105. KSPROPERTY_EXTXPORT_MEDIUM_INFO,
  3106. KSPROPERTY_EXTXPORT_STATE,
  3107. KSPROPERTY_EXTXPORT_STATE_NOTIFY,
  3108. KSPROPERTY_EXTXPORT_TIMECODE_SEARCH,
  3109. KSPROPERTY_EXTXPORT_ATN_SEARCH,
  3110. KSPROPERTY_EXTXPORT_RTC_SEARCH,
  3111. KSPROPERTY_RAW_AVC_CMD
  3112. } KSPROPERTY_EXTXPORT;
  3113. typedef struct tagTRANSPORTSTATUS {
  3114. LONG Mode;
  3115. LONG LastError;
  3116. LONG RecordInhibit;
  3117. LONG ServoLock;
  3118. LONG MediaPresent;
  3119. LONG MediaLength;
  3120. LONG MediaSize;
  3121. LONG MediaTrackCount;
  3122. LONG MediaTrackLength;
  3123. LONG MediaTrackSide;
  3124. LONG MediaType;
  3125. LONG LinkMode;
  3126. LONG NotifyOn;
  3127. } TRANSPORTSTATUS,*PTRANSPORTSTATUS;
  3128. typedef struct tagTRANSPORTBASICPARMS {
  3129. LONG TimeFormat;
  3130. LONG TimeReference;
  3131. LONG Superimpose;
  3132. LONG EndStopAction;
  3133. LONG RecordFormat;
  3134. LONG StepFrames;
  3135. LONG SetpField;
  3136. LONG Preroll;
  3137. LONG RecPreroll;
  3138. LONG Postroll;
  3139. LONG EditDelay;
  3140. LONG PlayTCDelay;
  3141. LONG RecTCDelay;
  3142. LONG EditField;
  3143. LONG FrameServo;
  3144. LONG ColorFrameServo;
  3145. LONG ServoRef;
  3146. LONG WarnGenlock;
  3147. LONG SetTracking;
  3148. TCHAR VolumeName[40];
  3149. LONG Ballistic[20];
  3150. LONG Speed;
  3151. LONG CounterFormat;
  3152. LONG TunerChannel;
  3153. LONG TunerNumber;
  3154. LONG TimerEvent;
  3155. LONG TimerStartDay;
  3156. LONG TimerStartTime;
  3157. LONG TimerStopDay;
  3158. LONG TimerStopTime;
  3159. } TRANSPORTBASICPARMS,*PTRANSPORTBASICPARMS;
  3160. typedef struct tagTRANSPORTVIDEOPARMS {
  3161. LONG OutputMode;
  3162. LONG Input;
  3163. } TRANSPORTVIDEOPARMS,*PTRANSPORTVIDEOPARMS;
  3164. typedef struct tagTRANSPORTAUDIOPARMS {
  3165. LONG EnableOutput;
  3166. LONG EnableRecord;
  3167. LONG EnableSelsync;
  3168. LONG Input;
  3169. LONG MonitorSource;
  3170. } TRANSPORTAUDIOPARMS,*PTRANSPORTAUDIOPARMS;
  3171. typedef struct {
  3172. WINBOOL MediaPresent;
  3173. ULONG MediaType;
  3174. WINBOOL RecordInhibit;
  3175. } MEDIUM_INFO,*PMEDIUM_INFO;
  3176. typedef struct {
  3177. ULONG Mode;
  3178. ULONG State;
  3179. } TRANSPORT_STATE,*PTRANSPORT_STATE;
  3180. typedef struct {
  3181. KSPROPERTY Property;
  3182. union {
  3183. ULONG Capabilities;
  3184. ULONG SignalMode;
  3185. ULONG LoadMedium;
  3186. MEDIUM_INFO MediumInfo;
  3187. TRANSPORT_STATE XPrtState;
  3188. struct {
  3189. BYTE frame;
  3190. BYTE second;
  3191. BYTE minute;
  3192. BYTE hour;
  3193. } Timecode;
  3194. DWORD dwTimecode;
  3195. DWORD dwAbsTrackNumber;
  3196. struct {
  3197. ULONG PayloadSize;
  3198. BYTE Payload[512];
  3199. } RawAVC;
  3200. } u;
  3201. } KSPROPERTY_EXTXPORT_S,*PKSPROPERTY_EXTXPORT_S;
  3202. typedef struct {
  3203. KSP_NODE NodeProperty;
  3204. union {
  3205. ULONG Capabilities;
  3206. ULONG SignalMode;
  3207. ULONG LoadMedium;
  3208. MEDIUM_INFO MediumInfo;
  3209. TRANSPORT_STATE XPrtState;
  3210. struct {
  3211. BYTE frame;
  3212. BYTE second;
  3213. BYTE minute;
  3214. BYTE hour;
  3215. } Timecode;
  3216. DWORD dwTimecode;
  3217. DWORD dwAbsTrackNumber;
  3218. struct {
  3219. ULONG PayloadSize;
  3220. BYTE Payload[512];
  3221. } RawAVC;
  3222. } u;
  3223. } KSPROPERTY_EXTXPORT_NODE_S,*PKSPROPERTY_EXTXPORT_NODE_S;
  3224. #define STATIC_PROPSETID_TIMECODE_READER \
  3225. 0x9B496CE1,0x811B,0x11cf,0x8C,0x77,0x00,0xAA,0x00,0x6B,0x68,0x14
  3226. DEFINE_GUIDSTRUCT("9B496CE1-811B-11cf-8C77-00AA006B6814",PROPSETID_TIMECODE_READER);
  3227. #define PROPSETID_TIMECODE_READER DEFINE_GUIDNAMED(PROPSETID_TIMECODE_READER)
  3228. typedef enum {
  3229. KSPROPERTY_TIMECODE_READER,
  3230. KSPROPERTY_ATN_READER,
  3231. KSPROPERTY_RTC_READER
  3232. } KSPROPERTY_TIMECODE;
  3233. #ifndef TIMECODE_DEFINED
  3234. #define TIMECODE_DEFINED
  3235. typedef union _timecode {
  3236. struct {
  3237. WORD wFrameRate;
  3238. WORD wFrameFract;
  3239. DWORD dwFrames;
  3240. };
  3241. DWORDLONG qw;
  3242. } TIMECODE;
  3243. typedef TIMECODE *PTIMECODE;
  3244. typedef struct tagTIMECODE_SAMPLE {
  3245. LONGLONG qwTick;
  3246. TIMECODE timecode;
  3247. DWORD dwUser;
  3248. DWORD dwFlags;
  3249. } TIMECODE_SAMPLE;
  3250. typedef TIMECODE_SAMPLE *PTIMECODE_SAMPLE;
  3251. #endif /* TIMECODE_DEFINED */
  3252. typedef struct {
  3253. KSPROPERTY Property;
  3254. TIMECODE_SAMPLE TimecodeSamp;
  3255. } KSPROPERTY_TIMECODE_S,*PKSPROPERTY_TIMECODE_S;
  3256. typedef struct {
  3257. KSP_NODE NodeProperty;
  3258. TIMECODE_SAMPLE TimecodeSamp;
  3259. } KSPROPERTY_TIMECODE_NODE_S,*PKSPROPERTY_TIMECODE_NODE_S;
  3260. #define STATIC_KSEVENTSETID_EXTDEV_Command \
  3261. 0x109c7988,0xb3cb,0x11d2,0xb4,0x8e,0x00,0x60,0x97,0xb3,0x39,0x1b
  3262. DEFINE_GUIDSTRUCT("109c7988-b3cb-11d2-b48e-006097b3391b",KSEVENTSETID_EXTDEV_Command);
  3263. #define KSEVENTSETID_EXTDEV_Command DEFINE_GUIDNAMED(KSEVENTSETID_EXTDEV_Command)
  3264. typedef enum {
  3265. KSEVENT_EXTDEV_COMMAND_NOTIFY_INTERIM_READY,
  3266. KSEVENT_EXTDEV_COMMAND_CONTROL_INTERIM_READY,
  3267. KSEVENT_EXTDEV_COMMAND_BUSRESET,
  3268. KSEVENT_EXTDEV_TIMECODE_UPDATE,
  3269. KSEVENT_EXTDEV_OPERATION_MODE_UPDATE,
  3270. KSEVENT_EXTDEV_TRANSPORT_STATE_UPDATE,
  3271. KSEVENT_EXTDEV_NOTIFY_REMOVAL,
  3272. KSEVENT_EXTDEV_NOTIFY_MEDIUM_CHANGE
  3273. } KSEVENT_DEVCMD;
  3274. #endif /* __EDevCtrl__ */
  3275. #define STATIC_PROPSETID_VIDCAP_CROSSBAR \
  3276. 0x6a2e0640,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
  3277. DEFINE_GUIDSTRUCT("6a2e0640-28e4-11d0-a18c-00a0c9118956",PROPSETID_VIDCAP_CROSSBAR);
  3278. #define PROPSETID_VIDCAP_CROSSBAR DEFINE_GUIDNAMED(PROPSETID_VIDCAP_CROSSBAR)
  3279. typedef enum {
  3280. KSPROPERTY_CROSSBAR_CAPS,
  3281. KSPROPERTY_CROSSBAR_PININFO,
  3282. KSPROPERTY_CROSSBAR_CAN_ROUTE,
  3283. KSPROPERTY_CROSSBAR_ROUTE
  3284. } KSPROPERTY_VIDCAP_CROSSBAR;
  3285. typedef struct {
  3286. KSPROPERTY Property;
  3287. ULONG NumberOfInputs;
  3288. ULONG NumberOfOutputs;
  3289. } KSPROPERTY_CROSSBAR_CAPS_S,*PKSPROPERTY_CROSSBAR_CAPS_S;
  3290. typedef struct {
  3291. KSPROPERTY Property;
  3292. KSPIN_DATAFLOW Direction;
  3293. ULONG Index;
  3294. ULONG PinType;
  3295. ULONG RelatedPinIndex;
  3296. KSPIN_MEDIUM Medium;
  3297. } KSPROPERTY_CROSSBAR_PININFO_S,*PKSPROPERTY_CROSSBAR_PININFO_S;
  3298. typedef struct {
  3299. KSPROPERTY Property;
  3300. ULONG IndexInputPin;
  3301. ULONG IndexOutputPin;
  3302. ULONG CanRoute;
  3303. } KSPROPERTY_CROSSBAR_ROUTE_S,*PKSPROPERTY_CROSSBAR_ROUTE_S;
  3304. #define STATIC_EVENTSETID_CROSSBAR \
  3305. 0x6a2e0641,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
  3306. DEFINE_GUIDSTRUCT("6a2e0641-28e4-11d0-a18c-00a0c9118956",EVENTSETID_CROSSBAR);
  3307. #define EVENTSETID_CROSSBAR DEFINE_GUIDNAMED(EVENTSETID_CROSSBAR)
  3308. typedef enum {
  3309. KSEVENT_CROSSBAR_CHANGED
  3310. } KSEVENT_CROSSBAR;
  3311. typedef enum {
  3312. KS_PhysConn_Video_Tuner = 1,
  3313. KS_PhysConn_Video_Composite,
  3314. KS_PhysConn_Video_SVideo,
  3315. KS_PhysConn_Video_RGB,
  3316. KS_PhysConn_Video_YRYBY,
  3317. KS_PhysConn_Video_SerialDigital,
  3318. KS_PhysConn_Video_ParallelDigital,
  3319. KS_PhysConn_Video_SCSI,
  3320. KS_PhysConn_Video_AUX,
  3321. KS_PhysConn_Video_1394,
  3322. KS_PhysConn_Video_USB,
  3323. KS_PhysConn_Video_VideoDecoder,
  3324. KS_PhysConn_Video_VideoEncoder,
  3325. KS_PhysConn_Video_SCART,
  3326. KS_PhysConn_Audio_Tuner = 4096,
  3327. KS_PhysConn_Audio_Line,
  3328. KS_PhysConn_Audio_Mic,
  3329. KS_PhysConn_Audio_AESDigital,
  3330. KS_PhysConn_Audio_SPDIFDigital,
  3331. KS_PhysConn_Audio_SCSI,
  3332. KS_PhysConn_Audio_AUX,
  3333. KS_PhysConn_Audio_1394,
  3334. KS_PhysConn_Audio_USB,
  3335. KS_PhysConn_Audio_AudioDecoder
  3336. } KS_PhysicalConnectorType;
  3337. #define STATIC_PROPSETID_VIDCAP_TVAUDIO \
  3338. 0x6a2e0650,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
  3339. DEFINE_GUIDSTRUCT("6a2e0650-28e4-11d0-a18c-00a0c9118956",PROPSETID_VIDCAP_TVAUDIO);
  3340. #define PROPSETID_VIDCAP_TVAUDIO DEFINE_GUIDNAMED(PROPSETID_VIDCAP_TVAUDIO)
  3341. typedef enum {
  3342. KSPROPERTY_TVAUDIO_CAPS,
  3343. KSPROPERTY_TVAUDIO_MODE,
  3344. KSPROPERTY_TVAUDIO_CURRENTLY_AVAILABLE_MODES
  3345. } KSPROPERTY_VIDCAP_TVAUDIO;
  3346. #define KS_TVAUDIO_MODE_MONO 0x0001
  3347. #define KS_TVAUDIO_MODE_STEREO 0x0002
  3348. #define KS_TVAUDIO_MODE_LANG_A 0x0010
  3349. #define KS_TVAUDIO_MODE_LANG_B 0x0020
  3350. #define KS_TVAUDIO_MODE_LANG_C 0x0040
  3351. typedef struct {
  3352. KSPROPERTY Property;
  3353. ULONG Capabilities;
  3354. KSPIN_MEDIUM InputMedium;
  3355. KSPIN_MEDIUM OutputMedium;
  3356. } KSPROPERTY_TVAUDIO_CAPS_S,*PKSPROPERTY_TVAUDIO_CAPS_S;
  3357. typedef struct {
  3358. KSPROPERTY Property;
  3359. ULONG Mode;
  3360. } KSPROPERTY_TVAUDIO_S,*PKSPROPERTY_TVAUDIO_S;
  3361. #define STATIC_KSEVENTSETID_VIDCAP_TVAUDIO \
  3362. 0x6a2e0651,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
  3363. DEFINE_GUIDSTRUCT("6a2e0651-28e4-11d0-a18c-00a0c9118956",KSEVENTSETID_VIDCAP_TVAUDIO);
  3364. #define KSEVENTSETID_VIDCAP_TVAUDIO DEFINE_GUIDNAMED(KSEVENTSETID_VIDCAP_TVAUDIO)
  3365. typedef enum {
  3366. KSEVENT_TVAUDIO_CHANGED
  3367. } KSEVENT_TVAUDIO;
  3368. #define STATIC_PROPSETID_VIDCAP_VIDEOCOMPRESSION \
  3369. 0xC6E13343,0x30AC,0x11d0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56
  3370. DEFINE_GUIDSTRUCT("C6E13343-30AC-11d0-A18C-00A0C9118956",PROPSETID_VIDCAP_VIDEOCOMPRESSION);
  3371. #define PROPSETID_VIDCAP_VIDEOCOMPRESSION DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEOCOMPRESSION)
  3372. typedef enum {
  3373. KSPROPERTY_VIDEOCOMPRESSION_GETINFO,
  3374. KSPROPERTY_VIDEOCOMPRESSION_KEYFRAME_RATE,
  3375. KSPROPERTY_VIDEOCOMPRESSION_PFRAMES_PER_KEYFRAME,
  3376. KSPROPERTY_VIDEOCOMPRESSION_QUALITY,
  3377. KSPROPERTY_VIDEOCOMPRESSION_OVERRIDE_KEYFRAME,
  3378. KSPROPERTY_VIDEOCOMPRESSION_OVERRIDE_FRAME_SIZE,
  3379. KSPROPERTY_VIDEOCOMPRESSION_WINDOWSIZE
  3380. } KSPROPERTY_VIDCAP_VIDEOCOMPRESSION;
  3381. typedef enum {
  3382. KS_CompressionCaps_CanQuality = 1,
  3383. KS_CompressionCaps_CanCrunch = 2,
  3384. KS_CompressionCaps_CanKeyFrame = 4,
  3385. KS_CompressionCaps_CanBFrame = 8,
  3386. KS_CompressionCaps_CanWindow = 0x10
  3387. } KS_CompressionCaps;
  3388. typedef enum {
  3389. KS_StreamingHint_FrameInterval = 0x0100,
  3390. KS_StreamingHint_KeyFrameRate = 0x0200,
  3391. KS_StreamingHint_PFrameRate = 0x0400,
  3392. KS_StreamingHint_CompQuality = 0x0800,
  3393. KS_StreamingHint_CompWindowSize = 0x1000
  3394. } KS_VideoStreamingHints;
  3395. typedef struct {
  3396. KSPROPERTY Property;
  3397. ULONG StreamIndex;
  3398. LONG DefaultKeyFrameRate;
  3399. LONG DefaultPFrameRate;
  3400. LONG DefaultQuality;
  3401. LONG NumberOfQualitySettings;
  3402. LONG Capabilities;
  3403. } KSPROPERTY_VIDEOCOMPRESSION_GETINFO_S,*PKSPROPERTY_VIDEOCOMPRESSION_GETINFO_S;
  3404. typedef struct {
  3405. KSPROPERTY Property;
  3406. ULONG StreamIndex;
  3407. LONG Value;
  3408. } KSPROPERTY_VIDEOCOMPRESSION_S,*PKSPROPERTY_VIDEOCOMPRESSION_S;
  3409. typedef struct {
  3410. KSPROPERTY Property;
  3411. ULONG StreamIndex;
  3412. LONG Value;
  3413. ULONG Flags;
  3414. } KSPROPERTY_VIDEOCOMPRESSION_S1,*PKSPROPERTY_VIDEOCOMPRESSION_S1;
  3415. #define STATIC_KSDATAFORMAT_SUBTYPE_OVERLAY \
  3416. 0xe436eb7f,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70
  3417. DEFINE_GUIDSTRUCT("e436eb7f-524f-11ce-9f53-0020af0ba770",KSDATAFORMAT_SUBTYPE_OVERLAY);
  3418. #define KSDATAFORMAT_SUBTYPE_OVERLAY DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_OVERLAY)
  3419. #define STATIC_KSPROPSETID_OverlayUpdate \
  3420. 0x490EA5CF,0x7681,0x11D1,0xA2,0x1C,0x00,0xA0,0xC9,0x22,0x31,0x96
  3421. DEFINE_GUIDSTRUCT("490EA5CF-7681-11D1-A21C-00A0C9223196",KSPROPSETID_OverlayUpdate);
  3422. #define KSPROPSETID_OverlayUpdate DEFINE_GUIDNAMED(KSPROPSETID_OverlayUpdate)
  3423. typedef enum {
  3424. KSPROPERTY_OVERLAYUPDATE_INTERESTS,
  3425. KSPROPERTY_OVERLAYUPDATE_CLIPLIST = 0x1,
  3426. KSPROPERTY_OVERLAYUPDATE_PALETTE = 0x2,
  3427. KSPROPERTY_OVERLAYUPDATE_COLORKEY = 0x4,
  3428. KSPROPERTY_OVERLAYUPDATE_VIDEOPOSITION = 0x8,
  3429. KSPROPERTY_OVERLAYUPDATE_DISPLAYCHANGE = 0x10,
  3430. KSPROPERTY_OVERLAYUPDATE_COLORREF = 0x10000000
  3431. } KSPROPERTY_OVERLAYUPDATE;
  3432. typedef struct {
  3433. ULONG PelsWidth;
  3434. ULONG PelsHeight;
  3435. ULONG BitsPerPel;
  3436. WCHAR DeviceID[1];
  3437. } KSDISPLAYCHANGE,*PKSDISPLAYCHANGE;
  3438. #define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_INTERESTS(Handler) \
  3439. DEFINE_KSPROPERTY_ITEM( \
  3440. KSPROPERTY_OVERLAYUPDATE_INTERESTS, \
  3441. (Handler), \
  3442. sizeof(KSPROPERTY), \
  3443. sizeof(ULONG), \
  3444. NULL, NULL, 0, NULL, NULL, 0)
  3445. #define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_PALETTE(Handler) \
  3446. DEFINE_KSPROPERTY_ITEM( \
  3447. KSPROPERTY_OVERLAYUPDATE_PALETTE, \
  3448. NULL, \
  3449. sizeof(KSPROPERTY), \
  3450. 0, \
  3451. (Handler), \
  3452. NULL, 0, NULL, NULL, 0)
  3453. #define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_COLORKEY(Handler) \
  3454. DEFINE_KSPROPERTY_ITEM( \
  3455. KSPROPERTY_OVERLAYUPDATE_COLORKEY, \
  3456. NULL, \
  3457. sizeof(KSPROPERTY), \
  3458. sizeof(COLORKEY), \
  3459. (Handler), \
  3460. NULL, 0, NULL, NULL, 0)
  3461. #define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_CLIPLIST(Handler) \
  3462. DEFINE_KSPROPERTY_ITEM( \
  3463. KSPROPERTY_OVERLAYUPDATE_CLIPLIST, \
  3464. NULL, \
  3465. sizeof(KSPROPERTY), \
  3466. 2 *sizeof(RECT) + sizeof(RGNDATAHEADER),\
  3467. (Handler), \
  3468. NULL, 0, NULL, NULL, 0)
  3469. #define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_VIDEOPOSITION(Handler) \
  3470. DEFINE_KSPROPERTY_ITEM( \
  3471. KSPROPERTY_OVERLAYUPDATE_VIDEOPOSITION, \
  3472. NULL, \
  3473. sizeof(KSPROPERTY), \
  3474. 2 *sizeof(RECT), \
  3475. (Handler), \
  3476. NULL, 0, NULL, NULL, 0)
  3477. #define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_DISPLAYCHANGE(Handler) \
  3478. DEFINE_KSPROPERTY_ITEM( \
  3479. KSPROPERTY_OVERLAYUPDATE_DISPLAYCHANGE, \
  3480. NULL, \
  3481. sizeof(KSPROPERTY), \
  3482. sizeof(KSDISPLAYCHANGE), \
  3483. (Handler), \
  3484. NULL, 0, NULL, NULL, 0)
  3485. #define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_COLORREF(Handler) \
  3486. DEFINE_KSPROPERTY_ITEM( \
  3487. KSPROPERTY_OVERLAYUPDATE_COLORREF, \
  3488. (Handler), \
  3489. sizeof(KSPROPERTY), \
  3490. sizeof(COLORREF), \
  3491. NULL, \
  3492. NULL, 0, NULL, NULL, 0)
  3493. #define STATIC_PROPSETID_VIDCAP_VIDEOCONTROL \
  3494. 0x6a2e0670,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
  3495. DEFINE_GUIDSTRUCT("6a2e0670-28e4-11d0-a18c-00a0c9118956",PROPSETID_VIDCAP_VIDEOCONTROL);
  3496. #define PROPSETID_VIDCAP_VIDEOCONTROL DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEOCONTROL)
  3497. typedef enum {
  3498. KSPROPERTY_VIDEOCONTROL_CAPS,
  3499. KSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE,
  3500. KSPROPERTY_VIDEOCONTROL_FRAME_RATES,
  3501. KSPROPERTY_VIDEOCONTROL_MODE
  3502. } KSPROPERTY_VIDCAP_VIDEOCONTROL;
  3503. typedef enum {
  3504. KS_VideoControlFlag_FlipHorizontal = 0x0001,
  3505. KS_VideoControlFlag_FlipVertical = 0x0002,
  3506. KS_Obsolete_VideoControlFlag_ExternalTriggerEnable = 0x0010,
  3507. KS_Obsolete_VideoControlFlag_Trigger = 0x0020,
  3508. KS_VideoControlFlag_ExternalTriggerEnable = 0x0004,
  3509. KS_VideoControlFlag_Trigger = 0x0008
  3510. } KS_VideoControlFlags;
  3511. typedef struct {
  3512. KSPROPERTY Property;
  3513. ULONG StreamIndex;
  3514. ULONG VideoControlCaps;
  3515. } KSPROPERTY_VIDEOCONTROL_CAPS_S,*PKSPROPERTY_VIDEOCONTROL_CAPS_S;
  3516. typedef struct {
  3517. KSPROPERTY Property;
  3518. ULONG StreamIndex;
  3519. LONG Mode;
  3520. } KSPROPERTY_VIDEOCONTROL_MODE_S,*PKSPROPERTY_VIDEOCONTROL_MODE_S;
  3521. typedef struct {
  3522. KSPROPERTY Property;
  3523. ULONG StreamIndex;
  3524. ULONG RangeIndex;
  3525. SIZE Dimensions;
  3526. LONGLONG CurrentActualFrameRate;
  3527. LONGLONG CurrentMaxAvailableFrameRate;
  3528. } KSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE_S,*PKSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE_S;
  3529. typedef struct {
  3530. KSPROPERTY Property;
  3531. ULONG StreamIndex;
  3532. ULONG RangeIndex;
  3533. SIZE Dimensions;
  3534. } KSPROPERTY_VIDEOCONTROL_FRAME_RATES_S,*PKSPROPERTY_VIDEOCONTROL_FRAME_RATES_S;
  3535. #define STATIC_PROPSETID_VIDCAP_DROPPEDFRAMES \
  3536. 0xC6E13344,0x30AC,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
  3537. DEFINE_GUIDSTRUCT("C6E13344-30AC-11d0-A18C-00A0C9118956",PROPSETID_VIDCAP_DROPPEDFRAMES);
  3538. #define PROPSETID_VIDCAP_DROPPEDFRAMES DEFINE_GUIDNAMED(PROPSETID_VIDCAP_DROPPEDFRAMES)
  3539. typedef enum {
  3540. KSPROPERTY_DROPPEDFRAMES_CURRENT
  3541. } KSPROPERTY_VIDCAP_DROPPEDFRAMES;
  3542. typedef struct {
  3543. KSPROPERTY Property;
  3544. LONGLONG PictureNumber;
  3545. LONGLONG DropCount;
  3546. ULONG AverageFrameSize;
  3547. } KSPROPERTY_DROPPEDFRAMES_CURRENT_S,*PKSPROPERTY_DROPPEDFRAMES_CURRENT_S;
  3548. #define STATIC_KSPROPSETID_VPConfig \
  3549. 0xbc29a660,0x30e3,0x11d0,0x9e,0x69,0x00,0xc0,0x4f,0xd7,0xc1,0x5b
  3550. DEFINE_GUIDSTRUCT("bc29a660-30e3-11d0-9e69-00c04fd7c15b",KSPROPSETID_VPConfig);
  3551. #define KSPROPSETID_VPConfig DEFINE_GUIDNAMED(KSPROPSETID_VPConfig)
  3552. #define STATIC_KSPROPSETID_VPVBIConfig \
  3553. 0xec529b00,0x1a1f,0x11d1,0xba,0xd9,0x0,0x60,0x97,0x44,0x11,0x1a
  3554. DEFINE_GUIDSTRUCT("ec529b00-1a1f-11d1-bad9-00609744111a",KSPROPSETID_VPVBIConfig);
  3555. #define KSPROPSETID_VPVBIConfig DEFINE_GUIDNAMED(KSPROPSETID_VPVBIConfig)
  3556. typedef enum {
  3557. KSPROPERTY_VPCONFIG_NUMCONNECTINFO,
  3558. KSPROPERTY_VPCONFIG_GETCONNECTINFO,
  3559. KSPROPERTY_VPCONFIG_SETCONNECTINFO,
  3560. KSPROPERTY_VPCONFIG_VPDATAINFO,
  3561. KSPROPERTY_VPCONFIG_MAXPIXELRATE,
  3562. KSPROPERTY_VPCONFIG_INFORMVPINPUT,
  3563. KSPROPERTY_VPCONFIG_NUMVIDEOFORMAT,
  3564. KSPROPERTY_VPCONFIG_GETVIDEOFORMAT,
  3565. KSPROPERTY_VPCONFIG_SETVIDEOFORMAT,
  3566. KSPROPERTY_VPCONFIG_INVERTPOLARITY,
  3567. KSPROPERTY_VPCONFIG_DECIMATIONCAPABILITY,
  3568. KSPROPERTY_VPCONFIG_SCALEFACTOR,
  3569. KSPROPERTY_VPCONFIG_DDRAWHANDLE,
  3570. KSPROPERTY_VPCONFIG_VIDEOPORTID,
  3571. KSPROPERTY_VPCONFIG_DDRAWSURFACEHANDLE,
  3572. KSPROPERTY_VPCONFIG_SURFACEPARAMS
  3573. } KSPROPERTY_VPCONFIG;
  3574. #define STATIC_CLSID_KsIBasicAudioInterfaceHandler \
  3575. 0xb9f8ac3e,0x0f71,0x11d2,0xb7,0x2c,0x00,0xc0,0x4f,0xb6,0xbd,0x3d
  3576. DEFINE_GUIDSTRUCT("b9f8ac3e-0f71-11d2-b72c-00c04fb6bd3d",CLSID_KsIBasicAudioInterfaceHandler);
  3577. #define CLSID_KsIBasicAudioInterfaceHandler DEFINE_GUIDNAMED(CLSID_KsIBasicAudioInterfaceHandler)
  3578. #ifdef __IVPType__
  3579. typedef struct {
  3580. AMVPSIZE Size;
  3581. DWORD MaxPixelsPerSecond;
  3582. DWORD Reserved;
  3583. } KSVPMAXPIXELRATE,*PKSVPMAXPIXELRATE;
  3584. typedef struct {
  3585. KSPROPERTY Property;
  3586. AMVPSIZE Size;
  3587. } KSVPSIZE_PROP,*PKSVPSIZE_PROP;
  3588. typedef struct {
  3589. DWORD dwPitch;
  3590. DWORD dwXOrigin;
  3591. DWORD dwYOrigin;
  3592. } KSVPSURFACEPARAMS,*PKSVPSURFACEPARAMS;
  3593. #else /* __IVPType__ */
  3594. #ifndef __DDRAW_INCLUDED__
  3595. #define DDPF_FOURCC __MSABI_LONG(0x00000004)
  3596. typedef struct _DDPIXELFORMAT
  3597. {
  3598. DWORD dwSize;
  3599. DWORD dwFlags;
  3600. DWORD dwFourCC;
  3601. __C89_NAMELESS union
  3602. {
  3603. DWORD dwRGBBitCount;
  3604. DWORD dwYUVBitCount;
  3605. DWORD dwZBufferBitDepth;
  3606. DWORD dwAlphaBitDepth;
  3607. };
  3608. __C89_NAMELESS union
  3609. {
  3610. DWORD dwRBitMask;
  3611. DWORD dwYBitMask;
  3612. };
  3613. __C89_NAMELESS union
  3614. {
  3615. DWORD dwGBitMask;
  3616. DWORD dwUBitMask;
  3617. };
  3618. __C89_NAMELESS union
  3619. {
  3620. DWORD dwBBitMask;
  3621. DWORD dwVBitMask;
  3622. };
  3623. __C89_NAMELESS union
  3624. {
  3625. DWORD dwRGBAlphaBitMask;
  3626. DWORD dwYUVAlphaBitMask;
  3627. DWORD dwRGBZBitMask;
  3628. DWORD dwYUVZBitMask;
  3629. };
  3630. } DDPIXELFORMAT,*LPDDPIXELFORMAT;
  3631. #endif /* __DDRAW_INCLUDED__ */
  3632. #ifndef __DVP_INCLUDED__
  3633. typedef struct _DDVIDEOPORTCONNECT {
  3634. DWORD dwSize;
  3635. DWORD dwPortWidth;
  3636. GUID guidTypeID;
  3637. DWORD dwFlags;
  3638. ULONG_PTR dwReserved1;
  3639. } DDVIDEOPORTCONNECT,*LPDDVIDEOPORTCONNECT;
  3640. #define DDVPTYPE_E_HREFH_VREFH \
  3641. 0x54F39980,0xDA60,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8
  3642. #define DDVPTYPE_E_HREFL_VREFL \
  3643. 0xE09C77E0,0xDA60,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8
  3644. #endif /* __DVP_INCLUDED__ */
  3645. typedef enum
  3646. {
  3647. KS_PixAspectRatio_NTSC4x3,
  3648. KS_PixAspectRatio_NTSC16x9,
  3649. KS_PixAspectRatio_PAL4x3,
  3650. KS_PixAspectRatio_PAL16x9
  3651. } KS_AMPixAspectRatio;
  3652. typedef enum
  3653. {
  3654. KS_AMVP_DO_NOT_CARE,
  3655. KS_AMVP_BEST_BANDWIDTH,
  3656. KS_AMVP_INPUT_SAME_AS_OUTPUT
  3657. } KS_AMVP_SELECTFORMATBY;
  3658. typedef enum
  3659. {
  3660. KS_AMVP_MODE_WEAVE,
  3661. KS_AMVP_MODE_BOBINTERLEAVED,
  3662. KS_AMVP_MODE_BOBNONINTERLEAVED,
  3663. KS_AMVP_MODE_SKIPEVEN,
  3664. KS_AMVP_MODE_SKIPODD
  3665. } KS_AMVP_MODE;
  3666. typedef struct tagKS_AMVPDIMINFO
  3667. {
  3668. DWORD dwFieldWidth;
  3669. DWORD dwFieldHeight;
  3670. DWORD dwVBIWidth;
  3671. DWORD dwVBIHeight;
  3672. RECT rcValidRegion;
  3673. } KS_AMVPDIMINFO,*PKS_AMVPDIMINFO;
  3674. typedef struct tagKS_AMVPDATAINFO
  3675. {
  3676. DWORD dwSize;
  3677. DWORD dwMicrosecondsPerField;
  3678. KS_AMVPDIMINFO amvpDimInfo;
  3679. DWORD dwPictAspectRatioX;
  3680. DWORD dwPictAspectRatioY;
  3681. WINBOOL bEnableDoubleClock;
  3682. WINBOOL bEnableVACT;
  3683. WINBOOL bDataIsInterlaced;
  3684. LONG lHalfLinesOdd;
  3685. WINBOOL bFieldPolarityInverted;
  3686. DWORD dwNumLinesInVREF;
  3687. LONG lHalfLinesEven;
  3688. DWORD dwReserved1;
  3689. } KS_AMVPDATAINFO,*PKS_AMVPDATAINFO;
  3690. typedef struct tagKS_AMVPSIZE
  3691. {
  3692. DWORD dwWidth;
  3693. DWORD dwHeight;
  3694. } KS_AMVPSIZE,*PKS_AMVPSIZE;
  3695. typedef struct {
  3696. KS_AMVPSIZE Size;
  3697. DWORD MaxPixelsPerSecond;
  3698. DWORD Reserved;
  3699. } KSVPMAXPIXELRATE,*PKSVPMAXPIXELRATE;
  3700. typedef struct {
  3701. KSPROPERTY Property;
  3702. KS_AMVPSIZE Size;
  3703. } KSVPSIZE_PROP,*PKSVPSIZE_PROP;
  3704. typedef struct {
  3705. DWORD dwPitch;
  3706. DWORD dwXOrigin;
  3707. DWORD dwYOrigin;
  3708. } KSVPSURFACEPARAMS,*PKSVPSURFACEPARAMS;
  3709. #endif /* __IVPType__ */
  3710. #define STATIC_KSEVENTSETID_VPNotify \
  3711. 0x20c5598e,0xd3c8,0x11d0,0x8d,0xfc,0x00,0xc0,0x4f,0xd7,0xc0,0x8b
  3712. DEFINE_GUIDSTRUCT("20c5598e-d3c8-11d0-8dfc-00c04fd7c08b",KSEVENTSETID_VPNotify);
  3713. #define KSEVENTSETID_VPNotify DEFINE_GUIDNAMED(KSEVENTSETID_VPNotify)
  3714. typedef enum {
  3715. KSEVENT_VPNOTIFY_FORMATCHANGE
  3716. } KSEVENT_VPNOTIFY;
  3717. #define STATIC_KSEVENTSETID_VIDCAPTOSTI \
  3718. 0xdb47de20,0xf628,0x11d1,0xba,0x41,0x0,0xa0,0xc9,0xd,0x2b,0x5
  3719. DEFINE_GUIDSTRUCT("DB47DE20-F628-11d1-BA41-00A0C90D2B05",KSEVENTSETID_VIDCAPTOSTI);
  3720. #define KSEVENTSETID_VIDCAPNotify DEFINE_GUIDNAMED(KSEVENTSETID_VIDCAPTOSTI)
  3721. typedef enum {
  3722. KSEVENT_VIDCAPTOSTI_EXT_TRIGGER,
  3723. KSEVENT_VIDCAP_AUTO_UPDATE,
  3724. KSEVENT_VIDCAP_SEARCH
  3725. } KSEVENT_VIDCAPTOSTI;
  3726. typedef enum {
  3727. KSPROPERTY_EXTENSION_UNIT_INFO,
  3728. KSPROPERTY_EXTENSION_UNIT_CONTROL,
  3729. KSPROPERTY_EXTENSION_UNIT_PASS_THROUGH = 0xffff
  3730. } KSPROPERTY_EXTENSION_UNIT,*PKSPROPERTY_EXTENSION_UNIT;
  3731. #define STATIC_KSEVENTSETID_VPVBINotify \
  3732. 0xec529b01,0x1a1f,0x11d1,0xba,0xd9,0x0,0x60,0x97,0x44,0x11,0x1a
  3733. DEFINE_GUIDSTRUCT("ec529b01-1a1f-11d1-bad9-00609744111a",KSEVENTSETID_VPVBINotify);
  3734. #define KSEVENTSETID_VPVBINotify DEFINE_GUIDNAMED(KSEVENTSETID_VPVBINotify)
  3735. typedef enum {
  3736. KSEVENT_VPVBINOTIFY_FORMATCHANGE
  3737. } KSEVENT_VPVBINOTIFY;
  3738. #define STATIC_KSDATAFORMAT_TYPE_AUXLine21Data \
  3739. 0x670aea80,0x3a82,0x11d0,0xb7,0x9b,0x00,0xaa,0x00,0x37,0x67,0xa7
  3740. DEFINE_GUIDSTRUCT("670aea80-3a82-11d0-b79b-00aa003767a7",KSDATAFORMAT_TYPE_AUXLine21Data);
  3741. #define KSDATAFORMAT_TYPE_AUXLine21Data DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_AUXLine21Data)
  3742. #define STATIC_KSDATAFORMAT_SUBTYPE_Line21_BytePair \
  3743. 0x6e8d4a22,0x310c,0x11d0,0xb7,0x9a,0x00,0xaa,0x00,0x37,0x67,0xa7
  3744. DEFINE_GUIDSTRUCT("6e8d4a22-310c-11d0-b79a-00aa003767a7",KSDATAFORMAT_SUBTYPE_Line21_BytePair);
  3745. #define KSDATAFORMAT_SUBTYPE_Line21_BytePair DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_Line21_BytePair)
  3746. #define STATIC_KSDATAFORMAT_SUBTYPE_Line21_GOPPacket \
  3747. 0x6e8d4a23,0x310c,0x11d0,0xb7,0x9a,0x00,0xaa,0x00,0x37,0x67,0xa7
  3748. DEFINE_GUIDSTRUCT("6e8d4a23-310c-11d0-b79a-00aa003767a7",KSDATAFORMAT_SUBTYPE_Line21_GOPPacket);
  3749. #define KSDATAFORMAT_SUBTYPE_Line21_GOPPacket DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_Line21_GOPPacket)
  3750. typedef struct _KSGOP_USERDATA {
  3751. ULONG sc;
  3752. ULONG reserved1;
  3753. BYTE cFields;
  3754. CHAR l21Data[3];
  3755. } KSGOP_USERDATA,*PKSGOP_USERDATA;
  3756. #define STATIC_KSDATAFORMAT_TYPE_DVD_ENCRYPTED_PACK \
  3757. 0xed0b916a,0x044d,0x11d1,0xaa,0x78,0x00,0xc0,0x4f,0xc3,0x1d,0x60
  3758. DEFINE_GUIDSTRUCT("ed0b916a-044d-11d1-aa78-00c04fc31d60",KSDATAFORMAT_TYPE_DVD_ENCRYPTED_PACK);
  3759. #define KSDATAFORMAT_TYPE_DVD_ENCRYPTED_PACK DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_DVD_ENCRYPTED_PACK)
  3760. #define KS_AM_UseNewCSSKey 0x1
  3761. #define STATIC_KSPROPSETID_TSRateChange \
  3762. 0xa503c5c0,0x1d1d,0x11d1,0xad,0x80,0x44,0x45,0x53,0x54,0x0,0x0
  3763. DEFINE_GUIDSTRUCT("A503C5C0-1D1D-11D1-AD80-444553540000",KSPROPSETID_TSRateChange);
  3764. #define KSPROPSETID_TSRateChange DEFINE_GUIDNAMED(KSPROPSETID_TSRateChange)
  3765. typedef enum {
  3766. KS_AM_RATE_SimpleRateChange = 1,
  3767. KS_AM_RATE_ExactRateChange = 2,
  3768. KS_AM_RATE_MaxFullDataRate = 3,
  3769. KS_AM_RATE_Step = 4
  3770. } KS_AM_PROPERTY_TS_RATE_CHANGE;
  3771. typedef struct {
  3772. REFERENCE_TIME StartTime;
  3773. LONG Rate;
  3774. } KS_AM_SimpleRateChange,*PKS_AM_SimpleRateChange;
  3775. typedef struct {
  3776. REFERENCE_TIME OutputZeroTime;
  3777. LONG Rate;
  3778. } KS_AM_ExactRateChange,*PKS_AM_ExactRateChange;
  3779. typedef LONG KS_AM_MaxFullDataRate;
  3780. typedef DWORD KS_AM_Step;
  3781. #define STATIC_KSCATEGORY_ENCODER \
  3782. 0x19689bf6,0xc384,0x48fd,0xad,0x51,0x90,0xe5,0x8c,0x79,0xf7,0xb
  3783. DEFINE_GUIDSTRUCT("19689BF6-C384-48fd-AD51-90E58C79F70B",KSCATEGORY_ENCODER);
  3784. #define KSCATEGORY_ENCODER DEFINE_GUIDNAMED(KSCATEGORY_ENCODER)
  3785. #define STATIC_KSCATEGORY_MULTIPLEXER \
  3786. 0x7a5de1d3,0x1a1,0x452c,0xb4,0x81,0x4f,0xa2,0xb9,0x62,0x71,0xe8
  3787. DEFINE_GUIDSTRUCT("7A5DE1D3-01A1-452c-B481-4FA2B96271E8",KSCATEGORY_MULTIPLEXER);
  3788. #define KSCATEGORY_MULTIPLEXER DEFINE_GUIDNAMED(KSCATEGORY_MULTIPLEXER)
  3789. #ifndef __ENCODER_API_GUIDS__
  3790. #define __ENCODER_API_GUIDS__
  3791. #define STATIC_ENCAPIPARAM_BITRATE \
  3792. 0x49cc4c43,0xca83,0x4ad4,0xa9,0xaf,0xf3,0x69,0x6a,0xf6,0x66,0xdf
  3793. DEFINE_GUIDSTRUCT("49CC4C43-CA83-4ad4-A9AF-F3696AF666DF",ENCAPIPARAM_BITRATE);
  3794. #define ENCAPIPARAM_BITRATE DEFINE_GUIDNAMED(ENCAPIPARAM_BITRATE)
  3795. #define STATIC_ENCAPIPARAM_PEAK_BITRATE \
  3796. 0x703f16a9,0x3d48,0x44a1,0xb0,0x77,0x1,0x8d,0xff,0x91,0x5d,0x19
  3797. DEFINE_GUIDSTRUCT("703F16A9-3D48-44a1-B077-018DFF915D19",ENCAPIPARAM_PEAK_BITRATE);
  3798. #define ENCAPIPARAM_PEAK_BITRATE DEFINE_GUIDNAMED(ENCAPIPARAM_PEAK_BITRATE)
  3799. #define STATIC_ENCAPIPARAM_BITRATE_MODE \
  3800. 0xee5fb25c,0xc713,0x40d1,0x9d,0x58,0xc0,0xd7,0x24,0x1e,0x25,0xf
  3801. DEFINE_GUIDSTRUCT("EE5FB25C-C713-40d1-9D58-C0D7241E250F",ENCAPIPARAM_BITRATE_MODE);
  3802. #define ENCAPIPARAM_BITRATE_MODE DEFINE_GUIDNAMED(ENCAPIPARAM_BITRATE_MODE)
  3803. #define STATIC_CODECAPI_CHANGELISTS \
  3804. 0x62b12acf,0xf6b0,0x47d9,0x94,0x56,0x96,0xf2,0x2c,0x4e,0x0b,0x9d
  3805. DEFINE_GUIDSTRUCT("62B12ACF-F6B0-47D9-9456-96F22C4E0B9D",CODECAPI_CHANGELISTS);
  3806. #define CODECAPI_CHANGELISTS DEFINE_GUIDNAMED(CODECAPI_CHANGELISTS)
  3807. #define STATIC_CODECAPI_VIDEO_ENCODER \
  3808. 0x7112e8e1,0x3d03,0x47ef,0x8e,0x60,0x03,0xf1,0xcf,0x53,0x73,0x01
  3809. DEFINE_GUIDSTRUCT("7112E8E1-3D03-47EF-8E60-03F1CF537301",CODECAPI_VIDEO_ENCODER);
  3810. #define CODECAPI_VIDEO_ENCODER DEFINE_GUIDNAMED(CODECAPI_VIDEO_ENCODER)
  3811. #define STATIC_CODECAPI_AUDIO_ENCODER \
  3812. 0xb9d19a3e,0xf897,0x429c,0xbc,0x46,0x81,0x38,0xb7,0x27,0x2b,0x2d
  3813. DEFINE_GUIDSTRUCT("B9D19A3E-F897-429C-BC46-8138B7272B2D",CODECAPI_AUDIO_ENCODER);
  3814. #define CODECAPI_AUDIO_ENCODER DEFINE_GUIDNAMED(CODECAPI_AUDIO_ENCODER)
  3815. #define STATIC_CODECAPI_SETALLDEFAULTS \
  3816. 0x6c5e6a7c,0xacf8,0x4f55,0xa9,0x99,0x1a,0x62,0x81,0x09,0x05,0x1b
  3817. DEFINE_GUIDSTRUCT("6C5E6A7C-ACF8-4F55-A999-1A628109051B",CODECAPI_SETALLDEFAULTS);
  3818. #define CODECAPI_SETALLDEFAULTS DEFINE_GUIDNAMED(CODECAPI_SETALLDEFAULTS)
  3819. #define STATIC_CODECAPI_ALLSETTINGS \
  3820. 0x6a577e92,0x83e1,0x4113,0xad,0xc2,0x4f,0xce,0xc3,0x2f,0x83,0xa1
  3821. DEFINE_GUIDSTRUCT("6A577E92-83E1-4113-ADC2-4FCEC32F83A1",CODECAPI_ALLSETTINGS);
  3822. #define CODECAPI_ALLSETTINGS DEFINE_GUIDNAMED(CODECAPI_ALLSETTINGS)
  3823. #define STATIC_CODECAPI_SUPPORTSEVENTS \
  3824. 0x0581af97,0x7693,0x4dbd,0x9d,0xca,0x3f,0x9e,0xbd,0x65,0x85,0xa1
  3825. DEFINE_GUIDSTRUCT("0581AF97-7693-4DBD-9DCA-3F9EBD6585A1",CODECAPI_SUPPORTSEVENTS);
  3826. #define CODECAPI_SUPPORTSEVENTS DEFINE_GUIDNAMED(CODECAPI_SUPPORTSEVENTS)
  3827. #define STATIC_CODECAPI_CURRENTCHANGELIST \
  3828. 0x1cb14e83,0x7d72,0x4657,0x83,0xfd,0x47,0xa2,0xc5,0xb9,0xd1,0x3d
  3829. DEFINE_GUIDSTRUCT("1CB14E83-7D72-4657-83FD-47A2C5B9D13D",CODECAPI_CURRENTCHANGELIST);
  3830. #define CODECAPI_CURRENTCHANGELIST DEFINE_GUIDNAMED(CODECAPI_CURRENTCHANGELIST)
  3831. #endif /* __ENCODER_API_GUIDS__ */
  3832. #ifndef __ENCODER_API_DEFINES__
  3833. #define __ENCODER_API_DEFINES__
  3834. typedef enum {
  3835. ConstantBitRate = 0,
  3836. VariableBitRateAverage,
  3837. VariableBitRatePeak
  3838. } VIDEOENCODER_BITRATE_MODE;
  3839. #endif /* __ENCODER_API_DEFINES__ */
  3840. #if (_WIN32_WINNT >= 0x0601)
  3841. typedef enum _TunerDecoderLockType {
  3842. Tuner_LockType_None = 0x00,
  3843. Tuner_LockType_Within_Scan_Sensing_Range = 0x01,
  3844. Tuner_LockType_Locked = 0x02
  3845. } TunerLockType;
  3846. #endif /*(_WIN32_WINNT >= 0x0601)*/
  3847. /* From devicetopology.h */
  3848. typedef enum __WIDL_devicetopology_generated_name_00000002 {
  3849. eConnTypeUnknown = 0,
  3850. eConnType3Point5mm = 1,
  3851. eConnTypeQuarter = 2,
  3852. eConnTypeAtapiInternal = 3,
  3853. eConnTypeRCA = 4,
  3854. eConnTypeOptical = 5,
  3855. eConnTypeOtherDigital = 6,
  3856. eConnTypeOtherAnalog = 7,
  3857. eConnTypeMultichannelAnalogDIN = 8,
  3858. eConnTypeXlrProfessional = 9,
  3859. eConnTypeRj11Modem = 10,
  3860. eConnTypeRJ11Modem = eConnTypeRj11Modem,
  3861. eConnTypeCombination = 11
  3862. } EPcxConnectionType;
  3863. typedef enum __WIDL_devicetopology_generated_name_00000003 {
  3864. eGeoLocRear = 1,
  3865. eGeoLocFront = 2,
  3866. eGeoLocLeft = 3,
  3867. eGeoLocRight = 4,
  3868. eGeoLocTop = 5,
  3869. eGeoLocBottom = 6,
  3870. eGeoLocRearPanel = 7,
  3871. eGeoLocRiser = 8,
  3872. eGeoLocInsideMobileLid = 9,
  3873. eGeoLocDrivebay = 10,
  3874. eGeoLocHDMI = 11,
  3875. eGeoLocOutsideMobileLid = 12,
  3876. eGeoLocATAPI = 13,
  3877. eGeoLocReserved5 = 14,
  3878. eGeoLocReserved6 = 15
  3879. } EPcxGeoLocation;
  3880. typedef enum __WIDL_devicetopology_generated_name_00000004 {
  3881. eGenLocPrimaryBox = 0,
  3882. eGenLocInternal = 1,
  3883. eGenLocSeparate = 2,
  3884. eGenLocOther = 3
  3885. } EPcxGenLocation;
  3886. typedef enum __WIDL_devicetopology_generated_name_00000005 {
  3887. ePortConnJack = 0,
  3888. ePortConnIntegratedDevice = 1,
  3889. ePortConnBothIntegratedAndJack = 2,
  3890. ePortConnUnknown = 3
  3891. } EPxcPortConnection;
  3892. typedef struct __WIDL_devicetopology_generated_name_00000006 {
  3893. DWORD ChannelMapping;
  3894. COLORREF Color;
  3895. EPcxConnectionType ConnectionType;
  3896. EPcxGeoLocation GeoLocation;
  3897. EPcxGenLocation GenLocation;
  3898. EPxcPortConnection PortConnection;
  3899. WINBOOL IsConnected;
  3900. } KSJACK_DESCRIPTION;
  3901. typedef KSJACK_DESCRIPTION *PKSJACK_DESCRIPTION;
  3902. typedef enum __WIDL_devicetopology_generated_name_00000007 {
  3903. KSJACK_SINK_CONNECTIONTYPE_HDMI = 0,
  3904. KSJACK_SINK_CONNECTIONTYPE_DISPLAYPORT = 1
  3905. } KSJACK_SINK_CONNECTIONTYPE;
  3906. typedef struct _tagKSJACK_SINK_INFORMATION {
  3907. KSJACK_SINK_CONNECTIONTYPE ConnType;
  3908. WORD ManufacturerId;
  3909. WORD ProductId;
  3910. WORD AudioLatency;
  3911. WINBOOL HDCPCapable;
  3912. WINBOOL AICapable;
  3913. UCHAR SinkDescriptionLength;
  3914. WCHAR SinkDescription[32];
  3915. LUID PortId;
  3916. } KSJACK_SINK_INFORMATION;
  3917. typedef struct _tagKSJACK_DESCRIPTION2 {
  3918. DWORD DeviceStateInfo;
  3919. DWORD JackCapabilities;
  3920. } KSJACK_DESCRIPTION2;
  3921. typedef struct _tagKSJACK_DESCRIPTION2 *PKSJACK_DESCRIPTION2;
  3922. #endif /* _KSMEDIA_ */