vp8.h
Go to the documentation of this file.
/*
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#ifndef VPX_VPX_VP8_H_
#define VPX_VPX_VP8_H_
#include "./vpx_codec.h"
#include "./vpx_image.h"
#ifdef __cplusplus
extern "C" {
#endif
enum vp8_com_control_id {
VP8_SET_REFERENCE = 1,
VP8_COPY_REFERENCE = 2,
VP8_SET_POSTPROC = 3,
/* TODO(jkoleszar): The encoder incorrectly reuses some of these values (5+)
* for its control ids. These should be migrated to something like the
* VP8_DECODER_CTRL_ID_START range next time we're ready to break the ABI.
*/
VP9_GET_REFERENCE = 128,
VP8_COMMON_CTRL_ID_MAX,
VP8_DECODER_CTRL_ID_START = 256
};
enum vp8_postproc_level {
VP8_NOFILTERING = 0,
VP8_DEBLOCK = 1 << 0,
VP8_DEMACROBLOCK = 1 << 1,
VP8_ADDNOISE = 1 << 2,
VP8_MFQE = 1 << 3
};
typedef struct vp8_postproc_cfg {
int post_proc_flag;
int deblocking_level;
int noise_level;
} vp8_postproc_cfg_t;
typedef enum vpx_ref_frame_type {
VP8_LAST_FRAME = 1,
VP8_GOLD_FRAME = 2,
VP8_ALTR_FRAME = 4
} vpx_ref_frame_type_t;
typedef struct vpx_ref_frame {
vpx_ref_frame_type_t frame_type;
vpx_image_t img;
} vpx_ref_frame_t;
typedef struct vp9_ref_frame {
int idx;
vpx_image_t img;
} vp9_ref_frame_t;
VPX_CTRL_USE_TYPE(VP8_SET_REFERENCE, vpx_ref_frame_t *)
#define VPX_CTRL_VP8_SET_REFERENCE
VPX_CTRL_USE_TYPE(VP8_COPY_REFERENCE, vpx_ref_frame_t *)
#define VPX_CTRL_VP8_COPY_REFERENCE
VPX_CTRL_USE_TYPE(VP8_SET_POSTPROC, vp8_postproc_cfg_t *)
#define VPX_CTRL_VP8_SET_POSTPROC
VPX_CTRL_USE_TYPE(VP9_GET_REFERENCE, vp9_ref_frame_t *)
#define VPX_CTRL_VP9_GET_REFERENCE
#ifdef __cplusplus
} // extern "C"
#endif
#endif // VPX_VPX_VP8_H_
VPX_CTRL_USE_TYPE
#define VPX_CTRL_USE_TYPE(id, typ)
vpx_codec_control type definition macro
Definition vpx_codec.h:426
vp8_postproc_cfg_t
struct vp8_postproc_cfg vp8_postproc_cfg_t
post process flags
vp9_ref_frame_t
struct vp9_ref_frame vp9_ref_frame_t
VP9 specific reference frame data struct.
vp8_com_control_id
vp8_com_control_id
Control functions.
Definition vp8.h:44
vpx_ref_frame_type_t
enum vpx_ref_frame_type vpx_ref_frame_type_t
reference frame type
vp8_postproc_level
vp8_postproc_level
post process flags
Definition vp8.h:64
vpx_ref_frame_t
struct vpx_ref_frame vpx_ref_frame_t
reference frame data struct
vpx_ref_frame_type
vpx_ref_frame_type
reference frame type
Definition vp8.h:91
VP8_SET_POSTPROC
@ VP8_SET_POSTPROC
Definition vp8.h:49
VP8_COPY_REFERENCE
@ VP8_COPY_REFERENCE
Definition vp8.h:48
VP8_SET_REFERENCE
@ VP8_SET_REFERENCE
pass in an external frame into decoder to be used as reference frame
Definition vp8.h:47
VP9_GET_REFERENCE
@ VP9_GET_REFERENCE
Definition vp8.h:55
vp8_postproc_cfg
post process flags
Definition vp8.h:79
vp8_postproc_cfg::noise_level
int noise_level
Definition vp8.h:84
vp8_postproc_cfg::post_proc_flag
int post_proc_flag
the types of post processing to be done, should be combination of "vp8_postproc_level"
Definition vp8.h:82
vp8_postproc_cfg::deblocking_level
int deblocking_level
Definition vp8.h:83
vp9_ref_frame
VP9 specific reference frame data struct.
Definition vp8.h:110
vp9_ref_frame::idx
int idx
Definition vp8.h:111
vp9_ref_frame::img
vpx_image_t img
Definition vp8.h:112
vpx_image
Image Descriptor.
Definition vpx_image.h:72
vpx_ref_frame
reference frame data struct
Definition vp8.h:101
vpx_ref_frame::frame_type
vpx_ref_frame_type_t frame_type
Definition vp8.h:102
vpx_ref_frame::img
vpx_image_t img
Definition vp8.h:103
vpx_codec.h
Describes the codec algorithm interface to applications.
vpx_image.h
Describes the vpx image descriptor and associated operations.