You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
212 lines
5.2 KiB
212 lines
5.2 KiB
/* 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.
|
|
*/
|
|
|
|
/* From pp_codecs.idl modified Fri Apr 17 10:55:27 2015. */
|
|
|
|
#ifndef PPAPI_C_PP_CODECS_H_
|
|
#define PPAPI_C_PP_CODECS_H_
|
|
|
|
#include "ppapi/c/pp_bool.h"
|
|
#include "ppapi/c/pp_macros.h"
|
|
#include "ppapi/c/pp_point.h"
|
|
#include "ppapi/c/pp_rect.h"
|
|
#include "ppapi/c/pp_size.h"
|
|
#include "ppapi/c/pp_stdint.h"
|
|
|
|
/**
|
|
* @file
|
|
* Video profiles.
|
|
*/
|
|
|
|
|
|
/**
|
|
* @addtogroup Enums
|
|
* @{
|
|
*/
|
|
typedef enum {
|
|
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
|
|
} PP_VideoProfile;
|
|
|
|
/**
|
|
* Hardware acceleration options.
|
|
*/
|
|
typedef enum {
|
|
/** 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
|
|
} PP_HardwareAcceleration;
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/**
|
|
* @addtogroup Structs
|
|
* @{
|
|
*/
|
|
/**
|
|
* 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.
|
|
*/
|
|
struct PP_Size texture_size;
|
|
/**
|
|
* The visible subrectangle of the picture. The plugin should display only
|
|
* this part of the picture.
|
|
*/
|
|
struct 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.
|
|
*/
|
|
struct 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.
|
|
*/
|
|
struct 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.
|
|
*/
|
|
struct 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;
|
|
};
|
|
|
|
/**
|
|
* 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.
|
|
*/
|
|
void* buffer;
|
|
/**
|
|
* Whether the buffer represents a key frame.
|
|
*/
|
|
PP_Bool key_frame;
|
|
};
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
#endif /* PPAPI_C_PP_CODECS_H_ */
|
|
|
|
|