Validate short media batches with an embedded source signature

This commit is contained in:
evgeny committed 2026-10-13 20:14:06 +02:00
1 parent e96b813fcb
commit 98d1e40bf3
3 files changed
+6 -5

No files matched your search

+1 -1
View File
@@ -1,5 +1,5 @@
/* Строковые опции подписанного блока мембера, без отдельного протокола объявлений.
* stream_source = epoch(16 hex):n:r:RS-size; отсутствие/пустое значение — не публикует.
* stream_source = epoch(16 hex):n:r:max-RS-size; отсутствие/пустое значение — не публикует.
* stream_subscriptions = source(16 hex):epoch(16 hex)[:r],...; :r — только помощь, без локального зрителя.
* Указанная в stream_source собственная трансляция также должна быть в subscriptions.
* load проверяет подпись профиля и принадлежность ключа источника, BGP-доступность — отдельно.
+2 -2
View File
@@ -1,4 +1,4 @@
/* Источник непрозрачных байтов: одна подписанная FEC-пачка за ограниченный write,
/* Источник непрозрачных байтов: одна подпись внутри FEC-пачки за ограниченный write,
* неполная пачка сбрасывается таймером 100 мс, все блоки сначала сохраняются в кольце.
* Один uasync-поток; источник сам владеет encoder/кольцом/таймером. NCD здесь ещё нет.
* ready вызывается после помещения всей пачки и может читать кольцо; write/finish/destroy
@@ -27,7 +27,7 @@ struct stream_buffer *stream_source_buffer(struct stream_source *source);
* accepted получает принятую часть даже при ошибке; нулевой write допустим и не создаёт пустую пачку.
* Ошибка публикации/таймера делает источник failed; его уничтожают, не повторяют принятую часть как новую трансляцию. */
int stream_source_write(struct stream_source *source, const uint8_t *data, size_t length, size_t *accepted);
/* Один непустой блок = одна немедленно опубликованная FEC-пачка, length <= input_capacity.
/* Один непустой блок = одна немедленная FEC-пачка с минимальным размером частей, length <= input_capacity.
* Режим выбирается первой непустой записью; побайтовый и блочный режимы не смешиваются. */
int stream_source_write_block(struct stream_source *source, const uint8_t *data, size_t length);
/* Сбросить остаток и остановить приём; повторный finish допустим, кольцо доступно до destroy. */