2014-05-17 20:05:46 -07:00
|
|
|
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
|
|
/* 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 protocol PGMP;
|
|
|
|
include GMPTypes;
|
|
|
|
|
|
|
|
using GMPVideoCodec from "gmp-video-codec.h";
|
2014-07-10 20:35:56 -07:00
|
|
|
using GMPVideoFrameType from "gmp-video-frame-encoded.h";
|
2014-07-23 14:35:01 -07:00
|
|
|
using GMPErr from "gmp-errors.h";
|
2014-05-17 20:05:46 -07:00
|
|
|
|
|
|
|
include "GMPMessageUtils.h";
|
|
|
|
|
|
|
|
namespace mozilla {
|
|
|
|
namespace gmp {
|
|
|
|
|
2014-07-01 19:26:35 -07:00
|
|
|
intr protocol PGMPVideoEncoder
|
2014-05-17 20:05:46 -07:00
|
|
|
{
|
|
|
|
manager PGMP;
|
|
|
|
child:
|
2014-07-01 19:26:35 -07:00
|
|
|
async InitEncode(GMPVideoCodec aCodecSettings,
|
2014-07-10 20:35:56 -07:00
|
|
|
uint8_t[] aCodecSpecific,
|
2014-07-01 19:26:35 -07:00
|
|
|
int32_t aNumberOfCores,
|
|
|
|
uint32_t aMaxPayloadSize);
|
|
|
|
async Encode(GMPVideoi420FrameData aInputFrame,
|
2014-07-10 20:36:21 -07:00
|
|
|
uint8_t[] aCodecSpecificInfo,
|
2014-07-10 20:35:56 -07:00
|
|
|
GMPVideoFrameType[] aFrameTypes);
|
2014-07-01 19:26:35 -07:00
|
|
|
async SetChannelParameters(uint32_t aPacketLoss, uint32_t aRTT);
|
|
|
|
async SetRates(uint32_t aNewBitRate, uint32_t aFrameRate);
|
|
|
|
async SetPeriodicKeyFrames(bool aEnable);
|
|
|
|
async EncodingComplete();
|
|
|
|
async ChildShmemForPool(Shmem aEncodedBuffer);
|
2014-05-17 20:05:46 -07:00
|
|
|
|
|
|
|
parent:
|
2014-07-01 19:26:35 -07:00
|
|
|
async __delete__();
|
|
|
|
async Encoded(GMPVideoEncodedFrameData aEncodedFrame,
|
2014-07-10 20:36:21 -07:00
|
|
|
uint8_t[] aCodecSpecificInfo);
|
2014-07-23 14:35:01 -07:00
|
|
|
async Error(GMPErr aErr);
|
2014-07-01 19:26:35 -07:00
|
|
|
async ParentShmemForPool(Shmem aFrameBuffer);
|
|
|
|
// MUST be intr - if sync and we create a new Shmem, when the returned
|
|
|
|
// Shmem is received in the Child it will fail to Deserialize
|
|
|
|
intr NeedShmem(uint32_t aEncodedBufferSize) returns (Shmem aMem);
|
2014-05-17 20:05:46 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace gmp
|
|
|
|
} // namespace mozilla
|