| /* Copyright (c) 2014 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. | |
| */ | |
| /** | |
| * Video profiles. | |
| */ | |
| enum PP_VideoProfile { | |
| PP_VIDEOPROFILE_H264BASELINE = 0, | |
| PP_VIDEOPROFILE_H264MAIN = 1, | |
| PP_VIDEOPROFILE_H264EXTENDED = 2, | |
| PP_VIDEOPROFILE_H264HIGH = 3, | |
| PP_VIDEOPROFILE_H264HIGH10PROFILE = 4, | |
| PP_VIDEOPROFILE_H264HIGH422PROFILE = 5, | |
| PP_VIDEOPROFILE_H264HIGH444PREDICTIVEPROFILE = 6, | |
| PP_VIDEOPROFILE_H264SCALABLEBASELINE = 7, | |
| PP_VIDEOPROFILE_H264SCALABLEHIGH = 8, | |
| PP_VIDEOPROFILE_H264STEREOHIGH = 9, | |
| PP_VIDEOPROFILE_H264MULTIVIEWHIGH = 10, | |
| PP_VIDEOPROFILE_VP8_ANY = 11, | |
| PP_VIDEOPROFILE_VP9_ANY = 12, | |
| PP_VIDEOPROFILE_MAX = PP_VIDEOPROFILE_VP9_ANY | |
| }; | |
| /** | |
| * Audio profiles. | |
| */ | |
| enum PP_AudioProfile { | |
| PP_AUDIOPROFILE_OPUS = 0, | |
| PP_AUDIOPROFILE_MAX = PP_AUDIOPROFILE_OPUS | |
| }; | |
| /** | |
| * Hardware acceleration options. | |
| */ | |
| enum PP_HardwareAcceleration { | |
| /** Create a hardware accelerated resource only. */ | |
| PP_HARDWAREACCELERATION_ONLY = 0, | |
| /** | |
| * Create a hardware accelerated resource if possible. Otherwise, fall back | |
| * to the software implementation. | |
| */ | |
| PP_HARDWAREACCELERATION_WITHFALLBACK = 1, | |
| /** Create the software implementation only. */ | |
| PP_HARDWAREACCELERATION_NONE = 2, | |
| PP_HARDWAREACCELERATION_LAST = PP_HARDWAREACCELERATION_NONE | |
| }; | |
| /** | |
| * Struct describing a decoded video picture. The decoded picture data is stored | |
| * in the GL texture corresponding to |texture_id|. The plugin can determine | |
| * which Decode call generated the picture using |decode_id|. | |
| */ | |
| struct PP_VideoPicture { | |
| /** | |
| * |decode_id| parameter of the Decode call which generated this picture. | |
| * See the PPB_VideoDecoder function Decode() for more details. | |
| */ | |
| uint32_t decode_id; | |
| /** | |
| * Texture ID in the plugin's GL context. The plugin can use this to render | |
| * the decoded picture. | |
| */ | |
| uint32_t texture_id; | |
| /** | |
| * The GL texture target for the decoded picture. Possible values are: | |
| * GL_TEXTURE_2D | |
| * GL_TEXTURE_RECTANGLE_ARB | |
| * GL_TEXTURE_EXTERNAL_OES | |
| * | |
| * The pixel format of the texture is GL_RGBA. | |
| */ | |
| uint32_t texture_target; | |
| /** | |
| * Dimensions of the texture holding the decoded picture. | |
| */ | |
| PP_Size texture_size; | |
| /** | |
| * The visible subrectangle of the picture. The plugin should display only | |
| * this part of the picture. | |
| */ | |
| PP_Rect visible_rect; | |
| }; | |
| /** | |
| * Struct describing a decoded video picture. The decoded picture data is stored | |
| * in the GL texture corresponding to |texture_id|. The plugin can determine | |
| * which Decode call generated the picture using |decode_id|. | |
| */ | |
| struct PP_VideoPicture_0_1 { | |
| /** | |
| * |decode_id| parameter of the Decode call which generated this picture. | |
| * See the PPB_VideoDecoder function Decode() for more details. | |
| */ | |
| uint32_t decode_id; | |
| /** | |
| * Texture ID in the plugin's GL context. The plugin can use this to render | |
| * the decoded picture. | |
| */ | |
| uint32_t texture_id; | |
| /** | |
| * The GL texture target for the decoded picture. Possible values are: | |
| * GL_TEXTURE_2D | |
| * GL_TEXTURE_RECTANGLE_ARB | |
| * GL_TEXTURE_EXTERNAL_OES | |
| * | |
| * The pixel format of the texture is GL_RGBA. | |
| */ | |
| uint32_t texture_target; | |
| /** | |
| * Dimensions of the texture holding the decoded picture. | |
| */ | |
| PP_Size texture_size; | |
| }; | |
| /** | |
| * Supported video profile information. See the PPB_VideoEncoder function | |
| * GetSupportedProfiles() for more details. | |
| */ | |
| struct PP_VideoProfileDescription { | |
| /** | |
| * The codec profile. | |
| */ | |
| PP_VideoProfile profile; | |
| /** | |
| * Dimensions of the maximum resolution of video frames, in pixels. | |
| */ | |
| PP_Size max_resolution; | |
| /** | |
| * The numerator of the maximum frame rate. | |
| */ | |
| uint32_t max_framerate_numerator; | |
| /** | |
| * The denominator of the maximum frame rate. | |
| */ | |
| uint32_t max_framerate_denominator; | |
| /** | |
| * Whether the profile is hardware accelerated. | |
| */ | |
| PP_Bool hardware_accelerated; | |
| }; | |
| /** | |
| * Supported video profile information. See the PPB_VideoEncoder function | |
| * GetSupportedProfiles() for more details. | |
| */ | |
| struct PP_VideoProfileDescription_0_1 { | |
| /** | |
| * The codec profile. | |
| */ | |
| PP_VideoProfile profile; | |
| /** | |
| * Dimensions of the maximum resolution of video frames, in pixels. | |
| */ | |
| PP_Size max_resolution; | |
| /** | |
| * The numerator of the maximum frame rate. | |
| */ | |
| uint32_t max_framerate_numerator; | |
| /** | |
| * The denominator of the maximum frame rate. | |
| */ | |
| uint32_t max_framerate_denominator; | |
| /** | |
| * A value indicating if the profile is available in hardware, software, or | |
| * both. | |
| */ | |
| PP_HardwareAcceleration acceleration; | |
| }; | |
| /** | |
| * Supported audio profile information. See the PPB_AudioEncoder function | |
| * GetSupportedProfiles() for more details. | |
| */ | |
| struct PP_AudioProfileDescription { | |
| /** | |
| * The codec profile. | |
| */ | |
| PP_AudioProfile profile; | |
| /** | |
| * Maximum number of channels that can be encoded. | |
| */ | |
| uint32_t max_channels; | |
| /** | |
| * Sample size. | |
| */ | |
| uint32_t sample_size; | |
| /** | |
| * Sampling rate that can be encoded | |
| */ | |
| uint32_t sample_rate; | |
| /** | |
| * Whether the profile is hardware accelerated. | |
| */ | |
| PP_Bool hardware_accelerated; | |
| }; | |
| /** | |
| * Struct describing a bitstream buffer. | |
| */ | |
| struct PP_BitstreamBuffer { | |
| /** | |
| * The size, in bytes, of the bitstream data. | |
| */ | |
| uint32_t size; | |
| /** | |
| * The base address of the bitstream data. | |
| */ | |
| mem_t buffer; | |
| /** | |
| * Whether the buffer represents a key frame. | |
| */ | |
| PP_Bool key_frame; | |
| }; | |
| /** | |
| * Struct describing an audio bitstream buffer. | |
| */ | |
| struct PP_AudioBitstreamBuffer { | |
| /** | |
| * The size, in bytes, of the bitstream data. | |
| */ | |
| uint32_t size; | |
| /** | |
| * The base address of the bitstream data. | |
| */ | |
| mem_t buffer; | |
| }; |