Функции VideoPint: учебная модель сцен и подписей
Известные имена VideoPint и учебная модель сцен с субтитрами: абсолютная ось времени, полуоткрытые интервалы, проверка вложенности и раздельные решения по кодировке текста и параметрам вывода.

Известные имена
В сохранённом описании функции VideoPint встречается CreateVideo, названная как создание видеофайла из сцен. Рядом упоминаются ярлыки VideoTimer и SubTitr, но ни список аргументов, ни порядок вызовов, ни поведение при ошибке для них не подтверждены. Поэтому дальше рассматривается учебная модель записи сцен и подписей, а не реальный контракт библиотеки.
Учебная запись сцен и подписей
Представим собственную структуру, в которой сцена содержит идентификатор, начало, конец и ссылку на содержимое, а подпись содержит текст, начало и конец. Все времена берутся в секундах на одной абсолютной оси, а интервалы объявляются полуоткрытыми: начало включено, конец нет. Такая запись удобна для проверки пересечений и вложенности, но она не описывает память или синтаксис VideoPint.
Пример таймлайна сцен
Пусть первая сцена занимает интервал [0,4), а вторая [4,10). Длительности равны 4 и 6 секундам, общий хронометраж 10 секунд. Полуоткрытые границы снимают вопрос о принадлежности момента 4: он входит во вторую сцену, а не в первую. Если бы границы были закрытыми с обеих сторон, момент 4 принадлежал бы обеим сценам одновременно, и проверка наложения требовала бы отдельного правила.
Вложенность подписей и граничный случай
Подписи [1,3) и [5,8) целиком лежат внутри первой и второй сцен соответственно: начало и конец каждой подписи находятся в пределах одной сцены. Подпись [3,5) пересекает границу сцен: её начало относится к первой сцене, конец ко второй. Здесь приложение само выбирает политику. Правило «подпись только внутри одной сцены» отклонит [3,5), а более гибкое правило разрешит пересечение, если текст действительно должен сопровождать переход. Обязательным остаётся только условие start < end для каждого интервала.
Кодировка текста отдельно от времени
Текст подписи хранится как последовательность байтов в выбранной кодировке. UTF-32 занимает 4 байта на каждый скаляр Unicode, но один видимый символ на экране, например эмодзи или лигатура, может состоять из нескольких скаляров. Поэтому количество байтов, количество скаляров и количество воспринимаемых знаков — три разные величины. Ни одно из этих чисел не определяет длительность показа подписи, и название функции не позволяет угадать кодировку входного текста.
Параметры вывода и проверка
Контейнер, кодек, размер кадра, временная база и частота кадров — самостоятельные решения, каждое из которых влияет на результат иначе. Временная база задаёт единицу, в которой хранятся таймкоды внутри файла; частота кадров определяет, сколько изображений приходится на секунду. Учебный пример с секундами не гарантирует, что реальный вызов примет именно секунды. Единственный полезный шаг перед генерацией — сверить объявленные интервалы сцен, подписей и параметры вывода с документированным контрактом конкретной версии функции.