Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(138)

Side by Side Diff: source/libvpx/vpx/vp8.h

Issue 11555023: libvpx: Add VP9 decoder. (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 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 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 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 18 matching lines...) Expand all
29 * \brief Provides controls common to both the VP8 encoder and decoder. 29 * \brief Provides controls common to both the VP8 encoder and decoder.
30 */ 30 */
31 #ifndef VP8_H 31 #ifndef VP8_H
32 #define VP8_H 32 #define VP8_H
33 #include "vpx_codec_impl_top.h" 33 #include "vpx_codec_impl_top.h"
34 34
35 /*!\brief Control functions 35 /*!\brief Control functions
36 * 36 *
37 * The set of macros define the control functions of VP8 interface 37 * The set of macros define the control functions of VP8 interface
38 */ 38 */
39 enum vp8_com_control_id 39 enum vp8_com_control_id {
40 { 40 VP8_SET_REFERENCE = 1, /**< pass in an external frame into decode r to be used as reference frame */
41 VP8_SET_REFERENCE = 1, /**< pass in an external frame into deco der to be used as reference frame */ 41 VP8_COPY_REFERENCE = 2, /**< get a copy of reference frame from th e decoder */
42 VP8_COPY_REFERENCE = 2, /**< get a copy of reference frame from the decoder */ 42 VP8_SET_POSTPROC = 3, /**< set the decoder's post processing set tings */
43 VP8_SET_POSTPROC = 3, /**< set the decoder's post processing s ettings */ 43 VP8_SET_DBG_COLOR_REF_FRAME = 4, /**< set the reference frames to color for each macroblock */
44 VP8_SET_DBG_COLOR_REF_FRAME = 4, /**< set the reference frames to color f or each macroblock */ 44 VP8_SET_DBG_COLOR_MB_MODES = 5, /**< set which macro block modes to color */
45 VP8_SET_DBG_COLOR_MB_MODES = 5, /**< set which macro block modes to colo r */ 45 VP8_SET_DBG_COLOR_B_MODES = 6, /**< set which blocks modes to color */
46 VP8_SET_DBG_COLOR_B_MODES = 6, /**< set which blocks modes to color */ 46 VP8_SET_DBG_DISPLAY_MV = 7, /**< set which motion vector modes to draw */
47 VP8_SET_DBG_DISPLAY_MV = 7, /**< set which motion vector modes to dr aw */ 47 VP8_COMMON_CTRL_ID_MAX,
48 VP8_COMMON_CTRL_ID_MAX, 48 VP8_DECODER_CTRL_ID_START = 256
49 VP8_DECODER_CTRL_ID_START = 256
50 }; 49 };
51 50
52 /*!\brief post process flags 51 /*!\brief post process flags
53 * 52 *
54 * The set of macros define VP8 decoder post processing flags 53 * The set of macros define VP8 decoder post processing flags
55 */ 54 */
56 enum vp8_postproc_level 55 enum vp8_postproc_level {
57 { 56 VP8_NOFILTERING = 0,
58 VP8_NOFILTERING = 0, 57 VP8_DEBLOCK = 1 << 0,
59 VP8_DEBLOCK = 1<<0, 58 VP8_DEMACROBLOCK = 1 << 1,
60 VP8_DEMACROBLOCK = 1<<1, 59 VP8_ADDNOISE = 1 << 2,
61 VP8_ADDNOISE = 1<<2, 60 VP8_DEBUG_TXT_FRAME_INFO = 1 << 3, /**< print frame information */
62 VP8_DEBUG_TXT_FRAME_INFO = 1<<3, /**< print frame information */ 61 VP8_DEBUG_TXT_MBLK_MODES = 1 << 4, /**< print macro block modes over each m acro block */
63 VP8_DEBUG_TXT_MBLK_MODES = 1<<4, /**< print macro block modes over each m acro block */ 62 VP8_DEBUG_TXT_DC_DIFF = 1 << 5, /**< print dc diff for each macro block */
64 VP8_DEBUG_TXT_DC_DIFF = 1<<5, /**< print dc diff for each macro block */ 63 VP8_DEBUG_TXT_RATE_INFO = 1 << 6, /**< print video rate info (encoder only ) */
65 VP8_DEBUG_TXT_RATE_INFO = 1<<6, /**< print video rate info (encoder only ) */ 64 VP8_MFQE = 1 << 10
66 VP8_MFQE = 1<<10
67 }; 65 };
68 66
69 /*!\brief post process flags 67 /*!\brief post process flags
70 * 68 *
71 * This define a structure that describe the post processing settings. For 69 * This define a structure that describe the post processing settings. For
72 * the best objective measure (using the PSNR metric) set post_proc_flag 70 * the best objective measure (using the PSNR metric) set post_proc_flag
73 * to VP8_DEBLOCK and deblocking_level to 1. 71 * to VP8_DEBLOCK and deblocking_level to 1.
74 */ 72 */
75 73
76 typedef struct vp8_postproc_cfg 74 typedef struct vp8_postproc_cfg {
77 { 75 int post_proc_flag; /**< the types of post processing to be done, shou ld be combination of "vp8_postproc_level" */
78 int post_proc_flag; /**< the types of post processing to be done, sh ould be combination of "vp8_postproc_level" */ 76 int deblocking_level; /**< the strength of deblocking, valid range [0, 1 6] */
79 int deblocking_level; /**< the strength of deblocking, valid range [0, 16] */ 77 int noise_level; /**< the strength of additive noise, valid range [ 0, 16] */
80 int noise_level; /**< the strength of additive noise, valid range [0, 16] */
81 } vp8_postproc_cfg_t; 78 } vp8_postproc_cfg_t;
82 79
83 /*!\brief reference frame type 80 /*!\brief reference frame type
84 * 81 *
85 * The set of macros define the type of VP8 reference frames 82 * The set of macros define the type of VP8 reference frames
86 */ 83 */
87 typedef enum vpx_ref_frame_type 84 typedef enum vpx_ref_frame_type {
88 { 85 VP8_LAST_FRAME = 1,
89 VP8_LAST_FRAME = 1, 86 VP8_GOLD_FRAME = 2,
90 VP8_GOLD_FRAME = 2, 87 VP8_ALTR_FRAME = 4
91 VP8_ALTR_FRAME = 4
92 } vpx_ref_frame_type_t; 88 } vpx_ref_frame_type_t;
93 89
94 /*!\brief reference frame data struct 90 /*!\brief reference frame data struct
95 * 91 *
96 * define the data struct to access vp8 reference frames 92 * define the data struct to access vp8 reference frames
97 */ 93 */
98 94
99 typedef struct vpx_ref_frame 95 typedef struct vpx_ref_frame {
100 { 96 vpx_ref_frame_type_t frame_type; /**< which reference frame */
101 vpx_ref_frame_type_t frame_type; /**< which reference frame */ 97 vpx_image_t img; /**< reference frame data in image format */
102 vpx_image_t img; /**< reference frame data in image forma t */
103 } vpx_ref_frame_t; 98 } vpx_ref_frame_t;
104 99
105 100
106 /*!\brief vp8 decoder control function parameter type 101 /*!\brief vp8 decoder control function parameter type
107 * 102 *
108 * defines the data type for each of VP8 decoder control function requires 103 * defines the data type for each of VP8 decoder control function requires
109 */ 104 */
110 105
111 VPX_CTRL_USE_TYPE(VP8_SET_REFERENCE, vpx_ref_frame_t *) 106 VPX_CTRL_USE_TYPE(VP8_SET_REFERENCE, vpx_ref_frame_t *)
112 VPX_CTRL_USE_TYPE(VP8_COPY_REFERENCE, vpx_ref_frame_t *) 107 VPX_CTRL_USE_TYPE(VP8_COPY_REFERENCE, vpx_ref_frame_t *)
113 VPX_CTRL_USE_TYPE(VP8_SET_POSTPROC, vp8_postproc_cfg_t *) 108 VPX_CTRL_USE_TYPE(VP8_SET_POSTPROC, vp8_postproc_cfg_t *)
114 VPX_CTRL_USE_TYPE(VP8_SET_DBG_COLOR_REF_FRAME, int) 109 VPX_CTRL_USE_TYPE(VP8_SET_DBG_COLOR_REF_FRAME, int)
115 VPX_CTRL_USE_TYPE(VP8_SET_DBG_COLOR_MB_MODES, int) 110 VPX_CTRL_USE_TYPE(VP8_SET_DBG_COLOR_MB_MODES, int)
116 VPX_CTRL_USE_TYPE(VP8_SET_DBG_COLOR_B_MODES, int) 111 VPX_CTRL_USE_TYPE(VP8_SET_DBG_COLOR_B_MODES, int)
117 VPX_CTRL_USE_TYPE(VP8_SET_DBG_DISPLAY_MV, int) 112 VPX_CTRL_USE_TYPE(VP8_SET_DBG_DISPLAY_MV, int)
118 113
119 114
120 /*! @} - end defgroup vp8 */ 115 /*! @} - end defgroup vp8 */
121 116
122 #include "vpx_codec_impl_bottom.h" 117 #include "vpx_codec_impl_bottom.h"
123 #endif 118 #endif
OLDNEW
« libvpx.gyp ('K') | « source/libvpx/vpx/src/vpx_image.c ('k') | source/libvpx/vpx/vp8cx.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698