64 lines
1.7 KiB
Text
64 lines
1.7 KiB
Text
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
include "mozilla/dom/MediaIPCUtils.h";
|
|
|
|
include protocol PRemoteDecoderManager;
|
|
|
|
using mozilla::AudioInfo from "MediaInfo.h";
|
|
using mozilla::VideoInfo from "MediaInfo.h";
|
|
using mozilla::MediaResult from "MediaResult.h";
|
|
using mozilla::TrackInfo::TrackType from "MediaInfo.h";
|
|
using mozilla::MFMediaEngineError from "MFMediaEngineUtils.h";
|
|
using mozilla::MFMediaEngineEvent from "MFMediaEngineUtils.h";
|
|
|
|
namespace mozilla {
|
|
|
|
struct MediaEngineInfoIPDL
|
|
{
|
|
MediaInfoIPDL mediaInfo;
|
|
bool preload;
|
|
bool encryptedCustomIdent;
|
|
};
|
|
|
|
struct MediaInfoIPDL
|
|
{
|
|
AudioInfo? audioInfo;
|
|
VideoInfo? videoInfo;
|
|
};
|
|
|
|
struct StatisticData
|
|
{
|
|
uint64_t renderedFrames;
|
|
uint64_t droppedFrames;
|
|
};
|
|
|
|
[ManualDealloc]
|
|
async protocol PMFMediaEngine
|
|
{
|
|
manager PRemoteDecoderManager;
|
|
parent:
|
|
// Return 0 if media engine can't be created.
|
|
async InitMediaEngine(MediaEngineInfoIPDL info) returns (uint64_t id);
|
|
async Play();
|
|
async Pause();
|
|
async Seek(double targetTimeInSecond);
|
|
async SetCDMProxyId(uint64_t type);
|
|
async SetVolume(double volume);
|
|
async SetPlaybackRate(double playbackRate);
|
|
async SetLooping(bool looping);
|
|
async NotifyEndOfStream(TrackType type);
|
|
async Shutdown();
|
|
async __delete__();
|
|
|
|
child:
|
|
async NotifyEvent(MFMediaEngineEvent event);
|
|
async NotifyError(MediaResult error);
|
|
async UpdateCurrentTime(double currentTimeInSecond);
|
|
async RequestSample(TrackType type, bool isEnough);
|
|
async UpdateStatisticData(StatisticData data);
|
|
async NotifyResizing(uint32_t width, uint32_t height);
|
|
};
|
|
|
|
} // namespace mozilla
|