#ifndef VA_TRACE_H
#define VA_TRACE_H
-void va_TraceInit(void);
-void va_TraceEnd(void);
+#ifdef __cplusplus
+extern "C" {
+#endif
-void va_TraceMsg(const char *msg, ...);
+extern int trace_flag;
+
+#define VA_TRACE_FLAG_LOG 0x1
+#define VA_TRACE_FLAG_BUFDATA 0x2
+#define VA_TRACE_FLAG_CODEDBUF 0x4
+#define VA_TRACE_FLAG_SURFACE_DECODE 0x8
+#define VA_TRACE_FLAG_SURFACE_ENCODE 0x10
+#define VA_TRACE_FLAG_SURFACE_JPEG 0x20
+#define VA_TRACE_FLAG_SURFACE (VA_TRACE_FLAG_SURFACE_DECODE | \
+ VA_TRACE_FLAG_SURFACE_ENCODE | \
+ VA_TRACE_FLAG_SURFACE_JPEG)
+
+#define VA_TRACE_FUNC(trace_func,...) \
+ if (trace_flag) { \
+ trace_func(__VA_ARGS__); \
+ }
+#define VA_TRACE_LOG(trace_func,...) \
+ if (trace_flag & VA_TRACE_FLAG_LOG) { \
+ trace_func(__VA_ARGS__); \
+ }
+#define VA_TRACE_SURFACE(trace_func,...) \
+ if (trace_flag & (VA_TRACE_FLAG_SURFACE | VA_TRACE_FLAG_CODEDBUF)) { \
+ trace_func(__VA_ARGS__); \
+ }
+
+void va_TraceInit(VADisplay dpy);
+void va_TraceEnd(VADisplay dpy);
+
+void va_TraceMsg(int idx, const char *msg, ...);
+
+void va_TraceInitialize (
+ VADisplay dpy,
+ int *major_version, /* out */
+ int *minor_version /* out */
+);
+
+void va_TraceTerminate (
+ VADisplay dpy
+);
void va_TraceCreateConfig(
VADisplay dpy,
VAConfigID *config_id /* out */
);
-void va_TraceCreateSurface(
+void va_TraceCreateSurfaces(
VADisplay dpy,
int width,
int height,
int format,
int num_surfaces,
- VASurfaceID *surfaces /* out */
+ VASurfaceID *surfaces, /* out */
+ VASurfaceAttrib *attrib_list,
+ unsigned int num_attribs
);
void va_TraceCreateContext(
VAContextID *context /* out */
);
+
+void va_TraceMapBuffer (
+ VADisplay dpy,
+ VABufferID buf_id, /* in */
+ void **pbuf /* out */
+);
+
+
void va_TraceBeginPicture(
VADisplay dpy,
VAContextID context,
void va_TraceEndPicture(
VADisplay dpy,
- VAContextID context
+ VAContextID context,
+ int endpic_done
+);
+
+void va_TraceSyncSurface(
+ VADisplay dpy,
+ VASurfaceID render_target
);
+void va_TraceQuerySurfaceStatus(
+ VADisplay dpy,
+ VASurfaceID render_target,
+ VASurfaceStatus *status /* out */
+);
+
+void va_TraceQuerySurfaceError(
+ VADisplay dpy,
+ VASurfaceID surface,
+ VAStatus error_status,
+ void **error_info /*out*/
+);
+
+
+void va_TraceMaxNumDisplayAttributes (
+ VADisplay dpy,
+ int number
+);
+
+void va_TraceQueryDisplayAttributes (
+ VADisplay dpy,
+ VADisplayAttribute *attr_list, /* out */
+ int *num_attributes /* out */
+);
+
+void va_TraceGetDisplayAttributes (
+ VADisplay dpy,
+ VADisplayAttribute *attr_list,
+ int num_attributes
+);
+
+void va_TraceSetDisplayAttributes (
+ VADisplay dpy,
+ VADisplayAttribute *attr_list,
+ int num_attributes
+);
+
+/* extern function called by display side */
+void va_TracePutSurface (
+ VADisplay dpy,
+ VASurfaceID surface,
+ void *draw, /* the target Drawable */
+ short srcx,
+ short srcy,
+ unsigned short srcw,
+ unsigned short srch,
+ short destx,
+ short desty,
+ unsigned short destw,
+ unsigned short desth,
+ VARectangle *cliprects, /* client supplied clip list */
+ unsigned int number_cliprects, /* number of clip rects in the clip list */
+ unsigned int flags /* de-interlacing flags */
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+
#endif /* VA_TRACE_H */