1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
//! Catalog stream trait.
//!
//! [`Stream`] yields a sequence of [`Catalog<E>`](super::hang::Catalog) snapshots. Both the
//! raw [`Consumer`](super::Consumer) and the rendition-selecting
//! [`Select`](super::Select) wrapper implement it, so exporters can be written
//! against the trait and the caller picks the selection policy.
//!
//! The yielded catalog carries the application extension `E` (defaulting to
//! `()` for media-only catalogs) via the [`Ext`](Stream::Ext) associated type,
//! so an exporter that only touches `video`/`audio` works for any extension.
use Poll;
use Select;
use ;
/// A stream of catalog snapshots.
///
/// `poll_next` returns the next snapshot (a full catalog, not a delta), or
/// `None` once the underlying track has ended. Late snapshots supersede
/// earlier ones, so an implementation may drop intermediate snapshots.
///
/// Stream types are required to be `Send + 'static` so they can be moved
/// across threads and held inside exporters without per-call bounds.