| 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 |