Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6146 serge 1
 
2
 * Copyright (c) 2009-2011 Intel Corporation. All Rights Reserved.
3
 *
4
 * Permission is hereby granted, free of charge, to any person obtaining a
5
 * copy of this software and associated documentation files (the
6
 * "Software"), to deal in the Software without restriction, including
7
 * without limitation the rights to use, copy, modify, merge, publish,
8
 * distribute, sub license, and/or sell copies of the Software, and to
9
 * permit persons to whom the Software is furnished to do so, subject to
10
 * the following conditions:
11
 *
12
 * The above copyright notice and this permission notice (including the
13
 * next paragraph) shall be included in all copies or substantial portions
14
 * of the Software.
15
 *
16
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
17
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
19
 * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
20
 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
 */
24
25
 
26
#include "sysdeps.h"
27
#include "va.h"
28
#include "va_enc_h264.h"
29
#include "va_backend.h"
30
#include "va_trace.h"
31
#include "va_enc_h264.h"
32
#include "va_enc_jpeg.h"
33
#include "va_enc_vp8.h"
34
#include "va_dec_jpeg.h"
35
#include "va_dec_vp8.h"
36
#include "va_dec_vp9.h"
37
#include "va_dec_hevc.h"
38
#include "va_vpp.h"
39
#include 
40
#include 
41
#include 
42
#include 
43
#include 
44
#include 
45
#include 
46
#include 
47
#include 
48
#include 
49
#include 
50
51
 
52
 * Env. to debug some issue, e.g. the decode/encode issue in a video conference scenerio:
53
 * .LIBVA_TRACE=log_file: general VA parameters saved into log_file
54
 * .LIBVA_TRACE_BUFDATA: dump all VA data buffer into log_file
55
 * .LIBVA_TRACE_CODEDBUF=coded_clip_file: save the coded clip into file coded_clip_file
56
 * .LIBVA_TRACE_SURFACE=yuv_file: save surface YUV into file yuv_file. Use file name to determine
57
 *                                decode/encode or jpeg surfaces
58
 * .LIBVA_TRACE_SURFACE_GEOMETRY=WIDTHxHEIGHT+XOFF+YOFF: only save part of surface context into file
59
 *                                due to storage bandwidth limitation
60
 */
61
62
 
63
64
 
65
int trace_flag = 0;
66
67
 
68
struct trace_context {
69
    /* LIBVA_TRACE */
70
    FILE *trace_fp_log; /* save the log into a file */
71
    char *trace_log_fn; /* file name */
72
73
 
74
    FILE *trace_fp_codedbuf; /* save the encode result into a file */
75
    char *trace_codedbuf_fn; /* file name */
76
77
 
78
    FILE *trace_fp_surface; /* save the surface YUV into a file */
79
    char *trace_surface_fn; /* file name */
80
81
 
82
83
 
84
    VAProfile trace_profile; /* current profile for buffers */
85
    VAEntrypoint trace_entrypoint; /* current entrypoint */
86
87
 
88
    unsigned int trace_slice_no; /* current slice NO */
89
    unsigned int trace_slice_size; /* current slice buffer size */
90
91
 
92
    unsigned int trace_surface_height;
93
    unsigned int trace_surface_xoff;
94
    unsigned int trace_surface_yoff;
95
96
 
97
    unsigned int trace_frame_height; /* current frame height */
98
99
 
100
};
101
102
 
103
104
 
105
    struct trace_context *trace_ctx = TRACE_CTX(dpy);   \
106
                                                        \
107
    if (trace_ctx == NULL)                              \
108
        return;                                         \
109
110
 
111
112
 
113
114
 
115
void va_infoMessage(const char *msg, ...);
116
117
 
118
119
 
120
    VADisplay dpy,
121
    VAContextID context,        /* in */
122
    VABufferID buf_id,          /* in */
123
    VABufferType *type,         /* out */
124
    unsigned int *size,         /* out */
125
    unsigned int *num_elements  /* out */
126
    );
127
128
 
129
                       VASurfaceID surface,
130
                       unsigned int *fourcc, /* following are output argument */
131
                       unsigned int *luma_stride,
132
                       unsigned int *chroma_u_stride,
133
                       unsigned int *chroma_v_stride,
134
                       unsigned int *luma_offset,
135
                       unsigned int *chroma_u_offset,
136
                       unsigned int *chroma_v_offset,
137
                       unsigned int *buffer_name,
138
                       void **buffer
139
                       );
140
141
 
142
                         VASurfaceID surface
143
                         );
144
145
 
146
do {                                                    \
147
    int tmp = strnlen(env_value, sizeof(env_value));    \
148
    int left = sizeof(env_value) - tmp;                 \
149
                                                        \
150
    snprintf(env_value+tmp,                             \
151
             left,                                      \
152
             ".%04d.%08lx",                             \
153
             suffix,                                    \
154
             (unsigned long)trace_ctx);                 \
155
} while (0)
156
157
 
158
{
159
    char env_value[1024];
160
    unsigned short suffix = 0xffff & ((unsigned int)time(NULL));
161
    int trace_index = 0;
162
    FILE *tmp;
163
    struct trace_context *trace_ctx = calloc(sizeof(struct trace_context), 1);
164
165
 
166
        return;
167
168
 
169
        FILE_NAME_SUFFIX(env_value);
170
        trace_ctx->trace_log_fn = strdup(env_value);
171
172
 
173
        if (tmp) {
174
            trace_ctx->trace_fp_log = tmp;
175
            va_infoMessage("LIBVA_TRACE is on, save log into %s\n", trace_ctx->trace_log_fn);
176
            trace_flag = VA_TRACE_FLAG_LOG;
177
        } else
178
            va_errorMessage("Open file %s failed (%s)\n", env_value, strerror(errno));
179
    }
180
181
 
182
    if ((trace_flag & VA_TRACE_FLAG_LOG) && (va_parseConfig("LIBVA_TRACE_BUFDATA", NULL) == 0)) {
183
        trace_flag |= VA_TRACE_FLAG_BUFDATA;
184
        va_infoMessage("LIBVA_TRACE_BUFDATA is on, dump buffer into log file\n");
185
    }
186
187
 
188
    if (va_parseConfig("LIBVA_TRACE_CODEDBUF", &env_value[0]) == 0) {
189
        FILE_NAME_SUFFIX(env_value);
190
        trace_ctx->trace_codedbuf_fn = strdup(env_value);
191
        va_infoMessage("LIBVA_TRACE_CODEDBUF is on, save codedbuf into log file %s\n",
192
                       trace_ctx->trace_codedbuf_fn);
193
        trace_flag |= VA_TRACE_FLAG_CODEDBUF;
194
    }
195
196
 
197
        FILE_NAME_SUFFIX(env_value);
198
        trace_ctx->trace_surface_fn = strdup(env_value);
199
200
 
201
                       trace_ctx->trace_surface_fn);
202
203
 
204
         * cause some side-effect, so only trace the needed surfaces
205
         * to trace encode surface, set the trace file name to sth like *enc*
206
         * to trace decode surface, set the trace file name to sth like *dec*
207
         * if no dec/enc in file name, set both
208
         */
209
        if (strstr(env_value, "dec"))
210
            trace_flag |= VA_TRACE_FLAG_SURFACE_DECODE;
211
        if (strstr(env_value, "enc"))
212
            trace_flag |= VA_TRACE_FLAG_SURFACE_ENCODE;
213
        if (strstr(env_value, "jpeg") || strstr(env_value, "jpg"))
214
            trace_flag |= VA_TRACE_FLAG_SURFACE_JPEG;
215
216
 
217
            char *p = env_value, *q;
218
219
 
220
            p = q+1; /* skip "x" */
221
            trace_ctx->trace_surface_height = strtod(p, &q);
222
            p = q+1; /* skip "+" */
223
            trace_ctx->trace_surface_xoff = strtod(p, &q);
224
            p = q+1; /* skip "+" */
225
            trace_ctx->trace_surface_yoff = strtod(p, &q);
226
227
 
228
                           trace_ctx->trace_surface_width,
229
                           trace_ctx->trace_surface_height,
230
                           trace_ctx->trace_surface_xoff,
231
                           trace_ctx->trace_surface_yoff);
232
        }
233
    }
234
235
 
236
}
237
238
 
239
 
240
{
241
    DPY2TRACECTX(dpy);
242
243
 
244
        fclose(trace_ctx->trace_fp_log);
245
246
 
247
        fclose(trace_ctx->trace_fp_codedbuf);
248
249
 
250
        fclose(trace_ctx->trace_fp_surface);
251
252
 
253
        free(trace_ctx->trace_log_fn);
254
255
 
256
        free(trace_ctx->trace_codedbuf_fn);
257
258
 
259
        free(trace_ctx->trace_surface_fn);
260
261
 
262
    ((VADisplayContextP)dpy)->vatrace = NULL;
263
}
264
265
 
266
{
267
    va_list args;
268
269
 
270
        return;
271
272
 
273
        struct timeval tv;
274
275
 
276
            fprintf(trace_ctx->trace_fp_log, "[%04d.%06d] ",
277
                    (unsigned int)tv.tv_sec & 0xffff, (unsigned int)tv.tv_usec);
278
        va_start(args, msg);
279
        vfprintf(trace_ctx->trace_fp_log, msg, args);
280
        va_end(args);
281
    } else
282
        fflush(trace_ctx->trace_fp_log);
283
}
284
285
 
286
 
287
{
288
    unsigned int i, j;
289
    unsigned int fourcc; /* following are output argument */
290
    unsigned int luma_stride;
291
    unsigned int chroma_u_stride;
292
    unsigned int chroma_v_stride;
293
    unsigned int luma_offset;
294
    unsigned int chroma_u_offset;
295
    unsigned int chroma_v_offset;
296
    unsigned int buffer_name;
297
    void *buffer = NULL;
298
    unsigned char *Y_data, *UV_data, *tmp;
299
    VAStatus va_status;
300
    unsigned char check_sum = 0;
301
    DPY2TRACECTX(dpy);
302
303
 
304
        return;
305
306
 
307
308
 
309
310
 
311
        dpy,
312
        trace_ctx->trace_rendertarget,
313
        &fourcc,
314
        &luma_stride, &chroma_u_stride, &chroma_v_stride,
315
        &luma_offset, &chroma_u_offset, &chroma_v_offset,
316
        &buffer_name, &buffer);
317
318
 
319
        va_TraceMsg(trace_ctx, "Error:vaLockSurface failed\n");
320
        return;
321
    }
322
323
 
324
    va_TraceMsg(trace_ctx, "\twidth = %d\n", trace_ctx->trace_frame_width);
325
    va_TraceMsg(trace_ctx, "\theight = %d\n", trace_ctx->trace_frame_height);
326
    va_TraceMsg(trace_ctx, "\tluma_stride = %d\n", luma_stride);
327
    va_TraceMsg(trace_ctx, "\tchroma_u_stride = %d\n", chroma_u_stride);
328
    va_TraceMsg(trace_ctx, "\tchroma_v_stride = %d\n", chroma_v_stride);
329
    va_TraceMsg(trace_ctx, "\tluma_offset = %d\n", luma_offset);
330
    va_TraceMsg(trace_ctx, "\tchroma_u_offset = %d\n", chroma_u_offset);
331
    va_TraceMsg(trace_ctx, "\tchroma_v_offset = %d\n", chroma_v_offset);
332
333
 
334
        va_TraceMsg(trace_ctx, "Error:vaLockSurface return NULL buffer\n");
335
        va_TraceMsg(trace_ctx, NULL);
336
337
 
338
        return;
339
    }
340
    va_TraceMsg(trace_ctx, "\tbuffer location = 0x%08x\n", buffer);
341
    va_TraceMsg(trace_ctx, NULL);
342
343
 
344
    UV_data = (unsigned char*)buffer + chroma_u_offset;
345
346
 
347
    for (i=0; itrace_surface_height; i++) {
348
        fwrite(tmp + trace_ctx->trace_surface_xoff,
349
               trace_ctx->trace_surface_width,
350
               1, trace_ctx->trace_fp_surface);
351
352
 
353
    }
354
    tmp = UV_data + chroma_u_stride * trace_ctx->trace_surface_yoff / 2;
355
    if (fourcc == VA_FOURCC_NV12) {
356
        for (i=0; itrace_surface_height/2; i++) {
357
            fwrite(tmp + trace_ctx->trace_surface_xoff,
358
                   trace_ctx->trace_surface_width,
359
                   1, trace_ctx->trace_fp_surface);
360
361
 
362
        }
363
    }
364
365
 
366
367
 
368
}
369
370
 
371
 
372
    VADisplay dpy,
373
    int *major_version,     /* out */
374
    int *minor_version      /* out */
375
)
376
{
377
    DPY2TRACECTX(dpy);
378
    TRACE_FUNCNAME(idx);
379
}
380
381
 
382
    VADisplay dpy
383
)
384
{
385
    DPY2TRACECTX(dpy);
386
    TRACE_FUNCNAME(idx);
387
}
388
389
 
390
 
391
    VADisplay dpy,
392
    VAProfile profile,
393
    VAEntrypoint entrypoint,
394
    VAConfigAttrib *attrib_list,
395
    int num_attribs,
396
    VAConfigID *config_id /* out */
397
)
398
{
399
    int i;
400
    int encode, decode, jpeg;
401
    DPY2TRACECTX(dpy);
402
403
 
404
405
 
406
    va_TraceMsg(trace_ctx, "\tentrypoint = %d\n", entrypoint);
407
    va_TraceMsg(trace_ctx, "\tnum_attribs = %d\n", num_attribs);
408
    if (attrib_list) {
409
        for (i = 0; i < num_attribs; i++) {
410
            va_TraceMsg(trace_ctx, "\t\tattrib_list[%d].type = 0x%08x\n", i, attrib_list[i].type);
411
            va_TraceMsg(trace_ctx, "\t\tattrib_list[%d].value = 0x%08x\n", i, attrib_list[i].value);
412
        }
413
    }
414
    va_TraceMsg(trace_ctx, NULL);
415
416
 
417
    trace_ctx->trace_entrypoint = entrypoint;
418
419
 
420
    encode = (trace_ctx->trace_entrypoint == VAEntrypointEncSlice);
421
    decode = (trace_ctx->trace_entrypoint == VAEntrypointVLD);
422
    jpeg = (trace_ctx->trace_entrypoint == VAEntrypointEncPicture);
423
    if ((encode && (trace_flag & VA_TRACE_FLAG_SURFACE_ENCODE)) ||
424
        (decode && (trace_flag & VA_TRACE_FLAG_SURFACE_DECODE)) ||
425
        (jpeg && (trace_flag & VA_TRACE_FLAG_SURFACE_JPEG))) {
426
        FILE *tmp = fopen(trace_ctx->trace_surface_fn, "w");
427
428
 
429
            trace_ctx->trace_fp_surface = tmp;
430
        else {
431
            va_errorMessage("Open file %s failed (%s)\n",
432
                            trace_ctx->trace_surface_fn,
433
                            strerror(errno));
434
            trace_ctx->trace_fp_surface = NULL;
435
            trace_flag &= ~(VA_TRACE_FLAG_SURFACE);
436
        }
437
    }
438
439
 
440
        FILE *tmp = fopen(trace_ctx->trace_codedbuf_fn, "w");
441
442
 
443
            trace_ctx->trace_fp_codedbuf = tmp;
444
        else {
445
            va_errorMessage("Open file %s failed (%s)\n",
446
                            trace_ctx->trace_codedbuf_fn,
447
                            strerror(errno));
448
            trace_ctx->trace_fp_codedbuf = NULL;
449
            trace_flag &= ~VA_TRACE_FLAG_CODEDBUF;
450
        }
451
    }
452
}
453
454
 
455
    struct trace_context *trace_ctx,
456
    VASurfaceAttrib    *attrib_list,
457
    unsigned int       *num_attribs
458
)
459
{
460
    int i, num;
461
    VASurfaceAttrib *p;
462
463
 
464
        return;
465
466
 
467
    num = *num_attribs;
468
    if (num > VASurfaceAttribCount)
469
        num = VASurfaceAttribCount;
470
471
 
472
        int type = p->value.type;
473
474
 
475
476
 
477
        va_TraceMsg(trace_ctx, "\t\tflags = %d\n", p->flags);
478
        va_TraceMsg(trace_ctx, "\t\tvalue.type = %d\n", type);
479
        switch (type) {
480
        case VAGenericValueTypeInteger:
481
            va_TraceMsg(trace_ctx, "\t\tvalue.value.i = 0x%08x\n", p->value.value.i);
482
            break;
483
        case VAGenericValueTypeFloat:
484
            va_TraceMsg(trace_ctx, "\t\tvalue.value.f = %f\n", p->value.value.f);
485
            break;
486
        case VAGenericValueTypePointer:
487
            va_TraceMsg(trace_ctx, "\t\tvalue.value.p = %p\n", p->value.value.p);
488
            if ((p->type == VASurfaceAttribExternalBufferDescriptor) && p->value.value.p) {
489
                VASurfaceAttribExternalBuffers *tmp = (VASurfaceAttribExternalBuffers *) p->value.value.p;
490
                int j;
491
492
 
493
                va_TraceMsg(trace_ctx, "\t\t  pixel_format=0x%08x\n", tmp->pixel_format);
494
                va_TraceMsg(trace_ctx, "\t\t  width=%d\n", tmp->width);
495
                va_TraceMsg(trace_ctx, "\t\t  height=%d\n", tmp->height);
496
                va_TraceMsg(trace_ctx, "\t\t  data_size=%d\n", tmp->data_size);
497
                va_TraceMsg(trace_ctx, "\t\t  num_planes=%d\n", tmp->num_planes);
498
                va_TraceMsg(trace_ctx, "\t\t  pitches[4]=%d %d %d %d\n",
499
                            tmp->pitches[0], tmp->pitches[1], tmp->pitches[2], tmp->pitches[3]);
500
                va_TraceMsg(trace_ctx, "\t\t  offsets[4]=%d %d %d %d\n",
501
                            tmp->offsets[0], tmp->offsets[1], tmp->offsets[2], tmp->offsets[3]);
502
                va_TraceMsg(trace_ctx, "\t\t  flags=0x%08x\n", tmp->flags);
503
                va_TraceMsg(trace_ctx, "\t\t  num_buffers=0x%08x\n", tmp->num_buffers);
504
                va_TraceMsg(trace_ctx, "\t\t  buffers=%p\n", tmp->buffers);
505
                for (j = 0; j < tmp->num_buffers; j++) {
506
                    va_TraceMsg(trace_ctx, "\t\t\tbuffers[%d]=%p\n", j, tmp->buffers[j]);
507
                }
508
            }
509
            break;
510
        case VAGenericValueTypeFunc:
511
            va_TraceMsg(trace_ctx, "\t\tvalue.value.fn = %p\n", p->value.value.fn);
512
            break;
513
        default:
514
            break;
515
        }
516
517
 
518
    }
519
}
520
521
 
522
    VADisplay dpy,
523
    int width,
524
    int height,
525
    int format,
526
    int num_surfaces,
527
    VASurfaceID *surfaces,    /* out */
528
    VASurfaceAttrib    *attrib_list,
529
    unsigned int        num_attribs
530
)
531
{
532
    int i;
533
    DPY2TRACECTX(dpy);
534
535
 
536
537
 
538
    va_TraceMsg(trace_ctx, "\theight = %d\n", height);
539
    va_TraceMsg(trace_ctx, "\tformat = %d\n", format);
540
    va_TraceMsg(trace_ctx, "\tnum_surfaces = %d\n", num_surfaces);
541
542
 
543
        for (i = 0; i < num_surfaces; i++)
544
            va_TraceMsg(trace_ctx, "\t\tsurfaces[%d] = 0x%08x\n", i, surfaces[i]);
545
    }
546
547
 
548
549
 
550
}
551
552
 
553
 
554
    VADisplay dpy,
555
    VASurfaceID *surface_list,
556
    int num_surfaces
557
)
558
{
559
    int i;
560
    DPY2TRACECTX(dpy);
561
562
 
563
564
 
565
        for (i = 0; i < num_surfaces; i++)
566
            va_TraceMsg(trace_ctx, "\t\tsurfaces[%d] = 0x%08x\n", i, surface_list[i]);
567
    }
568
569
 
570
}
571
572
 
573
 
574
    VADisplay dpy,
575
    VAConfigID config_id,
576
    int picture_width,
577
    int picture_height,
578
    int flag,
579
    VASurfaceID *render_targets,
580
    int num_render_targets,
581
    VAContextID *context        /* out */
582
)
583
{
584
    int i;
585
    DPY2TRACECTX(dpy);
586
587
 
588
589
 
590
    va_TraceMsg(trace_ctx, "\twidth = %d\n", picture_width);
591
    va_TraceMsg(trace_ctx, "\theight = %d\n", picture_height);
592
    va_TraceMsg(trace_ctx, "\tflag = 0x%08x\n", flag);
593
    va_TraceMsg(trace_ctx, "\tnum_render_targets = %d\n", num_render_targets);
594
    if (render_targets) {
595
        for (i=0; i
596
            va_TraceMsg(trace_ctx, "\t\trender_targets[%d] = 0x%08x\n", i, render_targets[i]);
597
    }
598
    if (context) {
599
        va_TraceMsg(trace_ctx, "\tcontext = 0x%08x\n", *context);
600
        trace_ctx->trace_context = *context;
601
    } else
602
        trace_ctx->trace_context = VA_INVALID_ID;
603
604
 
605
    trace_ctx->trace_slice_no = 0;
606
607
 
608
    trace_ctx->trace_frame_height = picture_height;
609
610
 
611
        trace_ctx->trace_surface_width = picture_width;
612
    if (trace_ctx->trace_surface_height == 0)
613
        trace_ctx->trace_surface_height = picture_height;
614
}
615
616
 
617
 
618
{
619
    switch (type) {
620
    case VAPictureParameterBufferType: return "VAPictureParameterBufferType";
621
    case VAIQMatrixBufferType: return "VAIQMatrixBufferType";
622
    case VABitPlaneBufferType: return "VABitPlaneBufferType";
623
    case VASliceGroupMapBufferType: return "VASliceGroupMapBufferType";
624
    case VASliceParameterBufferType: return "VASliceParameterBufferType";
625
    case VASliceDataBufferType: return "VASliceDataBufferType";
626
    case VAProtectedSliceDataBufferType: return "VAProtectedSliceDataBufferType";
627
    case VAMacroblockParameterBufferType: return "VAMacroblockParameterBufferType";
628
    case VAResidualDataBufferType: return "VAResidualDataBufferType";
629
    case VADeblockingParameterBufferType: return "VADeblockingParameterBufferType";
630
    case VAImageBufferType: return "VAImageBufferType";
631
    case VAQMatrixBufferType: return "VAQMatrixBufferType";
632
    case VAHuffmanTableBufferType: return "VAHuffmanTableBufferType";
633
/* Following are encode buffer types */
634
    case VAEncCodedBufferType: return "VAEncCodedBufferType";
635
    case VAEncSequenceParameterBufferType: return "VAEncSequenceParameterBufferType";
636
    case VAEncPictureParameterBufferType: return "VAEncPictureParameterBufferType";
637
    case VAEncSliceParameterBufferType: return "VAEncSliceParameterBufferType";
638
    case VAEncPackedHeaderParameterBufferType: return "VAEncPackedHeaderParameterBufferType";
639
    case VAEncPackedHeaderDataBufferType: return "VAEncPackedHeaderDataBufferType";
640
    case VAEncMiscParameterBufferType: return "VAEncMiscParameterBufferType";
641
    case VAEncMacroblockParameterBufferType: return "VAEncMacroblockParameterBufferType";
642
    case VAProcPipelineParameterBufferType: return "VAProcPipelineParameterBufferType";
643
    case VAProcFilterParameterBufferType: return "VAProcFilterParameterBufferType";
644
    default: return "UnknowBuffer";
645
    }
646
}
647
648
 
649
    VADisplay dpy,
650
    VAContextID context,	/* in */
651
    VABufferType type,		/* in */
652
    unsigned int size,		/* in */
653
    unsigned int num_elements,	/* in */
654
    void *data,			/* in */
655
    VABufferID *buf_id		/* out */
656
)
657
{
658
    DPY2TRACECTX(dpy);
659
660
 
661
    if (type != VAEncCodedBufferType)
662
        return;
663
664
 
665
    va_TraceMsg(trace_ctx, "\tbuf_type=%s\n", buffer_type_to_string(type));
666
    if (buf_id)
667
        va_TraceMsg(trace_ctx, "\tbuf_id=0x%x\n", *buf_id);
668
    va_TraceMsg(trace_ctx, "\tsize=%u\n", size);
669
    va_TraceMsg(trace_ctx, "\tnum_elements=%u\n", num_elements);
670
671
 
672
}
673
674
 
675
    VADisplay dpy,
676
    VABufferID buf_id    /* in */
677
)
678
{
679
    VABufferType type;
680
    unsigned int size;
681
    unsigned int num_elements;
682
683
 
684
    int i = 0;
685
686
 
687
688
 
689
690
 
691
    if (type != VAEncCodedBufferType)
692
        return;
693
694
 
695
    va_TraceMsg(trace_ctx, "\tbuf_type=%s\n", buffer_type_to_string(type));
696
    va_TraceMsg(trace_ctx, "\tbuf_id=0x%x\n", buf_id);
697
    va_TraceMsg(trace_ctx, "\tsize=%u\n", size);
698
    va_TraceMsg(trace_ctx, "\tnum_elements=%u\n", num_elements);
699
700
 
701
}
702
703
 
704
 
705
{
706
    mem[0] = val;
707
    mem[1] = val>>8;
708
}
709
710
 
711
{
712
    mem[0] = val;
713
    mem[1] = val>>8;
714
    mem[2] = val>>16;
715
    mem[3] = val>>24;
716
}
717
718
 
