Browse Source

Document bounded read continuation and retained source ownership after FIN

master
evgeny 6 days ago
parent
commit
ef0fc85eb9
  1. 6
      src/stream/stream.h
  2. 2
      src/stream/stream_media_buffer.h

6
src/stream/stream.h

@ -1,7 +1,7 @@
/* Стриминг CHAT-сервиса: локальные handles владеют общим экземпляром трансляции.
* Все API — uasync-поток. Последний reader close освобождает экземпляр; publisher close
* останавливает свою трансляцию и отсоединяет её readers. Отсоединённый handle всё равно закрывает вызывающий.
* DATA/GAP/END/CLOSED callback отложен, data/описание заимствованы до его возврата.
* Все API — uasync-поток. Последний reader close освобождает экземпляр; publisher close после FIN
* сохраняет кольцо для локальных readers, без FIN отсоединяет их. Отсоединённый handle также закрывает вызывающий.
* DATA/GAP/END/CLOSED/AVAILABLE callback отложен, data/описание заимствованы до его возврата.
* Close handles из callback допустим; остановка сервиса/группы и destroy ядра — вне callbacks.
* Источник и локальные подписки публикуются атомарно через опции собственного мембера. */
#ifndef STREAM_H

2
src/stream/stream_media_buffer.h

@ -48,7 +48,7 @@ void stream_media_cursor_reset(struct stream_media_cursor *cursor);
int stream_media_cursor_status(struct stream_media_cursor *cursor, struct stream_media_status *status);
/* position_us<0 — старт: прогреть аудио перед выбранным KEY. Затем отдавать только до position_us+lookahead_us.
* При GAP/EXPIRED cursor сбрасывают отдельно: это позволяет frontend сначала обработать разрыв.
* Бюджет одного вызова ограничен; WAIT при сборке длинного кадра допускает повтор сразу/по следующему событию. */
* Бюджет одного вызова ограничен; MORE требует отложенного продолжения, WAIT — новых данных/позиции. */
int stream_media_cursor_read(struct stream_media_cursor *cursor, int64_t position_us, int64_t video_ahead_us, int64_t audio_ahead_us,
struct stream_media_packet *packet);

Loading…
Cancel
Save