PVideoBridge.ipdl (1328B)
1 /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*- 2 * This Source Code Form is subject to the terms of the Mozilla Public 3 * License, v. 2.0. If a copy of the MPL was not distributed with this 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 5 6 include LayersSurfaces; 7 include LayersMessages; 8 include protocol PTexture; 9 10 include "mozilla/GfxMessageUtils.h"; 11 include "mozilla/layers/LayersMessageUtils.h"; 12 13 using mozilla::dom::ContentParentId from "mozilla/dom/ipc/IdType.h"; 14 using mozilla::layers::TextureFlags from "mozilla/layers/CompositorTypes.h"; 15 using mozilla::void_t from "mozilla/ipc/IPCCore.h"; 16 17 namespace mozilla { 18 namespace layers { 19 20 /** 21 * The PVideoBridge protocol is used to share textures from the video decoders 22 * to the compositor. 23 */ 24 [NeedsOtherPid, ParentProc=compositor, ChildProc=any] 25 sync protocol PVideoBridge 26 { 27 manages PTexture; 28 29 child: 30 async Ping() returns (void_t ok); 31 32 parent: 33 /** 34 * Since PVideoBridge creates textures on behalf of another process, we also 35 * supply ContentParentId of the owning content process. 36 */ 37 async PTexture(SurfaceDescriptor aSharedData, ReadLockDescriptor aReadLock, LayersBackend aBackend, 38 TextureFlags aTextureFlags, ContentParentId aContentId, uint64_t aSerial); 39 }; 40 41 } // namespace 42 } // namespace 43