719
{
720
    VACodedBufferSegment *buf_list;
721
    unsigned int frame_length = 0;
722
    char header[32];
723
724
 
725
726
 
727
        header[0] = 'D';
728
        header[1] = 'K';
729
        header[2] = 'I';
730
        header[3] = 'F';
731
        mem_put_le16(header+4,  0);                     /* version */
732
        mem_put_le16(header+6,  32);                    /* headersize */
733
        mem_put_le32(header+8,  0x30385056);            /* headersize */
734
        /* write width and height of the first rc_param to IVF file header */
735
        mem_put_le16(header+12, trace_ctx->trace_frame_width);  /* width */
736
        mem_put_le16(header+14, trace_ctx->trace_frame_height); /* height */
737
        mem_put_le32(header+16, 30);            /* rate */
738
        mem_put_le32(header+20, 1);                     /* scale */
739
        mem_put_le32(header+24, 0xffffffff);            /* length */
740
        mem_put_le32(header+28, 0);                     /* unused */
741
        fwrite(header, 1, 32, trace_ctx->trace_fp_codedbuf);
742
    }
743
744
 
745
    while (buf_list != NULL) {
746
        frame_length += buf_list->size;
747
        buf_list = (VACodedBufferSegment *) buf_list->next;
748
    }
749
    mem_put_le32(header, frame_length);
750
    mem_put_le32(header+4, trace_ctx->pts&0xFFFFFFFF);
751
    mem_put_le32(header+8, 0);
752
    fwrite(header, 1, 12, trace_ctx->trace_fp_codedbuf);
753
    trace_ctx->pts++;
754
}
755
756
 
757
    VADisplay dpy,
758
    VABufferID buf_id,    /* in */
759
    void **pbuf           /* out */
760
)
761
{
762
    VABufferType type;
763
    unsigned int size;
764
    unsigned int num_elements;
765
766
 
767
    int i = 0;
768
769
 
770
771
 
772
773
 
774
    if (type != VAEncCodedBufferType)
775
        return;
776
777
 
778
    va_TraceMsg(trace_ctx, "\tbuf_id=0x%x\n", buf_id);
779
    va_TraceMsg(trace_ctx, "\tbuf_type=%s\n", buffer_type_to_string(type));
780
    if ((pbuf == NULL) || (*pbuf == NULL))
781
        return;
782
783
 
784
        va_TraceMsg(trace_ctx, "\tAdd IVF header information\n");
785
        va_TraceCodedBufferIVFHeader(trace_ctx, pbuf);
786
    }
787
788
 
789
    while (buf_list != NULL) {
790
        va_TraceMsg(trace_ctx, "\tCodedbuf[%d] =\n", i++);
791
792
 
793
        va_TraceMsg(trace_ctx, "\t   bit_offset = %u\n", buf_list->bit_offset);
794
        va_TraceMsg(trace_ctx, "\t   status = 0x%08x\n", buf_list->status);
795
        va_TraceMsg(trace_ctx, "\t   reserved = 0x%08x\n", buf_list->reserved);
796
        va_TraceMsg(trace_ctx, "\t   buf = 0x%08x\n", buf_list->buf);
797
798
 
799
            va_TraceMsg(trace_ctx, "\tDump the content to file\n");
800
            fwrite(buf_list->buf, buf_list->size, 1, trace_ctx->trace_fp_codedbuf);
801
        }
802
803
 
804
    }
805
    va_TraceMsg(trace_ctx, NULL);
806
}
807
808
 
809
    VADisplay dpy,
810
    VAContextID context,
811
    VABufferID buffer,
812
    VABufferType type,
813
    unsigned int size,
814
    unsigned int num_elements,
815
    void *pbuf
816
)
817
{
818
    unsigned int i;
819
    unsigned char *p = pbuf;
820
821
 
822
823
 
824
825
 
826
        for (i=0; i
827
            unsigned char value =  p[i];
828
829
 
830
                fprintf(trace_ctx->trace_fp_log, "\t\t0x%04x:", i);
831
            else if ((i%16) == 0)
832
                fprintf(trace_ctx->trace_fp_log, "\n\t\t0x%04x:", i);
833
834
 
835
        }
836
        fprintf(trace_ctx->trace_fp_log, "\n");
837
    }
838
839
 
840
841
 
842
}
843
844
 
845
 
846
    VADisplay dpy,
847
    VAContextID context,
848
    VABufferID buffer,
849
    VABufferType type,
850
    unsigned int size,
851
    unsigned int num_elements,
852
    void *data)
853
{
854
    VAPictureParameterBufferMPEG2 *p=(VAPictureParameterBufferMPEG2 *)data;
855
    DPY2TRACECTX(dpy);
856
857
 
858
859
 
860
    va_TraceMsg(trace_ctx,"\tvertical size= %d\n", p->vertical_size);
861
    va_TraceMsg(trace_ctx,"\tforward reference picture= %d\n", p->forward_reference_picture);
862
    va_TraceMsg(trace_ctx,"\tbackward reference picture= %d\n", p->backward_reference_picture);
863
    va_TraceMsg(trace_ctx,"\tpicture coding type= %d\n", p->picture_coding_type);
864
    va_TraceMsg(trace_ctx,"\tf mode= %d\n", p->f_code);
865
866
 
867
    va_TraceMsg(trace_ctx,"\tintra_dc_precision= %d\n", p->picture_coding_extension.bits.intra_dc_precision);
868
    va_TraceMsg(trace_ctx,"\tpicture_structure= %d\n", p->picture_coding_extension.bits.picture_structure);
869
    va_TraceMsg(trace_ctx,"\ttop_field_first= %d\n", p->picture_coding_extension.bits.top_field_first);
870
    va_TraceMsg(trace_ctx,"\tframe_pred_frame_dct= %d\n", p->picture_coding_extension.bits.frame_pred_frame_dct);
871
    va_TraceMsg(trace_ctx,"\tconcealment_motion_vectors= %d\n", p->picture_coding_extension.bits.concealment_motion_vectors);
872
    va_TraceMsg(trace_ctx,"\tq_scale_type= %d\n", p->picture_coding_extension.bits.q_scale_type);
873
    va_TraceMsg(trace_ctx,"\tintra_vlc_format= %d\n", p->picture_coding_extension.bits.intra_vlc_format);
874
    va_TraceMsg(trace_ctx,"\talternate_scan= %d\n", p->picture_coding_extension.bits.alternate_scan);
875
    va_TraceMsg(trace_ctx,"\trepeat_first_field= %d\n", p->picture_coding_extension.bits.repeat_first_field);
876
    va_TraceMsg(trace_ctx,"\tprogressive_frame= %d\n", p->picture_coding_extension.bits.progressive_frame);
877
    va_TraceMsg(trace_ctx,"\tis_first_field= %d\n", p->picture_coding_extension.bits.is_first_field);
878
    va_TraceMsg(trace_ctx, NULL);
879
880
 
881
}
882
883
 
884
 
885
    VADisplay dpy,
886
    VAContextID context,
887
    VABufferID buffer,
888
    VABufferType type,
889
    unsigned int size,
890
    unsigned int num_elements,
891
    void *data)
892
{
893
    VAIQMatrixBufferMPEG2 *p=(VAIQMatrixBufferMPEG2 *)data;
894
    DPY2TRACECTX(dpy);
895
896
 
897
898
 
899
    va_TraceMsg(trace_ctx,"\tload_non_intra_quantiser_matrix = %d\n", p->load_non_intra_quantiser_matrix);
900
    va_TraceMsg(trace_ctx,"\tload_chroma_intra_quantiser_matrix = %d\n", p->load_chroma_intra_quantiser_matrix);
901
    va_TraceMsg(trace_ctx,"\tload_chroma_non_intra_quantiser_matrix = %d\n", p->load_chroma_non_intra_quantiser_matrix);
902
    va_TraceMsg(trace_ctx,"\tintra_quantiser_matrix = %d\n", p->intra_quantiser_matrix);
903
    va_TraceMsg(trace_ctx,"\tnon_intra_quantiser_matrix = %d\n", p->non_intra_quantiser_matrix);
904
    va_TraceMsg(trace_ctx,"\tchroma_intra_quantiser_matrix = %d\n", p->chroma_intra_quantiser_matrix);
905
    va_TraceMsg(trace_ctx,"\tchroma_non_intra_quantiser_matrix = %d\n", p->chroma_non_intra_quantiser_matrix);
906
    va_TraceMsg(trace_ctx, NULL);
907
908
 
909
}
910
911
 
912
 
913
    VADisplay dpy,
914
    VAContextID context,
915
    VABufferID buffer,
916
    VABufferType type,
917
    unsigned int size,
918
    unsigned int num_elements,
919
    void *data)
920
{
921
    VASliceParameterBufferMPEG2 *p=(VASliceParameterBufferMPEG2 *)data;
922
923
 
924
925
 
926
927
 
928
929
 
930
931
 
932
    va_TraceMsg(trace_ctx,"\tslice_data_offset = %d\n", p->slice_data_offset);
933
    va_TraceMsg(trace_ctx,"\tslice_data_flag = %d\n", p->slice_data_flag);
934
    va_TraceMsg(trace_ctx,"\tmacroblock_offset = %d\n", p->macroblock_offset);
935
    va_TraceMsg(trace_ctx,"\tslice_horizontal_position = %d\n", p->slice_horizontal_position);
936
    va_TraceMsg(trace_ctx,"\tslice_vertical_position = %d\n", p->slice_vertical_position);
937
    va_TraceMsg(trace_ctx,"\tquantiser_scale_code = %d\n", p->quantiser_scale_code);
938
    va_TraceMsg(trace_ctx,"\tintra_slice_flag = %d\n", p->intra_slice_flag);
939
    va_TraceMsg(trace_ctx, NULL);
940
941
 
942
}
943
944
 
945
    VADisplay dpy,
946
    VAContextID context,
947
    VABufferID buffer,
948
    VABufferType type,
949
    unsigned int size,
950
    unsigned int num_elements,
951
    void *data)
952
{
953
    int i;
954
    VAPictureParameterBufferJPEGBaseline *p=(VAPictureParameterBufferJPEGBaseline *)data;
955
    DPY2TRACECTX(dpy);
956
957
 
958
    va_TraceMsg(trace_ctx,"\tpicture_width = %u\n", p->picture_width);
959
    va_TraceMsg(trace_ctx,"\tpicture_height = %u\n", p->picture_height);
960
    va_TraceMsg(trace_ctx,"\tcomponents = \n");
961
    for (i = 0; i < p->num_components && i < 255; ++i) {
962
        va_TraceMsg(trace_ctx,"\t\t[%d] component_id = %u\n", i, p->components[i].component_id);
963
        va_TraceMsg(trace_ctx,"\t\t[%d] h_sampling_factor = %u\n", i, p->components[i].h_sampling_factor);
964
        va_TraceMsg(trace_ctx,"\t\t[%d] v_sampling_factor = %u\n", i, p->components[i].v_sampling_factor);
965
        va_TraceMsg(trace_ctx,"\t\t[%d] quantiser_table_selector = %u\n", i, p->components[i].quantiser_table_selector);
966
    }
967
}
968
969
 
970
    VADisplay dpy,
971
    VAContextID context,
972
    VABufferID buffer,
973
    VABufferType type,
974
    unsigned int size,
975
    unsigned int num_elements,
976
    void *data)
977
{
978
    int i, j;
979
    static char tmp[1024];
980
    VAIQMatrixBufferJPEGBaseline *p=(VAIQMatrixBufferJPEGBaseline *)data;
981
    DPY2TRACECTX(dpy);
982
    va_TraceMsg(trace_ctx,"*VAIQMatrixParameterBufferJPEG\n");
983
    va_TraceMsg(trace_ctx,"\tload_quantiser_table =\n");
984
    for (i = 0; i < 4; ++i) {
985
        va_TraceMsg(trace_ctx,"\t\t[%d] = %u\n", i, p->load_quantiser_table[i]);
986
    }
987
    va_TraceMsg(trace_ctx,"\tquantiser_table =\n");
988
    for (i = 0; i < 4; ++i) {
989
        memset(tmp, 0, sizeof tmp);
990
        for (j = 0; j < 64; ++j) {
991
            sprintf(tmp + strlen(tmp), "%u ", p->quantiser_table[i][j]);
992
        }
993
        va_TraceMsg(trace_ctx,"\t\t[%d] = %s\n", i, tmp);
994
    }
995
}
996
997
 
998
    VADisplay dpy,
999
    VAContextID context,
1000
    VABufferID buffer,
1001
    VABufferType type,
1002
    unsigned int size,
1003
    unsigned int num_elements,
1004
    void *data)
1005
{
1006
    int i;
1007
    VASliceParameterBufferJPEGBaseline *p=(VASliceParameterBufferJPEGBaseline *)data;
1008
    DPY2TRACECTX(dpy);
1009
    va_TraceMsg(trace_ctx,"*VASliceParameterBufferJPEG\n");
1010
    va_TraceMsg(trace_ctx,"\tslice_data_size = %u\n", p->slice_data_size);
1011
    va_TraceMsg(trace_ctx,"\tslice_data_offset = %u\n", p->slice_data_offset);
1012
    va_TraceMsg(trace_ctx,"\tslice_data_flag = %u\n", p->slice_data_flag);
1013
    va_TraceMsg(trace_ctx,"\tslice_horizontal_position = %u\n", p->slice_horizontal_position);
1014
    va_TraceMsg(trace_ctx,"\tslice_vertical_position = %u\n", p->slice_vertical_position);
1015
    va_TraceMsg(trace_ctx,"\tcomponents = \n");
1016
    for (i = 0; i < p->num_components && i < 4; ++i) {
1017
        va_TraceMsg(trace_ctx,"\t\t[%d] component_selector = %u\n", i, p->components[i].component_selector);
1018
        va_TraceMsg(trace_ctx,"\t\t[%d] dc_table_selector = %u\n", i, p->components[i].dc_table_selector);
1019
        va_TraceMsg(trace_ctx,"\t\t[%d] ac_table_selector = %u\n", i, p->components[i].ac_table_selector);
1020
    }
1021
    va_TraceMsg(trace_ctx,"\trestart_interval = %u\n", p->restart_interval);
1022
    va_TraceMsg(trace_ctx,"\tnum_mcus = %u\n", p->num_mcus);
1023
}
1024
1025
 
1026
    VADisplay dpy,
1027
    VAContextID context,
1028
    VABufferID buffer,
1029
    VABufferType type,
1030
    unsigned int size,
1031
    unsigned int num_elements,
1032
    void *data)
1033
{
1034
    int i, j;
1035
    static char tmp[1024];
1036
    VAHuffmanTableBufferJPEGBaseline *p=(VAHuffmanTableBufferJPEGBaseline *)data;
1037
    DPY2TRACECTX(dpy);
1038
    va_TraceMsg(trace_ctx,"*VAHuffmanTableBufferJPEG\n");
1039
1040
 
1041
        va_TraceMsg(trace_ctx,"\tload_huffman_table[%d] =%u\n", i, p->load_huffman_table[0]);
1042
        va_TraceMsg(trace_ctx,"\thuffman_table[%d] =\n", i);
1043
        memset(tmp, 0, sizeof tmp);
1044
        for (j = 0; j < 16; ++j) {
1045
            sprintf(tmp + strlen(tmp), "%u ", p->huffman_table[i].num_dc_codes[j]);
1046
        }
1047
        va_TraceMsg(trace_ctx,"\t\tnum_dc_codes =%s\n", tmp);
1048
        memset(tmp, 0, sizeof tmp);
1049
        for (j = 0; j < 12; ++j) {
1050
            sprintf(tmp + strlen(tmp), "%u ", p->huffman_table[i].dc_values[j]);
1051
        }
1052
        va_TraceMsg(trace_ctx,"\t\tdc_values =%s\n", tmp);
1053
        memset(tmp, 0, sizeof tmp);
1054
        for (j = 0; j < 16; ++j) {
1055
            sprintf(tmp + strlen(tmp), "%u ", p->huffman_table[i].num_ac_codes[j]);
1056
        }
1057
        va_TraceMsg(trace_ctx,"\t\tnum_ac_codes =%s\n", tmp);
1058
        memset(tmp, 0, sizeof tmp);
1059
        for (j = 0; j < 162; ++j) {
1060
            sprintf(tmp + strlen(tmp), "%u ", p->huffman_table[i].ac_values[j]);
1061
        }
1062
        va_TraceMsg(trace_ctx,"\t\tac_values =%s\n", tmp);
1063
        memset(tmp, 0, sizeof tmp);
1064
        for (j = 0; j < 2; ++j) {
1065
            sprintf(tmp + strlen(tmp), "%u ", p->huffman_table[i].pad[j]);
1066
        }
1067
        va_TraceMsg(trace_ctx,"\t\tpad =%s\n", tmp);
1068
    }
1069
}
1070
1071
 
1072
    VADisplay dpy,
1073
    VAContextID context,
1074
    VABufferID buffer,
1075
    VABufferType type,
1076
    unsigned int size,
1077
    unsigned int num_elements,
1078
    void *data)
1079
{
1080
    int i;
1081
    VAPictureParameterBufferMPEG4 *p=(VAPictureParameterBufferMPEG4 *)data;
1082
1083
 
1084
1085
 
1086
    va_TraceMsg(trace_ctx,"\tvop_width = %d\n", p->vop_width);
1087
    va_TraceMsg(trace_ctx,"\tvop_height = %d\n", p->vop_height);
1088
    va_TraceMsg(trace_ctx,"\tforward_reference_picture = %d\n", p->forward_reference_picture);
1089
    va_TraceMsg(trace_ctx,"\tbackward_reference_picture = %d\n", p->backward_reference_picture);
1090
    va_TraceMsg(trace_ctx,"\tvol_fields value = %d\n", p->vol_fields.value);
1091
    va_TraceMsg(trace_ctx,"\tshort_video_header= %d\n", p->vol_fields.bits.short_video_header);
1092
    va_TraceMsg(trace_ctx,"\tchroma_format= %d\n", p->vol_fields.bits.chroma_format);
1093
    va_TraceMsg(trace_ctx,"\tinterlaced= %d\n", p->vol_fields.bits.interlaced);
1094
    va_TraceMsg(trace_ctx,"\tobmc_disable= %d\n", p->vol_fields.bits.obmc_disable);
1095
    va_TraceMsg(trace_ctx,"\tsprite_enable= %d\n", p->vol_fields.bits.sprite_enable);
1096
    va_TraceMsg(trace_ctx,"\tsprite_warping_accuracy= %d\n", p->vol_fields.bits.sprite_warping_accuracy);
1097
    va_TraceMsg(trace_ctx,"\tquant_type= %d\n", p->vol_fields.bits.quant_type);
1098
    va_TraceMsg(trace_ctx,"\tquarter_sample= %d\n", p->vol_fields.bits.quarter_sample);
1099
    va_TraceMsg(trace_ctx,"\tdata_partitioned= %d\n", p->vol_fields.bits.data_partitioned);
1100
    va_TraceMsg(trace_ctx,"\treversible_vlc= %d\n", p->vol_fields.bits.reversible_vlc);
1101
    va_TraceMsg(trace_ctx,"\tresync_marker_disable= %d\n", p->vol_fields.bits.resync_marker_disable);
1102
    va_TraceMsg(trace_ctx,"\tno_of_sprite_warping_points = %d\n", p->no_of_sprite_warping_points);
1103
    va_TraceMsg(trace_ctx,"\tsprite_trajectory_du =");
1104
    for(i=0;i<3;i++)
1105
        va_TraceMsg(trace_ctx,"\t%d", p->sprite_trajectory_du[i]);
1106
1107
 
1108
    va_TraceMsg(trace_ctx,"\tsprite_trajectory_dv =");
1109
    for(i=0;i<3;i++)
1110
        va_TraceMsg(trace_ctx,"\t%d", p->sprite_trajectory_dv[i]);
1111
    va_TraceMsg(trace_ctx,"\n");
1112
    va_TraceMsg(trace_ctx,"\tvop_fields value = %d\n", p->vop_fields.value);
1113
    va_TraceMsg(trace_ctx,"\tvop_coding_type= %d\n", p->vop_fields.bits.vop_coding_type);
1114
    va_TraceMsg(trace_ctx,"\tbackward_reference_vop_coding_type= %d\n", p->vop_fields.bits.backward_reference_vop_coding_type);
1115
    va_TraceMsg(trace_ctx,"\tvop_rounding_type= %d\n", p->vop_fields.bits.vop_rounding_type);
1116
    va_TraceMsg(trace_ctx,"\tintra_dc_vlc_thr= %d\n", p->vop_fields.bits.intra_dc_vlc_thr);
1117
    va_TraceMsg(trace_ctx,"\ttop_field_first= %d\n", p->vop_fields.bits.top_field_first);
1118
    va_TraceMsg(trace_ctx,"\talternate_vertical_scan_flag= %d\n", p->vop_fields.bits.alternate_vertical_scan_flag);
1119
    va_TraceMsg(trace_ctx,"\tvop_fcode_forward = %d\n", p->vop_fcode_forward);
1120
    va_TraceMsg(trace_ctx,"\tvop_fcode_backward = %d\n", p->vop_fcode_backward);
1121
    va_TraceMsg(trace_ctx,"\tnum_gobs_in_vop = %d\n", p->num_gobs_in_vop);
1122
    va_TraceMsg(trace_ctx,"\tnum_macroblocks_in_gob = %d\n", p->num_macroblocks_in_gob);
1123
    va_TraceMsg(trace_ctx,"\tTRB = %d\n", p->TRB);
1124
    va_TraceMsg(trace_ctx,"\tTRD = %d\n", p->TRD);
1125
    va_TraceMsg(trace_ctx, NULL);
1126
1127
 
1128
}
1129
1130
 
1131
 
1132
    VADisplay dpy,
1133
    VAContextID context,
1134
    VABufferID buffer,
1135
    VABufferType type,
1136
    unsigned int size,
1137
    unsigned int num_elements,
1138
    void *data)
1139
{
1140
    int i;
1141
    VAIQMatrixBufferMPEG4 *p=(VAIQMatrixBufferMPEG4 *)data;
1142
    DPY2TRACECTX(dpy);
1143
1144
 
1145
1146
 
1147
    va_TraceMsg(trace_ctx,"\tload_non_intra_quant_mat = %d\n", p->load_non_intra_quant_mat);
1148
    va_TraceMsg(trace_ctx,"\tintra_quant_mat =\n");
1149
    for(i=0;i<64;i++)
1150
        va_TraceMsg(trace_ctx,"\t\t%d\n", p->intra_quant_mat[i]);
1151
1152
 
1153
    for(i=0;i<64;i++)
1154
        va_TraceMsg(trace_ctx,"\t\t%d\n", p->non_intra_quant_mat[i]);
1155
    va_TraceMsg(trace_ctx, NULL);
1156
1157
 
1158
}
1159
1160
 
1161
    VADisplay dpy,
1162
    VAContextID context,
1163
    VABufferID buffer,
1164
    VABufferType type,
1165
    unsigned int size,
1166
    unsigned int num_elements,
1167
    void *data)
1168
{
1169
    VAEncSequenceParameterBufferMPEG4 *p = (VAEncSequenceParameterBufferMPEG4 *)data;
1170
    DPY2TRACECTX(dpy);
1171
1172
 
1173
1174
 
1175
    va_TraceMsg(trace_ctx, "\tintra_period = %d\n", p->intra_period);
1176
    va_TraceMsg(trace_ctx, "\tvideo_object_layer_width = %d\n", p->video_object_layer_width);
1177
    va_TraceMsg(trace_ctx, "\tvideo_object_layer_height = %d\n", p->video_object_layer_height);
1178
    va_TraceMsg(trace_ctx, "\tvop_time_increment_resolution = %d\n", p->vop_time_increment_resolution);
1179
    va_TraceMsg(trace_ctx, "\tfixed_vop_rate = %d\n", p->fixed_vop_rate);
1180
    va_TraceMsg(trace_ctx, "\tfixed_vop_time_increment = %d\n", p->fixed_vop_time_increment);
1181
    va_TraceMsg(trace_ctx, "\tbits_per_second = %d\n", p->bits_per_second);
1182
    va_TraceMsg(trace_ctx, "\tframe_rate = %d\n", p->frame_rate);
1183
    va_TraceMsg(trace_ctx, "\tinitial_qp = %d\n", p->initial_qp);
1184
    va_TraceMsg(trace_ctx, "\tmin_qp = %d\n", p->min_qp);
1185
    va_TraceMsg(trace_ctx, NULL);
1186
1187
 
1188
}
1189
1190
 
1191
    VADisplay dpy,
1192
    VAContextID context,
1193
    VABufferID buffer,
1194
    VABufferType type,
1195
    unsigned int size,
1196
    unsigned int num_elements,
1197
    void *data)
1198
{
1199
    VAEncPictureParameterBufferMPEG4 *p = (VAEncPictureParameterBufferMPEG4 *)data;
1200
    DPY2TRACECTX(dpy);
1201
1202
 
1203
    va_TraceMsg(trace_ctx, "\treference_picture = 0x%08x\n", p->reference_picture);
1204
    va_TraceMsg(trace_ctx, "\treconstructed_picture = 0x%08x\n", p->reconstructed_picture);
1205
    va_TraceMsg(trace_ctx, "\tcoded_buf = 0x%08x\n", p->coded_buf);
1206
    va_TraceMsg(trace_ctx, "\tpicture_width = %d\n", p->picture_width);
1207
    va_TraceMsg(trace_ctx, "\tpicture_height = %d\n", p->picture_height);
1208
    va_TraceMsg(trace_ctx, "\tmodulo_time_base = %d\n", p->modulo_time_base);
1209
    va_TraceMsg(trace_ctx, "\tvop_time_increment = %d\n", p->vop_time_increment);
1210
    va_TraceMsg(trace_ctx, "\tpicture_type = %d\n", p->picture_type);
1211
    va_TraceMsg(trace_ctx, NULL);
1212
1213
 
1214
}
1215
1216
 
1217
 
1218
    VADisplay dpy,
1219
    VAContextID context,
1220
    VABufferID buffer,
1221
    VABufferType type,
1222
    unsigned int size,
1223
    unsigned int num_elements,
1224
    void *data)
1225
{
1226
    VASliceParameterBufferMPEG4 *p=(VASliceParameterBufferMPEG4 *)data;
1227
1228
 
1229
1230
 
1231
1232
 
1233
1234
 
1235
1236
 
1237
    va_TraceMsg(trace_ctx,"\tslice_data_offset = %d\n", p->slice_data_offset);
1238
    va_TraceMsg(trace_ctx,"\tslice_data_flag = %d\n", p->slice_data_flag);
1239
    va_TraceMsg(trace_ctx,"\tmacroblock_offset = %d\n", p->macroblock_offset);
1240
    va_TraceMsg(trace_ctx,"\tmacroblock_number = %d\n", p->macroblock_number);
1241
    va_TraceMsg(trace_ctx,"\tquant_scale = %d\n", p->quant_scale);
1242
    va_TraceMsg(trace_ctx, NULL);
1243
1244
 
1245
}
1246
1247
 
