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

Side by Side Diff: source/libvpx/vp9/common/vp9_alloccommon.c

Issue 592203002: libvpx: Pull from upstream (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 6 years, 3 months 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
« no previous file with comments | « source/libvpx/vp8/vp8cx_arm.mk ('k') | source/libvpx/vp9/common/vp9_blockd.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 26 matching lines...) Expand all
37 cm->mi_stride = calc_mi_size(cm->mi_cols); 37 cm->mi_stride = calc_mi_size(cm->mi_cols);
38 38
39 cm->mb_cols = (cm->mi_cols + 1) >> 1; 39 cm->mb_cols = (cm->mi_cols + 1) >> 1;
40 cm->mb_rows = (cm->mi_rows + 1) >> 1; 40 cm->mb_rows = (cm->mi_rows + 1) >> 1;
41 cm->MBs = cm->mb_rows * cm->mb_cols; 41 cm->MBs = cm->mb_rows * cm->mb_cols;
42 } 42 }
43 43
44 static void setup_mi(VP9_COMMON *cm) { 44 static void setup_mi(VP9_COMMON *cm) {
45 cm->mi = cm->mip + cm->mi_stride + 1; 45 cm->mi = cm->mip + cm->mi_stride + 1;
46 cm->prev_mi = cm->prev_mip + cm->mi_stride + 1; 46 cm->prev_mi = cm->prev_mip + cm->mi_stride + 1;
47 cm->mi_grid_visible = cm->mi_grid_base + cm->mi_stride + 1;
48 cm->prev_mi_grid_visible = cm->prev_mi_grid_base + cm->mi_stride + 1;
49 47
50 vpx_memset(cm->mip, 0, cm->mi_stride * (cm->mi_rows + 1) * sizeof(*cm->mip)); 48 vpx_memset(cm->mip, 0, cm->mi_stride * (cm->mi_rows + 1) * sizeof(*cm->mip));
51
52 vpx_memset(cm->mi_grid_base, 0, cm->mi_stride * (cm->mi_rows + 1) *
53 sizeof(*cm->mi_grid_base));
54
55 clear_mi_border(cm, cm->prev_mip); 49 clear_mi_border(cm, cm->prev_mip);
56 } 50 }
57 51
58 static int alloc_mi(VP9_COMMON *cm, int mi_size) { 52 static int alloc_mi(VP9_COMMON *cm, int mi_size) {
59 int i; 53 int i;
60 54
61 for (i = 0; i < 2; ++i) { 55 for (i = 0; i < 2; ++i) {
62 cm->mip_array[i] = 56 cm->mip_array[i] =
63 (MODE_INFO *)vpx_calloc(mi_size, sizeof(MODE_INFO)); 57 (MODE_INFO *)vpx_calloc(mi_size, sizeof(MODE_INFO));
64 if (cm->mip_array[i] == NULL) 58 if (cm->mip_array[i] == NULL)
65 return 1; 59 return 1;
66
67 cm->mi_grid_base_array[i] =
68 (MODE_INFO **)vpx_calloc(mi_size, sizeof(MODE_INFO*));
69 if (cm->mi_grid_base_array[i] == NULL)
70 return 1;
71 } 60 }
72 61
73 cm->mi_alloc_size = mi_size; 62 cm->mi_alloc_size = mi_size;
74 63
75 // Init the index. 64 // Init the index.
76 cm->mi_idx = 0; 65 cm->mi_idx = 0;
77 cm->prev_mi_idx = 1; 66 cm->prev_mi_idx = 1;
78 67
79 cm->mip = cm->mip_array[cm->mi_idx]; 68 cm->mip = cm->mip_array[cm->mi_idx];
80 cm->prev_mip = cm->mip_array[cm->prev_mi_idx]; 69 cm->prev_mip = cm->mip_array[cm->prev_mi_idx];
81 cm->mi_grid_base = cm->mi_grid_base_array[cm->mi_idx];
82 cm->prev_mi_grid_base = cm->mi_grid_base_array[cm->prev_mi_idx];
83 70
84 return 0; 71 return 0;
85 } 72 }
86 73
87 static void free_mi(VP9_COMMON *cm) { 74 static void free_mi(VP9_COMMON *cm) {
88 int i; 75 int i;
89 76
90 for (i = 0; i < 2; ++i) { 77 for (i = 0; i < 2; ++i) {
91 vpx_free(cm->mip_array[i]); 78 vpx_free(cm->mip_array[i]);
92 cm->mip_array[i] = NULL; 79 cm->mip_array[i] = NULL;
93 vpx_free(cm->mi_grid_base_array[i]);
94 cm->mi_grid_base_array[i] = NULL;
95 } 80 }
96 81
97 cm->mip = NULL; 82 cm->mip = NULL;
98 cm->prev_mip = NULL; 83 cm->prev_mip = NULL;
99 cm->mi_grid_base = NULL;
100 cm->prev_mi_grid_base = NULL;
101 } 84 }
102 85
103 void vp9_free_ref_frame_buffers(VP9_COMMON *cm) { 86 void vp9_free_ref_frame_buffers(VP9_COMMON *cm) {
104 int i; 87 int i;
105 88
106 for (i = 0; i < FRAME_BUFFERS; ++i) { 89 for (i = 0; i < FRAME_BUFFERS; ++i) {
107 vp9_free_frame_buffer(&cm->frame_bufs[i].buf); 90 vp9_free_frame_buffer(&cm->frame_bufs[i].buf);
108 91
109 if (cm->frame_bufs[i].ref_count > 0 && 92 if (cm->frame_bufs[i].ref_count > 0 &&
110 cm->frame_bufs[i].raw_frame_buffer.data != NULL) { 93 cm->frame_bufs[i].raw_frame_buffer.data != NULL) {
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 200
218 void vp9_swap_mi_and_prev_mi(VP9_COMMON *cm) { 201 void vp9_swap_mi_and_prev_mi(VP9_COMMON *cm) {
219 // Swap indices. 202 // Swap indices.
220 const int tmp = cm->mi_idx; 203 const int tmp = cm->mi_idx;
221 cm->mi_idx = cm->prev_mi_idx; 204 cm->mi_idx = cm->prev_mi_idx;
222 cm->prev_mi_idx = tmp; 205 cm->prev_mi_idx = tmp;
223 206
224 // Current mip will be the prev_mip for the next frame. 207 // Current mip will be the prev_mip for the next frame.
225 cm->mip = cm->mip_array[cm->mi_idx]; 208 cm->mip = cm->mip_array[cm->mi_idx];
226 cm->prev_mip = cm->mip_array[cm->prev_mi_idx]; 209 cm->prev_mip = cm->mip_array[cm->prev_mi_idx];
227 cm->mi_grid_base = cm->mi_grid_base_array[cm->mi_idx];
228 cm->prev_mi_grid_base = cm->mi_grid_base_array[cm->prev_mi_idx];
229 210
230 // Update the upper left visible macroblock ptrs. 211 // Update the upper left visible macroblock ptrs.
231 cm->mi = cm->mip + cm->mi_stride + 1; 212 cm->mi = cm->mip + cm->mi_stride + 1;
232 cm->prev_mi = cm->prev_mip + cm->mi_stride + 1; 213 cm->prev_mi = cm->prev_mip + cm->mi_stride + 1;
233 cm->mi_grid_visible = cm->mi_grid_base + cm->mi_stride + 1;
234 cm->prev_mi_grid_visible = cm->prev_mi_grid_base + cm->mi_stride + 1;
235 } 214 }
OLDNEW
« no previous file with comments | « source/libvpx/vp8/vp8cx_arm.mk ('k') | source/libvpx/vp9/common/vp9_blockd.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698