// Copyright 2017 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 and encoding. See comments of ArcVideoAccelerator for more info. module arc.mojom; [Extensible] enum VideoCodecProfile { // The values must match to the values in media::VideoCodecProfile. VIDEO_CODEC_PROFILE_UNKNOWN = -1, VIDEO_CODEC_PROFILE_MIN = VIDEO_CODEC_PROFILE_UNKNOWN, H264PROFILE_MIN = 0, // Including profile Constrained Baseline (CBP). H264PROFILE_BASELINE = H264PROFILE_MIN, H264PROFILE_MAIN = 1, H264PROFILE_EXTENDED = 2, H264PROFILE_HIGH = 3, H264PROFILE_HIGH10PROFILE = 4, H264PROFILE_HIGH422PROFILE = 5, H264PROFILE_HIGH444PREDICTIVEPROFILE = 6, H264PROFILE_SCALABLEBASELINE = 7, H264PROFILE_SCALABLEHIGH = 8, H264PROFILE_STEREOHIGH = 9, H264PROFILE_MULTIVIEWHIGH = 10, H264PROFILE_MAX = H264PROFILE_MULTIVIEWHIGH, VP8PROFILE_MIN = 11, VP8PROFILE_ANY = VP8PROFILE_MIN, VP8PROFILE_MAX = VP8PROFILE_ANY, VP9PROFILE_MIN = 12, VP9PROFILE_PROFILE0 = VP9PROFILE_MIN, VP9PROFILE_PROFILE1 = 13, VP9PROFILE_PROFILE2 = 14, VP9PROFILE_PROFILE3 = 15, VP9PROFILE_MAX = VP9PROFILE_PROFILE3, HEVCPROFILE_MIN = 16, HEVCPROFILE_MAIN = HEVCPROFILE_MIN, HEVCPROFILE_MAIN10 = 17, HEVCPROFILE_MAIN_STILL_PICTURE = 18, HEVCPROFILE_MAX = HEVCPROFILE_MAIN_STILL_PICTURE, DOLBYVISION_MIN = 19, DOLBYVISION_PROFILE0 = DOLBYVISION_MIN, DOLBYVISION_PROFILE4 = 20, DOLBYVISION_PROFILE5 = 21, DOLBYVISION_PROFILE7 = 22, DOLBYVISION_MAX = DOLBYVISION_PROFILE7, THEORAPROFILE_MIN = 23, THEORAPROFILE_ANY = THEORAPROFILE_MIN, THEORAPROFILE_MAX = THEORAPROFILE_ANY, AV1PROFILE_MIN = 24, AV1PROFILE_PROFILE_MAIN = AV1PROFILE_MIN, AV1PROFILE_PROFILE_HIGH = 25, AV1PROFILE_PROFILE_PRO = 26, AV1PROFILE_MAX = AV1PROFILE_PROFILE_PRO, VIDEO_CODEC_PROFILE_MAX = AV1PROFILE_PROFILE_PRO, }; [Extensible] enum HalPixelFormat { // The pixel formats defined in Android but are used here. They are defined // in "system/core/include/system/graphics.h" HAL_PIXEL_FORMAT_BGRA_8888 = 5, HAL_PIXEL_FORMAT_YCbCr_420_888 = 0x23, HAL_PIXEL_FORMAT_YV12 = 0x32315659, HAL_PIXEL_FORMAT_NV12 = 0x3231564e, }; // The offset and stride of a video frame plane. Both offset and stride must // be non negative. struct VideoFramePlane { int32 offset; int32 stride; }; // The graphics dimension. Both width and height should be non-negative. struct Size { int32 width; int32 height; };