1248
 
1249
    struct trace_context *trace_ctx,
1250
    const char *name,   /* in */
1251
    unsigned int flag   /* in */
1252
)
1253
{
1254
    if (flag != 0) {
1255
        va_TraceMsg(trace_ctx, "%s = %x\n", name, flag);
1256
    }
1257
}
1258
1259
 
1260
 
1261
    VADisplay dpy,
1262
    VAContextID context,
1263
    VABufferID buffer,
1264
    VABufferType type,
1265
    unsigned int size,
1266
    unsigned int num_elements,
1267
    void *data)
1268
{
1269
    int i;
1270
    VAPictureParameterBufferHEVC *p = (VAPictureParameterBufferHEVC*)data;
1271
1272
 
1273
1274
 
1275
1276
 
1277
    va_TraceMsg(trace_ctx, "\tCurrPic.frame_idx = %d\n", p->CurrPic.pic_order_cnt);
1278
    va_TraceMsg(trace_ctx, "\tCurrPic.flags = %d\n", p->CurrPic.flags);
1279
1280
 
1281
    for (i = 0; i < 15; i++)
1282
    {
1283
        if ((p->ReferenceFrames[i].picture_id != VA_INVALID_SURFACE) &&
1284
            ((p->ReferenceFrames[i].flags & VA_PICTURE_HEVC_INVALID) == 0)) {
1285
            va_TraceMsg(trace_ctx, "\t\t%08d-%08d-0x%08x\n",
1286
                        p->ReferenceFrames[i].picture_id,
1287
                        p->ReferenceFrames[i].pic_order_cnt,
1288
                        p->ReferenceFrames[i].flags);
1289
        } else
1290
            va_TraceMsg(trace_ctx, "\t\tinv-inv-inv-inv-inv\n");
1291
    }
1292
    va_TraceMsg(trace_ctx, "\n");
1293
1294
 
1295
    va_TraceMsg(trace_ctx, "\tpic_height_in_luma_samples = %d\n", p->pic_height_in_luma_samples);
1296
    va_TraceMsg(trace_ctx, "\tpic_fields = %d\n", p->pic_fields.value);
1297
1298
 
1299
    va_TraceMsg(trace_ctx, "\tseparate_colour_plane_flag = %d\n", p->pic_fields.bits.separate_colour_plane_flag);
1300
    va_TraceMsg(trace_ctx, "\tpcm_enabled_flag = %d\n", p->pic_fields.bits.pcm_enabled_flag);
1301
    va_TraceMsg(trace_ctx, "\tscaling_list_enabled_flag = %d\n", p->pic_fields.bits.scaling_list_enabled_flag);
1302
    va_TraceMsg(trace_ctx, "\ttransform_skip_enabled_flag = %d\n", p->pic_fields.bits.transform_skip_enabled_flag);
1303
    va_TraceMsg(trace_ctx, "\tamp_enabled_flag = %d\n", p->pic_fields.bits.amp_enabled_flag);
1304
    va_TraceMsg(trace_ctx, "\tstrong_intra_smoothing_enabled_flag = %d\n", p->pic_fields.bits.strong_intra_smoothing_enabled_flag);
1305
    va_TraceMsg(trace_ctx, "\tsign_data_hiding_enabled_flag = %d\n", p->pic_fields.bits.sign_data_hiding_enabled_flag);
1306
    va_TraceMsg(trace_ctx, "\tconstrained_intra_pred_flag = %d\n", p->pic_fields.bits.constrained_intra_pred_flag);
1307
    va_TraceMsg(trace_ctx, "\tcu_qp_delta_enabled_flag = %d\n", p->pic_fields.bits.cu_qp_delta_enabled_flag);
1308
    va_TraceMsg(trace_ctx, "\tweighted_pred_flag = %d\n", p->pic_fields.bits.weighted_pred_flag);
1309
    va_TraceMsg(trace_ctx, "\tweighted_bipred_flag = %d\n", p->pic_fields.bits.weighted_bipred_flag);
1310
    va_TraceMsg(trace_ctx, "\ttransquant_bypass_enabled_flag = %d\n", p->pic_fields.bits.transquant_bypass_enabled_flag);
1311
    va_TraceMsg(trace_ctx, "\ttiles_enabled_flag = %d\n", p->pic_fields.bits.tiles_enabled_flag);
1312
    va_TraceMsg(trace_ctx, "\tentropy_coding_sync_enabled_flag = %d\n", p->pic_fields.bits.entropy_coding_sync_enabled_flag);
1313
    va_TraceMsg(trace_ctx, "\tpps_loop_filter_across_slices_enabled_flag = %d\n", p->pic_fields.bits.pps_loop_filter_across_slices_enabled_flag);
1314
    va_TraceMsg(trace_ctx, "\tloop_filter_across_tiles_enabled_flag = %d\n", p->pic_fields.bits.loop_filter_across_tiles_enabled_flag);
1315
    va_TraceMsg(trace_ctx, "\tpcm_loop_filter_disabled_flag = %d\n", p->pic_fields.bits.pcm_loop_filter_disabled_flag);
1316
    va_TraceMsg(trace_ctx, "\tNoPicReorderingFlag = %d\n", p->pic_fields.bits.NoPicReorderingFlag);
1317
    va_TraceMsg(trace_ctx, "\tNoBiPredFlag = %d\n", p->pic_fields.bits.NoBiPredFlag);
1318
    va_TraceMsg(trace_ctx, "\tReservedBits = %d\n", p->pic_fields.bits.ReservedBits);
1319
1320
 
1321
    va_TraceMsg(trace_ctx, "\tbit_depth_luma_minus8 = %d\n", p->bit_depth_luma_minus8);
1322
    va_TraceMsg(trace_ctx, "\tbit_depth_chroma_minus8 = %d\n", p->bit_depth_chroma_minus8);
1323
    va_TraceMsg(trace_ctx, "\tpcm_sample_bit_depth_luma_minus1 = %d\n", p->pcm_sample_bit_depth_luma_minus1);
1324
    va_TraceMsg(trace_ctx, "\tpcm_sample_bit_depth_chroma_minus1 = %d\n", p->pcm_sample_bit_depth_chroma_minus1);
1325
    va_TraceMsg(trace_ctx, "\tlog2_min_luma_coding_block_size_minus3 = %d\n", p->log2_min_luma_coding_block_size_minus3);
1326
    va_TraceMsg(trace_ctx, "\tlog2_diff_max_min_luma_coding_block_size = %d\n", p->log2_diff_max_min_luma_coding_block_size);
1327
    va_TraceMsg(trace_ctx, "\tlog2_min_transform_block_size_minus2 = %d\n", p->log2_min_transform_block_size_minus2);
1328
    va_TraceMsg(trace_ctx, "\tlog2_diff_max_min_transform_block_size = %d\n", p->log2_diff_max_min_transform_block_size);
1329
    va_TraceMsg(trace_ctx, "\tlog2_min_pcm_luma_coding_block_size_minus3 = %d\n", p->log2_min_pcm_luma_coding_block_size_minus3);
1330
    va_TraceMsg(trace_ctx, "\tlog2_diff_max_min_pcm_luma_coding_block_size = %d\n", p->log2_diff_max_min_pcm_luma_coding_block_size);
1331
    va_TraceMsg(trace_ctx, "\tmax_transform_hierarchy_depth_intra = %d\n", p->max_transform_hierarchy_depth_intra);
1332
    va_TraceMsg(trace_ctx, "\tmax_transform_hierarchy_depth_inter = %d\n", p->max_transform_hierarchy_depth_inter);
1333
    va_TraceMsg(trace_ctx, "\tinit_qp_minus26 = %d\n", p->init_qp_minus26);
1334
    va_TraceMsg(trace_ctx, "\tdiff_cu_qp_delta_depth = %d\n", p->diff_cu_qp_delta_depth);
1335
    va_TraceMsg(trace_ctx, "\tpps_cb_qp_offset = %d\n", p->pps_cb_qp_offset);
1336
    va_TraceMsg(trace_ctx, "\tpps_cr_qp_offset = %d\n", p->pps_cr_qp_offset);
1337
    va_TraceMsg(trace_ctx, "\tlog2_parallel_merge_level_minus2 = %d\n", p->log2_parallel_merge_level_minus2);
1338
    va_TraceMsg(trace_ctx, "\tnum_tile_columns_minus1 = %d\n", p->num_tile_columns_minus1);
1339
    va_TraceMsg(trace_ctx, "\tnum_tile_rows_minus1 = %d\n", p->num_tile_rows_minus1);
1340
1341
 
1342
    for (i = 0; i < 19; i++) {
1343
        va_TraceMsg(trace_ctx, "\t%d", p->column_width_minus1[i]);
1344
        if ((i + 1) % 8 == 0)
1345
            va_TraceMsg(trace_ctx, "\n");
1346
    }
1347
    va_TraceMsg(trace_ctx, "\n");
1348
    va_TraceMsg(trace_ctx, "\trow_height_minus1[21]=\n");
1349
    for (i = 0; i < 21; i++) {
1350
        va_TraceMsg(trace_ctx, "\t%d", p->row_height_minus1[i]);
1351
        if ((i + 1) % 8 == 0)
1352
            va_TraceMsg(trace_ctx, "\n");
1353
    }
1354
    va_TraceMsg(trace_ctx, "\n");
1355
1356
 
1357
    va_TraceMsg(trace_ctx, "\tlists_modification_present_flag = %d\n", p->slice_parsing_fields.bits.lists_modification_present_flag);
1358
    va_TraceMsg(trace_ctx, "\tlong_term_ref_pics_present_flag = %d\n", p->slice_parsing_fields.bits.long_term_ref_pics_present_flag);
1359
    va_TraceMsg(trace_ctx, "\tsps_temporal_mvp_enabled_flag = %d\n", p->slice_parsing_fields.bits.sps_temporal_mvp_enabled_flag);
1360
    va_TraceMsg(trace_ctx, "\tcabac_init_present_flag = %d\n", p->slice_parsing_fields.bits.cabac_init_present_flag);
1361
    va_TraceMsg(trace_ctx, "\toutput_flag_present_flag = %d\n", p->slice_parsing_fields.bits.output_flag_present_flag);
1362
    va_TraceMsg(trace_ctx, "\tdependent_slice_segments_enabled_flag = %d\n", p->slice_parsing_fields.bits.dependent_slice_segments_enabled_flag);
1363
    va_TraceMsg(trace_ctx, "\tpps_slice_chroma_qp_offsets_present_flag = %d\n", p->slice_parsing_fields.bits.pps_slice_chroma_qp_offsets_present_flag);
1364
    va_TraceMsg(trace_ctx, "\tsample_adaptive_offset_enabled_flag = %d\n", p->slice_parsing_fields.bits.sample_adaptive_offset_enabled_flag);
1365
    va_TraceMsg(trace_ctx, "\tdeblocking_filter_override_enabled_flag = %d\n", p->slice_parsing_fields.bits.deblocking_filter_override_enabled_flag);
1366
    va_TraceMsg(trace_ctx, "\tpps_disable_deblocking_filter_flag = %d\n", p->slice_parsing_fields.bits.pps_disable_deblocking_filter_flag);
1367
    va_TraceMsg(trace_ctx, "\tslice_segment_header_extension_present_flag = %d\n", p->slice_parsing_fields.bits.slice_segment_header_extension_present_flag);
1368
    va_TraceMsg(trace_ctx, "\tRapPicFlag = %d\n", p->slice_parsing_fields.bits.RapPicFlag);
1369
    va_TraceMsg(trace_ctx, "\tIdrPicFlag = %d\n", p->slice_parsing_fields.bits.IdrPicFlag);
1370
    va_TraceMsg(trace_ctx, "\tIntraPicFlag = %d\n", p->slice_parsing_fields.bits.IntraPicFlag);
1371
    va_TraceMsg(trace_ctx, "\tReservedBits = %d\n", p->slice_parsing_fields.bits.ReservedBits);
1372
1373
 
1374
    va_TraceMsg(trace_ctx, "\tnum_short_term_ref_pic_sets = %d\n", p->num_short_term_ref_pic_sets);
1375
    va_TraceMsg(trace_ctx, "\tnum_long_term_ref_pic_sps = %d\n", p->num_long_term_ref_pic_sps);
1376
    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l0_default_active_minus1 = %d\n", p->num_ref_idx_l0_default_active_minus1);
1377
    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l1_default_active_minus1 = %d\n", p->num_ref_idx_l1_default_active_minus1);
1378
    va_TraceMsg(trace_ctx, "\tpps_beta_offset_div2 = %d\n", p->pps_beta_offset_div2);
1379
    va_TraceMsg(trace_ctx, "\tpps_tc_offset_div2 = %d\n", p->pps_tc_offset_div2);
1380
    va_TraceMsg(trace_ctx, "\tnum_extra_slice_header_bits = %d\n", p->num_extra_slice_header_bits);
1381
    va_TraceMsg(trace_ctx, "\tst_rps_bits = %d\n", p->st_rps_bits);
1382
1383
 
1384
}
1385
1386
 
1387
    VADisplay dpy,
1388
    VAContextID context,
1389
    VABufferID buffer,
1390
    VABufferType type,
1391
    unsigned int size,
1392
    unsigned int num_elements,
1393
    void *data)
1394
{
1395
    int i,j;
1396
    VASliceParameterBufferHEVC* p = (VASliceParameterBufferHEVC*)data;
1397
1398
 
1399
1400
 
1401
    trace_ctx->trace_slice_size = p->slice_data_size;
1402
1403
 
1404
    va_TraceMsg(trace_ctx, "\tslice_data_size = %d\n", p->slice_data_size);
1405
    va_TraceMsg(trace_ctx, "\tslice_data_offset = %d\n", p->slice_data_offset);
1406
    va_TraceMsg(trace_ctx, "\tslice_data_flag = %d\n", p->slice_data_flag);
1407
    va_TraceMsg(trace_ctx, "\tslice_data_byte_offset = %d\n", p->slice_data_byte_offset);
1408
    va_TraceMsg(trace_ctx, "\tslice_segment_address = %d\n", p->slice_segment_address);
1409
1410
 
1411
    for (i = 0; i < 2; i++) {
1412
        for (j = 0; j < 15; j++) {
1413
            va_TraceMsg(trace_ctx, "\t%d", p->RefPicList[i][j]);
1414
            if ((i*8 + j + 1) % 8 == 0)
1415
                va_TraceMsg(trace_ctx, "\n");
1416
        }
1417
    }
1418
    va_TraceMsg(trace_ctx, "\n");
1419
1420
 
1421
    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.LastSliceOfPic = %d\n", p->LongSliceFlags.fields.LastSliceOfPic);
1422
    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.dependent_slice_segment_flag = %d\n", p->LongSliceFlags.fields.dependent_slice_segment_flag);
1423
    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.slice_type = %d\n", p->LongSliceFlags.fields.slice_type);
1424
    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.color_plane_id = %d\n", p->LongSliceFlags.fields.color_plane_id);
1425
    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.slice_sao_luma_flag = %d\n", p->LongSliceFlags.fields.slice_sao_luma_flag);
1426
    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.slice_sao_chroma_flag = %d\n", p->LongSliceFlags.fields.slice_sao_chroma_flag);
1427
    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.mvd_l1_zero_flag = %d\n", p->LongSliceFlags.fields.mvd_l1_zero_flag);
1428
    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.cabac_init_flag = %d\n", p->LongSliceFlags.fields.cabac_init_flag);
1429
    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.slice_temporal_mvp_enabled_flag = %d\n", p->LongSliceFlags.fields.slice_temporal_mvp_enabled_flag);
1430
    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.slice_deblocking_filter_disabled_flag = %d\n", p->LongSliceFlags.fields.slice_deblocking_filter_disabled_flag);
1431
    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.collocated_from_l0_flag = %d\n", p->LongSliceFlags.fields.collocated_from_l0_flag);
1432
    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.slice_loop_filter_across_slices_enabled_flag = %d\n", p->LongSliceFlags.fields.slice_loop_filter_across_slices_enabled_flag);
1433
    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.reserved = %d\n", p->LongSliceFlags.fields.reserved);
1434
1435
 
1436
1437
 
1438
    va_TraceMsg(trace_ctx, "\tslice_cb_qp_offset = %d\n", p->slice_cb_qp_offset);
1439
    va_TraceMsg(trace_ctx, "\tslice_cr_qp_offset = %d\n", p->slice_cr_qp_offset);
1440
    va_TraceMsg(trace_ctx, "\tslice_beta_offset_div2 = %d\n", p->slice_beta_offset_div2);
1441
    va_TraceMsg(trace_ctx, "\tslice_tc_offset_div2 = %d\n", p->slice_tc_offset_div2);
1442
    va_TraceMsg(trace_ctx, "\tluma_log2_weight_denom = %d\n", p->luma_log2_weight_denom);
1443
    va_TraceMsg(trace_ctx, "\tdelta_chroma_log2_weight_denom = %d\n", p->delta_chroma_log2_weight_denom);
1444
1445
 
1446
    for (i = 0; i <=  p->num_ref_idx_l0_active_minus1; i++) {
1447
        va_TraceMsg(trace_ctx, "\t%d ", p->delta_luma_weight_l0[i]);
1448
        va_TraceMsg(trace_ctx, "\t%d ", p->luma_offset_l0[i]);
1449
        va_TraceMsg(trace_ctx, "\t%d ", p->delta_chroma_weight_l0[i][0]);
1450
        va_TraceMsg(trace_ctx, "\t%d ", p->delta_chroma_weight_l0[i][1]);
1451
        va_TraceMsg(trace_ctx, "\t%d ", p->ChromaOffsetL0[i][0]);
1452
        va_TraceMsg(trace_ctx, "\t%d ", p->ChromaOffsetL0[i][1]);
1453
        va_TraceMsg(trace_ctx, "\n");
1454
    }
1455
1456
 
1457
    for (i = 0; i <=  p->num_ref_idx_l1_active_minus1; i++) {
1458
        va_TraceMsg(trace_ctx, "\t%d ", p->delta_luma_weight_l1[i]);
1459
        va_TraceMsg(trace_ctx, "\t%d ", p->luma_offset_l1[i]);
1460
        va_TraceMsg(trace_ctx, "\t%d ", p->delta_chroma_weight_l1[i][0]);
1461
        va_TraceMsg(trace_ctx, "\t%d ", p->delta_chroma_weight_l1[i][1]);
1462
        va_TraceMsg(trace_ctx, "\t%d ", p->ChromaOffsetL1[i][0]);
1463
        va_TraceMsg(trace_ctx, "\t%d ", p->ChromaOffsetL1[i][1]);
1464
        va_TraceMsg(trace_ctx, "\n");
1465
    }
1466
1467
 
1468
1469
 
1470
}
1471
1472
 
1473
    VADisplay dpy,
1474
    VAContextID context,
1475
    VABufferID buffer,
1476
    VABufferType type,
1477
    unsigned int size,
1478
    unsigned int num_elements,
1479
    void *data
1480
)
1481
{
1482
    int i, j;
1483
    VAIQMatrixBufferHEVC* p = (VAIQMatrixBufferHEVC* )data;
1484
1485
 
1486
1487
 
1488
1489
 
1490
    for (i = 0; i < 6; i++) {
1491
        for (j = 0; j < 16; j++) {
1492
            va_TraceMsg(trace_ctx, "\t%d\t", p->ScalingList4x4[i][j]);
1493
            if ((j + 1) % 8 == 0)
1494
                va_TraceMsg(trace_ctx, "\n");
1495
        }
1496
    }
1497
1498
 
1499
    for (i = 0; i < 6; i++) {
1500
        for (j = 0; j < 64; j++) {
1501
            va_TraceMsg(trace_ctx, "\t%d", p->ScalingList8x8[i][j]);
1502
            if ((j + 1) % 8 == 0)
1503
                va_TraceMsg(trace_ctx, "\n");
1504
        }
1505
    }
1506
1507
 
1508
    for (i = 0; i < 6; i++) {
1509
        for (j = 0; j < 64; j++) {
1510
            va_TraceMsg(trace_ctx, "\t%d", p->ScalingList16x16[i][j]);
1511
            if ((j + 1) % 8 == 0)
1512
                va_TraceMsg(trace_ctx, "\n");
1513
        }
1514
    }
1515
1516
 
1517
    for (i = 0; i < 2; i++) {
1518
        for (j = 0; j < 64; j++) {
1519
            va_TraceMsg(trace_ctx, "\t%d", p->ScalingList32x32[i][j]);
1520
            if ((j + 1) % 8 == 0)
1521
                va_TraceMsg(trace_ctx, "\n");
1522
        }
1523
    }
1524
1525
 
1526
    for (j = 0; j < 6; j++) {
1527
        va_TraceMsg(trace_ctx, "\t%d", p->ScalingListDC16x16[j]);
1528
    }
1529
    va_TraceMsg(trace_ctx, "\tScalingListDC32x32[2]=\n");
1530
    for (j = 0; j < 2; j++) {
1531
        va_TraceMsg(trace_ctx, "\t%d", p->ScalingListDC32x32[j]);
1532
    }
1533
1534
 
1535
}
1536
1537
 
1538
    VADisplay dpy,
1539
    VAContextID context,
1540
    VABufferID buffer,
1541
    VABufferType type,
1542
    unsigned int size,
1543
    unsigned int num_elements,
1544
    void *data)
1545
{
1546
    VAEncSequenceParameterBufferHEVC *p = (VAEncSequenceParameterBufferHEVC *)data;
1547
1548
 
1549
1550
 
1551
        return;
1552
1553
 
1554
1555
 
1556
    va_TraceMsg(trace_ctx, "\tgeneral_level_idc = %d\n", p->general_level_idc);
1557
    va_TraceMsg(trace_ctx, "\tgeneral_tier_flag = %d\n", p->general_tier_flag);
1558
    va_TraceMsg(trace_ctx, "\tintra_period = %d\n", p->intra_period);
1559
    va_TraceMsg(trace_ctx, "\tintra_idr_period = %d\n", p->intra_idr_period);
1560
    va_TraceMsg(trace_ctx, "\tip_period = %d\n", p->ip_period);
1561
    va_TraceMsg(trace_ctx, "\tbits_per_second = %d\n", p->bits_per_second);
1562
    va_TraceMsg(trace_ctx, "\tpic_width_in_luma_samples = %d\n", p->pic_width_in_luma_samples);
1563
    va_TraceMsg(trace_ctx, "\tpic_height_in_luma_samples = %d\n", p->pic_height_in_luma_samples);
1564
    va_TraceMsg(trace_ctx, "\tchroma_format_idc = %d\n", p->seq_fields.bits.chroma_format_idc);
1565
    va_TraceMsg(trace_ctx, "\tseparate_colour_plane_flag = %d\n", p->seq_fields.bits.separate_colour_plane_flag);
1566
    va_TraceMsg(trace_ctx, "\tbit_depth_luma_minus8 = %d\n", p->seq_fields.bits.bit_depth_luma_minus8);
1567
    va_TraceMsg(trace_ctx, "\tbit_depth_chroma_minus8 = %d\n", p->seq_fields.bits.bit_depth_chroma_minus8);
1568
    va_TraceMsg(trace_ctx, "\tscaling_list_enabled_flag = %d\n", p->seq_fields.bits.scaling_list_enabled_flag);
1569
    va_TraceMsg(trace_ctx, "\tstrong_intra_smoothing_enabled_flag = %d\n", p->seq_fields.bits.strong_intra_smoothing_enabled_flag);
1570
    va_TraceMsg(trace_ctx, "\tamp_enabled_flag = %d\n", p->seq_fields.bits.amp_enabled_flag);
1571
    va_TraceMsg(trace_ctx, "\tsample_adaptive_offset_enabled_flag = %d\n", p->seq_fields.bits.sample_adaptive_offset_enabled_flag);
1572
    va_TraceMsg(trace_ctx, "\tpcm_enabled_flag = %d\n", p->seq_fields.bits.pcm_enabled_flag);
1573
    va_TraceMsg(trace_ctx, "\tpcm_loop_filter_disabled_flag = %d\n", p->seq_fields.bits.pcm_loop_filter_disabled_flag);
1574
    va_TraceMsg(trace_ctx, "\tsps_temporal_mvp_enabled_flag = %d\n", p->seq_fields.bits.sps_temporal_mvp_enabled_flag);
1575
    va_TraceMsg(trace_ctx, "\treserved_bits = %d\n", p->seq_fields.bits.reserved_bits);
1576
    va_TraceMsg(trace_ctx, "\tlog2_min_luma_coding_block_size_minus3 = %d\n", p->log2_min_luma_coding_block_size_minus3);
1577
    va_TraceMsg(trace_ctx, "\tlog2_diff_max_min_luma_coding_block_size = %d\n", p->log2_diff_max_min_luma_coding_block_size);
1578
    va_TraceMsg(trace_ctx, "\tlog2_min_transform_block_size_minus2 = %d\n", p->log2_min_transform_block_size_minus2);
1579
    va_TraceMsg(trace_ctx, "\tlog2_diff_max_min_transform_block_size = %d\n", p->log2_diff_max_min_transform_block_size);
1580
    va_TraceMsg(trace_ctx, "\tmax_transform_hierarchy_depth_inter = %d\n", p->max_transform_hierarchy_depth_inter);
1581
    va_TraceMsg(trace_ctx, "\tmax_transform_hierarchy_depth_intra = %d\n", p->max_transform_hierarchy_depth_intra);
1582
    va_TraceMsg(trace_ctx, "\tpcm_sample_bit_depth_luma_minus1 = %d\n", p->pcm_sample_bit_depth_luma_minus1);
1583
    va_TraceMsg(trace_ctx, "\tpcm_sample_bit_depth_chroma_minus1 = %d\n", p->pcm_sample_bit_depth_chroma_minus1);
1584
    va_TraceMsg(trace_ctx, "\tlog2_min_pcm_luma_coding_block_size_minus3 = %d\n", p->log2_min_pcm_luma_coding_block_size_minus3);
1585
    va_TraceMsg(trace_ctx, "\tlog2_max_pcm_luma_coding_block_size_minus3 = %d\n", p->log2_max_pcm_luma_coding_block_size_minus3);
1586
    va_TraceMsg(trace_ctx, "\tvui_parameters_present_flag = %d\n", p->vui_parameters_present_flag);
1587
    va_TraceMsg(trace_ctx, "\taspect_ratio_info_present_flag = %d\n", p->vui_fields.bits.aspect_ratio_info_present_flag);
1588
    va_TraceMsg(trace_ctx, "\tneutral_chroma_indication_flag = %d\n", p->vui_fields.bits.neutral_chroma_indication_flag);
1589
    va_TraceMsg(trace_ctx, "\tfield_seq_flag = %d\n", p->vui_fields.bits.field_seq_flag);
1590
    va_TraceMsg(trace_ctx, "\tvui_timing_info_present_flag = %d\n", p->vui_fields.bits.vui_timing_info_present_flag);
1591
    va_TraceMsg(trace_ctx, "\tbitstream_restriction_flag = %d\n", p->vui_fields.bits.bitstream_restriction_flag);
1592
    va_TraceMsg(trace_ctx, "\ttiles_fixed_structure_flag = %d\n", p->vui_fields.bits.tiles_fixed_structure_flag);
1593
    va_TraceMsg(trace_ctx, "\tmotion_vectors_over_pic_boundaries_flag = %d\n", p->vui_fields.bits.motion_vectors_over_pic_boundaries_flag);
1594
    va_TraceMsg(trace_ctx, "\trestricted_ref_pic_lists_flag = %d\n", p->vui_fields.bits.restricted_ref_pic_lists_flag);
1595
    va_TraceMsg(trace_ctx, "\tlog2_max_mv_length_horizontal = %d\n", p->vui_fields.bits.log2_max_mv_length_horizontal);
1596
    va_TraceMsg(trace_ctx, "\tlog2_max_mv_length_vertical = %d\n", p->vui_fields.bits.log2_max_mv_length_vertical);
1597
    va_TraceMsg(trace_ctx, "\taspect_ratio_idc = %d\n", p->aspect_ratio_idc);
1598
    va_TraceMsg(trace_ctx, "\tsar_width = %d\n", p->sar_width);
1599
    va_TraceMsg(trace_ctx, "\tsar_height = %d\n", p->sar_height);
1600
    va_TraceMsg(trace_ctx, "\tvui_num_units_in_tick = %d\n", p->vui_num_units_in_tick);
1601
    va_TraceMsg(trace_ctx, "\tvui_time_scale = %d\n", p->vui_time_scale);
1602
    va_TraceMsg(trace_ctx, "\tmin_spatial_segmentation_idc = %d\n", p->min_spatial_segmentation_idc);
1603
    va_TraceMsg(trace_ctx, "\tmax_bytes_per_pic_denom = %d\n", p->max_bytes_per_pic_denom);
1604
    va_TraceMsg(trace_ctx, "\tmax_bits_per_min_cu_denom = %d\n", p->max_bits_per_min_cu_denom);
1605
1606
 
1607
}
1608
1609
 
