예제 #1
0
        /// <summary>
        /// Gibt alle internen Strukturen frei.
        /// </summary>
        private void DestroyGraph()
        {
            // Get rid of clock
            DisposeClock();

            // Try stop and delete all filters
            if (null != m_Graph)
            {
                try
                {
                    // Stop self
                    GraphAsFilter.Stop();
                }
                catch
                {
                }
            }

            // Filters first
            foreach (var filter in m_Filters.Values)
            {
                filter.Dispose();
            }

            // Clear list
            m_Filters.Clear();

            // Forward
            using (m_Register)
                m_Register = null;

            // Must cleanup COM references
            BDAEnvironment.Release(ref m_Graph);

            // Must cleanup file
            using (m_LogFile)
                m_LogFile = null;

            // Clear helpers and reset flags
            m_VideoWindowCreated = false;
            m_VideoPID           = 0;
            m_AudioPID           = 0;

            // TS Filter
            using (InjectorFilter)
                InjectorFilter = null;
        }
예제 #2
0
 /// <summary>
 /// Hält den Graphen an - Fehler werden dabei ignoriert.
 /// </summary>
 public virtual void Stop()
 {
     // Forward - no error detectable
     GraphAsFilter.Stop();
 }