static private void DoRegister(Type t) { // Tell what media types you are able to support. This allows // the smart connect capability of DS to avoid loading your DMO // if it can't handle the stream type. // Note that you don't have to register any (but I recommend // you do). Also, you don't have to provide a subtype (use // Guid.Empty). You can negotiate this at run time in // InternalCheckInputType. DMOPartialMediatype [] pIn = new DMOPartialMediatype[1]; pIn[0] = new DMOPartialMediatype(); pIn[0].type = MediaType.Audio; pIn[0].subtype = MediaSubType.PCM; DMOPartialMediatype [] pOut = new DMOPartialMediatype[1]; pOut[0] = new DMOPartialMediatype(); pOut[0].type = MediaType.Audio; pOut[0].subtype = MediaSubType.PCM; int hr = DMOUtils.DMORegister( DMOName, typeof(DmoSplit).GUID, DMOCat, DMORegisterFlags.None, pIn.Length, pIn, pOut.Length, pOut ); }
private void TestRegister() { int hr; IEnumDMO idmo; Guid g = Guid.NewGuid(); Guid g2 = Guid.NewGuid(); Debug.WriteLine(g); Debug.WriteLine(g2); DMOPartialMediatype [] pIn = new DMOPartialMediatype[2]; pIn[0] = new DMOPartialMediatype(); pIn[0].type = g2; pIn[0].subtype = MediaSubType.RGB24; pIn[1] = new DMOPartialMediatype(); pIn[1].type = g2; pIn[1].subtype = MediaSubType.RGB32; DMOPartialMediatype [] pOut = new DMOPartialMediatype[2]; pOut[0] = new DMOPartialMediatype(); pOut[0].type = g2; pOut[0].subtype = MediaSubType.RGB24; pOut[1] = new DMOPartialMediatype(); pOut[1].type = g2; pOut[1].subtype = MediaSubType.RGB32; hr = DMOUtils.DMORegister("asdffdsa", g, DMOCategory.VideoEffect, DMORegisterFlags.None, pIn.Length, pIn, pOut.Length, pOut ); Debug.Assert(hr == 0, "DMORegister"); DMOPartialMediatype [] tIn = new DMOPartialMediatype[1]; tIn[0].type = g2; tIn[0].subtype = MediaSubType.RGB32; hr = DMOUtils.DMOEnum(Guid.Empty, DMOEnumerator.IncludeKeyed, tIn.Length, tIn, 0, null, out idmo); DMOError.ThrowExceptionForHR(hr); int iCnt1 = CountEm(idmo); Debug.Assert(iCnt1 == 1, "DMORegister"); hr = DMOUtils.DMOUnregister(g, DMOCategory.VideoEffect); DMOError.ThrowExceptionForHR(hr); int iCnt2 = CountEm(idmo); Debug.Assert(iCnt2 == 0, "DMOUnregister"); }
private static void DoRegister(Type t) { // Tell what media types you are able to support. This allows // the smart connect capability of DS to avoid loading your DMO // if it can't handle the stream type. // Note that you don't have to register any (but I recommend // you do). Also, you don't have to provide a subtype (use // Guid.Empty). You can negotiate this at run time in // InternalCheckInputType. DMOPartialMediatype[] inPin = new DMOPartialMediatype[2]; inPin[0] = new DMOPartialMediatype(); inPin[0].type = MediaType.Video; inPin[0].subtype = MediaSubType.RGB24; inPin[1] = new DMOPartialMediatype(); inPin[1].type = MediaType.Video; inPin[1].subtype = MediaSubType.RGB32; DMOPartialMediatype[] outPin = new DMOPartialMediatype[2]; outPin[0] = new DMOPartialMediatype(); outPin[0].type = MediaType.Video; outPin[0].subtype = MediaSubType.RGB24; outPin[1] = new DMOPartialMediatype(); outPin[1].type = MediaType.Video; outPin[1].subtype = MediaSubType.RGB32; int hr = DMOUtils.DMORegister( DMOName, typeof(DmoOverlay).GUID, DMOCat, DMORegisterFlags.None, inPin.Length, inPin, outPin.Length, outPin); }