1610
    VADisplay dpy,
1611
    VAContextID context,
1612
    VABufferID buffer,
1613
    VABufferType type,
1614
    unsigned int size,
1615
    unsigned int num_elements,
1616
    void *data)
1617
{
1618
    int i;
1619
    VAEncPictureParameterBufferHEVC *p = (VAEncPictureParameterBufferHEVC *)data;
1620
1621
 
1622
1623
 
1624
        return;
1625
1626
 
1627
1628
 
1629
    va_TraceMsg(trace_ctx, "\tdecoded_curr_pic.pic_order_cnt = %d\n", p->decoded_curr_pic.pic_order_cnt);
1630
    va_TraceMsg(trace_ctx, "\tdecoded_curr_pic.flags = %d\n", p->decoded_curr_pic.flags);
1631
1632
 
1633
    {
1634
        va_TraceMsg(trace_ctx, "\treference_frames[%d].picture_id = %d\n", i, p->reference_frames[i].picture_id);
1635
        va_TraceMsg(trace_ctx, "\treference_frames[%d].pic_order_cnt = %d\n", i, p->reference_frames[i].pic_order_cnt);
1636
        va_TraceMsg(trace_ctx, "\treference_frames[%d].flags = %d\n", i, p->reference_frames[i].flags);
1637
    }
1638
1639
 
1640
    va_TraceMsg(trace_ctx, "\tcollocated_ref_pic_index = %d\n", p->collocated_ref_pic_index);
1641
    va_TraceMsg(trace_ctx, "\tlast_picture = %d\n", p->last_picture);
1642
    va_TraceMsg(trace_ctx, "\tpic_init_qp = %d\n", p->pic_init_qp);
1643
    va_TraceMsg(trace_ctx, "\tdiff_cu_qp_delta_depth = %d\n", p->diff_cu_qp_delta_depth);
1644
    va_TraceMsg(trace_ctx, "\tpps_cb_qp_offset = %d\n", p->pps_cb_qp_offset);
1645
    va_TraceMsg(trace_ctx, "\tpps_cr_qp_offset = %d\n", p->pps_cr_qp_offset);
1646
    va_TraceMsg(trace_ctx, "\tnum_tile_columns_minus1 = %d\n", p->num_tile_columns_minus1);
1647
    va_TraceMsg(trace_ctx, "\tnum_tile_rows_minus1 = %d\n", p->num_tile_rows_minus1);
1648
1649
 
1650
    {
1651
        va_TraceMsg(trace_ctx, "\tcolumn_width_minus1[%d] = %d\n", i, p->column_width_minus1[i]);
1652
    }
1653
1654
 
1655
    {
1656
        va_TraceMsg(trace_ctx, "\trow_height_minus1[%d] = %d\n", i, p->row_height_minus1[i]);
1657
    }
1658
1659
 
1660
    va_TraceMsg(trace_ctx, "\tctu_max_bitsize_allowed = %d\n", p->ctu_max_bitsize_allowed);
1661
    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l0_default_active_minus1 = %d\n", p->num_ref_idx_l0_default_active_minus1);
1662
    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l1_default_active_minus1 = %d\n", p->num_ref_idx_l1_default_active_minus1);
1663
    va_TraceMsg(trace_ctx, "\tslice_pic_parameter_set_id = %d\n", p->slice_pic_parameter_set_id);
1664
    va_TraceMsg(trace_ctx, "\tnal_unit_type = %d\n", p->nal_unit_type);
1665
    va_TraceMsg(trace_ctx, "\tidr_pic_flag = %d\n", p->pic_fields.bits.idr_pic_flag);
1666
    va_TraceMsg(trace_ctx, "\tcoding_type = %d\n", p->pic_fields.bits.coding_type);
1667
    va_TraceMsg(trace_ctx, "\treference_pic_flag = %d\n", p->pic_fields.bits.reference_pic_flag);
1668
    va_TraceMsg(trace_ctx, "\tdependent_slice_segments_enabled_flag = %d\n", p->pic_fields.bits.dependent_slice_segments_enabled_flag);
1669
    va_TraceMsg(trace_ctx, "\tsign_data_hiding_enabled_flag = %d\n", p->pic_fields.bits.sign_data_hiding_enabled_flag);
1670
    va_TraceMsg(trace_ctx, "\tconstrained_intra_pred_flag = %d\n", p->pic_fields.bits.constrained_intra_pred_flag);
1671
    va_TraceMsg(trace_ctx, "\ttransform_skip_enabled_flag = %d\n", p->pic_fields.bits.transform_skip_enabled_flag);
1672
    va_TraceMsg(trace_ctx, "\tcu_qp_delta_enabled_flag = %d\n", p->pic_fields.bits.cu_qp_delta_enabled_flag);
1673
    va_TraceMsg(trace_ctx, "\tweighted_pred_flag = %d\n", p->pic_fields.bits.weighted_pred_flag);
1674
    va_TraceMsg(trace_ctx, "\tweighted_bipred_flag = %d\n", p->pic_fields.bits.weighted_bipred_flag);
1675
    va_TraceMsg(trace_ctx, "\ttransquant_bypass_enabled_flag = %d\n", p->pic_fields.bits.transquant_bypass_enabled_flag);
1676
    va_TraceMsg(trace_ctx, "\ttiles_enabled_flag = %d\n", p->pic_fields.bits.tiles_enabled_flag);
1677
    va_TraceMsg(trace_ctx, "\tentropy_coding_sync_enabled_flag = %d\n", p->pic_fields.bits.entropy_coding_sync_enabled_flag);
1678
    va_TraceMsg(trace_ctx, "\tloop_filter_across_tiles_enabled_flag = %d\n", p->pic_fields.bits.loop_filter_across_tiles_enabled_flag);
1679
    va_TraceMsg(trace_ctx, "\tpps_loop_filter_across_slices_enabled_flag = %d\n", p->pic_fields.bits.pps_loop_filter_across_slices_enabled_flag);
1680
    va_TraceMsg(trace_ctx, "\tscaling_list_data_present_flag = %d\n", p->pic_fields.bits.scaling_list_data_present_flag);
1681
    va_TraceMsg(trace_ctx, "\tscreen_content_flag = %d\n", p->pic_fields.bits.screen_content_flag);
1682
    va_TraceMsg(trace_ctx, "\tenable_gpu_weighted_prediction = %d\n", p->pic_fields.bits.enable_gpu_weighted_prediction);
1683
    va_TraceMsg(trace_ctx, "\tno_output_of_prior_pics_flag = %d\n", p->pic_fields.bits.no_output_of_prior_pics_flag);
1684
    va_TraceMsg(trace_ctx, "\treserved = %d\n", p->pic_fields.bits.reserved);
1685
1686
 
1687
}
1688
1689
 
1690
    VADisplay dpy,
1691
    VAContextID context,
1692
    VABufferID buffer,
1693
    VABufferType type,
1694
    unsigned int size,
1695
    unsigned int num_elements,
1696
    void *data)
1697
{
1698
    int i;
1699
    VAEncSliceParameterBufferHEVC *p = (VAEncSliceParameterBufferHEVC *)data;
1700
1701
 
1702
1703
 
1704
        return;
1705
1706
 
1707
1708
 
1709
    va_TraceMsg(trace_ctx, "\tnum_ctu_in_slice = %d\n", p->num_ctu_in_slice);
1710
    va_TraceMsg(trace_ctx, "\tslice_type = %d\n", p->slice_type);
1711
    va_TraceMsg(trace_ctx, "\tslice_pic_parameter_set_id = %d\n", p->slice_pic_parameter_set_id);
1712
    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l0_active_minus1 = %d\n", p->num_ref_idx_l0_active_minus1);
1713
    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l1_active_minus1 = %d\n", p->num_ref_idx_l1_active_minus1);
1714
1715
 
1716
    {
1717
        va_TraceMsg(trace_ctx, "\tref_pic_list0[%d].picture_id = %d\n", i, p->ref_pic_list0[i].picture_id);
1718
        va_TraceMsg(trace_ctx, "\tref_pic_list0[%d].pic_order_cnt = %d\n", i, p->ref_pic_list0[i].pic_order_cnt);
1719
        va_TraceMsg(trace_ctx, "\tref_pic_list0[%d].flags = %d\n", i, p->ref_pic_list0[i].flags);
1720
        va_TraceMsg(trace_ctx, "\tref_pic_list1[%d].picture_id = %d\n", i, p->ref_pic_list1[i].picture_id);
1721
        va_TraceMsg(trace_ctx, "\tref_pic_list1[%d].pic_order_cnt = %d\n", i, p->ref_pic_list1[i].pic_order_cnt);
1722
        va_TraceMsg(trace_ctx, "\tref_pic_list1[%d].flags = %d\n", i, p->ref_pic_list1[i].flags);
1723
    }
1724
1725
 
1726
    va_TraceMsg(trace_ctx, "\tdelta_chroma_log2_weight_denom = %d\n", p->delta_chroma_log2_weight_denom);
1727
1728
 
1729
    {
1730
        va_TraceMsg(trace_ctx, "\tdelta_luma_weight_l0[%d] = %d\n", i, p->delta_luma_weight_l0[i]);
1731
        va_TraceMsg(trace_ctx, "\tdelta_luma_weight_l1[%d] = %d\n", i, p->delta_luma_weight_l1[i]);
1732
    }
1733
1734
 
1735
    {
1736
        va_TraceMsg(trace_ctx, "\tluma_offset_l0[%d] = %d\n", i, p->luma_offset_l0[i]);
1737
        va_TraceMsg(trace_ctx, "\tluma_offset_l1[%d] = %d\n", i, p->luma_offset_l1[i]);
1738
    }
1739
1740
 
1741
    {
1742
        va_TraceMsg(trace_ctx, "\tdelta_chroma_weight_l0[%d][0] = %d\n", i, p->delta_chroma_weight_l0[i][0]);
1743
        va_TraceMsg(trace_ctx, "\tdelta_chroma_weight_l0[%d][1] = %d\n", i, p->delta_chroma_weight_l0[i][1]);
1744
        va_TraceMsg(trace_ctx, "\tdelta_chroma_weight_l1[%d][0] = %d\n", i, p->delta_chroma_weight_l1[i][0]);
1745
        va_TraceMsg(trace_ctx, "\tdelta_chroma_weight_l1[%d][1] = %d\n", i, p->delta_chroma_weight_l1[i][1]);
1746
    }
1747
1748
 
1749
    {
1750
        va_TraceMsg(trace_ctx, "\tchroma_offset_l0[%d][0] = %d\n", i, p->chroma_offset_l0[i][0]);
1751
        va_TraceMsg(trace_ctx, "\tchroma_offset_l0[%d][1] = %d\n", i, p->chroma_offset_l0[i][1]);
1752
        va_TraceMsg(trace_ctx, "\tchroma_offset_l1[%d][0] = %d\n", i, p->chroma_offset_l1[i][0]);
1753
        va_TraceMsg(trace_ctx, "\tchroma_offset_l1[%d][1] = %d\n", i, p->chroma_offset_l1[i][1]);
1754
    }
1755
1756
 
1757
    va_TraceMsg(trace_ctx, "\tslice_qp_delta = %d\n", p->slice_qp_delta);
1758
    va_TraceMsg(trace_ctx, "\tslice_cb_qp_offset = %d\n", p->slice_cb_qp_offset);
1759
    va_TraceMsg(trace_ctx, "\tslice_cr_qp_offset = %d\n", p->slice_cr_qp_offset);
1760
    va_TraceMsg(trace_ctx, "\tslice_beta_offset_div2 = %d\n", p->slice_beta_offset_div2);
1761
    va_TraceMsg(trace_ctx, "\tslice_tc_offset_div2 = %d\n", p->slice_tc_offset_div2);
1762
    va_TraceMsg(trace_ctx, "\tlast_slice_of_pic_flag = %d\n", p->slice_fields.bits.last_slice_of_pic_flag);
1763
    va_TraceMsg(trace_ctx, "\tdependent_slice_segment_flag = %d\n", p->slice_fields.bits.dependent_slice_segment_flag);
1764
    va_TraceMsg(trace_ctx, "\tcolour_plane_id = %d\n", p->slice_fields.bits.colour_plane_id);
1765
    va_TraceMsg(trace_ctx, "\tslice_temporal_mvp_enabled_flag = %d\n", p->slice_fields.bits.slice_temporal_mvp_enabled_flag);
1766
    va_TraceMsg(trace_ctx, "\tslice_sao_luma_flag = %d\n", p->slice_fields.bits.slice_sao_luma_flag);
1767
    va_TraceMsg(trace_ctx, "\tslice_sao_chroma_flag = %d\n", p->slice_fields.bits.slice_sao_chroma_flag);
1768
    va_TraceMsg(trace_ctx, "\tnum_ref_idx_active_override_flag = %d\n", p->slice_fields.bits.num_ref_idx_active_override_flag);
1769
    va_TraceMsg(trace_ctx, "\tmvd_l1_zero_flag = %d\n", p->slice_fields.bits.mvd_l1_zero_flag);
1770
    va_TraceMsg(trace_ctx, "\tcabac_init_flag = %d\n", p->slice_fields.bits.cabac_init_flag);
1771
    va_TraceMsg(trace_ctx, "\tslice_deblocking_filter_disabled_flag = %d\n", p->slice_fields.bits.slice_deblocking_filter_disabled_flag);
1772
    va_TraceMsg(trace_ctx, "\tslice_loop_filter_across_slices_enabled_flag = %d\n", p->slice_fields.bits.slice_loop_filter_across_slices_enabled_flag);
1773
    va_TraceMsg(trace_ctx, "\tcollocated_from_l0_flag = %d\n", p->slice_fields.bits.collocated_from_l0_flag);
1774
1775
 
1776
}
1777
1778
 
1779
    VADisplay dpy,
1780
    VAContextID context,
1781
    VABufferID buffer,
1782
    VABufferType type,
1783
    unsigned int size,
1784
    unsigned int num_elements,
1785
    void *data)
1786
{
1787
    int i;
1788
    VAPictureParameterBufferH264 *p = (VAPictureParameterBufferH264*)data;
1789
1790
 
1791
1792
 
1793
1794
 
1795
    va_TraceMsg(trace_ctx, "\tCurrPic.frame_idx = %u\n", p->CurrPic.frame_idx);
1796
    va_TraceMsg(trace_ctx, "\tCurrPic.flags = 0x%08x\n", p->CurrPic.flags);
1797
    va_TraceMsg(trace_ctx, "\tCurrPic.TopFieldOrderCnt = %d\n", p->CurrPic.TopFieldOrderCnt);
1798
    va_TraceMsg(trace_ctx, "\tCurrPic.BottomFieldOrderCnt = %d\n", p->CurrPic.BottomFieldOrderCnt);
1799
1800
 
1801
    for (i = 0; i < 16; i++)
1802
    {
1803
        if ((p->ReferenceFrames[i].picture_id != VA_INVALID_SURFACE) &&
1804
            ((p->ReferenceFrames[i].flags & VA_PICTURE_H264_INVALID) == 0)) {
1805
            va_TraceMsg(trace_ctx, "\t\t%08d-%08d-0x%08x-%08u-0x%08x\n",
1806
                        p->ReferenceFrames[i].TopFieldOrderCnt,
1807
                        p->ReferenceFrames[i].BottomFieldOrderCnt,
1808
                        p->ReferenceFrames[i].picture_id,
1809
                        p->ReferenceFrames[i].frame_idx,
1810
                        p->ReferenceFrames[i].flags);
1811
        } else
1812
            break;
1813
    }
1814
    va_TraceMsg(trace_ctx, "\tpicture_width_in_mbs_minus1 = %d\n", p->picture_width_in_mbs_minus1);
1815
    va_TraceMsg(trace_ctx, "\tpicture_height_in_mbs_minus1 = %d\n", p->picture_height_in_mbs_minus1);
1816
    va_TraceMsg(trace_ctx, "\tbit_depth_luma_minus8 = %d\n", p->bit_depth_luma_minus8);
1817
    va_TraceMsg(trace_ctx, "\tbit_depth_chroma_minus8 = %d\n", p->bit_depth_chroma_minus8);
1818
    va_TraceMsg(trace_ctx, "\tnum_ref_frames = %d\n", p->num_ref_frames);
1819
    va_TraceMsg(trace_ctx, "\tseq fields = %d\n", p->seq_fields.value);
1820
    va_TraceMsg(trace_ctx, "\tchroma_format_idc = %d\n", p->seq_fields.bits.chroma_format_idc);
1821
    va_TraceMsg(trace_ctx, "\tresidual_colour_transform_flag = %d\n", p->seq_fields.bits.residual_colour_transform_flag);
1822
    va_TraceMsg(trace_ctx, "\tframe_mbs_only_flag = %d\n", p->seq_fields.bits.frame_mbs_only_flag);
1823
    va_TraceMsg(trace_ctx, "\tmb_adaptive_frame_field_flag = %d\n", p->seq_fields.bits.mb_adaptive_frame_field_flag);
1824
    va_TraceMsg(trace_ctx, "\tdirect_8x8_inference_flag = %d\n", p->seq_fields.bits.direct_8x8_inference_flag);
1825
    va_TraceMsg(trace_ctx, "\tMinLumaBiPredSize8x8 = %d\n", p->seq_fields.bits.MinLumaBiPredSize8x8);
1826
    va_TraceMsg(trace_ctx, "\tnum_slice_groups_minus1 = %d\n", p->num_slice_groups_minus1);
1827
    va_TraceMsg(trace_ctx, "\tslice_group_map_type = %d\n", p->slice_group_map_type);
1828
    va_TraceMsg(trace_ctx, "\tslice_group_change_rate_minus1 = %d\n", p->slice_group_change_rate_minus1);
1829
    va_TraceMsg(trace_ctx, "\tpic_init_qp_minus26 = %d\n", p->pic_init_qp_minus26);
1830
    va_TraceMsg(trace_ctx, "\tpic_init_qs_minus26 = %d\n", p->pic_init_qs_minus26);
1831
    va_TraceMsg(trace_ctx, "\tchroma_qp_index_offset = %d\n", p->chroma_qp_index_offset);
1832
    va_TraceMsg(trace_ctx, "\tsecond_chroma_qp_index_offset = %d\n", p->second_chroma_qp_index_offset);
1833
    va_TraceMsg(trace_ctx, "\tpic_fields = 0x%03x\n", p->pic_fields.value);
1834
    va_TraceFlagIfNotZero(trace_ctx, "\t\tentropy_coding_mode_flag", p->pic_fields.bits.entropy_coding_mode_flag);
1835
    va_TraceFlagIfNotZero(trace_ctx, "\t\tweighted_pred_flag", p->pic_fields.bits.weighted_pred_flag);
1836
    va_TraceFlagIfNotZero(trace_ctx, "\t\tweighted_bipred_idc", p->pic_fields.bits.weighted_bipred_idc);
1837
    va_TraceFlagIfNotZero(trace_ctx, "\t\ttransform_8x8_mode_flag", p->pic_fields.bits.transform_8x8_mode_flag);
1838
    va_TraceFlagIfNotZero(trace_ctx, "\t\tfield_pic_flag", p->pic_fields.bits.field_pic_flag);
1839
    va_TraceFlagIfNotZero(trace_ctx, "\t\tconstrained_intra_pred_flag", p->pic_fields.bits.constrained_intra_pred_flag);
1840
    va_TraceFlagIfNotZero(trace_ctx, "\t\tpic_order_present_flag", p->pic_fields.bits.pic_order_present_flag);
1841
    va_TraceFlagIfNotZero(trace_ctx, "\t\tdeblocking_filter_control_present_flag", p->pic_fields.bits.deblocking_filter_control_present_flag);
1842
    va_TraceFlagIfNotZero(trace_ctx, "\t\tredundant_pic_cnt_present_flag", p->pic_fields.bits.redundant_pic_cnt_present_flag);
1843
    va_TraceFlagIfNotZero(trace_ctx, "\t\treference_pic_flag", p->pic_fields.bits.reference_pic_flag);
1844
    va_TraceMsg(trace_ctx, "\tframe_num = %d\n", p->frame_num);
1845
    va_TraceMsg(trace_ctx, NULL);
1846
1847
 
1848
}
1849
1850
 
1851
    VADisplay dpy,
1852
    VAContextID context,
1853
    VABufferID buffer,
1854
    VABufferType type,
1855
    unsigned int size,
1856
    unsigned int num_elements,
1857
    void *data)
1858
{
1859
    int i;
1860
    VASliceParameterBufferH264* p = (VASliceParameterBufferH264*)data;
1861
    DPY2TRACECTX(dpy);
1862
1863
 
1864
    trace_ctx->trace_slice_size = p->slice_data_size;
1865
1866
 
1867
    va_TraceMsg(trace_ctx, "\tslice_data_size = %u\n", p->slice_data_size);
1868
    va_TraceMsg(trace_ctx, "\tslice_data_offset = %u\n", p->slice_data_offset);
1869
    va_TraceMsg(trace_ctx, "\tslice_data_flag = 0x%08x\n", p->slice_data_flag);
1870
    va_TraceMsg(trace_ctx, "\tslice_data_bit_offset = %d\n", p->slice_data_bit_offset);
1871
    va_TraceMsg(trace_ctx, "\tfirst_mb_in_slice = %d\n", p->first_mb_in_slice);
1872
    va_TraceMsg(trace_ctx, "\tslice_type = %d\n", p->slice_type);
1873
    va_TraceMsg(trace_ctx, "\tdirect_spatial_mv_pred_flag = %d\n", p->direct_spatial_mv_pred_flag);
1874
    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l0_active_minus1 = %d\n", p->num_ref_idx_l0_active_minus1);
1875
    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l1_active_minus1 = %d\n", p->num_ref_idx_l1_active_minus1);
1876
    va_TraceMsg(trace_ctx, "\tcabac_init_idc = %d\n", p->cabac_init_idc);
1877
    va_TraceMsg(trace_ctx, "\tslice_qp_delta = %d\n", p->slice_qp_delta);
1878
    va_TraceMsg(trace_ctx, "\tdisable_deblocking_filter_idc = %d\n", p->disable_deblocking_filter_idc);
1879
    va_TraceMsg(trace_ctx, "\tslice_alpha_c0_offset_div2 = %d\n", p->slice_alpha_c0_offset_div2);
1880
    va_TraceMsg(trace_ctx, "\tslice_beta_offset_div2 = %d\n", p->slice_beta_offset_div2);
1881
1882
 
1883
    for (i = 0; i < 32; i++) {
1884
        if ((p->RefPicList0[i].picture_id != VA_INVALID_SURFACE) &&
1885
            ((p->RefPicList0[i].flags & VA_PICTURE_H264_INVALID) == 0))
1886
        va_TraceMsg(trace_ctx, "%08d-%08d-0x%08x-%08d-0x%08x\n", p->RefPicList0[i].TopFieldOrderCnt, p->RefPicList0[i].BottomFieldOrderCnt, p->RefPicList0[i].picture_id, p->RefPicList0[i].frame_idx,  p->RefPicList0[i].flags);
1887
        else
1888
            break;
1889
    }
1890
    va_TraceMsg(trace_ctx, "\tRefPicList1 =\n");
1891
    for (i = 0; i < 32; i++) {
1892
        if ((p->RefPicList1[i].picture_id != VA_INVALID_SURFACE) &&
1893
            ((p->RefPicList1[i].flags & VA_PICTURE_H264_INVALID) == 0))
1894
            va_TraceMsg(trace_ctx, "%08d-%08d-0x%08x-%08d-0x%08x\n", p->RefPicList1[i].TopFieldOrderCnt, p->RefPicList1[i].BottomFieldOrderCnt, p->RefPicList1[i].picture_id, p->RefPicList1[i].frame_idx, p->RefPicList1[i].flags);
1895
        else
1896
            break;
1897
    }
1898
1899
 
1900
    va_TraceMsg(trace_ctx, "\tchroma_log2_weight_denom = %d\n", p->chroma_log2_weight_denom);
1901
    va_TraceMsg(trace_ctx, "\tluma_weight_l0_flag = %d\n", p->luma_weight_l0_flag);
1902
1903
 
1904
        va_TraceMsg(trace_ctx, "\t\t%d\t%d\n",
1905
            p->luma_weight_l0[i],
1906
            p->luma_offset_l0[i]);
1907
    }
