blob: dbb9eda3ef3770f7ba470e3ea034d8834969106f [file] [log] [blame]
// Copyright 2018 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.
// Next MinVersion: 1
module arc.mojom;
import "components/arc/mojom/video_common.mojom";
// Next method ID: 3
interface VideoProtectedBufferAllocator {
// Allocates protected shared memory associated with |handle_fd|.
// |size| is the size of allocated protected shared memory.
// Returns true on success, false on allocation failure or if |handle_fd| is
// already associated with an existing protected buffer.
AllocateProtectedSharedMemory@0(handle handle_fd,
uint64 size) => (bool result);
// Allocates protected native pixmap associated with |handle_fd|.
// |pixel_format| and |picture_size| are parameters to allocate native pixmap.
// Returns true on success, false on allocation failure or if |handle_fd| is
// already associated with an existing protected buffer.
AllocateProtectedNativePixmap@1(handle handle_fd, HalPixelFormat pixel_format,
Size picture_size) => (bool result);
// Releases protected buffer associated with |handle_fd|, regardless of
// the type of protected memory.
// If the buffer is not used any more, ReleaseProtectedBuffer with
// the corresponding file descriptor should be called.
// |handle_fd| remains valid, but its association with protected buffer is
// removed and the reference to it is released.
// Protected buffers allocated using this interface for given instance will
// not be released until this method is called. Closing Mojo IPC message pipe
// to this instance will automatically release all buffers allocated for this
// instance.
ReleaseProtectedBuffer@2(handle handle_fd);
};