seek
Moves the demuxer cursor without flushing decoders or clearing caller-owned queues. The caller must discard the old packet/frame generation and flush every decoder itself.
A backward seek on an indexless container may otherwise land arbitrarily early, so notEarlierThan can bound that search. The caller still verifies the first decoded timestamp, because some containers may land after the target.
Parameters
target on the content-relative timeline
optional lower bound for a backward seek
Moves the demuxer cursor without flushing decoders or clearing caller-owned queues. The caller must discard the old packet/frame generation and flush every decoder itself.
A backward seek on an indexless container may otherwise land arbitrarily early, so notEarlierThan can bound that search. The caller still verifies the first decoded timestamp, because some containers may land after the target.
Parameters
target on the content-relative timeline
optional lower bound for a backward seek
Moves the read cursor.
This moves the cursor and nothing else. It does not flush the decoders and it does not clear anything the caller has queued, because only the caller knows which generation those belong to. Flushing here would let a packet read before the seek reach a decoder that was just reset.
The window matters. SeekDirection.Backward with an unbounded lower limit lets libavformat land arbitrarily early on a container without an index, and MPEG-TS resolves a seek by searching byte positions, so it can also land after the target. Passing notEarlierThan bounds the first case; the caller detects the second from the first decoded frame and retries.
Parameters
where to seek to, on the content-relative timeline the rest of the API uses.
a lower bound on where the seek may land. Null means no bound.
Moves the demuxer cursor without flushing decoders or clearing caller-owned queues. The caller must discard the old packet/frame generation and flush every decoder itself.
A backward seek on an indexless container may otherwise land arbitrarily early, so notEarlierThan can bound that search. The caller still verifies the first decoded timestamp, because some containers may land after the target.
Parameters
target on the content-relative timeline
optional lower bound for a backward seek
Moves the demuxer cursor without flushing decoders or clearing caller-owned queues. The caller must discard the old packet/frame generation and flush every decoder itself.
A backward seek on an indexless container may otherwise land arbitrarily early, so notEarlierThan can bound that search. The caller still verifies the first decoded timestamp, because some containers may land after the target.
Parameters
target on the content-relative timeline
optional lower bound for a backward seek