1.             Описание технической архитектуры программного модуля «Передача видеопотока по протоколу RTSP»


Настоящий документ представляет собой описание внутренней архитектуры программного модуля «Передача видеопотока по протоколу RTSP» и содержит основополагающие сведения о структуре, компонентах и взаимодействии элементов системы.


2.             Структура


Система построена по монолитной архитектуре без возможности разделения на какие-либо независимые составные части. Зависимости от каких-либо сторонних библиотек и компонентов отсутствуют.

3.             Компоненты


Программный модуль состоит из следующих компонентов:
–         TCP-сервер: выполняет открытие и прослушивание порта, прием входящих подключений по протоколу TCP. На каждое установленное соединение создает отдельный сокет.
–         Сокет: отвечает за прием и передачу данных в рамках отдельно взятого TCP соединения, отслеживание состояния соединения (активно/разорвано), позволяет принудительно закрывать соединение.
–         RTSP парсер: выполняет анализ поступающих через сокет запросов согласно протоколу RTSP, генерирует на основании них события для управляющей программы и осуществляет коммутацию входных данных (сжатых кадров) от управляющей программы на сокеты, а также, структурирование этих данных согласно требованиям протокола RTSP.
–         Очередь задач: реализует возможность параллельной обработки запросов и подготовки данных, отправляемых клиентам, в отдельных потоках с целью достижения максимальной эффективности использования имеющихся аппаратных ресурсов.
–         База данных: не используется. Библиотека не хранит никакой информации в постоянной памяти.

4.             Взаимодействие


Инициализация, задание параметров работы и подача входных данных осуществляется посредством вызова интерфейсных функций управляющей программой. Обратная связь со стороны библиотеки (информирование о событиях) осуществляется посредством вызова callback функций, указатели на которые заранее передаются библиотеке управляющей программой.

5.             Технологии


В работе программного модуля используются следующие технологии:
–         C++11,
–         CMake,
–         TCP/IP,
–         RTSP.

6.             Паттерны


В работе программного модуля используются следующие паттерны:
–         Singleton,
–         Adapter,
–         Facade,
–         Command,
–         RAII.
Made on
Tilda