/// <summary> /// Creates a new Resampler based on the DMO Resampler /// </summary> public DmoResampler() { mediaComObject = new ResamplerMediaComObject(); mediaObject = new MediaObject((IMediaObject)mediaComObject); propertyStoreInterface = (IPropertyStore)mediaComObject; resamplerPropsInterface = (IWMResamplerProps)mediaComObject; }
public DmoResampler() { this.mediaComObject = new ResamplerMediaComObject(); this.mediaObject = new MediaObject((IMediaObject)this.mediaComObject); this.propertyStoreInterface = (IPropertyStore)this.mediaComObject; this.resamplerPropsInterface = (IWMResamplerProps)this.mediaComObject; }
/// <summary> /// Creates and configures the actual Resampler transform /// </summary> /// <returns>A newly created and configured resampler MFT</returns> // Token: 0x06000A62 RID: 2658 RVA: 0x0001E444 File Offset: 0x0001C644 protected override IMFTransform CreateTransform() { object obj = this.CreateResamplerComObject(); IMFTransform imftransform = (IMFTransform)obj; IMFMediaType imfmediaType = MediaFoundationApi.CreateMediaTypeFromWaveFormat(this.sourceProvider.WaveFormat); imftransform.SetInputType(0, imfmediaType, _MFT_SET_TYPE_FLAGS.None); Marshal.ReleaseComObject(imfmediaType); IMFMediaType imfmediaType2 = MediaFoundationApi.CreateMediaTypeFromWaveFormat(this.outputWaveFormat); imftransform.SetOutputType(0, imfmediaType2, _MFT_SET_TYPE_FLAGS.None); Marshal.ReleaseComObject(imfmediaType2); IWMResamplerProps iwmresamplerProps = (IWMResamplerProps)obj; iwmresamplerProps.SetHalfFilterLength(this.ResamplerQuality); return(imftransform); }
/// <summary> /// Dispose code - experimental at the moment /// Was added trying to track down why Resampler crashes NUnit /// This code not currently being called by ResamplerDmoStream /// </summary> public void Dispose() { if(propertyStoreInterface != null) { Marshal.ReleaseComObject(propertyStoreInterface); propertyStoreInterface = null; } if(resamplerPropsInterface != null) { Marshal.ReleaseComObject(resamplerPropsInterface); resamplerPropsInterface = null; } if (mediaObject != null) { mediaObject.Dispose(); mediaObject = null; } if (mediaComObject != null) { Marshal.ReleaseComObject(mediaComObject); mediaComObject = null; } }
public void Dispose() { if (this.propertyStoreInterface != null) { Marshal.ReleaseComObject(this.propertyStoreInterface); this.propertyStoreInterface = null; } if (this.resamplerPropsInterface != null) { Marshal.ReleaseComObject(this.resamplerPropsInterface); this.resamplerPropsInterface = null; } if (this.mediaObject != null) { this.mediaObject.Dispose(); this.mediaObject = null; } if (this.mediaComObject != null) { Marshal.ReleaseComObject(this.mediaComObject); this.mediaComObject = null; } }