public void Dispose()
        {
            Input?.Dispose();
            Decoder?.Dispose();
            Filter?.Dispose();

            FilterQueue?.Dispose();
            DecoderQueue?.Dispose();
        }
        public void Dispose()
        {
            Input.Dispose();
            DecoderPool.Dispose();
            FilterPool.Dispose();
            Filter2.Dispose();

            DecoderQueue.Dispose();
            FilterQueue.Dispose();
            Filter2Queue.Dispose();
        }
예제 #3
0
        public FilterToCode( ushort pid, Action<byte[]> callback )
            : base( pid )
        {
            // Remember
            m_FilterQueue = new FilterQueue( callback );

            // Create the MFC wrapper
            m_Class = new ClassHolder( TTBudget.LegacySize.CDVBTSFilter );

            // Construct C++ instance
            _Construct( m_Class.ClassPointer );

            // Attach destructor
            m_Class.Destructor = new ClassHolder.DestructHandler( _Destruct );

            // Overload virtual function
            m_Class[1] = new InternalDataArrivalHandler( OnDataArrival );
        }
예제 #4
0
        private async void Button_Click_1(object sender, RoutedEventArgs e)
        {
            this.inProgresProgressBar.Visibility = Visibility.Visible;
            this.statusTextBlock.Visibility      = Visibility.Visible;

            //ImageFilter filter = new SobelEdgeDetectFilter(SobelDirection.Horizontal, true);
            //Bitmap resultBitmap = await filter.Process(_bitmap);
            //processedImage.Source = BitmapToImageSource(resultBitmap);

            FilterQueue filterQueue = new FilterQueue(_bitmap);

            filterQueue.Push(new GrayscaleFilter());
            filterQueue.Push(new GaussianBlurFilter());
            filterQueue.Push(new SobelEdgeDetectFilter(SobelDirection.Horizontal, false));
            filterQueue.Push(new BinaryFilter(80, false));
            await filterQueue.ApplyEffects();

            processedImage.Source = BitmapToImageSource(filterQueue.Image);

            this.inProgresProgressBar.Visibility = Visibility.Collapsed;
            this.statusTextBlock.Visibility      = Visibility.Collapsed;
        }