1908
1909
 
1910
 
1911
1912
 
1913
        va_TraceMsg(trace_ctx, "\t\t%d\t%d\t%d\t%d\n",
1914
            p->chroma_weight_l0[i][0],
1915
            p->chroma_offset_l0[i][0],
1916
            p->chroma_weight_l0[i][1],
1917
            p->chroma_offset_l0[i][1]);
1918
    }
1919
1920
 
1921
 
1922
1923
 
1924
        va_TraceMsg(trace_ctx, "\t\t%d\t%d\n",
1925
            p->luma_weight_l1[i],
1926
            p->luma_offset_l1[i]);
1927
    }
1928
1929
 
1930
 
1931
1932
 
1933
        va_TraceMsg(trace_ctx, "\t\t%d\t%d\t%d\t%d\n",
1934
            p->chroma_weight_l1[i][0],
1935
            p->chroma_offset_l1[i][0],
1936
            p->chroma_weight_l1[i][1],
1937
            p->chroma_offset_l1[i][1]);
1938
1939
 
1940
    va_TraceMsg(trace_ctx, NULL);
1941
}
1942
1943
 
1944
    VADisplay dpy,
1945
    VAContextID context,
1946
    VABufferID buffer,
1947
    VABufferType type,
1948
    unsigned int size,
1949
    unsigned int num_elements,
1950
    void *data
1951
)
1952
{
1953
    int i, j;
1954
    VAIQMatrixBufferH264* p = (VAIQMatrixBufferH264* )data;
1955
1956
 
1957
1958
 
1959
1960
 
1961
    for (i = 0; i < 6; i++) {
1962
        for (j = 0; j < 16; j++) {
1963
            if (trace_ctx->trace_fp_log) {
1964
                fprintf(trace_ctx->trace_fp_log, "\t%d", p->ScalingList4x4[i][j]);
1965
                if ((j + 1) % 8 == 0)
1966
                    fprintf(trace_ctx->trace_fp_log, "\n");
1967
            }
1968
        }
1969
    }
1970
1971
 
1972
    for (i = 0; i < 2; i++) {
1973
        for (j = 0; j < 64; j++) {
1974
            if (trace_ctx->trace_fp_log) {
1975
                fprintf(trace_ctx->trace_fp_log,"\t%d", p->ScalingList8x8[i][j]);
1976
                if ((j + 1) % 8 == 0)
1977
                    fprintf(trace_ctx->trace_fp_log, "\n");
1978
            }
1979
        }
1980
    }
1981
1982
 
1983
}
1984
1985
 
1986
 
1987
 
1988
    VADisplay dpy,
1989
    VAContextID context,
1990
    VABufferID buffer,
1991
    VABufferType type,
1992
    unsigned int size,
1993
    unsigned int num_elements,
1994
    void *data)
1995
{
1996
    VAEncSequenceParameterBufferH264 *p = (VAEncSequenceParameterBufferH264 *)data;
1997
    DPY2TRACECTX(dpy);
1998
    unsigned int i;
1999
2000
 
2001
2002
 
2003
    va_TraceMsg(trace_ctx, "\tlevel_idc = %d\n", p->level_idc);
2004
    va_TraceMsg(trace_ctx, "\tintra_period = %u\n", p->intra_period);
2005
    va_TraceMsg(trace_ctx, "\tintra_idr_period = %u\n", p->intra_idr_period);
2006
    va_TraceMsg(trace_ctx, "\tip_period = %u\n", p->ip_period);
2007
    va_TraceMsg(trace_ctx, "\tbits_per_second = %u\n", p->bits_per_second);
2008
    va_TraceMsg(trace_ctx, "\tmax_num_ref_frames = %u\n", p->max_num_ref_frames);
2009
    va_TraceMsg(trace_ctx, "\tpicture_width_in_mbs = %d\n", p->picture_width_in_mbs);
2010
    va_TraceMsg(trace_ctx, "\tpicture_height_in_mbs = %d\n", p->picture_height_in_mbs);
2011
    va_TraceMsg(trace_ctx, "\tchroma_format_idc = %d\n", p->seq_fields.bits.chroma_format_idc);
2012
    va_TraceMsg(trace_ctx, "\tframe_mbs_only_flag = %d\n", p->seq_fields.bits.frame_mbs_only_flag);
2013
    va_TraceMsg(trace_ctx, "\tmb_adaptive_frame_field_flag = %d\n", p->seq_fields.bits.mb_adaptive_frame_field_flag);
2014
    va_TraceMsg(trace_ctx, "\tseq_scaling_matrix_present_flag = %d\n", p->seq_fields.bits.seq_scaling_matrix_present_flag);
2015
    va_TraceMsg(trace_ctx, "\tdirect_8x8_inference_flag = %d\n", p->seq_fields.bits.direct_8x8_inference_flag);
2016
    va_TraceMsg(trace_ctx, "\tlog2_max_frame_num_minus4 = %d\n", p->seq_fields.bits.log2_max_frame_num_minus4);
2017
    va_TraceMsg(trace_ctx, "\tpic_order_cnt_type = %d\n", p->seq_fields.bits.pic_order_cnt_type);
2018
    va_TraceMsg(trace_ctx, "\tlog2_max_pic_order_cnt_lsb_minus4 = %d\n", p->seq_fields.bits.log2_max_pic_order_cnt_lsb_minus4);
2019
    va_TraceMsg(trace_ctx, "\tdelta_pic_order_always_zero_flag = %d\n", p->seq_fields.bits.delta_pic_order_always_zero_flag);
2020
    va_TraceMsg(trace_ctx, "\tbit_depth_luma_minus8 = %d\n", p->bit_depth_luma_minus8);
2021
    va_TraceMsg(trace_ctx, "\tbit_depth_chroma_minus8 = %d\n", p->bit_depth_chroma_minus8);
2022
    va_TraceMsg(trace_ctx, "\tnum_ref_frames_in_pic_order_cnt_cycle = %d\n", p->num_ref_frames_in_pic_order_cnt_cycle);
2023
    va_TraceMsg(trace_ctx, "\toffset_for_non_ref_pic = %d\n", p->offset_for_non_ref_pic);
2024
    va_TraceMsg(trace_ctx, "\toffset_for_top_to_bottom_field = %d\n", p->offset_for_top_to_bottom_field);
2025
    for(i = 0; (i < p->max_num_ref_frames) && (i < 32); ++i)
2026
        va_TraceMsg(trace_ctx, "\toffset_for_ref_frame[%d] = %d\n", i, p->offset_for_ref_frame[i]);
2027
    va_TraceMsg(trace_ctx, "\tframe_cropping_flag = %d\n", p->frame_cropping_flag);
2028
    va_TraceMsg(trace_ctx, "\tframe_crop_left_offset = %u\n", p->frame_crop_left_offset);
2029
    va_TraceMsg(trace_ctx, "\tframe_crop_right_offset = %u\n", p->frame_crop_right_offset);
2030
    va_TraceMsg(trace_ctx, "\tframe_crop_top_offset = %u\n", p->frame_crop_top_offset);
2031
    va_TraceMsg(trace_ctx, "\tframe_crop_bottom_offset = %u\n", p->frame_crop_bottom_offset);
2032
    va_TraceMsg(trace_ctx, "\tvui_parameters_present_flag = %d\n", p->vui_parameters_present_flag);
2033
    va_TraceMsg(trace_ctx, "\taspect_ratio_info_present_flag = %d\n", p->vui_fields.bits.aspect_ratio_info_present_flag);
2034
    va_TraceMsg(trace_ctx, "\ttiming_info_present_flag = %d\n", p->vui_fields.bits.timing_info_present_flag);
2035
    va_TraceMsg(trace_ctx, "\tbitstream_restriction_flag = %d\n", p->vui_fields.bits.bitstream_restriction_flag);
2036
    va_TraceMsg(trace_ctx, "\tlog2_max_mv_length_horizontal = %d\n", p->vui_fields.bits.log2_max_mv_length_horizontal);
2037
    va_TraceMsg(trace_ctx, "\tlog2_max_mv_length_vertical = %d\n", p->vui_fields.bits.log2_max_mv_length_vertical);
2038
    va_TraceMsg(trace_ctx, "\taspect_ratio_idc = %d\n", p->aspect_ratio_idc);
2039
    va_TraceMsg(trace_ctx, "\tsar_width = %u\n", p->sar_width);
2040
    va_TraceMsg(trace_ctx, "\tsar_height = %u\n", p->sar_height);
2041
    va_TraceMsg(trace_ctx, "\tnum_units_in_tick = %u\n", p->num_units_in_tick);
2042
    va_TraceMsg(trace_ctx, "\ttime_scale = %u\n", p->time_scale);
2043
2044
 
2045
2046
 
2047
}
2048
2049
 
2050
 
2051
    VADisplay dpy,
2052
    VAContextID context,
2053
    VABufferID buffer,
2054
    VABufferType type,
2055
    unsigned int size,
2056
    unsigned int num_elements,
2057
    void *data)
2058
{
2059
    VAEncPictureParameterBufferH264 *p = (VAEncPictureParameterBufferH264 *)data;
2060
    DPY2TRACECTX(dpy);
2061
    int i;
2062
2063
 
2064
2065
 
2066
    va_TraceMsg(trace_ctx, "\tCurrPic.frame_idx = %u\n", p->CurrPic.frame_idx);
2067
    va_TraceMsg(trace_ctx, "\tCurrPic.flags = 0x%08x\n", p->CurrPic.flags);
2068
    va_TraceMsg(trace_ctx, "\tCurrPic.TopFieldOrderCnt = %d\n", p->CurrPic.TopFieldOrderCnt);
2069
    va_TraceMsg(trace_ctx, "\tCurrPic.BottomFieldOrderCnt = %d\n", p->CurrPic.BottomFieldOrderCnt);
2070
    va_TraceMsg(trace_ctx, "\tReferenceFrames (TopFieldOrderCnt-BottomFieldOrderCnt-picture_id-frame_idx-flags):\n");
2071
    for (i = 0; i < 16; i++)
2072
    {
2073
        if ((p->ReferenceFrames[i].picture_id != VA_INVALID_SURFACE) &&
2074
            ((p->ReferenceFrames[i].flags & VA_PICTURE_H264_INVALID) == 0)) {
2075
            va_TraceMsg(trace_ctx, "\t\t%08d-%08d-0x%08x-%08u-0x%08x\n",
2076
                        p->ReferenceFrames[i].TopFieldOrderCnt,
2077
                        p->ReferenceFrames[i].BottomFieldOrderCnt,
2078
                        p->ReferenceFrames[i].picture_id,
2079
                        p->ReferenceFrames[i].frame_idx,
2080
                        p->ReferenceFrames[i].flags
2081
                        );
2082
        } else
2083
            break;
2084
    }
2085
    va_TraceMsg(trace_ctx, "\tcoded_buf = %08x\n", p->coded_buf);
2086
    va_TraceMsg(trace_ctx, "\tpic_parameter_set_id = %d\n", p->pic_parameter_set_id);
2087
    va_TraceMsg(trace_ctx, "\tseq_parameter_set_id = %d\n", p->seq_parameter_set_id);
2088
    va_TraceMsg(trace_ctx, "\tlast_picture = 0x%08x\n", p->last_picture);
2089
    va_TraceMsg(trace_ctx, "\tframe_num = %d\n", p->frame_num);
2090
    va_TraceMsg(trace_ctx, "\tpic_init_qp = %d\n", p->pic_init_qp);
2091
    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l0_active_minus1 = %d\n", p->num_ref_idx_l0_active_minus1);
2092
    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l1_active_minus1 = %d\n", p->num_ref_idx_l1_active_minus1);
2093
    va_TraceMsg(trace_ctx, "\tchroma_qp_index_offset = %d\n", p->chroma_qp_index_offset);
2094
    va_TraceMsg(trace_ctx, "\tsecond_chroma_qp_index_offset = %d\n", p->second_chroma_qp_index_offset);
2095
    va_TraceMsg(trace_ctx, "\tpic_fields = 0x%03x\n", p->pic_fields.value);
2096
    va_TraceMsg(trace_ctx, "\tidr_pic_flag = %d\n", p->pic_fields.bits.idr_pic_flag);
2097
    va_TraceMsg(trace_ctx, "\treference_pic_flag = %d\n", p->pic_fields.bits.reference_pic_flag);
2098
    va_TraceMsg(trace_ctx, "\tentropy_coding_mode_flag = %d\n", p->pic_fields.bits.entropy_coding_mode_flag);
2099
    va_TraceMsg(trace_ctx, "\tweighted_pred_flag = %d\n", p->pic_fields.bits.weighted_pred_flag);
2100
    va_TraceMsg(trace_ctx, "\tweighted_bipred_idc = %d\n", p->pic_fields.bits.weighted_bipred_idc);
2101
    va_TraceMsg(trace_ctx, "\tconstrained_intra_pred_flag = %d\n", p->pic_fields.bits.constrained_intra_pred_flag);
2102
    va_TraceMsg(trace_ctx, "\ttransform_8x8_mode_flag = %d\n", p->pic_fields.bits.transform_8x8_mode_flag);
2103
    va_TraceMsg(trace_ctx, "\tdeblocking_filter_control_present_flag = %d\n", p->pic_fields.bits.deblocking_filter_control_present_flag);
2104
    va_TraceMsg(trace_ctx, "\tredundant_pic_cnt_present_flag = %d\n", p->pic_fields.bits.redundant_pic_cnt_present_flag);
2105
    va_TraceMsg(trace_ctx, "\tpic_order_present_flag = %d\n", p->pic_fields.bits.pic_order_present_flag);
2106
    va_TraceMsg(trace_ctx, "\tpic_scaling_matrix_present_flag = %d\n", p->pic_fields.bits.pic_scaling_matrix_present_flag);
2107
2108
 
2109
2110
 
2111
}
2112
2113
 
2114
    VADisplay dpy,
2115
    VAContextID context,
2116
    VABufferID buffer,
2117
    VABufferType type,
2118
    unsigned int size,
2119
    unsigned int num_elements,
2120
    void *data)
2121
{
2122
    VAEncSliceParameterBuffer* p = (VAEncSliceParameterBuffer*)data;
2123
    DPY2TRACECTX(dpy);
2124
2125
 
2126
2127
 
2128
    va_TraceMsg(trace_ctx, "\tslice_height = %d\n", p->slice_height);
2129
    va_TraceMsg(trace_ctx, "\tslice_flags.is_intra = %d\n", p->slice_flags.bits.is_intra);
2130
    va_TraceMsg(trace_ctx, "\tslice_flags.disable_deblocking_filter_idc = %d\n", p->slice_flags.bits.disable_deblocking_filter_idc);
2131
    va_TraceMsg(trace_ctx, "\tslice_flags.uses_long_term_ref = %d\n", p->slice_flags.bits.uses_long_term_ref);
2132
    va_TraceMsg(trace_ctx, "\tslice_flags.is_long_term_ref = %d\n", p->slice_flags.bits.is_long_term_ref);
2133
    va_TraceMsg(trace_ctx, NULL);
2134
2135
 
2136
}
2137
2138
 
2139
    VADisplay dpy,
2140
    VAContextID context,
2141
    VABufferID buffer,
2142
    VABufferType type,
2143
    unsigned int size,
2144
    unsigned int num_elements,
2145
    void *data)
2146
{
2147
    VAEncSliceParameterBufferH264* p = (VAEncSliceParameterBufferH264*)data;
2148
    DPY2TRACECTX(dpy);
2149
    int i;
2150
2151
 
2152
        return;
2153
2154
 
2155
    va_TraceMsg(trace_ctx, "\tmacroblock_address = %u\n", p->macroblock_address);
2156
    va_TraceMsg(trace_ctx, "\tnum_macroblocks = %u\n", p->num_macroblocks);
2157
    va_TraceMsg(trace_ctx, "\tmacroblock_info = %08x\n", p->macroblock_info);
2158
    va_TraceMsg(trace_ctx, "\tslice_type = %d\n", p->slice_type);
2159
    va_TraceMsg(trace_ctx, "\tpic_parameter_set_id = %d\n", p->pic_parameter_set_id);
2160
    va_TraceMsg(trace_ctx, "\tidr_pic_id = %d\n", p->idr_pic_id);
2161
    va_TraceMsg(trace_ctx, "\tpic_order_cnt_lsb = %d\n", p->pic_order_cnt_lsb);
2162
    va_TraceMsg(trace_ctx, "\tdelta_pic_order_cnt_bottom = %d\n", p->delta_pic_order_cnt_bottom);
2163
    va_TraceMsg(trace_ctx, "\tdelta_pic_order_cnt[0] = %d\n", p->delta_pic_order_cnt[0]);
2164
    va_TraceMsg(trace_ctx, "\tdelta_pic_order_cnt[1] = %d\n", p->delta_pic_order_cnt[1]);
2165
    va_TraceMsg(trace_ctx, "\tdirect_spatial_mv_pred_flag = %d\n", p->direct_spatial_mv_pred_flag);
2166
    va_TraceMsg(trace_ctx, "\tnum_ref_idx_active_override_flag = %d\n", p->num_ref_idx_active_override_flag);
2167
    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l1_active_minus1 = %d\n", p->num_ref_idx_l1_active_minus1);
2168
    va_TraceMsg(trace_ctx, "\tslice_beta_offset_div2 = %d\n", p->slice_beta_offset_div2);
2169
2170
 
2171
2172
 
2173
 
2174
 
2175
        if ((p->RefPicList0[i].picture_id != VA_INVALID_SURFACE) &&
2176
            ((p->RefPicList0[i].flags & VA_PICTURE_H264_INVALID) == 0))
2177
            va_TraceMsg(trace_ctx, "\t\t%08d-%08d-0x%08x-%08d-0x%08x\n",
2178
                        p->RefPicList0[i].TopFieldOrderCnt,
2179
                        p->RefPicList0[i].BottomFieldOrderCnt,
2180
                        p->RefPicList0[i].picture_id,
2181
                        p->RefPicList0[i].frame_idx,
2182
                        p->RefPicList0[i].flags);
2183
        else
2184
            break;
2185
    }
2186
2187
 
2188
    for (i = 0; i < 32; i++) {
2189
        if ((p->RefPicList1[i].picture_id != VA_INVALID_SURFACE) &&
2190
            ((p->RefPicList1[i].flags & VA_PICTURE_H264_INVALID) == 0))
2191
            va_TraceMsg(trace_ctx, "\t\t%08d-%08d-0x%08x-%08d-0x%08d\n",
2192
                        p->RefPicList1[i].TopFieldOrderCnt,
2193
                        p->RefPicList1[i].BottomFieldOrderCnt,
2194
                        p->RefPicList1[i].picture_id,
2195
                        p->RefPicList1[i].frame_idx,
2196
                        p->RefPicList1[i].flags
2197
                        );
2198
        else
2199
            break;
2200
    }
2201
2202
 
2203
    va_TraceMsg(trace_ctx, "\tchroma_log2_weight_denom = %d\n", p->chroma_log2_weight_denom);
2204
    va_TraceMsg(trace_ctx, "\tluma_weight_l0_flag = %d\n", p->luma_weight_l0_flag);
2205
    if (p->luma_weight_l0_flag) {
2206
        for (i = 0; (i <= p->num_ref_idx_l0_active_minus1) && (i<32); i++) {
2207
            va_TraceMsg(trace_ctx, "\t\t%d\t%d\n",
2208
                        p->luma_weight_l0[i],
2209
                        p->luma_offset_l0[i]);
2210
        }
2211
    }
2212
2213
 
2214
    if (p->chroma_weight_l0_flag) {
2215
        for (i = 0; (i <= p->num_ref_idx_l0_active_minus1) && (i<32); i++) {
2216
            va_TraceMsg(trace_ctx, "\t\t%d\t%d\t%d\t%d\n",
2217
                        p->chroma_weight_l0[i][0],
2218
                        p->chroma_offset_l0[i][0],
2219
                        p->chroma_weight_l0[i][1],
2220
                        p->chroma_offset_l0[i][1]);
2221
        }
2222
    }
2223
2224
 
2225
    if (p->luma_weight_l1_flag) {
2226
        for (i = 0; (i <= p->num_ref_idx_l1_active_minus1) && (i<32); i++) {
2227
            va_TraceMsg(trace_ctx, "\t\t%d\t\t%d\n",
2228
                        p->luma_weight_l1[i],
2229
                        p->luma_offset_l1[i]);
2230
        }
2231
    }
2232
2233
 
2234
    if (p->chroma_weight_l1_flag && p->num_ref_idx_l1_active_minus1 < 32) {
2235
        for (i = 0; (i <= p->num_ref_idx_l1_active_minus1) && (i<32); i++) {
2236
            va_TraceMsg(trace_ctx, "\t\t%d\t%d\t%d\t%d\n",
2237
                        p->chroma_weight_l1[i][0],
2238
                        p->chroma_offset_l1[i][0],
2239
                        p->chroma_weight_l1[i][1],
2240
                        p->chroma_offset_l1[i][1]);
2241
        }
2242
    }
2243
    va_TraceMsg(trace_ctx, NULL);
2244
2245
 
2246
    va_TraceMsg(trace_ctx, "\tslice_qp_delta = %d\n", p->slice_qp_delta);
2247
    va_TraceMsg(trace_ctx, "\tdisable_deblocking_filter_idc = %d\n", p->disable_deblocking_filter_idc);
2248
    va_TraceMsg(trace_ctx, "\tslice_alpha_c0_offset_div2 = %d\n", p->slice_alpha_c0_offset_div2);
2249
    va_TraceMsg(trace_ctx, "\tslice_beta_offset_div2 = %d\n", p->slice_beta_offset_div2);
2250
    va_TraceMsg(trace_ctx, NULL);
2251
2252
 
2253
}
2254
2255
 
2256
 
2257
    VADisplay dpy,
2258
    VAContextID context,
2259
    VABufferID buffer,
2260
    VABufferType type,
2261
    unsigned int size,
2262
    unsigned int num_elements,
2263
    void *data)
2264
{
2265
    VAEncPackedHeaderParameterBuffer* p = (VAEncPackedHeaderParameterBuffer*)data;
2266
    DPY2TRACECTX(dpy);
2267
    int i;
2268
2269
 
2270
        return;
2271
    va_TraceMsg(trace_ctx, "\t--VAEncPackedHeaderParameterBuffer\n");
2272
    va_TraceMsg(trace_ctx, "\ttype = 0x%08x\n", p->type);
2273
    va_TraceMsg(trace_ctx, "\tbit_length = %d\n", p->bit_length);
2274
    va_TraceMsg(trace_ctx, "\thas_emulation_bytes = %d\n", p->has_emulation_bytes);
2275
    va_TraceMsg(trace_ctx, NULL);
2276
2277
 
2278
}
2279
2280
 
2281
    VADisplay dpy,
2282
    VAContextID context,
2283
    VABufferID buffer,
2284
    VABufferType type,
2285
    unsigned int size,
2286
    unsigned int num_elements,
2287
    void *data)
2288
{
2289
    VAEncMiscParameterBuffer* tmp = (VAEncMiscParameterBuffer*)data;
2290
    DPY2TRACECTX(dpy);
2291
2292
 
2293
    case VAEncMiscParameterTypeFrameRate:
2294
    {
2295
        VAEncMiscParameterFrameRate *p = (VAEncMiscParameterFrameRate *)tmp->data;
2296
        va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterFrameRate\n");
2297
        va_TraceMsg(trace_ctx, "\tframerate = %d\n", p->framerate);
2298
2299
 
2300
    }
2301
    case VAEncMiscParameterTypeRateControl:
2302
    {
2303
        VAEncMiscParameterRateControl *p = (VAEncMiscParameterRateControl *)tmp->data;
2304
2305
 
2306
        va_TraceMsg(trace_ctx, "\tbits_per_second = %d\n", p->bits_per_second);
2307
        va_TraceMsg(trace_ctx, "\ttarget_percentage = %d\n", p->target_percentage);
2308
        va_TraceMsg(trace_ctx, "\twindow_size = %d\n", p->window_size);
2309
        va_TraceMsg(trace_ctx, "\tinitial_qp = %d\n", p->initial_qp);
2310
        va_TraceMsg(trace_ctx, "\tmin_qp = %d\n", p->min_qp);
2311
        va_TraceMsg(trace_ctx, "\tbasic_unit_size = %d\n", p->basic_unit_size);
2312
        va_TraceMsg(trace_ctx, "\trc_flags.reset = %d \n", p->rc_flags.bits.reset);
2313
        va_TraceMsg(trace_ctx, "\trc_flags.disable_frame_skip = %d\n", p->rc_flags.bits.disable_frame_skip);
2314
        va_TraceMsg(trace_ctx, "\trc_flags.disable_bit_stuffing = %d\n", p->rc_flags.bits.disable_bit_stuffing);
2315
        break;
2316
    }
2317
    case VAEncMiscParameterTypeMaxSliceSize:
2318
    {
2319
        VAEncMiscParameterMaxSliceSize *p = (VAEncMiscParameterMaxSliceSize *)tmp->data;
2320
2321
 
2322
        va_TraceMsg(trace_ctx, "\tmax_slice_size = %d\n", p->max_slice_size);
2323
        break;
2324
    }
2325
    case VAEncMiscParameterTypeAIR:
2326
    {
2327
        VAEncMiscParameterAIR *p = (VAEncMiscParameterAIR *)tmp->data;
2328
2329
 
2330
        va_TraceMsg(trace_ctx, "\tair_num_mbs = %d\n", p->air_num_mbs);
2331
        va_TraceMsg(trace_ctx, "\tair_threshold = %d\n", p->air_threshold);
2332
        va_TraceMsg(trace_ctx, "\tair_auto = %d\n", p->air_auto);
2333
        break;
2334
    }
2335
    case VAEncMiscParameterTypeHRD:
2336
    {
2337
        VAEncMiscParameterHRD *p = (VAEncMiscParameterHRD *)tmp->data;
2338
2339
 
2340
        va_TraceMsg(trace_ctx, "\tinitial_buffer_fullness = %d\n", p->initial_buffer_fullness);
2341
        va_TraceMsg(trace_ctx, "\tbuffer_size = %d\n", p->buffer_size);
2342
        break;
2343
    }
2344
    case VAEncMiscParameterTypeMaxFrameSize:
2345
    {
2346
        VAEncMiscParameterBufferMaxFrameSize *p = (VAEncMiscParameterBufferMaxFrameSize *)tmp->data;
2347
2348
 
2349
        va_TraceMsg(trace_ctx, "\tmax_frame_size = %d\n", p->max_frame_size);
2350
        break;
2351
    }
2352
    default:
2353
        va_TraceMsg(trace_ctx, "Unknown VAEncMiscParameterBuffer(type = %d):\n", tmp->type);
2354
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, data);
2355
        break;
