blob: 4971c776c16d9fa6bbcc4cdd358abf3094ab4b9d [file] [log] [blame]
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module media.mojom;
import "media/mojo/mojom/media_types.mojom";
import "ui/gfx/geometry/mojom/geometry.mojom";
// PlaybackEventsRecorder allows to observe and record events occurring in the
// media pipeline. The interface is called by the renderer process (in
// blink::WebMediaPlayerImpl), while the implementation normally runs in the
// browser.
interface PlaybackEventsRecorder {
// Called when player has been started or resumed.
OnPlaying();
// Called when player has been paused.
OnPaused();
// Called when player position is being changed.
OnSeeking();
// Called when the player has reached the end of the current file.
OnEnded();
// Called when playback has failed due to the specified error.
OnError(PipelineStatus status);
// Called when playback has been suspended while buffering the media.
OnBuffering();
// Called after media buffering has completed. The player is in buffering
// state after the following events until this method is called:
// 1. Player initialized (i.e. after PlaybackEventsRecorder is created).
// 2. Seek operation, see OnSeeking().
// 3. Buffering started, see OnBuffering().
OnBufferingComplete();
// Called when video playback starts and every time video resolution changes.
OnNaturalSizeChanged(gfx.mojom.Size size);
// Called periodically (e.g. every second) while playback is active.
OnPipelineStatistics(PipelineStatistics stats);
};