Skip to main content

## Module mpv_player

Source
Expand description

`MediaPlayer` over libmpv.

The point of difference from `MpvBackend` is `MpvPlayer::open`: the start position is applied at load time, via mpv’s own `start` option, instead of being seeked to afterwards. `loadfile` is asynchronous, so a seek issued after it targets a player that has nothing loaded, fails, and — under the old contract — was discarded. That is DR-241, and it is why resume and transcoded skip both played from zero.

A seek arriving during `Phase::Opening` is held and applied when the file loads, so no caller has to know where that window begins or ends.

TRACES: UR-081, UR-040, UR-005 | DR-244

## Structs§

MpvPlayer
Shared 🔒
  State the event thread writes and the caller reads.

## Enums§

Output
  How the engine should talk to the machine.