2356
    }
2357
    va_TraceMsg(trace_ctx, NULL);
2358
2359
 
2360
}
2361
2362
 
2363
 
2364
    VADisplay dpy,
2365
    VAContextID context,
2366
    VABufferID buffer,
2367
    VABufferType type,
2368
    unsigned int size,
2369
    unsigned int num_elements,
2370
    void *data
2371
)
2372
{
2373
    VAPictureParameterBufferVC1* p = (VAPictureParameterBufferVC1*)data;
2374
    DPY2TRACECTX(dpy);
2375
2376
 
2377
2378
 
2379
    va_TraceMsg(trace_ctx, "\tbackward_reference_picture = 0x%08x\n", p->backward_reference_picture);
2380
    va_TraceMsg(trace_ctx, "\tinloop_decoded_picture = 0x%08x\n", p->inloop_decoded_picture);
2381
2382
 
2383
    va_TraceMsg(trace_ctx, "\tinterlace = %d\n", p->sequence_fields.bits.interlace);
2384
    va_TraceMsg(trace_ctx, "\ttfcntrflag = %d\n", p->sequence_fields.bits.tfcntrflag);
2385
    va_TraceMsg(trace_ctx, "\tfinterpflag = %d\n", p->sequence_fields.bits.finterpflag);
2386
    va_TraceMsg(trace_ctx, "\tpsf = %d\n", p->sequence_fields.bits.psf);
2387
    va_TraceMsg(trace_ctx, "\tmultires = %d\n", p->sequence_fields.bits.multires);
2388
    va_TraceMsg(trace_ctx, "\toverlap = %d\n", p->sequence_fields.bits.overlap);
2389
    va_TraceMsg(trace_ctx, "\tsyncmarker = %d\n", p->sequence_fields.bits.syncmarker);
2390
    va_TraceMsg(trace_ctx, "\trangered = %d\n", p->sequence_fields.bits.rangered);
2391
    va_TraceMsg(trace_ctx, "\tmax_b_frames = %d\n", p->sequence_fields.bits.max_b_frames);
2392
    va_TraceMsg(trace_ctx, "\tprofile = %d\n", p->sequence_fields.bits.profile);
2393
    va_TraceMsg(trace_ctx, "\tcoded_width = %d\n", p->coded_width);
2394
    va_TraceMsg(trace_ctx, "\tcoded_height = %d\n", p->coded_height);
2395
    va_TraceMsg(trace_ctx, "\tclosed_entry = %d\n", p->entrypoint_fields.bits.closed_entry);
2396
    va_TraceMsg(trace_ctx, "\tbroken_link = %d\n", p->entrypoint_fields.bits.broken_link);
2397
    va_TraceMsg(trace_ctx, "\tclosed_entry = %d\n", p->entrypoint_fields.bits.closed_entry);
2398
    va_TraceMsg(trace_ctx, "\tpanscan_flag = %d\n", p->entrypoint_fields.bits.panscan_flag);
2399
    va_TraceMsg(trace_ctx, "\tloopfilter = %d\n", p->entrypoint_fields.bits.loopfilter);
2400
    va_TraceMsg(trace_ctx, "\tconditional_overlap_flag = %d\n", p->conditional_overlap_flag);
2401
    va_TraceMsg(trace_ctx, "\tfast_uvmc_flag = %d\n", p->fast_uvmc_flag);
2402
    va_TraceMsg(trace_ctx, "\trange_mapping_luma_flag = %d\n", p->range_mapping_fields.bits.luma_flag);
2403
    va_TraceMsg(trace_ctx, "\trange_mapping_luma = %d\n", p->range_mapping_fields.bits.luma);
2404
    va_TraceMsg(trace_ctx, "\trange_mapping_chroma_flag = %d\n", p->range_mapping_fields.bits.chroma_flag);
2405
    va_TraceMsg(trace_ctx, "\trange_mapping_chroma = %d\n", p->range_mapping_fields.bits.chroma);
2406
    va_TraceMsg(trace_ctx, "\tb_picture_fraction = %d\n", p->b_picture_fraction);
2407
    va_TraceMsg(trace_ctx, "\tcbp_table = %d\n", p->cbp_table);
2408
    va_TraceMsg(trace_ctx, "\tmb_mode_table = %d\n", p->mb_mode_table);
2409
    va_TraceMsg(trace_ctx, "\trange_reduction_frame = %d\n", p->range_reduction_frame);
2410
    va_TraceMsg(trace_ctx, "\trounding_control = %d\n", p->rounding_control);
2411
    va_TraceMsg(trace_ctx, "\tpost_processing = %d\n", p->post_processing);
2412
    va_TraceMsg(trace_ctx, "\tpicture_resolution_index = %d\n", p->picture_resolution_index);
2413
    va_TraceMsg(trace_ctx, "\tluma_scale = %d\n", p->luma_scale);
2414
    va_TraceMsg(trace_ctx, "\tluma_shift = %d\n", p->luma_shift);
2415
    va_TraceMsg(trace_ctx, "\tpicture_type = %d\n", p->picture_fields.bits.picture_type);
2416
    va_TraceMsg(trace_ctx, "\tframe_coding_mode = %d\n", p->picture_fields.bits.frame_coding_mode);
2417
    va_TraceMsg(trace_ctx, "\ttop_field_first = %d\n", p->picture_fields.bits.top_field_first);
2418
    va_TraceMsg(trace_ctx, "\tis_first_field = %d\n", p->picture_fields.bits.is_first_field);
2419
    va_TraceMsg(trace_ctx, "\tintensity_compensation = %d\n", p->picture_fields.bits.intensity_compensation);
2420
    va_TraceMsg(trace_ctx, "\tmv_type_mb = %d\n", p->raw_coding.flags.mv_type_mb);
2421
    va_TraceMsg(trace_ctx, "\tdirect_mb = %d\n", p->raw_coding.flags.direct_mb);
2422
    va_TraceMsg(trace_ctx, "\tskip_mb = %d\n", p->raw_coding.flags.skip_mb);
2423
    va_TraceMsg(trace_ctx, "\tfield_tx = %d\n", p->raw_coding.flags.field_tx);
2424
    va_TraceMsg(trace_ctx, "\tforward_mb = %d\n", p->raw_coding.flags.forward_mb);
2425
    va_TraceMsg(trace_ctx, "\tac_pred = %d\n", p->raw_coding.flags.ac_pred);
2426
    va_TraceMsg(trace_ctx, "\toverflags = %d\n", p->raw_coding.flags.overflags);
2427
    va_TraceMsg(trace_ctx, "\tbp_mv_type_mb = %d\n", p->bitplane_present.flags.bp_mv_type_mb);
2428
    va_TraceMsg(trace_ctx, "\tbp_direct_mb = %d\n", p->bitplane_present.flags.bp_direct_mb);
2429
    va_TraceMsg(trace_ctx, "\tbp_skip_mb = %d\n", p->bitplane_present.flags.bp_skip_mb);
2430
    va_TraceMsg(trace_ctx, "\tbp_field_tx = %d\n", p->bitplane_present.flags.bp_field_tx);
2431
    va_TraceMsg(trace_ctx, "\tbp_forward_mb = %d\n", p->bitplane_present.flags.bp_forward_mb);
2432
    va_TraceMsg(trace_ctx, "\tbp_ac_pred = %d\n", p->bitplane_present.flags.bp_ac_pred);
2433
    va_TraceMsg(trace_ctx, "\tbp_overflags = %d\n", p->bitplane_present.flags.bp_overflags);
2434
    va_TraceMsg(trace_ctx, "\treference_distance_flag = %d\n", p->reference_fields.bits.reference_distance_flag);
2435
    va_TraceMsg(trace_ctx, "\treference_distance = %d\n", p->reference_fields.bits.reference_distance);
2436
    va_TraceMsg(trace_ctx, "\tnum_reference_pictures = %d\n", p->reference_fields.bits.num_reference_pictures);
2437
    va_TraceMsg(trace_ctx, "\treference_field_pic_indicator = %d\n", p->reference_fields.bits.reference_field_pic_indicator);
2438
    va_TraceMsg(trace_ctx, "\tmv_mode = %d\n", p->mv_fields.bits.mv_mode);
2439
    va_TraceMsg(trace_ctx, "\tmv_mode2 = %d\n", p->mv_fields.bits.mv_mode2);
2440
    va_TraceMsg(trace_ctx, "\tmv_table = %d\n", p->mv_fields.bits.mv_table);
2441
    va_TraceMsg(trace_ctx, "\ttwo_mv_block_pattern_table = %d\n", p->mv_fields.bits.two_mv_block_pattern_table);
2442
    va_TraceMsg(trace_ctx, "\tfour_mv_switch = %d\n", p->mv_fields.bits.four_mv_switch);
2443
    va_TraceMsg(trace_ctx, "\tfour_mv_block_pattern_table = %d\n", p->mv_fields.bits.four_mv_block_pattern_table);
2444
    va_TraceMsg(trace_ctx, "\textended_mv_flag = %d\n", p->mv_fields.bits.extended_mv_flag);
2445
    va_TraceMsg(trace_ctx, "\textended_mv_range = %d\n", p->mv_fields.bits.extended_mv_range);
2446
    va_TraceMsg(trace_ctx, "\textended_dmv_flag = %d\n", p->mv_fields.bits.extended_dmv_flag);
2447
    va_TraceMsg(trace_ctx, "\textended_dmv_range = %d\n", p->mv_fields.bits.extended_dmv_range);
2448
    va_TraceMsg(trace_ctx, "\tdquant = %d\n", p->pic_quantizer_fields.bits.dquant);
2449
    va_TraceMsg(trace_ctx, "\tquantizer = %d\n", p->pic_quantizer_fields.bits.quantizer);
2450
    va_TraceMsg(trace_ctx, "\thalf_qp = %d\n", p->pic_quantizer_fields.bits.half_qp);
2451
    va_TraceMsg(trace_ctx, "\tpic_quantizer_scale = %d\n", p->pic_quantizer_fields.bits.pic_quantizer_scale);
2452
    va_TraceMsg(trace_ctx, "\tpic_quantizer_type = %d\n", p->pic_quantizer_fields.bits.pic_quantizer_type);
2453
    va_TraceMsg(trace_ctx, "\tdq_frame = %d\n", p->pic_quantizer_fields.bits.dq_frame);
2454
    va_TraceMsg(trace_ctx, "\tdq_profile = %d\n", p->pic_quantizer_fields.bits.dq_profile);
2455
    va_TraceMsg(trace_ctx, "\tdq_sb_edge = %d\n", p->pic_quantizer_fields.bits.dq_sb_edge);
2456
    va_TraceMsg(trace_ctx, "\tdq_db_edge = %d\n", p->pic_quantizer_fields.bits.dq_db_edge);
2457
    va_TraceMsg(trace_ctx, "\tdq_binary_level = %d\n", p->pic_quantizer_fields.bits.dq_binary_level);
2458
    va_TraceMsg(trace_ctx, "\talt_pic_quantizer = %d\n", p->pic_quantizer_fields.bits.alt_pic_quantizer);
2459
    va_TraceMsg(trace_ctx, "\tvariable_sized_transform_flag = %d\n", p->transform_fields.bits.variable_sized_transform_flag);
2460
    va_TraceMsg(trace_ctx, "\tmb_level_transform_type_flag = %d\n", p->transform_fields.bits.mb_level_transform_type_flag);
2461
    va_TraceMsg(trace_ctx, "\tframe_level_transform_type = %d\n", p->transform_fields.bits.frame_level_transform_type);
2462
    va_TraceMsg(trace_ctx, "\ttransform_ac_codingset_idx1 = %d\n", p->transform_fields.bits.transform_ac_codingset_idx1);
2463
    va_TraceMsg(trace_ctx, "\ttransform_ac_codingset_idx2 = %d\n", p->transform_fields.bits.transform_ac_codingset_idx2);
2464
    va_TraceMsg(trace_ctx, "\tintra_transform_dc_table = %d\n", p->transform_fields.bits.intra_transform_dc_table);
2465
    va_TraceMsg(trace_ctx, NULL);
2466
}
2467
2468
 
2469
    VADisplay dpy,
2470
    VAContextID context,
2471
    VABufferID buffer,
2472
    VABufferType type,
2473
    unsigned int size,
2474
    unsigned int num_elements,
2475
    void* data
2476
)
2477
{
2478
    VASliceParameterBufferVC1 *p = (VASliceParameterBufferVC1*)data;
2479
    DPY2TRACECTX(dpy);
2480
2481
 
2482
    trace_ctx->trace_slice_size = p->slice_data_size;
2483
2484
 
2485
    va_TraceMsg(trace_ctx, "\tslice_data_size = %d\n", p->slice_data_size);
2486
    va_TraceMsg(trace_ctx, "\tslice_data_offset = %d\n", p->slice_data_offset);
2487
    va_TraceMsg(trace_ctx, "\tslice_data_flag = %d\n", p->slice_data_flag);
2488
    va_TraceMsg(trace_ctx, "\tmacroblock_offset = %d\n", p->macroblock_offset);
2489
    va_TraceMsg(trace_ctx, "\tslice_vertical_position = %d\n", p->slice_vertical_position);
2490
    va_TraceMsg(trace_ctx, NULL);
2491
}
2492
2493
 
2494
    VADisplay dpy,
2495
    VAContextID context,
2496
    VABufferID buffer,
2497
    VABufferType type,
2498
    unsigned int size,
2499
    unsigned int num_elements,
2500
    void *data)
2501
{
2502
    char tmp[1024];
2503
    VAPictureParameterBufferVP8 *p = (VAPictureParameterBufferVP8 *)data;
2504
    DPY2TRACECTX(dpy);
2505
    int i,j;
2506
2507
 
2508
2509
 
2510
    va_TraceMsg(trace_ctx, "\tframe_height = %d\n", p->frame_height);
2511
    va_TraceMsg(trace_ctx, "\tlast_ref_frame = %x\n", p->last_ref_frame);
2512
    va_TraceMsg(trace_ctx, "\tgolden_ref_frame = %x\n", p->golden_ref_frame);
2513
    va_TraceMsg(trace_ctx, "\talt_ref_frame = %x\n", p->alt_ref_frame);
2514
    va_TraceMsg(trace_ctx, "\tout_of_loop_frame = %x\n", p->out_of_loop_frame);
2515
2516
 
2517
    va_TraceMsg(trace_ctx, "\tversion = %d\n", p->pic_fields.bits.version);
2518
    va_TraceMsg(trace_ctx, "\tsegmentation_enabled = %d\n", p->pic_fields.bits.segmentation_enabled);
2519
    va_TraceMsg(trace_ctx, "\tupdate_mb_segmentation_map = %d\n", p->pic_fields.bits.update_mb_segmentation_map);
2520
    va_TraceMsg(trace_ctx, "\tupdate_segment_feature_data = %d\n", p->pic_fields.bits.update_segment_feature_data);
2521
    va_TraceMsg(trace_ctx, "\tfilter_type = %d\n", p->pic_fields.bits.filter_type);
2522
    va_TraceMsg(trace_ctx, "\tsharpness_level = %d\n", p->pic_fields.bits.sharpness_level);
2523
    va_TraceMsg(trace_ctx, "\tloop_filter_adj_enable = %d\n", p->pic_fields.bits.loop_filter_adj_enable);
2524
    va_TraceMsg(trace_ctx, "\tmode_ref_lf_delta_update = %d\n", p->pic_fields.bits.mode_ref_lf_delta_update);
2525
    va_TraceMsg(trace_ctx, "\tsign_bias_golden = %d\n", p->pic_fields.bits.sign_bias_golden);
2526
    va_TraceMsg(trace_ctx, "\tsign_bias_alternate = %d\n", p->pic_fields.bits.sign_bias_alternate);
2527
    va_TraceMsg(trace_ctx, "\tmb_no_coeff_skip = %d\n", p->pic_fields.bits.mb_no_coeff_skip);
2528
    va_TraceMsg(trace_ctx, "\tloop_filter_disable = %d\n", p->pic_fields.bits.loop_filter_disable);
2529
2530
 
2531
        p->mb_segment_tree_probs[0], p->mb_segment_tree_probs[1], p->mb_segment_tree_probs[2]);
2532
2533
 
2534
        p->loop_filter_level[0], p->loop_filter_level[1], p->loop_filter_level[2], p->loop_filter_level[3]);
2535
2536
 
2537
        p->loop_filter_deltas_ref_frame[0], p->loop_filter_deltas_ref_frame[1], p->loop_filter_deltas_ref_frame[2], p->loop_filter_deltas_ref_frame[3]);
2538
2539
 
2540
        p->loop_filter_deltas_mode[0], p->loop_filter_deltas_mode[1], p->loop_filter_deltas_mode[2], p->loop_filter_deltas_mode[3]);
2541
2542
 
2543
    va_TraceMsg(trace_ctx, "\tprob_intra = %2x\n", p->prob_intra);
2544
    va_TraceMsg(trace_ctx, "\tprob_last = %2x\n", p->prob_last);
2545
    va_TraceMsg(trace_ctx, "\tprob_gf = %2x\n", p->prob_gf);
2546
2547
 
2548
        p->y_mode_probs[0], p->y_mode_probs[1], p->y_mode_probs[2], p->y_mode_probs[3]);
2549
2550
 
2551
        p->uv_mode_probs[0], p->uv_mode_probs[1], p->uv_mode_probs[2]);
2552
2553
 
2554
    for(i = 0; i<2; ++i) {
2555
        memset(tmp, 0, sizeof tmp);
2556
        for (j=0; j<19; j++)
2557
            sprintf(tmp + strlen(tmp), "%2x ", p->mv_probs[i][j]);
2558
        va_TraceMsg(trace_ctx,"\t\t[%d] = %s\n", i, tmp);
2559
    }
2560
2561
 
2562
        p->bool_coder_ctx.range, p->bool_coder_ctx.value, p->bool_coder_ctx.count);
2563
2564
 
2565
2566
 
2567
}
2568
2569
 
2570
    VADisplay dpy,
2571
    VAContextID context,
2572
    VABufferID buffer,
2573
    VABufferType type,
2574
    unsigned int size,
2575
    unsigned int num_elements,
2576
    void *data)
2577
{
2578
    VASliceParameterBufferVP8 *p = (VASliceParameterBufferVP8 *)data;
2579
    DPY2TRACECTX(dpy);
2580
    int i;
2581
2582
 
2583
2584
 
2585
    va_TraceMsg(trace_ctx, "\tslice_data_offset = %d\n", p->slice_data_offset);
2586
    va_TraceMsg(trace_ctx, "\tslice_data_flag = %d\n", p->slice_data_flag);
2587
    va_TraceMsg(trace_ctx, "\tmacroblock_offset = %d\n", p->macroblock_offset);
2588
    va_TraceMsg(trace_ctx, "\tnum_of_partitions = %d\n", p->num_of_partitions);
2589
2590
 
2591
        va_TraceMsg(trace_ctx, "\tpartition_size[%d] = %d\n", i, p->partition_size[i]);
2592
2593
 
2594
2595
 
2596
}
2597
2598
 
2599
    VADisplay dpy,
2600
    VAContextID context,
2601
    VABufferID buffer,
2602
    VABufferType type,
2603
    unsigned int size,
2604
    unsigned int num_elements,
2605
    void *data)
2606
{
2607
    char tmp[1024];
2608
    VAIQMatrixBufferVP8 *p = (VAIQMatrixBufferVP8 *)data;
2609
    DPY2TRACECTX(dpy);
2610
    int i,j;
2611
2612
 
2613
2614
 
2615
    for (i = 0; i < 4; i++) {
2616
        memset(tmp, 0, sizeof tmp);
2617
        for (j = 0; j < 6; j++)
2618
            sprintf(tmp + strlen(tmp), "%4x, ", p->quantization_index[i][j]);
2619
        va_TraceMsg(trace_ctx,"\t\t[%d] = %s\n", i, tmp);
2620
    }
2621
2622
 
2623
2624
 
2625
}
2626
static void va_TraceVAProbabilityBufferVP8(
2627
    VADisplay dpy,
2628
    VAContextID context,
2629
    VABufferID buffer,
2630
    VABufferType type,
2631
    unsigned int size,
2632
    unsigned int num_elements,
2633
    void *data)
2634
{
2635
    char tmp[1024];
2636
    VAProbabilityDataBufferVP8 *p = (VAProbabilityDataBufferVP8 *)data;
2637
    DPY2TRACECTX(dpy);
2638
    int i,j,k,l;
2639
2640
 
2641
2642
 
2643
        for (j = 0; j < 8; j++) {
2644
            memset(tmp, 0, sizeof tmp);
2645
            for (k=0; k<3; k++)
2646
                for (l=0; l<11; l++)
2647
                    sprintf(tmp + strlen(tmp), "%2x, ", p->dct_coeff_probs[i][j][k][l]);
2648
            va_TraceMsg(trace_ctx,"\t\t[%d, %d] = %s\n", i, j, tmp);
2649
        }
2650
2651
 
2652
2653
 
2654
}
2655
2656
 
2657
    VADisplay dpy,
2658
    VAContextID context,
2659
    VABufferID buffer,
2660
    VABufferType type,
2661
    unsigned int size,
2662
    unsigned int num_elements,
2663
    void *data)
2664
{
2665
    VAEncSequenceParameterBufferVP8 *p = (VAEncSequenceParameterBufferVP8 *)data;
2666
    DPY2TRACECTX(dpy);
2667
    int i;
2668
2669
 
2670
2671
 
2672
    va_TraceMsg(trace_ctx, "\terror_resilient = %d\n", p->error_resilient);
2673
    va_TraceMsg(trace_ctx, "\tframe_height = %d\n", p->frame_height);
2674
    va_TraceMsg(trace_ctx, "\tframe_width = %d\n", p->frame_width);
2675
    va_TraceMsg(trace_ctx, "\tframe_height_scale = %d\n", p->frame_height_scale);
2676
    va_TraceMsg(trace_ctx, "\tframe_width_scale = %d\n", p->frame_width_scale);
2677
    va_TraceMsg(trace_ctx, "\tkf_auto = %d\n", p->kf_auto);
2678
    va_TraceMsg(trace_ctx, "\tkf_max_dist = %d\n", p->kf_max_dist);
2679
    va_TraceMsg(trace_ctx, "\tkf_min_dist = %d\n", p->kf_min_dist);
2680
    va_TraceMsg(trace_ctx, "\tintra_period = %d\n", p->intra_period);
2681
2682
 
2683
        va_TraceMsg(trace_ctx, "\treference_frames[%d] = 0x%08x\n", i, p->reference_frames[i]);
2684
2685
 
2686
2687
 
2688
}
2689
2690
 
2691
    VADisplay dpy,
2692
    VAContextID context,
2693
    VABufferID buffer,
2694
    VABufferType type,
2695
    unsigned int size,
2696
    unsigned int num_elements,
2697
    void *data)
