diff options
author | Austin Yuan <shengquan.yuan@gmail.com> | 2010-10-25 17:50:21 -0700 |
---|---|---|
committer | Austin Yuan <shengquan.yuan@gmail.com> | 2010-10-25 17:50:21 -0700 |
commit | 37f6ccf3142b0cefdb0feb3b32716ecf38a29e8b (patch) | |
tree | 6994f19316afc6f52344131f61655168569cece8 | |
parent | 132f63761a40393614ff0a51bd100b44750cda00 (diff) | |
download | libva-37f6ccf3142b0cefdb0feb3b32716ecf38a29e8b.tar.gz |
fix LIBVA_TRACE_SURFACE wrong color issue
Signed-off-by: Austin Yuan <shengquan.yuan@gmail.com>
-rw-r--r-- | va/va_trace.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/va/va_trace.c b/va/va_trace.c index 278cbb2..9c5bc16 100644 --- a/va/va_trace.c +++ b/va/va_trace.c @@ -245,7 +245,7 @@ void va_TraceCodedBuf(VADisplay dpy) { VACodedBufferSegment *buf_list = NULL; VAStatus va_status; - unsigned int check_sum = 0; + unsigned char check_sum = 0; DPY2INDEX(dpy); /* can only truncate at a sequence boudary */ @@ -294,9 +294,9 @@ void va_TraceSurface(VADisplay dpy) unsigned int chroma_v_offset; unsigned int buffer_name; void *buffer = NULL; - char *Y_data, *UV_data, *tmp; + unsigned char *Y_data, *UV_data, *tmp; VAStatus va_status; - unsigned int check_sum = 0; + unsigned char check_sum = 0; DPY2INDEX(dpy); va_TraceMsg(idx, "==========dump surface data in file %s\n", trace_context[idx].trace_surface_fn); @@ -333,9 +333,10 @@ void va_TraceSurface(VADisplay dpy) vaUnlockSurface(dpy, trace_context[idx].trace_rendertarget); return; } + va_TraceMsg(idx, "\tbuffer location = 0x%08x\n", buffer); Y_data = buffer; - UV_data = buffer + luma_offset; + UV_data = buffer + chroma_u_offset; tmp = Y_data; for (i=0; i<trace_context[idx].trace_frame_height; i++) { @@ -363,7 +364,7 @@ void va_TraceSurface(VADisplay dpy) vaUnlockSurface(dpy, trace_context[idx].trace_rendertarget); - va_TraceMsg(idx, "\tchecksum = 0x%02x\n", check_sum); + va_TraceMsg(idx, "\tchecksum = 0x%02x\n", check_sum & 0xff); } void va_TraceCreateConfig( @@ -481,13 +482,13 @@ static int va_TraceVABuffers( int i, j; unsigned char *p = pbuf; unsigned int *pi = (unsigned int *)pbuf; - unsigned int check_sum = 0; + unsigned char check_sum = 0; DPY2INDEX(dpy); va_TraceMsg(idx, "==========%s\n", buffer_type_to_string(type)); for (i=0; i<size; i++) { - int value = p[i]; + unsigned char value = p[i]; if ((trace_buffer_data) && ((i%16) == 0)) va_TraceMsg(idx, "\n0x%08x:", i); @@ -498,7 +499,7 @@ static int va_TraceVABuffers( check_sum ^= value; } - va_TraceMsg(idx, "\tchecksum = 0x%02x\n", check_sum); + va_TraceMsg(idx, "\tchecksum = 0x%02x\n", check_sum & 0xff); return 0; } @@ -587,7 +588,8 @@ static void va_TraceVAIQMatrixBufferMPEG4( void *data) { DPY2INDEX(dpy); - + + /* todo: log VAIQMatrixBufferMPEG4 */ va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, data); return; |