OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2010 The VP8 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 |
11 | 11 |
12 #ifndef __INC_VP8D_INT_H | 12 #ifndef __INC_VP8D_INT_H |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
81 const unsigned char *Source; | 81 const unsigned char *Source; |
82 unsigned int source_sz; | 82 unsigned int source_sz; |
83 | 83 |
84 | 84 |
85 unsigned int CPUFreq; | 85 unsigned int CPUFreq; |
86 unsigned int decode_microseconds; | 86 unsigned int decode_microseconds; |
87 unsigned int time_decoding; | 87 unsigned int time_decoding; |
88 unsigned int time_loop_filtering; | 88 unsigned int time_loop_filtering; |
89 | 89 |
90 volatile int b_multithreaded_rd; | 90 volatile int b_multithreaded_rd; |
91 volatile int b_multithreaded_lf; | |
92 int max_threads; | 91 int max_threads; |
93 int last_mb_row_decoded; | |
94 int current_mb_col_main; | 92 int current_mb_col_main; |
95 int decoding_thread_count; | 93 int decoding_thread_count; |
96 int allocated_decoding_thread_count; | 94 int allocated_decoding_thread_count; |
97 int *current_mb_col; //Each row remembers its already decod
ed column. | |
98 int mt_baseline_filter_level[MAX_MB_SEGMENTS]; | |
99 | 95 |
100 // variable for threading | 96 // variable for threading |
101 DECLARE_ALIGNED(16, MACROBLOCKD, lpfmb); | |
102 #if CONFIG_MULTITHREAD | 97 #if CONFIG_MULTITHREAD |
103 //pthread_t h_thread_lpf; // thread for postprocessing | 98 int mt_baseline_filter_level[MAX_MB_SEGMENTS]; |
104 sem_t h_event_end_lpf; // Event for post_proc complet
ed | 99 int *mt_current_mb_col; // Each row remembers its already d
ecoded column. |
105 sem_t *h_event_start_lpf; | 100 |
106 #endif | 101 unsigned char **mt_yabove_row; // mb_rows x width |
| 102 unsigned char **mt_uabove_row; |
| 103 unsigned char **mt_vabove_row; |
| 104 unsigned char **mt_yleft_col; // mb_rows x 16 |
| 105 unsigned char **mt_uleft_col; // mb_rows x 8 |
| 106 unsigned char **mt_vleft_col; // mb_rows x 8 |
| 107 |
107 MB_ROW_DEC *mb_row_di; | 108 MB_ROW_DEC *mb_row_di; |
108 DECODETHREAD_DATA *de_thread_data; | 109 DECODETHREAD_DATA *de_thread_data; |
109 #if CONFIG_MULTITHREAD | 110 |
110 pthread_t *h_decoding_thread; | 111 pthread_t *h_decoding_thread; |
111 sem_t *h_event_start_decoding; | 112 sem_t *h_event_start_decoding; |
112 sem_t h_event_end_decoding; | 113 sem_t h_event_end_decoding; |
113 // end of threading data | 114 // end of threading data |
114 #endif | 115 #endif |
| 116 |
115 vp8_reader *mbc; | 117 vp8_reader *mbc; |
116 INT64 last_time_stamp; | 118 INT64 last_time_stamp; |
117 int ready_for_new_data; | 119 int ready_for_new_data; |
118 | 120 |
119 DATARATE dr[16]; | 121 DATARATE dr[16]; |
120 | 122 |
121 DETOK detoken; | 123 DETOK detoken; |
122 | 124 |
123 #if CONFIG_RUNTIME_CPU_DETECT | 125 #if CONFIG_RUNTIME_CPU_DETECT |
124 vp8_dequant_rtcd_vtable_t dequant; | 126 vp8_dequant_rtcd_vtable_t dequant; |
125 struct vp8_dboolhuff_rtcd_vtable dboolhuff; | 127 struct vp8_dboolhuff_rtcd_vtable dboolhuff; |
126 #endif | 128 #endif |
127 | 129 |
| 130 |
| 131 vp8_prob prob_intra; |
| 132 vp8_prob prob_last; |
| 133 vp8_prob prob_gf; |
| 134 vp8_prob prob_skip_false; |
| 135 |
128 } VP8D_COMP; | 136 } VP8D_COMP; |
129 | 137 |
130 int vp8_decode_frame(VP8D_COMP *cpi); | 138 int vp8_decode_frame(VP8D_COMP *cpi); |
131 void vp8_dmachine_specific_config(VP8D_COMP *pbi); | 139 void vp8_dmachine_specific_config(VP8D_COMP *pbi); |
132 | 140 |
133 | 141 |
134 #if CONFIG_DEBUG | 142 #if CONFIG_DEBUG |
135 #define CHECK_MEM_ERROR(lval,expr) do {\ | 143 #define CHECK_MEM_ERROR(lval,expr) do {\ |
136 lval = (expr); \ | 144 lval = (expr); \ |
137 if(!lval) \ | 145 if(!lval) \ |
138 vpx_internal_error(&pbi->common.error, VPX_CODEC_MEM_ERROR,\ | 146 vpx_internal_error(&pbi->common.error, VPX_CODEC_MEM_ERROR,\ |
139 "Failed to allocate "#lval" at %s:%d", \ | 147 "Failed to allocate "#lval" at %s:%d", \ |
140 __FILE__,__LINE__);\ | 148 __FILE__,__LINE__);\ |
141 } while(0) | 149 } while(0) |
142 #else | 150 #else |
143 #define CHECK_MEM_ERROR(lval,expr) do {\ | 151 #define CHECK_MEM_ERROR(lval,expr) do {\ |
144 lval = (expr); \ | 152 lval = (expr); \ |
145 if(!lval) \ | 153 if(!lval) \ |
146 vpx_internal_error(&pbi->common.error, VPX_CODEC_MEM_ERROR,\ | 154 vpx_internal_error(&pbi->common.error, VPX_CODEC_MEM_ERROR,\ |
147 "Failed to allocate "#lval);\ | 155 "Failed to allocate "#lval);\ |
148 } while(0) | 156 } while(0) |
149 #endif | 157 #endif |
150 | 158 |
151 #endif | 159 #endif |
OLD | NEW |