Ejemplo n.º 1
0
        /// <summary>
        /// Creates an MediaObject from the effect DMO.
        /// </summary>
        /// <param name="inputFormat">The input format of the <see cref="MediaObject" /> to create.</param>
        /// <param name="outputFormat">The output format of the <see cref="MediaObject" /> to create.</param>
        /// <returns>
        /// The created <see cref="MediaObject" /> to use for processing audio data.
        /// </returns>
        protected override MediaObject CreateMediaObject(WaveFormat inputFormat, WaveFormat outputFormat)
        {
            _comObj = CreateComObject();
            var mediaObject = new MediaObject(Marshal.GetComInterfaceForObject(_comObj, typeof(IMediaObject)));

            _effect = mediaObject.QueryInterface <TDXEffect>();
            return(mediaObject);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Creates an MediaObject from the effect DMO.
        /// </summary>
        /// <param name="inputFormat">The input format of the <see cref="MediaObject" /> to create.</param>
        /// <param name="outputFormat">The output format of the <see cref="MediaObject" /> to create.</param>
        /// <returns>
        /// The created <see cref="MediaObject" /> to use for processing audio data.
        /// </returns>
        protected override MediaObject CreateMediaObject(WaveFormat inputFormat, WaveFormat outputFormat)
        {
            _comObj = CreateComObject();
            var ptr = Marshal.GetComInterfaceForObject(_comObj, typeof(IMediaObject));

            try
            {
                var mediaObject = new MediaObject(ptr);
                _effect = mediaObject.QueryInterface <TDXEffect>();
                return(mediaObject);
            }
            catch (Exception)
            {
                Marshal.Release(ptr);
                Marshal.ReleaseComObject(_comObj);
                throw;
            }
        }