/**
@mainpage TSDuck Programming Reference

TSDuck is a toolkit which manipulates MPEG Transport Streams (TS).
<br>

As a product, TSDuck provides many different command-line tools and plugins.
Internally, the architecture of TSDuck is made of a large shareable
library (@c tsduck.dll on Windows, @c libtsduck.so on Linux and BSD systems,
@c libtsduck.dylib on macOS).
Most of the valuable processing is performed by the various C++ classes
from the TSDuck library. All command-line tools and plugins are usually
small wrappers around this library.

The TSDuck library offers generic C++ classes for operating systems features
as well as specialized classes for MPEG/DVB transport streams. This library
can be used as a general-purpose C++ library for third-party applications,
outside the TSDuck tools and plugins.

For Java and Python applications, TSDuck proposes an API for some high-level
features, such as transport stream processing through a chain of plugins.

The diagram below illustrates the TSDuck software architecture.

@image html tsduck-soft-arch.png "TSDuck software architecture"

This set of documentation is the programming reference for the TSDuck library.

- <a href="classes.html">C++ classes in alphabetical order</a>
- <a href="modules.html">C++ classes by category</a>
- <a href="files.html">Header files</a>

Other reference documents:

- <a href="https://tsduck.io/download/docs/tsduck.html">TSDuck User's Guide</a>
  (<a href="https://tsduck.io/download/docs/tsduck.pdf">PDF</a>)
- <a href="https://tsduck.io/download/docs/tsduck-dev.html">TSDuck Developer's Guide</a>
  (<a href="https://tsduck.io/download/docs/tsduck-dev.pdf">PDF</a>)

*/
