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(); }
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 ); }
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; }