| // 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; |
| }; |