2698
{
2699
    VADecPictureParameterBufferVP9 *p = (VADecPictureParameterBufferVP9 *)data;
2700
    DPY2TRACECTX(dpy);
2701
    int i,j;
2702
2703
 
2704
2705
 
2706
    va_TraceMsg(trace_ctx, "\tframe_height = %d\n", p->frame_height);
2707
    va_TraceMsg(trace_ctx, "\treference_frames[8] =\n");
2708
    for (i = 0; i < 8; i++) {
2709
        va_TraceMsg(trace_ctx, "\t\t0x%x\n", p->reference_frames[i]);
2710
    }
2711
    va_TraceMsg(trace_ctx, "\tsubsampling_x = %d\n", p->pic_fields.bits.subsampling_x);
2712
    va_TraceMsg(trace_ctx, "\tsubsampling_y = %d\n", p->pic_fields.bits.subsampling_y);
2713
    va_TraceMsg(trace_ctx, "\tframe_type = %d\n",    p->pic_fields.bits.frame_type);
2714
    va_TraceMsg(trace_ctx, "\tshow_frame = %d\n",    p->pic_fields.bits.show_frame);
2715
    va_TraceMsg(trace_ctx, "\terror_resilient_mode = %d\n", p->pic_fields.bits.error_resilient_mode);
2716
    va_TraceMsg(trace_ctx, "\tintra_only = %d\n", p->pic_fields.bits.intra_only);
2717
    va_TraceMsg(trace_ctx, "\tallow_high_precision_mv = %d\n", p->pic_fields.bits.allow_high_precision_mv);
2718
    va_TraceMsg(trace_ctx, "\tmcomp_filter_type = %d\n", p->pic_fields.bits.mcomp_filter_type);
2719
    va_TraceMsg(trace_ctx, "\tframe_parallel_decoding_mode = %d\n", p->pic_fields.bits.frame_parallel_decoding_mode);
2720
    va_TraceMsg(trace_ctx, "\treset_frame_context = %d\n", p->pic_fields.bits.reset_frame_context);
2721
    va_TraceMsg(trace_ctx, "\trefresh_frame_context = %d\n", p->pic_fields.bits.refresh_frame_context);
2722
    va_TraceMsg(trace_ctx, "\tframe_context_idx = %d\n", p->pic_fields.bits.frame_context_idx);
2723
    va_TraceMsg(trace_ctx, "\tsegmentation_enabled = %d\n", p->pic_fields.bits.segmentation_enabled);
2724
    va_TraceMsg(trace_ctx, "\tsegmentation_temporal_update = %d\n", p->pic_fields.bits.segmentation_temporal_update);
2725
    va_TraceMsg(trace_ctx, "\tsegmentation_update_map = %d\n", p->pic_fields.bits.segmentation_update_map);
2726
    va_TraceMsg(trace_ctx, "\tlast_ref_frame = %d\n", p->pic_fields.bits.last_ref_frame);
2727
    va_TraceMsg(trace_ctx, "\tlast_ref_frame_sign_bias = %d\n",    p->pic_fields.bits.last_ref_frame_sign_bias);
2728
    va_TraceMsg(trace_ctx, "\tgolden_ref_frame = %d\n",    p->pic_fields.bits.golden_ref_frame);
2729
    va_TraceMsg(trace_ctx, "\tgolden_ref_frame_sign_bias = %d\n", p->pic_fields.bits.golden_ref_frame_sign_bias);
2730
    va_TraceMsg(trace_ctx, "\talt_ref_frame = %d\n", p->pic_fields.bits.alt_ref_frame);
2731
    va_TraceMsg(trace_ctx, "\talt_ref_frame_sign_bias = %d\n", p->pic_fields.bits.alt_ref_frame_sign_bias);
2732
    va_TraceMsg(trace_ctx, "\tlossless_flag = %d\n", p->pic_fields.bits.lossless_flag);
2733
2734
 
2735
    va_TraceMsg(trace_ctx, "\tsharpness_level = %d\n", p->sharpness_level);
2736
    va_TraceMsg(trace_ctx, "\tlog2_tile_rows = %d\n", p->log2_tile_rows);
2737
    va_TraceMsg(trace_ctx, "\tlog2_tile_columns = %d\n", p->log2_tile_columns);
2738
    va_TraceMsg(trace_ctx, "\tframe_header_length_in_bytes = %d\n", p->frame_header_length_in_bytes);
2739
    va_TraceMsg(trace_ctx, "\tfirst_partition_size = %d\n", p->first_partition_size);
2740
2741
 
2742
                p->mb_segment_tree_probs[0], p->mb_segment_tree_probs[1],
2743
                p->mb_segment_tree_probs[2], p->mb_segment_tree_probs[3],
2744
                p->mb_segment_tree_probs[4], p->mb_segment_tree_probs[5],
2745
                p->mb_segment_tree_probs[6]);
2746
2747
 
2748
2749
 
2750
2751
 
2752
2753
 
2754
}
2755
2756
 
2757
    VADisplay dpy,
2758
    VAContextID context,
2759
    VABufferID buffer,
2760
    VABufferType type,
2761
    unsigned int size,
2762
    unsigned int num_elements,
2763
    void *data)
2764
{
2765
    VAEncPictureParameterBufferVP8 *p = (VAEncPictureParameterBufferVP8 *)data;
2766
    DPY2TRACECTX(dpy);
2767
    int i;
2768
2769
 
2770
    va_TraceMsg(trace_ctx, "\treconstructed_frame = 0x%08x\n", p->reconstructed_frame);
2771
    va_TraceMsg(trace_ctx, "\tref_last_frame = 0x%08x\n", p->ref_last_frame);
2772
    va_TraceMsg(trace_ctx, "\tref_gf_frame = 0x%08x\n", p->ref_gf_frame);
2773
    va_TraceMsg(trace_ctx, "\tref_arf_frame = 0x%08x\n", p->ref_arf_frame);
2774
    va_TraceMsg(trace_ctx, "\tcoded_buf = 0x%08x\n", p->coded_buf);
2775
2776
 
2777
    va_TraceMsg(trace_ctx, "\tref_flags.bits.no_ref_last = %d\n", p->ref_flags.bits.no_ref_last);
2778
    va_TraceMsg(trace_ctx, "\tref_flags.bits.no_ref_gf = %d\n", p->ref_flags.bits.no_ref_gf);
2779
    va_TraceMsg(trace_ctx, "\tref_flags.bits.no_ref_arf = %d\n", p->ref_flags.bits.no_ref_arf);
2780
    va_TraceMsg(trace_ctx, "\tref_flags.bits.no_ref_arf = 0x%08x\n", p->ref_flags.bits.reserved);
2781
2782
 
2783
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.version = %d\n", p->pic_flags.bits.version);
2784
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.show_frame = %d\n", p->pic_flags.bits.show_frame);
2785
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.color_space = %d\n", p->pic_flags.bits.color_space);
2786
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.recon_filter_type = %d\n", p->pic_flags.bits.recon_filter_type);
2787
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.loop_filter_type = %d\n", p->pic_flags.bits.loop_filter_type);
2788
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.auto_partitions = %d\n", p->pic_flags.bits.auto_partitions);
2789
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.num_token_partitions = %d\n", p->pic_flags.bits.num_token_partitions);
2790
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.clamping_type = %d\n", p->pic_flags.bits.clamping_type);
2791
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.segmentation_enabled = %d\n", p->pic_flags.bits.segmentation_enabled);
2792
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.update_mb_segmentation_map = %d\n", p->pic_flags.bits.update_mb_segmentation_map);
2793
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.update_segment_feature_data = %d\n", p->pic_flags.bits.update_segment_feature_data);
2794
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.loop_filter_adj_enable = %d\n", p->pic_flags.bits.loop_filter_adj_enable);
2795
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.refresh_entropy_probs = %d\n", p->pic_flags.bits.refresh_entropy_probs);
2796
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.refresh_golden_frame = %d\n", p->pic_flags.bits.refresh_golden_frame);
2797
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.refresh_alternate_frame = %d\n", p->pic_flags.bits.refresh_alternate_frame);
2798
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.refresh_last = %d\n", p->pic_flags.bits.refresh_last);
2799
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.copy_buffer_to_golden = %d\n", p->pic_flags.bits.copy_buffer_to_golden);
2800
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.copy_buffer_to_alternate = %d\n", p->pic_flags.bits.copy_buffer_to_alternate);
2801
2802
 
2803
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.sign_bias_alternate = %d\n", p->pic_flags.bits.sign_bias_alternate);
2804
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.mb_no_coeff_skip = %d\n", p->pic_flags.bits.mb_no_coeff_skip);
2805
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.forced_lf_adjustment = %d\n", p->pic_flags.bits.forced_lf_adjustment);
2806
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.reserved = %d\n", p->pic_flags.bits.reserved);
2807
2808
 
2809
       va_TraceMsg(trace_ctx, "\tloop_filter_level[%d] = %d\n", i, p->loop_filter_level[i]);
2810
    for(i=0;i<4;i++)
2811
       va_TraceMsg(trace_ctx, "\tref_lf_delta[%d] = %d\n", i, p->ref_lf_delta[i]);
2812
    for(i=0;i<4;i++)
2813
       va_TraceMsg(trace_ctx, "\tmode_lf_delta[%d] = %d\n", i, p->mode_lf_delta[i]);
2814
2815
 
2816
    va_TraceMsg(trace_ctx, "\tclamp_qindex_high = %d\n", p->clamp_qindex_high);
2817
    va_TraceMsg(trace_ctx, "\tclamp_qindex_low = %d\n", p->clamp_qindex_low);
2818
2819
 
2820
2821
 
2822
}
2823
2824
 
2825
    VADisplay dpy,
2826
    VAContextID context,
2827
    VABufferID buffer,
2828
    VABufferType type,
2829
    unsigned int size,
2830
    unsigned int num_elements,
2831
    void *data)
2832
{
2833
2834
 
2835
    DPY2TRACECTX(dpy);
2836
    int i, j;
2837
2838
 
2839
2840
 
2841
    va_TraceMsg(trace_ctx, "\tslice_data_offset = %d\n", p->slice_data_offset);
2842
    va_TraceMsg(trace_ctx, "\tslice_data_flag = %d\n", p->slice_data_flag);
2843
2844
 
2845
        VASegmentParameterVP9* seg = p->seg_param + i;
2846
        va_TraceMsg(trace_ctx, "\tseg_param[%d] = \n",  i);
2847
        va_TraceMsg(trace_ctx, "\t\tsegment_reference_enabled = %d\n", seg->segment_flags.fields.segment_reference_enabled);
2848
        va_TraceMsg(trace_ctx, "\t\tsegment_reference = %d\n", seg->segment_flags.fields.segment_reference);
2849
        va_TraceMsg(trace_ctx, "\t\tsegment_reference_skipped = %d\n", seg->segment_flags.fields.segment_reference_skipped);
2850
        va_TraceMsg(trace_ctx, "\t\tfilter_level[4][2] = \n");
2851
        for (j  = 0; j < 4; j++) {
2852
            va_TraceMsg(trace_ctx, "\t\t\t[%3d, %3d]\n", seg->filter_level[j][0], seg->filter_level[j][1]);
2853
        }
2854
        va_TraceMsg(trace_ctx, "\t\tluma_ac_quant_scale = %d\n", seg->luma_ac_quant_scale);
2855
        va_TraceMsg(trace_ctx, "\t\tluma_dc_quant_scale = %d\n", seg->luma_dc_quant_scale);
2856
        va_TraceMsg(trace_ctx, "\t\tchroma_ac_quant_scale = %d\n", seg->chroma_ac_quant_scale);
2857
        va_TraceMsg(trace_ctx, "\t\tchroma_dc_quant_scale = %d\n", seg->chroma_dc_quant_scale);
2858
    }
2859
2860
 
2861
2862
 
2863
}
2864
2865
 
2866
    VADisplay dpy,
2867
    VAContextID context,
2868
    VASurfaceID render_target
2869
)
2870
{
2871
    DPY2TRACECTX(dpy);
2872
2873
 
2874
2875
 
2876
    va_TraceMsg(trace_ctx, "\trender_targets = 0x%08x\n", render_target);
2877
    va_TraceMsg(trace_ctx, "\tframe_count  = #%d\n", trace_ctx->trace_frame_no);
2878
    va_TraceMsg(trace_ctx, NULL);
2879
2880
 
2881
2882
 
2883
    trace_ctx->trace_slice_no = 0;
2884
}
2885
2886
 
2887
    VADisplay dpy,
2888
    VAContextID context,
2889
    VABufferID buffer,
2890
    VABufferType type,
2891
    unsigned int size,
2892
    unsigned int num_elements,
2893
    void *pbuf
2894
)
2895
{
2896
    switch (type) {
2897
    case VAPictureParameterBufferType:
2898
        va_TraceVAPictureParameterBufferMPEG2(dpy, context, buffer, type, size, num_elements, pbuf);
2899
        break;
2900
    case VAIQMatrixBufferType:
2901
        va_TraceVAIQMatrixBufferMPEG2(dpy, context, buffer, type, size, num_elements, pbuf);
2902
        break;
2903
    case VABitPlaneBufferType:
2904
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2905
        break;
2906
    case VASliceGroupMapBufferType:
2907
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2908
        break;
2909
    case VASliceParameterBufferType:
2910
        va_TraceVASliceParameterBufferMPEG2(dpy, context, buffer, type, size, num_elements, pbuf);
2911
        break;
2912
    case VASliceDataBufferType:
2913
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2914
        break;
2915
    case VAMacroblockParameterBufferType:
2916
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2917
        break;
2918
    case VAResidualDataBufferType:
2919
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2920
        break;
2921
    case VADeblockingParameterBufferType:
2922
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2923
        break;
2924
    case VAImageBufferType:
2925
        break;
2926
    case VAProtectedSliceDataBufferType:
2927
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
2928
        break;
2929
    case VAEncCodedBufferType:
2930
        break;
2931
    case VAEncSequenceParameterBufferType:
2932
        break;
2933
    case VAEncPictureParameterBufferType:
2934
        break;
2935
    case VAEncSliceParameterBufferType:
2936
        break;
2937
    default:
2938
        break;
2939
    }
2940
}
2941
2942
 
2943
    VADisplay dpy,
2944
    VAContextID context,
2945
    VABufferID buffer,
2946
    VABufferType type,
2947
    unsigned int size,
2948
    unsigned int num_elements,
2949
    void *data)
2950
{
2951
    VAEncSequenceParameterBufferH263 *p = (VAEncSequenceParameterBufferH263 *)data;
2952
    DPY2TRACECTX(dpy);
2953
2954
 
2955
2956
 
2957
    va_TraceMsg(trace_ctx, "\tbits_per_second = %d\n", p->bits_per_second);
2958
    va_TraceMsg(trace_ctx, "\tframe_rate = %d\n", p->frame_rate);
2959
    va_TraceMsg(trace_ctx, "\tinitial_qp = %d\n", p->initial_qp);
2960
    va_TraceMsg(trace_ctx, "\tmin_qp = %d\n", p->min_qp);
2961
    va_TraceMsg(trace_ctx, NULL);
2962
2963
 
2964
}
2965
2966
 
2967
 
2968
    VADisplay dpy,
2969
    VAContextID context,
2970
    VABufferID buffer,
2971
    VABufferType type,
2972
    unsigned int size,
2973
    unsigned int num_elements,
2974
    void *data)
2975
{
2976
    VAEncPictureParameterBufferH263 *p = (VAEncPictureParameterBufferH263 *)data;
2977
    DPY2TRACECTX(dpy);
2978
2979
 
2980
    va_TraceMsg(trace_ctx, "\treference_picture = 0x%08x\n", p->reference_picture);
2981
    va_TraceMsg(trace_ctx, "\treconstructed_picture = 0x%08x\n", p->reconstructed_picture);
2982
    va_TraceMsg(trace_ctx, "\tcoded_buf = %08x\n", p->coded_buf);
2983
    va_TraceMsg(trace_ctx, "\tpicture_width = %d\n", p->picture_width);
2984
    va_TraceMsg(trace_ctx, "\tpicture_height = %d\n", p->picture_height);
2985
    va_TraceMsg(trace_ctx, "\tpicture_type = 0x%08x\n", p->picture_type);
2986
    va_TraceMsg(trace_ctx, NULL);
2987
2988
 
2989
}
2990
2991
 
2992
    VADisplay dpy,
2993
    VAContextID context,
2994
    VABufferID buffer,
2995
    VABufferType type,
2996
    unsigned int size,
2997
    unsigned int num_elements,
2998
    void *data)
2999
{
3000
    VAEncPictureParameterBufferJPEG *p = (VAEncPictureParameterBufferJPEG *)data;
3001
    int i;
3002
3003
 
3004
3005
 
3006
    va_TraceMsg(trace_ctx, "\treconstructed_picture = 0x%08x\n", p->reconstructed_picture);
3007
    va_TraceMsg(trace_ctx, "\tcoded_buf = %08x\n", p->coded_buf);
3008
    va_TraceMsg(trace_ctx, "\tpicture_width = %d\n", p->picture_width);
3009
    va_TraceMsg(trace_ctx, "\tpicture_height = %d\n", p->picture_height);
3010
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.profile = %d\n", p->pic_flags.bits.profile);
3011
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.progressive = %d\n", p->pic_flags.bits.profile);
3012
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.huffman = %d\n", p->pic_flags.bits.huffman);
3013
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.interleaved = %d\n", p->pic_flags.bits.interleaved);
3014
    va_TraceMsg(trace_ctx, "\tpic_flags.bits.differential = %d\n", p->pic_flags.bits.differential);
3015
    va_TraceMsg(trace_ctx, "\tsample_bit_depth = %d\n", p->sample_bit_depth);
3016
    va_TraceMsg(trace_ctx, "\tnum_scan = %d\n", p->num_scan);
3017
    va_TraceMsg(trace_ctx, "\tnum_components = %d\n", p->num_components);
3018
    for (i=0; inum_components; i++)
3019
        va_TraceMsg(trace_ctx, "\tcomponent_id[%d] = %d\n", i, p->component_id[i]);
3020
3021
 
3022
        va_TraceMsg(trace_ctx, "\tquality = %d\n", p->quality);
3023
    else
3024
        va_TraceMsg(trace_ctx, "\tquantiser_table_selector[] = %d %d %d %d\n",
3025
                    p->quantiser_table_selector[0],
3026
                    p->quantiser_table_selector[1],
3027
                    p->quantiser_table_selector[2],
3028
                    p->quantiser_table_selector[3]);
3029
3030
 
3031
3032
 
3033
}
3034
3035
 
3036
    VADisplay dpy,
3037
    VAContextID context,
3038
    VABufferID buffer,
3039
    VABufferType type,
3040
    unsigned int size,
3041
    unsigned int num_elements,
3042
    void *data)
3043
{
3044
    VAQMatrixBufferJPEG *p = (VAQMatrixBufferJPEG *)data;
3045
    DPY2TRACECTX(dpy);
3046
3047
 
3048
    va_TraceMsg(trace_ctx, "\tload_lum_quantiser_matrix = %d", p->load_lum_quantiser_matrix);
3049
    if (p->load_lum_quantiser_matrix) {
3050
        int i;
3051
        for (i = 0; i < 64; i++) {
3052
            if ((i % 8) == 0)
3053
                va_TraceMsg(trace_ctx, "\n\t");
3054
            va_TraceMsg(trace_ctx, "\t0x%02x", p->lum_quantiser_matrix[i]);
3055
        }
3056
        va_TraceMsg(trace_ctx, "\n");
3057
    }
3058
    va_TraceMsg(trace_ctx, "\tload_chroma_quantiser_matrix = %08x\n", p->load_chroma_quantiser_matrix);
3059
    if (p->load_chroma_quantiser_matrix) {
3060
        int i;
3061
        for (i = 0; i < 64; i++) {
3062
            if ((i % 8) == 0)
3063
                va_TraceMsg(trace_ctx, "\n\t");
3064
            va_TraceMsg(trace_ctx, "\t0x%02x", p->chroma_quantiser_matrix[i]);
3065
        }
3066
        va_TraceMsg(trace_ctx, "\n");
3067
    }
3068
3069
 
3070
3071
 
3072
}
3073
3074
 
3075
 
3076
    VADisplay dpy,
3077
    VAContextID context,
3078
    VABufferID buffer,
3079
    VABufferType type,
3080
    unsigned int size,
3081
    unsigned int num_elements,
3082
    void *data)
3083
{
3084
    VAEncSliceParameterBufferJPEG *p = (VAEncSliceParameterBufferJPEG *)data;
3085
    int i;
3086
3087
 
3088
3089
 
3090
    va_TraceMsg(trace_ctx, "\trestart_interval = 0x%04x\n", p->restart_interval);
3091
    va_TraceMsg(trace_ctx, "\tnum_components = 0x%08x\n", p->num_components);
3092
    for (i=0; i<4; i++) {
3093
        va_TraceMsg(trace_ctx, "\tcomponents[%i] =\n ");
3094
        va_TraceMsg(trace_ctx, "\t\tcomponent_selector = %d\n", p->components[i].component_selector);
3095
        va_TraceMsg(trace_ctx, "\t\tdc_table_selector = %d\n", p->components[i].dc_table_selector);
3096
        va_TraceMsg(trace_ctx, "\t\tac_table_selector = %d\n", p->components[i].ac_table_selector);
3097
    }
3098
3099
 
3100
3101
 
3102
}
3103
3104
 
3105
 
3106
    VADisplay dpy,
3107
    VAContextID context,
3108
    VABufferID buffer,
3109
    VABufferType type,
3110
    unsigned int size,
3111
    unsigned int num_elements,
3112
    void *pbuf
3113
)
3114
{
3115
    switch (type) {
3116
    case VAPictureParameterBufferType:/* print MPEG4 buffer */
3117
        va_TraceVAPictureParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
3118
        break;
3119
    case VAIQMatrixBufferType:/* print MPEG4 buffer */
3120
        va_TraceVAIQMatrixBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
3121
        break;
3122
    case VABitPlaneBufferType:/* print MPEG4 buffer */
3123
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3124
        break;
3125
    case VASliceGroupMapBufferType:
3126
        break;
3127
    case VASliceParameterBufferType:/* print MPEG4 buffer */
3128
        va_TraceVASliceParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
3129
        break;
3130
    case VASliceDataBufferType:
3131
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3132
        break;
3133
    case VAMacroblockParameterBufferType:
3134
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3135
        break;
3136
    case VAResidualDataBufferType:
3137
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3138
        break;
3139
    case VADeblockingParameterBufferType:
3140
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3141
        break;
3142
    case VAImageBufferType:
3143
        break;
3144
    case VAProtectedSliceDataBufferType:
3145
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3146
        break;
3147
    case VAEncCodedBufferType:
3148
        break;
3149
    case VAEncSequenceParameterBufferType:
3150
        va_TraceVAEncSequenceParameterBufferH263(dpy, context, buffer, type, size, num_elements, pbuf);
3151
        break;
3152
    case VAEncPictureParameterBufferType:
3153
        va_TraceVAEncPictureParameterBufferH263(dpy, context, buffer, type, size, num_elements, pbuf);
3154
        break;
3155
    case VAEncSliceParameterBufferType:
3156
        va_TraceVAEncSliceParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
3157
        break;
3158
    case VAEncPackedHeaderParameterBufferType:
3159
        va_TraceVAEncPackedHeaderParameterBufferType(dpy, context, buffer, type, size, num_elements, pbuf);
3160
        break;
3161
    default:
3162
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3163
        break;
3164
    }
3165
}
3166
3167
 
3168
 
3169
    VADisplay dpy,
3170
    VAContextID context,
3171
    VABufferID buffer,
3172
    VABufferType type,
3173
    unsigned int size,
3174
    unsigned int num_elements,
3175
    void *pbuf
3176
)
3177
{
3178
    switch (type) {
3179
    case VABitPlaneBufferType:
3180
    case VASliceGroupMapBufferType:
3181
    case VASliceDataBufferType:
3182
    case VAMacroblockParameterBufferType:
3183
    case VAResidualDataBufferType:
3184
    case VADeblockingParameterBufferType:
3185
    case VAImageBufferType:
3186
    case VAProtectedSliceDataBufferType:
3187
    case VAEncCodedBufferType:
3188
    case VAEncSequenceParameterBufferType:
3189
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3190
        break;
3191
    case VAEncSliceParameterBufferType:
3192
        va_TraceVAEncSliceParameterBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
3193
        break;
3194
    case VAPictureParameterBufferType:
3195
        va_TraceVAPictureParameterBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
3196
        break;
3197
    case VAIQMatrixBufferType:
3198
        va_TraceVAIQMatrixBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
3199
        break;
3200
    case VASliceParameterBufferType:
3201
        va_TraceVASliceParameterBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
3202
        break;
3203
    case VAHuffmanTableBufferType:
3204
        va_TraceVAHuffmanTableBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
3205
        break;
3206
    case VAEncPictureParameterBufferType:
3207
        va_TraceVAEncPictureParameterBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
3208
        break;
3209
    case VAQMatrixBufferType:
3210
        va_TraceVAEncQMatrixBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
3211
        break;
3212
    default:
3213
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3214
        break;
3215
    }
3216
}
3217
3218
 
3219
    VADisplay dpy,
3220
    VAContextID context,
3221
    VABufferID buffer,
3222
    VABufferType type,
3223
    unsigned int size,
3224
    unsigned int num_elements,
3225
    void *pbuf
3226
)
3227
{
3228
    switch (type) {
3229
    case VAPictureParameterBufferType:
3230
        va_TraceVAPictureParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
3231
        break;
3232
    case VAIQMatrixBufferType:
3233
        va_TraceVAIQMatrixBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
3234
        break;
3235
    case VABitPlaneBufferType:
3236
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3237
        break;
3238
    case VASliceGroupMapBufferType:
3239
        break;
3240
    case VASliceParameterBufferType:
3241
        va_TraceVASliceParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
3242
        break;
3243
    case VASliceDataBufferType:
3244
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3245
        break;
3246
    case VAMacroblockParameterBufferType:
3247
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3248
        break;
3249
    case VAResidualDataBufferType:
3250
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3251
        break;
3252
    case VADeblockingParameterBufferType:
3253
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3254
        break;
3255
    case VAImageBufferType:
3256
        break;
3257
    case VAProtectedSliceDataBufferType:
3258
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3259
        break;
3260
    case VAEncCodedBufferType:
3261
        break;
3262
    case VAEncSequenceParameterBufferType:
3263
        va_TraceVAEncSequenceParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
3264
        break;
3265
    case VAEncPictureParameterBufferType:
3266
        va_TraceVAEncPictureParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
3267
        break;
3268
    case VAEncSliceParameterBufferType:
3269
        va_TraceVAEncSliceParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
3270
        break;
3271
    default:
3272
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3273
        break;
3274
    }
3275
}
3276
3277
 
3278
    VADisplay dpy,
3279
    VAContextID context,
3280
    VABufferID buffer,
3281
    VABufferType type,
3282
    unsigned int size,
3283
    unsigned int num_elements,
3284
    void *pbuf
3285
)
3286
{
3287
    DPY2TRACECTX(dpy);
3288
3289
 
3290
        case VAPictureParameterBufferType:
3291
            va_TraceVAPictureParameterBufferHEVC(dpy, context, buffer, type, size, num_elements, pbuf);
3292
            break;
3293
        case VASliceParameterBufferType:
3294
            va_TraceVASliceParameterBufferHEVC(dpy, context, buffer, type, size, num_elements, pbuf);
3295
            break;
3296
        case VAIQMatrixBufferType:
3297
            va_TraceVAIQMatrixBufferHEVC(dpy, context, buffer, type, size, num_elements, pbuf);
3298
            break;
3299
        case VAEncSequenceParameterBufferType:
3300
            va_TraceVAEncSequenceParameterBufferHEVC(dpy, context, buffer, type, size, num_elements, pbuf);
3301
            break;
3302
        case VAEncPictureParameterBufferType:
3303
            va_TraceVAEncPictureParameterBufferHEVC(dpy, context, buffer, type, size, num_elements, pbuf);
3304
            break;
3305
        case VAEncSliceParameterBufferType:
3306
            va_TraceVAEncSliceParameterBufferHEVC(dpy, context, buffer, type, size, num_elements, pbuf);
3307
            break;
3308
        case VAEncMiscParameterBufferType:
3309
            va_TraceVAEncMiscParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
3310
            break;
3311
        default:
3312
            va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3313
            break;
3314
    }
3315
}
3316
3317
 
3318
    VADisplay dpy,
3319
    VAContextID context,
3320
    VABufferID buffer,
3321
    VABufferType type,
3322
    unsigned int size,
