Index: source/libvpx/vp9/common/vp9_debugmodes.c |
diff --git a/source/libvpx/vp9/common/vp9_debugmodes.c b/source/libvpx/vp9/common/vp9_debugmodes.c |
index d9dace6ac8af49510db89b15a0b80415d1acff3e..e96bc4f2b02bc5faff3ffe7b8b5af328ecab7933 100644 |
--- a/source/libvpx/vp9/common/vp9_debugmodes.c |
+++ b/source/libvpx/vp9/common/vp9_debugmodes.c |
@@ -25,55 +25,65 @@ static void log_frame_info(VP9_COMMON *cm, const char *str, FILE *f) { |
static void print_mi_data(VP9_COMMON *cm, FILE *file, const char *descriptor, |
size_t member_offset) { |
int mi_row, mi_col; |
- int mi_index = 0; |
- // TODO(hkuang): Fix this debug function. |
- MODE_INFO **mi = &cm->mi; |
+ MODE_INFO *mi = cm->mi; |
int rows = cm->mi_rows; |
int cols = cm->mi_cols; |
char prefix = descriptor[0]; |
log_frame_info(cm, descriptor, file); |
- mi_index = 0; |
for (mi_row = 0; mi_row < rows; mi_row++) { |
fprintf(file, "%c ", prefix); |
for (mi_col = 0; mi_col < cols; mi_col++) { |
fprintf(file, "%2d ", |
- *((int*) ((char *) (&mi[mi_index]->mbmi) + |
- member_offset))); |
- mi_index++; |
+ *((int*) ((char *) (&mi->src_mi->mbmi) + |
+ member_offset))); |
+ mi++; |
} |
fprintf(file, "\n"); |
- mi_index += 8; |
+ mi += 8; |
} |
fprintf(file, "\n"); |
} |
+ |
void vp9_print_modes_and_motion_vectors(VP9_COMMON *cm, const char *file) { |
int mi_row; |
int mi_col; |
- int mi_index = 0; |
FILE *mvs = fopen(file, "a"); |
- // TODO(hkuang): Fix this debug function. |
- MODE_INFO **mi = &cm->mi; |
+ MODE_INFO *mi = cm->mi; |
int rows = cm->mi_rows; |
int cols = cm->mi_cols; |
print_mi_data(cm, mvs, "Partitions:", offsetof(MB_MODE_INFO, sb_type)); |
print_mi_data(cm, mvs, "Modes:", offsetof(MB_MODE_INFO, mode)); |
- print_mi_data(cm, mvs, "Skips:", offsetof(MB_MODE_INFO, skip)); |
print_mi_data(cm, mvs, "Ref frame:", offsetof(MB_MODE_INFO, ref_frame[0])); |
print_mi_data(cm, mvs, "Transform:", offsetof(MB_MODE_INFO, tx_size)); |
print_mi_data(cm, mvs, "UV Modes:", offsetof(MB_MODE_INFO, uv_mode)); |
+ // output skip infomation. |
+ log_frame_info(cm, "Skips:", mvs); |
+ for (mi_row = 0; mi_row < rows; mi_row++) { |
+ fprintf(mvs, "S "); |
+ for (mi_col = 0; mi_col < cols; mi_col++) { |
+ fprintf(mvs, "%2d ", mi->src_mi->mbmi.skip); |
+ mi++; |
+ } |
+ fprintf(mvs, "\n"); |
+ mi += 8; |
+ } |
+ fprintf(mvs, "\n"); |
+ |
+ // output motion vectors. |
log_frame_info(cm, "Vectors ", mvs); |
+ mi = cm->mi; |
for (mi_row = 0; mi_row < rows; mi_row++) { |
fprintf(mvs, "V "); |
for (mi_col = 0; mi_col < cols; mi_col++) { |
- fprintf(mvs, "%4d:%4d ", mi[mi_index]->mbmi.mv[0].as_mv.row, |
- mi[mi_index]->mbmi.mv[0].as_mv.col); |
- mi_index++; |
+ fprintf(mvs, "%4d:%4d ", mi->src_mi->mbmi.mv[0].as_mv.row, |
+ mi->src_mi->mbmi.mv[0].as_mv.col); |
+ mi++; |
} |
fprintf(mvs, "\n"); |
- mi_index += 8; |
+ mi += 8; |
} |
fprintf(mvs, "\n"); |