mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-24 14:26:09 +03:00
108 lines
2.5 KiB
Plaintext
108 lines
2.5 KiB
Plaintext
// Copyright 2016 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.
|
|
|
|
// This file defined the mojo interface between Android and Chromium for video
|
|
// decoding. See comments of VideoDecodeAccelerator for more info.
|
|
|
|
module arc.mojom;
|
|
|
|
import "video_common.mojom";
|
|
|
|
[Extensible]
|
|
enum HalPixelFormatExtension {
|
|
HAL_PIXEL_FORMAT_YCbCr_420_888 = 0x23,
|
|
HAL_PIXEL_FORMAT_H264 = 0x34363248,
|
|
HAL_PIXEL_FORMAT_VP8 = 0x00385056,
|
|
};
|
|
|
|
enum PortType {
|
|
PORT_INPUT = 0,
|
|
PORT_OUTPUT = 1,
|
|
};
|
|
|
|
struct BufferMetadata {
|
|
int64 timestamp; // in microseconds
|
|
uint32 bytes_used;
|
|
};
|
|
|
|
struct VideoFormat {
|
|
uint32 pixel_format;
|
|
uint32 buffer_size;
|
|
|
|
// minimal number of buffers required to process the video.
|
|
uint32 min_num_buffers;
|
|
uint32 coded_width;
|
|
uint32 coded_height;
|
|
uint32 crop_left;
|
|
uint32 crop_width;
|
|
uint32 crop_top;
|
|
uint32 crop_height;
|
|
};
|
|
|
|
// Next MinVersion: 2
|
|
struct VideoDecodeAcceleratorConfig {
|
|
// Deprecated. This config struct is used for decoder only.
|
|
enum DeviceTypeDeprecated {
|
|
DEVICE_ENCODER = 0,
|
|
DEVICE_DECODER = 1,
|
|
};
|
|
|
|
// Deprecated. Only decoder will be supported.
|
|
DeviceTypeDeprecated device_type_deprecated;
|
|
uint32 num_input_buffers;
|
|
uint32 input_pixel_format;
|
|
[MinVersion=1] bool secure_mode;
|
|
};
|
|
|
|
// Next MinVersion: 5
|
|
// Deprecated method IDs: 2, 7
|
|
// Next method ID: 11
|
|
interface VideoDecodeAccelerator {
|
|
enum Result {
|
|
SUCCESS = 0,
|
|
ILLEGAL_STATE = 1,
|
|
INVALID_ARGUMENT = 2,
|
|
UNREADABLE_INPUT = 3,
|
|
PLATFORM_FAILURE = 4,
|
|
INSUFFICIENT_RESOURCES = 5,
|
|
};
|
|
|
|
[MinVersion=2]
|
|
Initialize@8(VideoDecodeAcceleratorConfig config,
|
|
VideoDecodeClient client) => (Result result);
|
|
|
|
[MinVersion=4]
|
|
AllocateProtectedBuffer@10(PortType port, uint32 index, handle handle_fd,
|
|
uint64 size) => (bool result);
|
|
|
|
BindSharedMemory@1(PortType port, uint32 index, handle ashmem_fd,
|
|
uint32 offset, uint32 length);
|
|
|
|
[MinVersion=3]
|
|
BindDmabuf@9(PortType port, uint32 index, handle dmabuf_fd,
|
|
array<VideoFramePlane> planes);
|
|
|
|
UseBuffer@3(PortType port, uint32 index, BufferMetadata metadata);
|
|
|
|
SetNumberOfOutputBuffers@4(uint32 number);
|
|
|
|
Reset@5();
|
|
|
|
Flush@6();
|
|
};
|
|
|
|
// Deprecated method IDs: 0
|
|
// Next method ID: 6
|
|
interface VideoDecodeClient {
|
|
OnError@1(VideoDecodeAccelerator.Result error);
|
|
|
|
OnBufferDone@2(PortType port, uint32 index, BufferMetadata metadata);
|
|
|
|
OnResetDone@3();
|
|
|
|
OnOutputFormatChanged@4(VideoFormat format);
|
|
|
|
OnFlushDone@5();
|
|
};
|