package com.twilight.h264.decoder;
public class DebugTool {
public static final boolean DEBUG_MODE = false;
public static int logCount = 0;
public static void dumpDebugFrameData(H264Context h, String msg) {
if(!DEBUG_MODE) return;
dumpDebugFrameData(h, msg, true);
}
public static void dumpDebugFrameData(H264Context h, String msg, boolean incrementCounter) {
if(!DEBUG_MODE) return;
try {
if(incrementCounter)
logCount++;
System.out.println("Dumping Decoder State("+msg+"): "+logCount+", Frame: "+h.frame_num);
// Dump all data inside decoder
System.out.print("ctx.non_zero_count_cache: ");
for(int i=0;i<h.non_zero_count_cache.length;i++) {
System.out.print(","+h.non_zero_count_cache[i]);
} // for
System.out.println();
//for(int j=0;j<h.non_zero_count.length;j++) {
int j = h.mb_xy;
if(h.non_zero_count != null)
if(j>=0 && j<h.non_zero_count.length) {
System.out.print("ctx.non_zero_count["+j+"]: ");
for(int i=0;i<h.non_zero_count[j].length;i++) {
System.out.print(","+h.non_zero_count[j][i]);
} // for i
System.out.println();
} // for j
// Dump all data inside decoder
System.out.print("edge_emu_buffer: ");
for(int i=0;i<(h.s.width+64)*2*21 && logCount == 9537;i++) {
System.out.print(","+h.s.allocated_edge_emu_buffer[h.s.edge_emu_buffer_offset + i]);
} // for
System.out.println();
System.out.print("ctx.mv_cache[0]: ");
for(int i=0;i<40;i++) {
System.out.print(","+h.mv_cache[0][i][0]+","+h.mv_cache[0][i][1]);
} // for
System.out.println();
System.out.print("ctx.mv_cache[1]: ");
for(int i=0;i<40;i++) {
System.out.print(","+h.mv_cache[1][i][0]+","+h.mv_cache[1][i][1]);
} // for
System.out.println();
System.out.print("ctx.mvd_cache[0]: ");
for(int i=0;i<40;i++) {
System.out.print(","+h.mvd_cache[0][i][0]+","+h.mvd_cache[0][i][1]);
} // for
System.out.println();
System.out.print("ctx.mvd_cache[1]: ");
for(int i=0;i<40;i++) {
System.out.print(","+h.mvd_cache[1][i][0]+","+h.mvd_cache[1][i][1]);
} // for
System.out.println();
if(h.mvd_table[0] != null) {
System.out.print("ctx.mvd_table[0]: ");
for(int i=0;i<40;i++) {
System.out.print(","+h.mvd_table[0][i][0]+","+h.mvd_table[0][i][1]);
} // for
System.out.println();
System.out.print("ctx.mvd_table[1]: ");
for(int i=0;i<40;i++) {
System.out.print(","+h.mvd_table[1][i][0]+","+h.mvd_table[1][i][1]);
} // for
System.out.println();
} // if
System.out.print("ctx.ref_cache[0]: ");
for(int i=0;i<40;i++) {
System.out.print(","+h.ref_cache[0][i]+","+h.ref_cache[0][i]);
} // for
System.out.println();
System.out.print("ctx.ref_cache[1]: ");
for(int i=0;i<40;i++) {
System.out.print(","+h.ref_cache[1][i]+","+h.ref_cache[1][i]);
} // for
System.out.println();
System.out.print("error_status_table: ");
if(h.s.error_status_table != null)
for(int i=0;i</*h.s.error_status_table.length*/32 && h.s.error_status_table.length > 32;i++) {
System.out.print(","+h.s.error_status_table[i]);
} // for
System.out.println();
} catch(Exception e) {
e.printStackTrace();
} finally {
} // try
}
public static void printDebugString(String msg) {
if(!DEBUG_MODE) return;
try {
if(logCount==0) logCount++;
System.out.print(msg);
} catch(Exception e) {
e.printStackTrace();
} finally {
} // try
}
public static void dumpFrameData(AVFrame frame) {
if(!DEBUG_MODE) return;
try {
if(logCount==0) logCount++;
System.out.println("****** DUMPING FRAME DATA ******");
int j = 0;
for(int i=0;i</*2000*/100/*frame.data_base[0].length-frame.data_offset[0]*/;i++) {
if(i%40 == 0) {
System.out.println();
System.out.print("["+j+"]: ");
j++;
} // if
System.out.print(""+frame.data_base[0][frame.data_offset[0]+i/*/*+13338-1024+8*512*/]+",");
} // for
System.out.println();
} catch(Exception e) {
e.printStackTrace();
} finally {
} // try
}
}