WebM Codec SDK

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_VPX_VP8_H_
31#define VPX_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 {
47 VP8_SET_REFERENCE = 1,
48 VP8_COPY_REFERENCE = 2,
49 VP8_SET_POSTPROC = 3,
50
51 /* TODO(jkoleszar): The encoder incorrectly reuses some of these values (5+)
52 * for its control ids. These should be migrated to something like the
53 * VP8_DECODER_CTRL_ID_START range next time we're ready to break the ABI.
54 */
55 VP9_GET_REFERENCE = 128,
56 VP8_COMMON_CTRL_ID_MAX,
57 VP8_DECODER_CTRL_ID_START = 256
58};
59
64 enum vp8_postproc_level {
65 VP8_NOFILTERING = 0,
66 VP8_DEBLOCK = 1 << 0,
67 VP8_DEMACROBLOCK = 1 << 1,
68 VP8_ADDNOISE = 1 << 2,
69 VP8_MFQE = 1 << 3
70};
71
78
79 typedef struct vp8_postproc_cfg {
82 int post_proc_flag;
83 int deblocking_level;
84 int noise_level;
85} vp8_postproc_cfg_t;
86
91 typedef enum vpx_ref_frame_type {
92 VP8_LAST_FRAME = 1,
93 VP8_GOLD_FRAME = 2,
94 VP8_ALTR_FRAME = 4
95} vpx_ref_frame_type_t;
96
101 typedef struct vpx_ref_frame {
102 vpx_ref_frame_type_t frame_type;
103 vpx_image_t img;
104} vpx_ref_frame_t;
105
110 typedef struct vp9_ref_frame {
111 int idx;
112 vpx_image_t img;
113} vp9_ref_frame_t;
114
120 VPX_CTRL_USE_TYPE(VP8_SET_REFERENCE, vpx_ref_frame_t *)
121#define VPX_CTRL_VP8_SET_REFERENCE
122 VPX_CTRL_USE_TYPE(VP8_COPY_REFERENCE, vpx_ref_frame_t *)
123#define VPX_CTRL_VP8_COPY_REFERENCE
124 VPX_CTRL_USE_TYPE(VP8_SET_POSTPROC, vp8_postproc_cfg_t *)
125#define VPX_CTRL_VP8_SET_POSTPROC
126 VPX_CTRL_USE_TYPE(VP9_GET_REFERENCE, vp9_ref_frame_t *)
127#define VPX_CTRL_VP9_GET_REFERENCE
128
131
132#ifdef __cplusplus
133} // extern "C"
134#endif
135
136#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:422
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_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.
vpx_image_t
struct vpx_image vpx_image_t
Image Descriptor.