# Capture Vision SDK Overview: Modules and Main APIs

This page provides an overview of the various modules and highlights the most essential APIs that form Dynamsoft Capture Vision, the backbone of Dynamsoft Barcode Reader SDKs.

## API Overview

### Capture Vision Router

The Dynamsoft Capture Vision Router class is the cornerstone of the Dynamsoft Capture Vision (DCV) architecture. It focuses on coordinating batch image processing and provides APIs for setting up image sources and result receivers, configuring workflows with parameters, and controlling processes. Dynamsoft Capture Vision helps connect the functional products of Dynamsoft under the same umbrella - allowing for easier integration and interchangeable APIs to control them all.

You can find the CaptureVisionRouter API [here](https://www.dynamsoft.com/capture-vision/docs/mobile/programming/flutter/api-reference/capture-vision-router/capture-vision-router.md).

This guide focuses on the Barcode Reader functional product. To learn how to use the foundational Capture Vision API to set up and run the Barcode Reader, please refer to the [User Guide (Foundational Edition)](https://www.dynamsoft.com/barcode-reader/docs/mobile/programming/flutter/foundational-user-guide.md).

### Image Source

[`CameraEnhancer`](https://www.dynamsoft.com/camera-enhancer/docs/mobile/programming/flutter/api-reference/primary-api/camera-enhancer.md) is a class that not only implements the video frame obtaining APIs but also enables you to improve the video quality by adjusting the camera settings.

### Captured Result Receiver

To receive the results of video streaming barcode decoding, you need to implement the [`CapturedResultReceiver`](https://www.dynamsoft.com/capture-vision/docs/mobile/programming/flutter/api-reference/capture-vision-router/captured-result-receiver.md) with the callback method [`onDecodedBarcodesReceived`](https://www.dynamsoft.com/capture-vision/docs/mobile/programming/flutter/api-reference/capture-vision-router/captured-result-receiver.md#ondecodedbarcodesreceived). The result you received in the callback method is a [`DecodedBarcodesResult`](https://www.dynamsoft.com/barcode-reader/docs/mobile/programming/flutter/api-reference/barcode-reader/decoded-barcodes-result.md) object, which contains all the decoded barcodes from the processed video frame.

- [`onDecodedBarcodesReceived`](https://www.dynamsoft.com/capture-vision/docs/mobile/programming/flutter/api-reference/capture-vision-router/captured-result-receiver.md#ondecodedbarcodesreceived): The callback method for you to receive the barcode decoding results with a [`DecodedBarcodesResult`](https://www.dynamsoft.com/barcode-reader/docs/mobile/programming/flutter/api-reference/barcode-reader/decoded-barcodes-result.md) object.
- [`DecodedBarcodesResult`](https://www.dynamsoft.com/barcode-reader/docs/mobile/programming/flutter/api-reference/barcode-reader/decoded-barcodes-result.md): An object that contains all the [`BarcodeResultItem`](https://www.dynamsoft.com/barcode-reader/docs/mobile/programming/flutter/api-reference/barcode-reader/barcode-result-item.md) obtained from a video frame.
- [`BarcodeResultItem`](https://www.dynamsoft.com/barcode-reader/docs/mobile/programming/flutter/api-reference/barcode-reader/barcode-result-item.md): The basic item that represents a single barcode with the decoded text and other information.

### Camera View

[`CameraView`](https://www.dynamsoft.com/camera-enhancer/docs/mobile/programming/flutter/api-reference/camera-view.md) is a view class that is designed for visualizing real-time video streaming and the barcode decoding result. If the [`CameraEnhancer`](https://www.dynamsoft.com/camera-enhancer/docs/mobile/programming/flutter/api-reference/camera-enhancer.md) is set as the input of your CVR, the decoded barcodes will be highlighted automatically on the [`CameraView`](https://www.dynamsoft.com/camera-enhancer/docs/mobile/programming/flutter/api-reference/camera-view.md).
