OLD | NEW |
1 /** | 1 /** |
2 * VP8 compatible video decoder | 2 * VP8 compatible video decoder |
3 * | 3 * |
4 * Copyright (C) 2010 David Conrad | 4 * Copyright (C) 2010 David Conrad |
5 * Copyright (C) 2010 Ronald S. Bultje | 5 * Copyright (C) 2010 Ronald S. Bultje |
6 * Copyright (C) 2010 Jason Garrett-Glaser | 6 * Copyright (C) 2010 Jason Garrett-Glaser |
7 * | 7 * |
8 * This file is part of FFmpeg. | 8 * This file is part of FFmpeg. |
9 * | 9 * |
10 * FFmpeg is free software; you can redistribute it and/or | 10 * FFmpeg is free software; you can redistribute it and/or |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
123 uint8_t simple; | 123 uint8_t simple; |
124 uint8_t level; | 124 uint8_t level; |
125 uint8_t sharpness; | 125 uint8_t sharpness; |
126 } filter; | 126 } filter; |
127 | 127 |
128 VP8Macroblock *macroblocks; | 128 VP8Macroblock *macroblocks; |
129 VP8FilterStrength *filter_strength; | 129 VP8FilterStrength *filter_strength; |
130 | 130 |
131 uint8_t *intra4x4_pred_mode_top; | 131 uint8_t *intra4x4_pred_mode_top; |
132 uint8_t intra4x4_pred_mode_left[4]; | 132 uint8_t intra4x4_pred_mode_left[4]; |
133 uint8_t *segmentation_map; | |
134 | 133 |
135 /** | 134 /** |
136 * Macroblocks can have one of 4 different quants in a frame when | 135 * Macroblocks can have one of 4 different quants in a frame when |
137 * segmentation is enabled. | 136 * segmentation is enabled. |
138 * If segmentation is disabled, only the first segment's values are used. | 137 * If segmentation is disabled, only the first segment's values are used. |
139 */ | 138 */ |
140 struct { | 139 struct { |
141 // [0] - DC qmul [1] - AC qmul | 140 // [0] - DC qmul [1] - AC qmul |
142 int16_t luma_qmul[2]; | 141 int16_t luma_qmul[2]; |
143 int16_t luma_dc_qmul[2]; ///< luma dc-only block quant | 142 int16_t luma_dc_qmul[2]; ///< luma dc-only block quant |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 * All coefficients are contained in separate arith coding contexts. | 229 * All coefficients are contained in separate arith coding contexts. |
231 * There can be 1, 2, 4, or 8 of these after the header context. | 230 * There can be 1, 2, 4, or 8 of these after the header context. |
232 */ | 231 */ |
233 int num_coeff_partitions; | 232 int num_coeff_partitions; |
234 VP56RangeCoder coeff_partition[8]; | 233 VP56RangeCoder coeff_partition[8]; |
235 DSPContext dsp; | 234 DSPContext dsp; |
236 VP8DSPContext vp8dsp; | 235 VP8DSPContext vp8dsp; |
237 H264PredContext hpc; | 236 H264PredContext hpc; |
238 vp8_mc_func put_pixels_tab[3][3][3]; | 237 vp8_mc_func put_pixels_tab[3][3][3]; |
239 AVFrame frames[5]; | 238 AVFrame frames[5]; |
| 239 |
| 240 /** |
| 241 * A list of segmentation_map buffers that are to be free()'ed in |
| 242 * the next decoding iteration. We can't free() them right away |
| 243 * because the map may still be used by subsequent decoding threads. |
| 244 * Unused if frame threading is off. |
| 245 */ |
| 246 uint8_t *segmentation_maps[5]; |
| 247 int num_maps_to_be_freed; |
| 248 int maps_are_invalid; |
240 } VP8Context; | 249 } VP8Context; |
241 | 250 |
242 #endif /* AVCODEC_VP8_H */ | 251 #endif /* AVCODEC_VP8_H */ |
OLD | NEW |