WebM Codec SDK: vpx/vp8.h Source File

WebM Codec SDK

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

vp8.h
Go to the documentation of this file.
1 /*
2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
30 #ifndef VPX_VP8_H_
31 #define VPX_VP8_H_
32
33 #include "./vpx_codec.h"
34 #include "./vpx_image.h"
35
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39
44 enum vp8_com_control_id {
45 VP8_SET_REFERENCE = 1,
46 VP8_COPY_REFERENCE = 2,
47 VP8_SET_POSTPROC = 3,
48 VP8_SET_DBG_COLOR_REF_FRAME = 4,
49 VP8_SET_DBG_COLOR_MB_MODES = 5,
50 VP8_SET_DBG_COLOR_B_MODES = 6,
51 VP8_SET_DBG_DISPLAY_MV = 7,
53 /* TODO(jkoleszar): The encoder incorrectly reuses some of these values (5+)
54 * for its control ids. These should be migrated to something like the
55 * VP8_DECODER_CTRL_ID_START range next time we're ready to break the ABI.
56 */
57 VP9_GET_REFERENCE = 128,
58 VP8_COMMON_CTRL_ID_MAX,
59 VP8_DECODER_CTRL_ID_START = 256
60 };
61
66 enum vp8_postproc_level {
67 VP8_NOFILTERING = 0,
68 VP8_DEBLOCK = 1 << 0,
69 VP8_DEMACROBLOCK = 1 << 1,
70 VP8_ADDNOISE = 1 << 2,
71 VP8_DEBUG_TXT_FRAME_INFO = 1 << 3,
72 VP8_DEBUG_TXT_MBLK_MODES = 1 << 4,
73 VP8_DEBUG_TXT_DC_DIFF = 1 << 5,
74 VP8_DEBUG_TXT_RATE_INFO = 1 << 6,
75 VP8_MFQE = 1 << 10
76 };
77
85 typedef struct vp8_postproc_cfg {
86 int post_proc_flag;
87 int deblocking_level;
88 int noise_level;
89 } vp8_postproc_cfg_t;
90
95 typedef enum vpx_ref_frame_type {
96 VP8_LAST_FRAME = 1,
97 VP8_GOLD_FRAME = 2,
98 VP8_ALTR_FRAME = 4
99 } vpx_ref_frame_type_t;
100
105 typedef struct vpx_ref_frame {
106 vpx_ref_frame_type_t frame_type;
107 vpx_image_t img;
108 } vpx_ref_frame_t;
109
114 typedef struct vp9_ref_frame {
115 int idx;
116 vpx_image_t img;
117 } vp9_ref_frame_t;
118
124 VPX_CTRL_USE_TYPE(VP8_SET_REFERENCE, vpx_ref_frame_t *)
125 #define VPX_CTRL_VP8_SET_REFERENCE
126 VPX_CTRL_USE_TYPE(VP8_COPY_REFERENCE, vpx_ref_frame_t *)
127 #define VPX_CTRL_VP8_COPY_REFERENCE
128 VPX_CTRL_USE_TYPE(VP8_SET_POSTPROC, vp8_postproc_cfg_t *)
129 #define VPX_CTRL_VP8_SET_POSTPROC
130 VPX_CTRL_USE_TYPE(VP8_SET_DBG_COLOR_REF_FRAME, int)
131 #define VPX_CTRL_VP8_SET_DBG_COLOR_REF_FRAME
132 VPX_CTRL_USE_TYPE(VP8_SET_DBG_COLOR_MB_MODES, int)
133 #define VPX_CTRL_VP8_SET_DBG_COLOR_MB_MODES
134 VPX_CTRL_USE_TYPE(VP8_SET_DBG_COLOR_B_MODES, int)
135 #define VPX_CTRL_VP8_SET_DBG_COLOR_B_MODES
136 VPX_CTRL_USE_TYPE(VP8_SET_DBG_DISPLAY_MV, int)
137 #define VPX_CTRL_VP8_SET_DBG_DISPLAY_MV
138 VPX_CTRL_USE_TYPE(VP9_GET_REFERENCE, vp9_ref_frame_t *)
139 #define VPX_CTRL_VP9_GET_REFERENCE
140
144 #ifdef __cplusplus
145 } // extern "C"
146 #endif
147
148 #endif // VPX_VP8_H_
vpx_image
Image Descriptor.
Definition: vpx_image.h:88
vp8_postproc_cfg_t
struct vp8_postproc_cfg vp8_postproc_cfg_t
post process flags
VP8_SET_DBG_COLOR_REF_FRAME
Definition: vp8.h:48
vp8_postproc_cfg::noise_level
int noise_level
Definition: vp8.h:88
vpx_ref_frame_t
struct vpx_ref_frame vpx_ref_frame_t
reference frame data struct
vp9_ref_frame_t
struct vp9_ref_frame vp9_ref_frame_t
VP9 specific reference frame data struct.
vpx_ref_frame_type_t
enum vpx_ref_frame_type vpx_ref_frame_type_t
reference frame type
VP8_DEBUG_TXT_MBLK_MODES
Definition: vp8.h:72
VP8_COPY_REFERENCE
Definition: vp8.h:46
VPX_CTRL_USE_TYPE
#define VPX_CTRL_USE_TYPE(id, typ)
vpx_codec_control type definition macro
Definition: vpx_codec.h:423
vp9_ref_frame::img
vpx_image_t img
Definition: vp8.h:116
vp8_postproc_level
vp8_postproc_level
post process flags
Definition: vp8.h:66
VP8_SET_POSTPROC
Definition: vp8.h:47
vpx_image.h
Describes the vpx image descriptor and associated operations.
VP8_DEBUG_TXT_RATE_INFO
Definition: vp8.h:74
vpx_ref_frame::img
vpx_image_t img
Definition: vp8.h:107
vp8_postproc_cfg::deblocking_level
int deblocking_level
Definition: vp8.h:87
VP8_SET_DBG_DISPLAY_MV
Definition: vp8.h:51
VP8_SET_DBG_COLOR_MB_MODES
Definition: vp8.h:49
vp9_ref_frame
VP9 specific reference frame data struct.
Definition: vp8.h:114
VP8_SET_DBG_COLOR_B_MODES
Definition: vp8.h:50
vpx_ref_frame
reference frame data struct
Definition: vp8.h:105
vpx_ref_frame_type
vpx_ref_frame_type
reference frame type
Definition: vp8.h:95
vpx_ref_frame::frame_type
vpx_ref_frame_type_t frame_type
Definition: vp8.h:106
vp9_ref_frame::idx
int idx
Definition: vp8.h:115
vpx_codec.h
Describes the codec algorithm interface to applications.
vp8_postproc_cfg
post process flags
Definition: vp8.h:85
VP8_DEBUG_TXT_DC_DIFF
Definition: vp8.h:73
vp8_com_control_id
vp8_com_control_id
Control functions.
Definition: vp8.h:44
VP9_GET_REFERENCE
Definition: vp8.h:57
VP8_DEBUG_TXT_FRAME_INFO
Definition: vp8.h:71
vp8_postproc_cfg::post_proc_flag
int post_proc_flag
Definition: vp8.h:86
VP8_SET_REFERENCE
Definition: vp8.h:45