3323
    unsigned int num_elements,
3324
    void *pbuf
3325
)
3326
{
3327
    DPY2TRACECTX(dpy);
3328
3329
 
3330
    case VAPictureParameterBufferType:
3331
        va_TraceVAPictureParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
3332
        break;
3333
    case VAIQMatrixBufferType:
3334
        va_TraceVAIQMatrixBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
3335
        break;
3336
    case VABitPlaneBufferType:
3337
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3338
        break;
3339
    case VASliceGroupMapBufferType:
3340
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3341
        break;
3342
    case VASliceParameterBufferType:
3343
        va_TraceVASliceParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
3344
        break;
3345
    case VASliceDataBufferType:
3346
        va_TraceVABuffers(dpy, context, buffer, type, trace_ctx->trace_slice_size, num_elements, pbuf);
3347
        break;
3348
    case VAMacroblockParameterBufferType:
3349
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3350
        break;
3351
    case VAResidualDataBufferType:
3352
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3353
        break;
3354
    case VADeblockingParameterBufferType:
3355
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3356
        break;
3357
    case VAImageBufferType:
3358
        break;
3359
    case VAProtectedSliceDataBufferType:
3360
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3361
        break;
3362
    case VAEncCodedBufferType:
3363
        break;
3364
    case VAEncSequenceParameterBufferType:
3365
        va_TraceVAEncSequenceParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
3366
        break;
3367
    case VAEncPictureParameterBufferType:
3368
        va_TraceVAEncPictureParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
3369
        break;
3370
    case VAEncSliceParameterBufferType:
3371
        if (size == sizeof(VAEncSliceParameterBuffer))
3372
            va_TraceVAEncSliceParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
3373
        else
3374
            va_TraceVAEncSliceParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
3375
        break;
3376
    case VAEncPackedHeaderParameterBufferType:
3377
        va_TraceVAEncPackedHeaderParameterBufferType(dpy, context, buffer, type, size, num_elements, pbuf);
3378
        break;
3379
3380
 
3381
        va_TraceVAEncMiscParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
3382
        break;
3383
    default:
3384
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3385
        break;
3386
    }
3387
}
3388
3389
 
3390
    VADisplay dpy,
3391
    VAContextID context,
3392
    VABufferID buffer,
3393
    VABufferType type,
3394
    unsigned int size,
3395
    unsigned int num_elements,
3396
    void *pbuf
3397
)
3398
{
3399
    DPY2TRACECTX(dpy);
3400
3401
 
3402
    case VAPictureParameterBufferType:
3403
        va_TraceVAPictureParameterBufferVP8(dpy, context, buffer, type, size, num_elements, pbuf);
3404
        break;
3405
    case VAIQMatrixBufferType:
3406
        va_TraceVAIQMatrixBufferVP8(dpy, context, buffer, type, size, num_elements, pbuf);
3407
        break;
3408
    case VAQMatrixBufferType:
3409
        break;
3410
    case VABitPlaneBufferType:
3411
        break;
3412
    case VASliceGroupMapBufferType:
3413
        break;
3414
    case VASliceParameterBufferType:
3415
        va_TraceVASliceParameterBufferVP8(dpy, context, buffer, type, size, num_elements, pbuf);
3416
        break;
3417
    case VASliceDataBufferType:
3418
        break;
3419
    case VAProbabilityBufferType:
3420
        va_TraceVAProbabilityBufferVP8(dpy, context, buffer, type, size, num_elements, pbuf);
3421
        break;
3422
    case VAMacroblockParameterBufferType:
3423
        break;
3424
    case VAResidualDataBufferType:
3425
        break;
3426
    case VADeblockingParameterBufferType:
3427
        break;
3428
    case VAImageBufferType:
3429
        break;
3430
    case VAProtectedSliceDataBufferType:
3431
        break;
3432
    case VAEncCodedBufferType:
3433
        break;
3434
    case VAEncSequenceParameterBufferType:
3435
        va_TraceVAEncSequenceParameterBufferVP8(dpy, context, buffer, type, size, num_elements, pbuf);
3436
        break;
3437
    case VAEncPictureParameterBufferType:
3438
        va_TraceVAEncPictureParameterBufferVP8(dpy, context, buffer, type, size, num_elements, pbuf);
3439
        break;
3440
    case VAEncSliceParameterBufferType:
3441
        break;
3442
    case VAEncPackedHeaderParameterBufferType:
3443
        break;
3444
    case VAEncMiscParameterBufferType:
3445
        va_TraceVAEncMiscParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
3446
        break;
3447
    default:
3448
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3449
        break;
3450
    }
3451
}
3452
3453
 
3454
    VADisplay dpy,
3455
    VAContextID context,
3456
    VABufferID buffer,
3457
    VABufferType type,
3458
    unsigned int size,
3459
    unsigned int num_elements,
3460
    void *pbuf
3461
)
3462
{
3463
    DPY2TRACECTX(dpy);
3464
3465
 
3466
    case VAPictureParameterBufferType:
3467
        va_TraceVAPictureParameterBufferVP9(dpy, context, buffer, type, size, num_elements, pbuf);
3468
        break;
3469
    case VASliceParameterBufferType:
3470
        va_TraceVASliceParameterBufferVP9(dpy, context, buffer, type, size, num_elements, pbuf);
3471
        break;
3472
    default:
3473
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3474
        break;
3475
    }
3476
}
3477
3478
 
3479
    VADisplay dpy,
3480
    VAContextID context,
3481
    VABufferID buffer,
3482
    VABufferType type,
3483
    unsigned int size,
3484
    unsigned int num_elements,
3485
    void *pbuf
3486
)
3487
{
3488
    DPY2TRACECTX(dpy);
3489
3490
 
3491
    case VAPictureParameterBufferType:
3492
        va_TraceVAPictureParameterBufferVC1(dpy, context, buffer, type, size, num_elements, pbuf);
3493
        break;
3494
    case VAIQMatrixBufferType:
3495
        break;
3496
    case VABitPlaneBufferType:
3497
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3498
        break;
3499
    case VASliceGroupMapBufferType:
3500
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3501
        break;
3502
    case VASliceParameterBufferType:
3503
        va_TraceVASliceParameterBufferVC1(dpy, context, buffer, type, size, num_elements, pbuf);
3504
        break;
3505
    case VASliceDataBufferType:
3506
        va_TraceVABuffers(dpy, context, buffer, type, trace_ctx->trace_slice_size, num_elements, pbuf);
3507
        break;
3508
    case VAMacroblockParameterBufferType:
3509
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3510
        break;
3511
    case VAResidualDataBufferType:
3512
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3513
        break;
3514
    case VADeblockingParameterBufferType:
3515
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3516
        break;
3517
    case VAImageBufferType:
3518
        break;
3519
    case VAProtectedSliceDataBufferType:
3520
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3521
        break;
3522
    case VAEncCodedBufferType:
3523
        break;
3524
    case VAEncSequenceParameterBufferType:
3525
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3526
        break;
3527
    case VAEncPictureParameterBufferType:
3528
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3529
        break;
3530
    case VAEncSliceParameterBufferType:
3531
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3532
        break;
3533
    default:
3534
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3535
        break;
3536
    }
3537
}
3538
3539
 
3540
va_TraceProcFilterParameterBufferDeinterlacing(
3541
    VADisplay dpy,
3542
    VAContextID context,
3543
    VAProcFilterParameterBufferBase *base
3544
)
3545
{
3546
    VAProcFilterParameterBufferDeinterlacing *deint = (VAProcFilterParameterBufferDeinterlacing *)base;
3547
3548
 
3549
3550
 
3551
    va_TraceMsg(trace_ctx, "\t    algorithm = %d\n", deint->algorithm);
3552
    va_TraceMsg(trace_ctx, "\t    flags = %d\n", deint->flags);
3553
}
3554
3555
 
3556
va_TraceProcFilterParameterBufferColorBalance(
3557
    VADisplay dpy,
3558
    VAContextID context,
3559
    VAProcFilterParameterBufferBase *base
3560
)
3561
{
3562
    VAProcFilterParameterBufferColorBalance *color_balance = (VAProcFilterParameterBufferColorBalance *)base;
3563
3564
 
3565
3566
 
3567
    va_TraceMsg(trace_ctx, "\t    attrib = %d\n", color_balance->attrib);
3568
    va_TraceMsg(trace_ctx, "\t    value = %f\n", color_balance->value);
3569
}
3570
3571
 
3572
va_TraceProcFilterParameterBufferBase(
3573
    VADisplay dpy,
3574
    VAContextID context,
3575
    VAProcFilterParameterBufferBase *base
3576
)
3577
{
3578
    DPY2TRACECTX(dpy);
3579
3580
 
3581
}
3582
3583
 
3584
va_TraceProcFilterParameterBuffer(
3585
    VADisplay dpy,
3586
    VAContextID context,
3587
    VABufferID *filters,
3588
    unsigned int num_filters
3589
)
3590
{
3591
    VABufferType type;
3592
    unsigned int size;
3593
    unsigned int num_elements;
3594
    VAProcFilterParameterBufferBase *base_filter = NULL;
3595
    int i;
3596
3597
 
3598
3599
 
3600
        va_TraceMsg(trace_ctx, "\t  num_filters = %d\n", num_filters);
3601
        va_TraceMsg(trace_ctx, "\t  filters = %p\n", filters);
3602
        return;
3603
    }
3604
3605
 
3606
3607
 
3608
    for (i = 0; i < num_filters; i++) {
3609
        vaBufferInfo(dpy, context, filters[i], &type, &size, &num_elements);
3610
3611
 
3612
            va_TraceMsg(trace_ctx, "\t  filters[%d] = 0x%08x (INVALID)\n", i, filters[i]);
3613
            return;
3614
        } else {
3615
            va_TraceMsg(trace_ctx, "\t  filters[%d] = 0x%08x\n", i, filters[i]);
3616
        }
3617
3618
 
3619
        vaMapBuffer(dpy, filters[i], (void **)&base_filter);
3620
3621
 
3622
            vaUnmapBuffer(dpy, filters[i]);
3623
            return;
3624
        }
3625
3626
 
3627
        case VAProcFilterDeinterlacing:
3628
            va_TraceProcFilterParameterBufferDeinterlacing(dpy,
3629
                                                           context,
3630
                                                           base_filter);
3631
            break;
3632
        case VAProcFilterColorBalance:
3633
            va_TraceProcFilterParameterBufferColorBalance(dpy,
3634
                                                          context,
3635
                                                          base_filter);
3636
            break;
3637
        default:
3638
            va_TraceProcFilterParameterBufferBase(dpy,
3639
                                                  context,
3640
                                                  base_filter);
3641
            break;
3642
        }
3643
3644
 
3645
    }
3646
}
3647
3648
 
3649
va_TraceVAProcPipelineParameterBuffer(
3650
    VADisplay dpy,
3651
    VAContextID context,
3652
    VABufferID buffer,
3653
    VABufferType type,
3654
    unsigned int size,
3655
    unsigned int num_elements,
3656
    void *data
3657
)
3658
{
3659
    VAProcPipelineParameterBuffer *p = (VAProcPipelineParameterBuffer *)data;
3660
    int i;
3661
3662
 
3663
3664
 
3665
3666
 
3667
3668
 
3669
        va_TraceMsg(trace_ctx, "\t  surface_region\n");
3670
        va_TraceMsg(trace_ctx, "\t    x = %d\n", p->surface_region->x);
3671
        va_TraceMsg(trace_ctx, "\t    y = %d\n", p->surface_region->y);
3672
        va_TraceMsg(trace_ctx, "\t    width = %d\n", p->surface_region->width);
3673
        va_TraceMsg(trace_ctx, "\t    height = %d\n", p->surface_region->height);
3674
    } else {
3675
        va_TraceMsg(trace_ctx, "\t  surface_region = (NULL)\n");
3676
    }
3677
3678
 
3679
3680
 
3681
        va_TraceMsg(trace_ctx, "\t  output_region\n");
3682
        va_TraceMsg(trace_ctx, "\t    x = %d\n", p->output_region->x);
3683
        va_TraceMsg(trace_ctx, "\t    y = %d\n", p->output_region->y);
3684
        va_TraceMsg(trace_ctx, "\t    width = %d\n", p->output_region->width);
3685
        va_TraceMsg(trace_ctx, "\t    height = %d\n", p->output_region->height);
3686
    } else {
3687
        va_TraceMsg(trace_ctx, "\t  output_region = (NULL)\n");
3688
    }
3689
3690
 
3691
    va_TraceMsg(trace_ctx, "\t  output_color_standard = %d\n", p->output_color_standard);
3692
    va_TraceMsg(trace_ctx, "\t  pipeline_flags = 0x%08x\n", p->pipeline_flags);
3693
    va_TraceMsg(trace_ctx, "\t  filter_flags = 0x%08x\n", p->filter_flags);
3694
3695
 
3696
3697
 
3698
3699
 
3700
        va_TraceMsg(trace_ctx, "\t  forward_references\n");
3701
3702
 
3703
            /* only dump the first 5 forward references */
3704
            for (i = 0; i < p->num_forward_references && i < 5; i++) {
3705
                va_TraceMsg(trace_ctx, "\t    forward_references[%d] = 0x%08x\n", i, p->forward_references[i]);
3706
            }
3707
        } else {
3708
            for (i = 0; i < p->num_forward_references && i < 5; i++) {
3709
                va_TraceMsg(trace_ctx, "\t    forward_references[%d] = (NULL)\n", i);
3710
            }
3711
        }
3712
    }
3713
3714
 
3715
3716
 
3717
        va_TraceMsg(trace_ctx, "\t  backward_references\n");
3718
3719
 
3720
            /* only dump the first 5 backward references */
3721
            for (i = 0; i < p->num_backward_references && i < 5; i++) {
3722
                va_TraceMsg(trace_ctx, "\t    backward_references[%d] = 0x%08x\n", i, p->backward_references[i]);
3723
            }
3724
        } else {
3725
            for (i = 0; i < p->num_backward_references && i < 5; i++) {
3726
                va_TraceMsg(trace_ctx, "\t    backward_references[%d] = (NULL)\n", i);
3727
            }
3728
        }
3729
    }
3730
3731
 
3732
3733
 
3734
}
3735
3736
 
3737
va_TraceNoneBuf(
3738
    VADisplay dpy,
3739
    VAContextID context,
3740
    VABufferID buffer,
3741
    VABufferType type,
3742
    unsigned int size,
3743
    unsigned int num_elements,
3744
    void *pbuf
3745
)
3746
{
3747
    DPY2TRACECTX(dpy);
3748
3749
 
3750
    case VAProcPipelineParameterBufferType:
3751
        va_TraceVAProcPipelineParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
3752
        break;
3753
    default:
3754
        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
3755
        break;
3756
    }
3757
}
3758
3759
 
3760
    VADisplay dpy,
3761
    VAContextID context,
3762
    VABufferID *buffers,
3763
    int num_buffers
3764
)
3765
{
3766
    VABufferType type;
3767
    unsigned int size;
3768
    unsigned int num_elements;
3769
    int i;
3770
    DPY2TRACECTX(dpy);
3771
3772
 
3773
3774
 
3775
    va_TraceMsg(trace_ctx, "\tnum_buffers = %d\n", num_buffers);
3776
    if (buffers == NULL)
3777
        return;
3778
3779
 
3780
        unsigned char *pbuf = NULL;
3781
        unsigned int j;
3782
3783
 
3784
        vaBufferInfo(dpy, context, buffers[i], &type, &size, &num_elements);
3785
3786
 
3787
        va_TraceMsg(trace_ctx, "\tbuffers[%d] = 0x%08x\n", i, buffers[i]);
3788
        va_TraceMsg(trace_ctx, "\t  type = %s\n", buffer_type_to_string(type));
3789
        va_TraceMsg(trace_ctx, "\t  size = %d\n", size);
3790
        va_TraceMsg(trace_ctx, "\t  num_elements = %d\n", num_elements);
3791
3792
 
3793
        if (pbuf == NULL)
3794
            continue;
3795
3796
 
3797
        case VAProfileMPEG2Simple:
3798
        case VAProfileMPEG2Main:
3799
            for (j=0; j
3800
                va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
3801
                va_TraceMPEG2Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
3802
            }
3803
            break;
3804
        case VAProfileMPEG4Simple:
3805
        case VAProfileMPEG4AdvancedSimple:
3806
        case VAProfileMPEG4Main:
3807
            for (j=0; j
3808
                va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
3809
                va_TraceMPEG4Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
3810
            }
3811
            break;
3812
        case VAProfileH264Baseline:
3813
        case VAProfileH264Main:
3814
        case VAProfileH264High:
3815
        case VAProfileH264ConstrainedBaseline:
3816
            for (j=0; j
3817
                va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
3818
3819
 
3820
            }
3821
            break;
3822
        case VAProfileVC1Simple:
3823
        case VAProfileVC1Main:
3824
        case VAProfileVC1Advanced:
3825
            for (j=0; j
3826
                va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
3827
3828
 
3829
            }
3830
            break;
3831
        case VAProfileH263Baseline:
3832
            for (j=0; j
3833
                va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
3834
3835
 
3836
            }
3837
            break;
3838
        case VAProfileJPEGBaseline:
3839
            for (j=0; j
3840
                va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
3841
3842
 
3843
            }
3844
            break;
3845
3846
 
3847
            for (j=0; j
3848
                va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
3849
3850
 
3851
            }
3852
            break;
3853
3854
 
3855
            for (j=0; j
3856
                va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
3857
3858
 
3859
            }
3860
            break;
3861
3862
 
3863
        case VAProfileHEVCMain10:
3864
            for (j=0; j
3865
                va_TraceMsg(trace_ctx, "\telement[%d] = ", j);
3866
3867
 
3868
            }
3869
            break;
3870
        case VAProfileVP9Profile0:
3871
            for (j=0; j
3872
                va_TraceMsg(trace_ctx, "\telement[%d] = \n", j);
3873
3874
 
3875
            }
3876
            break;
3877
        default:
3878
            break;
3879
        }
3880
3881
 
3882
    }
3883
3884
 
3885
}
3886
3887
 
3888
    VADisplay dpy,
3889
    VAContextID context,
3890
    int endpic_done
3891
)
3892
{
3893
    int encode, decode, jpeg;
3894
    DPY2TRACECTX(dpy);
3895
3896
 
3897
3898
 
3899
    va_TraceMsg(trace_ctx, "\trender_targets = 0x%08x\n", trace_ctx->trace_rendertarget);
3900
3901
 
3902
    encode = (trace_ctx->trace_entrypoint == VAEntrypointEncSlice);
3903
    decode = (trace_ctx->trace_entrypoint == VAEntrypointVLD);
3904
    jpeg = (trace_ctx->trace_entrypoint == VAEntrypointEncPicture);
3905
3906
 
3907
    if ((encode && (trace_flag & VA_TRACE_FLAG_SURFACE_ENCODE))||
3908
        (jpeg && (trace_flag & VA_TRACE_FLAG_SURFACE_JPEG)))
3909
        va_TraceSurface(dpy);
3910
3911
 
3912
    if (decode && ((trace_flag & VA_TRACE_FLAG_SURFACE_DECODE))) {
3913
        vaSyncSurface(dpy, trace_ctx->trace_rendertarget);
3914
        va_TraceSurface(dpy);
3915
    }
3916
3917
 
3918
}
3919
3920
 
3921
 
3922
    VADisplay dpy,
3923
    VASurfaceID render_target
3924
)
3925
{
3926
    DPY2TRACECTX(dpy);
3927
3928
 
3929
3930
 
3931
    va_TraceMsg(trace_ctx, NULL);
3932
}
3933
3934
 
3935
    VADisplay           dpy,
3936
    VAConfigID          config,
3937
    VASurfaceAttrib    *attrib_list,
3938
    unsigned int       *num_attribs
3939
)
3940
{
3941
    DPY2TRACECTX(dpy);
3942
3943
 
3944
    va_TraceMsg(trace_ctx, "\tconfig = 0x%08x\n", config);
3945
    va_TraceSurfaceAttributes(trace_ctx, attrib_list, num_attribs);
3946
3947
 
3948
3949
 
3950
3951
 
3952
 
3953
    VADisplay dpy,
3954
    VASurfaceID render_target,
3955
    VASurfaceStatus *status    /* out */
3956
)
3957
{
3958
    DPY2TRACECTX(dpy);
3959
3960
 
3961
3962
 
3963
    if (status)
3964
        va_TraceMsg(trace_ctx, "\tstatus = 0x%08x\n", *status);
3965
    va_TraceMsg(trace_ctx, NULL);
3966
}
3967
3968
 
3969
 
3970
    VADisplay dpy,
3971
    VASurfaceID surface,
3972
    VAStatus error_status,
3973
    void **error_info       /*out*/
3974
)
3975
{
3976
    DPY2TRACECTX(dpy);
3977
3978
 
3979
    va_TraceMsg(trace_ctx, "\tsurface = 0x%08x\n", surface);
3980
    va_TraceMsg(trace_ctx, "\terror_status = 0x%08x\n", error_status);
3981
    if (error_info && (error_status == VA_STATUS_ERROR_DECODING_ERROR)) {
3982
        VASurfaceDecodeMBErrors *p = *error_info;
3983
        while (p && (p->status != -1)) {
3984
            va_TraceMsg(trace_ctx, "\t\tstatus = %d\n", p->status);
3985
            va_TraceMsg(trace_ctx, "\t\tstart_mb = %d\n", p->start_mb);
3986
            va_TraceMsg(trace_ctx, "\t\tend_mb = %d\n", p->end_mb);
3987
            p++; /* next error record */
3988
        }
3989
    }
3990
    va_TraceMsg(trace_ctx, NULL);
3991
}
3992
3993
 
3994
    VADisplay dpy,
3995
    int number
3996
)
3997
{
3998
    DPY2TRACECTX(dpy);
3999
4000
 
4001
4002
 
4003
    va_TraceMsg(trace_ctx, NULL);
4004
}
4005
4006
 
4007
    VADisplay dpy,
4008
    VADisplayAttribute *attr_list,    /* out */
4009
    int *num_attributes               /* out */
4010
)
4011
{
4012
    int i;
4013
4014
 
4015
4016
 
4017
        return;
4018
4019
 
4020
4021
 
4022
        va_TraceMsg(trace_ctx, "\tattr_list[%d] =\n");
4023
        va_TraceMsg(trace_ctx, "\t  typ = 0x%08x\n", attr_list[i].type);
4024
        va_TraceMsg(trace_ctx, "\t  min_value = %d\n", attr_list[i].min_value);
4025
        va_TraceMsg(trace_ctx, "\t  max_value = %d\n", attr_list[i].max_value);
4026
        va_TraceMsg(trace_ctx, "\t  value = %d\n", attr_list[i].value);
4027
        va_TraceMsg(trace_ctx, "\t  flags = %d\n", attr_list[i].flags);
4028
    }
4029
    va_TraceMsg(trace_ctx, NULL);
4030
}
4031
4032
 
4033
 
4034
    VADisplay dpy,
4035
    VADisplayAttribute *attr_list,
4036
    int num_attributes
4037
)
4038
{
4039
    int i;
4040
4041
 
4042
4043
 
4044
    if (attr_list == NULL)
4045
        return;
4046
4047
 
4048
        va_TraceMsg(trace_ctx, "\tattr_list[%d] =\n");
4049
        va_TraceMsg(trace_ctx, "\t  typ = 0x%08x\n", attr_list[i].type);
4050
        va_TraceMsg(trace_ctx, "\t  min_value = %d\n", attr_list[i].min_value);
4051
        va_TraceMsg(trace_ctx, "\t  max_value = %d\n", attr_list[i].max_value);
4052
        va_TraceMsg(trace_ctx, "\t  value = %d\n", attr_list[i].value);
4053
        va_TraceMsg(trace_ctx, "\t  flags = %d\n", attr_list[i].flags);
4054
    }
4055
    va_TraceMsg(trace_ctx, NULL);
4056
}
4057
4058
 
4059
 
4060
    VADisplay dpy,
4061
    VADisplayAttribute *attr_list,
4062
    int num_attributes
4063
)
4064
{
4065
    DPY2TRACECTX(dpy);
4066
4067
 
4068
4069
 
4070
}
4071
4072
 
4073
    VADisplay dpy,
4074
    VADisplayAttribute *attr_list,
4075
    int num_attributes
4076
)
4077
{
4078
    DPY2TRACECTX(dpy);
4079
4080
 
4081
4082
 
4083
}
4084
4085
 
4086
 
4087
    VADisplay dpy,
4088
    VASurfaceID surface,
4089
    void *draw, /* the target Drawable */
4090
    short srcx,
4091
    short srcy,
4092
    unsigned short srcw,
4093
    unsigned short srch,
4094
    short destx,
4095
    short desty,
4096
    unsigned short destw,
4097
    unsigned short desth,
4098
    VARectangle *cliprects, /* client supplied clip list */
4099
    unsigned int number_cliprects, /* number of clip rects in the clip list */
4100
    unsigned int flags /* de-interlacing flags */
4101
)
4102
{
4103
    DPY2TRACECTX(dpy);
4104
4105
 
4106
4107
 
4108
    va_TraceMsg(trace_ctx, "\tdraw = 0x%08x\n", draw);
4109
    va_TraceMsg(trace_ctx, "\tsrcx = %d\n", srcx);
4110
    va_TraceMsg(trace_ctx, "\tsrcy = %d\n", srcy);
4111
    va_TraceMsg(trace_ctx, "\tsrcw = %d\n", srcw);
4112
    va_TraceMsg(trace_ctx, "\tsrch = %d\n", srch);
4113
    va_TraceMsg(trace_ctx, "\tdestx = %d\n", destx);
4114
    va_TraceMsg(trace_ctx, "\tdesty = %d\n", desty);
4115
    va_TraceMsg(trace_ctx, "\tdestw = %d\n", destw);
4116
    va_TraceMsg(trace_ctx, "\tdesth = %d\n", desth);
4117
    va_TraceMsg(trace_ctx, "\tcliprects = 0x%08x\n", cliprects);
4118
    va_TraceMsg(trace_ctx, "\tnumber_cliprects = %d\n", number_cliprects);
4119
    va_TraceMsg(trace_ctx, "\tflags = 0x%08x\n", flags);
4120
    va_TraceMsg(trace_ctx, NULL);
4121
}
4122
>