diff options
author | Linjie Fu <linjie.fu@intel.com> | 2018-12-17 08:51:13 +0800 |
---|---|---|
committer | Xiang, Haihao <haihao.xiang@intel.com> | 2018-12-26 16:13:22 +0800 |
commit | 382acf177ce18c069e0293408afa34c5875296ff (patch) | |
tree | 962601d62194926724e8c0adc81cff1f8a77100d | |
parent | 62bad1239d8ea1bb269ca69d3469aa267f57cdec (diff) | |
download | libva-382acf177ce18c069e0293408afa34c5875296ff.tar.gz |
va/va_trace: add va_TraceSurface support for VA_FOURCC_P010
Add va_TraceSurface support for VA_FOURCC_P010.
Currently, va_TraceSurface could only support nv12.
Add pixel_byte to indicate the bytes per pixel according to FOURCC.
Signed-off-by: Linjie Fu <linjie.fu@intel.com>
-rwxr-xr-x | va/va_trace.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/va/va_trace.c b/va/va_trace.c index ff39c8f..7a714a5 100755 --- a/va/va_trace.c +++ b/va/va_trace.c @@ -955,6 +955,7 @@ static void va_TraceSurface(VADisplay dpy, VAContextID context) unsigned int buffer_name; void *buffer = NULL; unsigned char *Y_data, *UV_data, *tmp; + unsigned int pixel_byte; VAStatus va_status; DPY2TRACECTX(dpy, context, VA_INVALID_ID); @@ -1001,20 +1002,27 @@ static void va_TraceSurface(VADisplay dpy, VAContextID context) Y_data = (unsigned char*)buffer; UV_data = (unsigned char*)buffer + chroma_u_offset; + if (fourcc == VA_FOURCC_P010) + pixel_byte = 2; + else + pixel_byte = 1; + tmp = Y_data + luma_stride * trace_ctx->trace_surface_yoff; + for (i=0; i<trace_ctx->trace_surface_height; i++) { fwrite(tmp + trace_ctx->trace_surface_xoff, trace_ctx->trace_surface_width, - 1, trace_ctx->trace_fp_surface); + pixel_byte, trace_ctx->trace_fp_surface); tmp += luma_stride; } + tmp = UV_data + chroma_u_stride * trace_ctx->trace_surface_yoff / 2; - if (fourcc == VA_FOURCC_NV12) { + if (fourcc == VA_FOURCC_NV12 || fourcc == VA_FOURCC_P010) { for (i=0; i<trace_ctx->trace_surface_height/2; i++) { fwrite(tmp + trace_ctx->trace_surface_xoff, trace_ctx->trace_surface_width, - 1, trace_ctx->trace_fp_surface); + pixel_byte, trace_ctx->trace_fp_surface); tmp += chroma_u_stride; } |