Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
libva
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
libva
Commits
c259a979
Commit
c259a979
authored
Mar 30, 2010
by
Austin Yuan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
merge vatrace
Signed-off-by:
Austin Yuan
<
shengquan.yuan@gmail.com
>
parent
24267857
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
1161 additions
and
52 deletions
+1161
-52
va/Makefile.am
va/Makefile.am
+1
-1
va/va.c
va/va.c
+37
-51
va/va_backend.h
va/va_backend.h
+10
-0
va/va_trace.c
va/va_trace.c
+1113
-0
No files found.
va/Makefile.am
View file @
c259a979
...
@@ -42,7 +42,7 @@ libva_x11_la_DEPENDENCIES = $(libvacorelib) x11/libva_x11.la
...
@@ -42,7 +42,7 @@ libva_x11_la_DEPENDENCIES = $(libvacorelib) x11/libva_x11.la
SUBDIRS
=
x11
SUBDIRS
=
x11
libva_la_SOURCES
=
va.c
libva_la_SOURCES
=
va.c
va_trace.c
libvaincludedir
=
${includedir}
/va
libvaincludedir
=
${includedir}
/va
libvainclude_HEADERS
=
va.h va_x11.h va_backend.h va_version.h
libvainclude_HEADERS
=
va.h va_x11.h va_backend.h va_version.h
...
...
va/va.c
View file @
c259a979
...
@@ -23,7 +23,6 @@
...
@@ -23,7 +23,6 @@
*/
*/
#define _GNU_SOURCE 1
#define _GNU_SOURCE 1
#include "va.h"
#include "va.h"
#include "va_backend.h"
#include "va_backend.h"
...
@@ -48,9 +47,12 @@
...
@@ -48,9 +47,12 @@
#define CHECK_MAXIMUM(s, ctx, var) if (!va_checkMaximum(ctx->max_##var, #var)) s = VA_STATUS_ERROR_UNKNOWN;
#define CHECK_MAXIMUM(s, ctx, var) if (!va_checkMaximum(ctx->max_##var, #var)) s = VA_STATUS_ERROR_UNKNOWN;
#define CHECK_STRING(s, ctx, var) if (!va_checkString(ctx->str_##var, #var)) s = VA_STATUS_ERROR_UNKNOWN;
#define CHECK_STRING(s, ctx, var) if (!va_checkString(ctx->str_##var, #var)) s = VA_STATUS_ERROR_UNKNOWN;
#define TRACE(func) if (va_debug_trace) va_infoMessage("[TR] %s\n", #func);
extern
int
trace_flag
;
#define VA_TRACE(trace_func,...) \
static
int
va_debug_trace
=
0
;
if (trace_flag) { \
va_TraceMsg("========%s========\n", __func__); \
trace_func(__VA_ARGS__); \
}
static
int
vaDisplayIsValid
(
VADisplay
dpy
)
static
int
vaDisplayIsValid
(
VADisplay
dpy
)
{
{
...
@@ -329,7 +331,7 @@ VAStatus vaInitialize (
...
@@ -329,7 +331,7 @@ VAStatus vaInitialize (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
va_
debug_trace
=
(
getenv
(
"LIBVA_DEBUG_TRACE"
)
!=
NULL
);
va_
TraceInit
(
);
va_infoMessage
(
"libva version %s
\n
"
,
VA_VERSION_S
);
va_infoMessage
(
"libva version %s
\n
"
,
VA_VERSION_S
);
...
@@ -374,6 +376,9 @@ VAStatus vaTerminate (
...
@@ -374,6 +376,9 @@ VAStatus vaTerminate (
if
(
VA_STATUS_SUCCESS
==
vaStatus
)
if
(
VA_STATUS_SUCCESS
==
vaStatus
)
pDisplayContext
->
vaDestroy
(
pDisplayContext
);
pDisplayContext
->
vaDestroy
(
pDisplayContext
);
va_TraceEnd
();
return
vaStatus
;
return
vaStatus
;
}
}
...
@@ -441,7 +446,6 @@ VAStatus vaQueryConfigEntrypoints (
...
@@ -441,7 +446,6 @@ VAStatus vaQueryConfigEntrypoints (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaQueryConfigEntrypoints
);
return
ctx
->
vtable
.
vaQueryConfigEntrypoints
(
ctx
,
profile
,
entrypoints
,
num_entrypoints
);
return
ctx
->
vtable
.
vaQueryConfigEntrypoints
(
ctx
,
profile
,
entrypoints
,
num_entrypoints
);
}
}
...
@@ -457,7 +461,6 @@ VAStatus vaGetConfigAttributes (
...
@@ -457,7 +461,6 @@ VAStatus vaGetConfigAttributes (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaGetConfigAttributes
);
return
ctx
->
vtable
.
vaGetConfigAttributes
(
ctx
,
profile
,
entrypoint
,
attrib_list
,
num_attribs
);
return
ctx
->
vtable
.
vaGetConfigAttributes
(
ctx
,
profile
,
entrypoint
,
attrib_list
,
num_attribs
);
}
}
...
@@ -471,7 +474,6 @@ VAStatus vaQueryConfigProfiles (
...
@@ -471,7 +474,6 @@ VAStatus vaQueryConfigProfiles (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaQueryConfigProfiles
);
return
ctx
->
vtable
.
vaQueryConfigProfiles
(
ctx
,
profile_list
,
num_profiles
);
return
ctx
->
vtable
.
vaQueryConfigProfiles
(
ctx
,
profile_list
,
num_profiles
);
}
}
...
@@ -488,7 +490,7 @@ VAStatus vaCreateConfig (
...
@@ -488,7 +490,7 @@ VAStatus vaCreateConfig (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaCreateConfig
);
VA_TRACE
(
va_TraceCreateConfig
,
dpy
,
profile
,
entrypoint
,
attrib_list
,
num_attribs
,
config_id
);
return
ctx
->
vtable
.
vaCreateConfig
(
ctx
,
profile
,
entrypoint
,
attrib_list
,
num_attribs
,
config_id
);
return
ctx
->
vtable
.
vaCreateConfig
(
ctx
,
profile
,
entrypoint
,
attrib_list
,
num_attribs
,
config_id
);
}
}
...
@@ -501,7 +503,6 @@ VAStatus vaDestroyConfig (
...
@@ -501,7 +503,6 @@ VAStatus vaDestroyConfig (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaDestroyConfig
);
return
ctx
->
vtable
.
vaDestroyConfig
(
ctx
,
config_id
);
return
ctx
->
vtable
.
vaDestroyConfig
(
ctx
,
config_id
);
}
}
...
@@ -518,7 +519,6 @@ VAStatus vaQueryConfigAttributes (
...
@@ -518,7 +519,6 @@ VAStatus vaQueryConfigAttributes (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaQueryConfigAttributes
);
return
ctx
->
vtable
.
vaQueryConfigAttributes
(
ctx
,
config_id
,
profile
,
entrypoint
,
attrib_list
,
num_attribs
);
return
ctx
->
vtable
.
vaQueryConfigAttributes
(
ctx
,
config_id
,
profile
,
entrypoint
,
attrib_list
,
num_attribs
);
}
}
...
@@ -535,7 +535,7 @@ VAStatus vaCreateSurfaces (
...
@@ -535,7 +535,7 @@ VAStatus vaCreateSurfaces (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaCreateS
urfaces
);
VA_TRACE
(
va_TraceCreateSurface
,
dpy
,
width
,
height
,
format
,
num_surfaces
,
s
urfaces
);
return
ctx
->
vtable
.
vaCreateSurfaces
(
ctx
,
width
,
height
,
format
,
num_surfaces
,
surfaces
);
return
ctx
->
vtable
.
vaCreateSurfaces
(
ctx
,
width
,
height
,
format
,
num_surfaces
,
surfaces
);
}
}
...
@@ -550,7 +550,6 @@ VAStatus vaDestroySurfaces (
...
@@ -550,7 +550,6 @@ VAStatus vaDestroySurfaces (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaDestroySurfaces
);
return
ctx
->
vtable
.
vaDestroySurfaces
(
ctx
,
surface_list
,
num_surfaces
);
return
ctx
->
vtable
.
vaDestroySurfaces
(
ctx
,
surface_list
,
num_surfaces
);
}
}
...
@@ -569,7 +568,7 @@ VAStatus vaCreateContext (
...
@@ -569,7 +568,7 @@ VAStatus vaCreateContext (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaCreateC
ontext
);
VA_TRACE
(
va_TraceCreateContext
,
dpy
,
config_id
,
picture_width
,
picture_height
,
flag
,
render_targets
,
num_render_targets
,
c
ontext
);
return
ctx
->
vtable
.
vaCreateContext
(
ctx
,
config_id
,
picture_width
,
picture_height
,
return
ctx
->
vtable
.
vaCreateContext
(
ctx
,
config_id
,
picture_width
,
picture_height
,
flag
,
render_targets
,
num_render_targets
,
context
);
flag
,
render_targets
,
num_render_targets
,
context
);
}
}
...
@@ -583,7 +582,6 @@ VAStatus vaDestroyContext (
...
@@ -583,7 +582,6 @@ VAStatus vaDestroyContext (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaDestroyContext
);
return
ctx
->
vtable
.
vaDestroyContext
(
ctx
,
context
);
return
ctx
->
vtable
.
vaDestroyContext
(
ctx
,
context
);
}
}
...
@@ -601,7 +599,6 @@ VAStatus vaCreateBuffer (
...
@@ -601,7 +599,6 @@ VAStatus vaCreateBuffer (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaCreateBuffer
);
return
ctx
->
vtable
.
vaCreateBuffer
(
ctx
,
context
,
type
,
size
,
num_elements
,
data
,
buf_id
);
return
ctx
->
vtable
.
vaCreateBuffer
(
ctx
,
context
,
type
,
size
,
num_elements
,
data
,
buf_id
);
}
}
...
@@ -615,7 +612,6 @@ VAStatus vaBufferSetNumElements (
...
@@ -615,7 +612,6 @@ VAStatus vaBufferSetNumElements (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaBufferSetNumElements
);
return
ctx
->
vtable
.
vaBufferSetNumElements
(
ctx
,
buf_id
,
num_elements
);
return
ctx
->
vtable
.
vaBufferSetNumElements
(
ctx
,
buf_id
,
num_elements
);
}
}
...
@@ -630,7 +626,6 @@ VAStatus vaMapBuffer (
...
@@ -630,7 +626,6 @@ VAStatus vaMapBuffer (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaMapBuffer
);
return
ctx
->
vtable
.
vaMapBuffer
(
ctx
,
buf_id
,
pbuf
);
return
ctx
->
vtable
.
vaMapBuffer
(
ctx
,
buf_id
,
pbuf
);
}
}
...
@@ -643,7 +638,6 @@ VAStatus vaUnmapBuffer (
...
@@ -643,7 +638,6 @@ VAStatus vaUnmapBuffer (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaUnmapBuffer
);
return
ctx
->
vtable
.
vaUnmapBuffer
(
ctx
,
buf_id
);
return
ctx
->
vtable
.
vaUnmapBuffer
(
ctx
,
buf_id
);
}
}
...
@@ -656,10 +650,28 @@ VAStatus vaDestroyBuffer (
...
@@ -656,10 +650,28 @@ VAStatus vaDestroyBuffer (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaDestroyBuffer
);
return
ctx
->
vtable
.
vaDestroyBuffer
(
ctx
,
buffer_id
);
return
ctx
->
vtable
.
vaDestroyBuffer
(
ctx
,
buffer_id
);
}
}
VAStatus
vaBufferInfo
(
VADisplay
dpy
,
VAContextID
context
,
/* in */
VABufferID
buf_id
,
/* in */
VABufferType
*
type
,
/* out */
unsigned
int
*
size
,
/* out */
unsigned
int
*
num_elements
/* out */
)
{
VADriverContextP
ctx
;
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
if
(
ctx
->
vtable
.
vaBufferInfo
)
return
ctx
->
vtable
.
vaBufferInfo
(
ctx
,
context
,
buf_id
,
type
,
size
,
num_elements
);
else
return
VA_STATUS_ERROR_UNIMPLEMENTED
;
}
VAStatus
vaBeginPicture
(
VAStatus
vaBeginPicture
(
VADisplay
dpy
,
VADisplay
dpy
,
VAContextID
context
,
VAContextID
context
,
...
@@ -670,7 +682,7 @@ VAStatus vaBeginPicture (
...
@@ -670,7 +682,7 @@ VAStatus vaBeginPicture (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaBeginPicture
);
VA_TRACE
(
va_TraceBeginPicture
,
ctx
,
context
,
render_target
);
return
ctx
->
vtable
.
vaBeginPicture
(
ctx
,
context
,
render_target
);
return
ctx
->
vtable
.
vaBeginPicture
(
ctx
,
context
,
render_target
);
}
}
...
@@ -685,7 +697,7 @@ VAStatus vaRenderPicture (
...
@@ -685,7 +697,7 @@ VAStatus vaRenderPicture (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaRenderPicture
);
VA_TRACE
(
va_TraceRenderPicture
,
dpy
,
context
,
buffers
,
num_buffers
);
return
ctx
->
vtable
.
vaRenderPicture
(
ctx
,
context
,
buffers
,
num_buffers
);
return
ctx
->
vtable
.
vaRenderPicture
(
ctx
,
context
,
buffers
,
num_buffers
);
}
}
...
@@ -698,7 +710,7 @@ VAStatus vaEndPicture (
...
@@ -698,7 +710,7 @@ VAStatus vaEndPicture (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaEndPicture
);
VA_TRACE
(
va_TraceEndPicture
,
dpy
,
context
);
return
ctx
->
vtable
.
vaEndPicture
(
ctx
,
context
);
return
ctx
->
vtable
.
vaEndPicture
(
ctx
,
context
);
}
}
...
@@ -711,7 +723,6 @@ VAStatus vaSyncSurface (
...
@@ -711,7 +723,6 @@ VAStatus vaSyncSurface (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaSyncSurface
);
return
ctx
->
vtable
.
vaSyncSurface
(
ctx
,
render_target
);
return
ctx
->
vtable
.
vaSyncSurface
(
ctx
,
render_target
);
}
}
...
@@ -725,7 +736,6 @@ VAStatus vaQuerySurfaceStatus (
...
@@ -725,7 +736,6 @@ VAStatus vaQuerySurfaceStatus (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaQuerySurfaceStatus
);
return
ctx
->
vtable
.
vaQuerySurfaceStatus
(
ctx
,
render_target
,
status
);
return
ctx
->
vtable
.
vaQuerySurfaceStatus
(
ctx
,
render_target
,
status
);
}
}
...
@@ -750,7 +760,6 @@ VAStatus vaPutSurface (
...
@@ -750,7 +760,6 @@ VAStatus vaPutSurface (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaPutSurface
);
return
ctx
->
vtable
.
vaPutSurface
(
ctx
,
surface
,
draw
,
srcx
,
srcy
,
srcw
,
srch
,
return
ctx
->
vtable
.
vaPutSurface
(
ctx
,
surface
,
draw
,
srcx
,
srcy
,
srcw
,
srch
,
destx
,
desty
,
destw
,
desth
,
destx
,
desty
,
destw
,
desth
,
cliprects
,
number_cliprects
,
flags
);
cliprects
,
number_cliprects
,
flags
);
...
@@ -777,7 +786,6 @@ VAStatus vaQueryImageFormats (
...
@@ -777,7 +786,6 @@ VAStatus vaQueryImageFormats (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaQueryImageFormats
);
return
ctx
->
vtable
.
vaQueryImageFormats
(
ctx
,
format_list
,
num_formats
);
return
ctx
->
vtable
.
vaQueryImageFormats
(
ctx
,
format_list
,
num_formats
);
}
}
...
@@ -801,7 +809,6 @@ VAStatus vaCreateImage (
...
@@ -801,7 +809,6 @@ VAStatus vaCreateImage (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaCreateImage
);
return
ctx
->
vtable
.
vaCreateImage
(
ctx
,
format
,
width
,
height
,
image
);
return
ctx
->
vtable
.
vaCreateImage
(
ctx
,
format
,
width
,
height
,
image
);
}
}
...
@@ -817,7 +824,6 @@ VAStatus vaDestroyImage (
...
@@ -817,7 +824,6 @@ VAStatus vaDestroyImage (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaDestroyImage
);
return
ctx
->
vtable
.
vaDestroyImage
(
ctx
,
image
);
return
ctx
->
vtable
.
vaDestroyImage
(
ctx
,
image
);
}
}
...
@@ -831,7 +837,6 @@ VAStatus vaSetImagePalette (
...
@@ -831,7 +837,6 @@ VAStatus vaSetImagePalette (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaSetImagePalette
);
return
ctx
->
vtable
.
vaSetImagePalette
(
ctx
,
image
,
palette
);
return
ctx
->
vtable
.
vaSetImagePalette
(
ctx
,
image
,
palette
);
}
}
...
@@ -853,7 +858,6 @@ VAStatus vaGetImage (
...
@@ -853,7 +858,6 @@ VAStatus vaGetImage (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaGetImage
);
return
ctx
->
vtable
.
vaGetImage
(
ctx
,
surface
,
x
,
y
,
width
,
height
,
image
);
return
ctx
->
vtable
.
vaGetImage
(
ctx
,
surface
,
x
,
y
,
width
,
height
,
image
);
}
}
...
@@ -879,7 +883,6 @@ VAStatus vaPutImage (
...
@@ -879,7 +883,6 @@ VAStatus vaPutImage (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaPutImage
);
return
ctx
->
vtable
.
vaPutImage
(
ctx
,
surface
,
image
,
src_x
,
src_y
,
src_width
,
src_height
,
dest_x
,
dest_y
,
dest_width
,
dest_height
);
return
ctx
->
vtable
.
vaPutImage
(
ctx
,
surface
,
image
,
src_x
,
src_y
,
src_width
,
src_height
,
dest_x
,
dest_y
,
dest_width
,
dest_height
);
}
}
...
@@ -924,7 +927,6 @@ VAStatus vaDeriveImage (
...
@@ -924,7 +927,6 @@ VAStatus vaDeriveImage (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaDeriveImage
);
return
ctx
->
vtable
.
vaDeriveImage
(
ctx
,
surface
,
image
);
return
ctx
->
vtable
.
vaDeriveImage
(
ctx
,
surface
,
image
);
}
}
...
@@ -958,7 +960,6 @@ VAStatus vaQuerySubpictureFormats (
...
@@ -958,7 +960,6 @@ VAStatus vaQuerySubpictureFormats (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaQuerySubpictureFormats
);
return
ctx
->
vtable
.
vaQuerySubpictureFormats
(
ctx
,
format_list
,
flags
,
num_formats
);
return
ctx
->
vtable
.
vaQuerySubpictureFormats
(
ctx
,
format_list
,
flags
,
num_formats
);
}
}
...
@@ -975,7 +976,6 @@ VAStatus vaCreateSubpicture (
...
@@ -975,7 +976,6 @@ VAStatus vaCreateSubpicture (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaCreateSubpicture
);
return
ctx
->
vtable
.
vaCreateSubpicture
(
ctx
,
image
,
subpicture
);
return
ctx
->
vtable
.
vaCreateSubpicture
(
ctx
,
image
,
subpicture
);
}
}
...
@@ -991,7 +991,6 @@ VAStatus vaDestroySubpicture (
...
@@ -991,7 +991,6 @@ VAStatus vaDestroySubpicture (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaDestroySubpicture
);
return
ctx
->
vtable
.
vaDestroySubpicture
(
ctx
,
subpicture
);
return
ctx
->
vtable
.
vaDestroySubpicture
(
ctx
,
subpicture
);
}
}
...
@@ -1005,7 +1004,6 @@ VAStatus vaSetSubpictureImage (
...
@@ -1005,7 +1004,6 @@ VAStatus vaSetSubpictureImage (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaSetSubpictureImage
);
return
ctx
->
vtable
.
vaSetSubpictureImage
(
ctx
,
subpicture
,
image
);
return
ctx
->
vtable
.
vaSetSubpictureImage
(
ctx
,
subpicture
,
image
);
}
}
...
@@ -1026,7 +1024,6 @@ VAStatus vaSetSubpictureChromakey (
...
@@ -1026,7 +1024,6 @@ VAStatus vaSetSubpictureChromakey (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaSetSubpictureChromakey
);
return
ctx
->
vtable
.
vaSetSubpictureChromakey
(
ctx
,
subpicture
,
chromakey_min
,
chromakey_max
,
chromakey_mask
);
return
ctx
->
vtable
.
vaSetSubpictureChromakey
(
ctx
,
subpicture
,
chromakey_min
,
chromakey_max
,
chromakey_mask
);
}
}
...
@@ -1046,7 +1043,6 @@ VAStatus vaSetSubpictureGlobalAlpha (
...
@@ -1046,7 +1043,6 @@ VAStatus vaSetSubpictureGlobalAlpha (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaSetSubpictureGlobalAlpha
);
return
ctx
->
vtable
.
vaSetSubpictureGlobalAlpha
(
ctx
,
subpicture
,
global_alpha
);
return
ctx
->
vtable
.
vaSetSubpictureGlobalAlpha
(
ctx
,
subpicture
,
global_alpha
);
}
}
...
@@ -1081,7 +1077,6 @@ VAStatus vaAssociateSubpicture (
...
@@ -1081,7 +1077,6 @@ VAStatus vaAssociateSubpicture (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaAssociateSubpicture
);
return
ctx
->
vtable
.
vaAssociateSubpicture
(
ctx
,
subpicture
,
target_surfaces
,
num_surfaces
,
src_x
,
src_y
,
src_width
,
src_height
,
dest_x
,
dest_y
,
dest_width
,
dest_height
,
flags
);
return
ctx
->
vtable
.
vaAssociateSubpicture
(
ctx
,
subpicture
,
target_surfaces
,
num_surfaces
,
src_x
,
src_y
,
src_width
,
src_height
,
dest_x
,
dest_y
,
dest_width
,
dest_height
,
flags
);
}
}
...
@@ -1099,7 +1094,6 @@ VAStatus vaDeassociateSubpicture (
...
@@ -1099,7 +1094,6 @@ VAStatus vaDeassociateSubpicture (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaDeassociateSubpicture
);
return
ctx
->
vtable
.
vaDeassociateSubpicture
(
ctx
,
subpicture
,
target_surfaces
,
num_surfaces
);
return
ctx
->
vtable
.
vaDeassociateSubpicture
(
ctx
,
subpicture
,
target_surfaces
,
num_surfaces
);
}
}
...
@@ -1131,7 +1125,6 @@ VAStatus vaQueryDisplayAttributes (
...
@@ -1131,7 +1125,6 @@ VAStatus vaQueryDisplayAttributes (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaQueryDisplayAttributes
);
return
ctx
->
vtable
.
vaQueryDisplayAttributes
(
ctx
,
attr_list
,
num_attributes
);
return
ctx
->
vtable
.
vaQueryDisplayAttributes
(
ctx
,
attr_list
,
num_attributes
);
}
}
...
@@ -1151,7 +1144,6 @@ VAStatus vaGetDisplayAttributes (
...
@@ -1151,7 +1144,6 @@ VAStatus vaGetDisplayAttributes (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaGetDisplayAttributes
);
return
ctx
->
vtable
.
vaGetDisplayAttributes
(
ctx
,
attr_list
,
num_attributes
);
return
ctx
->
vtable
.
vaGetDisplayAttributes
(
ctx
,
attr_list
,
num_attributes
);
}
}
...
@@ -1171,7 +1163,6 @@ VAStatus vaSetDisplayAttributes (
...
@@ -1171,7 +1163,6 @@ VAStatus vaSetDisplayAttributes (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaSetDisplayAttributes
);
return
ctx
->
vtable
.
vaSetDisplayAttributes
(
ctx
,
attr_list
,
num_attributes
);
return
ctx
->
vtable
.
vaSetDisplayAttributes
(
ctx
,
attr_list
,
num_attributes
);
}
}
...
@@ -1193,12 +1184,10 @@ VAStatus vaCreateSurfaceFromCIFrame (
...
@@ -1193,12 +1184,10 @@ VAStatus vaCreateSurfaceFromCIFrame (
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaCreateSurfacesFromCIFrame
);
if
(
ctx
->
vtable
.
vaCreateSurfaceFromCIFrame
)
if
(
ctx
->
vtable
.
vaCreateSurfaceFromCIFrame
)
return
ctx
->
vtable
.
vaCreateSurfaceFromCIFrame
(
ctx
,
frame_id
,
surface
);
return
ctx
->
vtable
.
vaCreateSurfaceFromCIFrame
(
ctx
,
frame_id
,
surface
);
else
else
return
VA_STATUS_ERROR_UN
KNOWN
;
return
VA_STATUS_ERROR_UN
IMPLEMENTED
;
}
}
...
@@ -1226,8 +1215,6 @@ VAStatus vaCreateSurfaceFromV4L2Buf(
...
@@ -1226,8 +1215,6 @@ VAStatus vaCreateSurfaceFromV4L2Buf(
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vtable
.
vaCreateSurfaceFromV4L2Buf
);
if
(
ctx
->
vtable
.
vaCreateSurfaceFromV4L2Buf
)
if
(
ctx
->
vtable
.
vaCreateSurfaceFromV4L2Buf
)
return
ctx
->
vtable
.
vaCreateSurfaceFromV4L2Buf
(
ctx
,
v4l2_fd
,
v4l2_fmt
,
v4l2_buf
,
surface
);
return
ctx
->
vtable
.
vaCreateSurfaceFromV4L2Buf
(
ctx
,
v4l2_fd
,
v4l2_fmt
,
v4l2_buf
,
surface
);
else
else
...
@@ -1255,9 +1242,8 @@ VAStatus vaCopySurfaceToBuffer(VADisplay dpy,
...
@@ -1255,9 +1242,8 @@ VAStatus vaCopySurfaceToBuffer(VADisplay dpy,
CHECK_DISPLAY
(
dpy
);
CHECK_DISPLAY
(
dpy
);
ctx
=
CTX
(
dpy
);
ctx
=
CTX
(
dpy
);
TRACE
(
vaCopySurfaceToBuffer
);
if
(
ctx
->
vtable
.
vaCopySurfaceToBuffer
)
if
(
ctx
->
vtable
.
vaCopySurfaceToBuffer
)
return
ctx
->
vtable
.
vaCopySurfaceToBuffer
(
ctx
,
surface
,
fourcc
,
luma_stride
,
chroma_u_stride
,
chroma_v_stride
,
luma_offset
,
chroma_u_offset
,
chroma_v_offset
,
buffer
);
return
ctx
->
vtable
.
vaCopySurfaceToBuffer
(
ctx
,
surface
,
fourcc
,
luma_stride
,
chroma_u_stride
,
chroma_v_stride
,
luma_offset
,
chroma_u_offset
,
chroma_v_offset
,
buffer
);
else
else
return
VA_STATUS_ERROR_UN
KNOWN
;
return
VA_STATUS_ERROR_UN
IMPLEMENTED
;
}
}
va/va_backend.h
View file @
c259a979
...
@@ -352,6 +352,16 @@ struct VADriverVTable
...
@@ -352,6 +352,16 @@ struct VADriverVTable
struct
v4l2_buffer
*
v4l2_buf
,
/* V4L2 buffer */
struct
v4l2_buffer
*
v4l2_buf
,
/* V4L2 buffer */
VASurfaceID
*
surface
/* out */
VASurfaceID
*
surface
/* out */
);
);
VAStatus
(
*
vaBufferInfo
)
(
VADriverContextP
ctx
,
VAContextID
context
,
/* in */
VABufferID
buf_id
,
/* in */
VABufferType
*
type
,
/* out */
unsigned
int
*
size
,
/* out */
unsigned
int
*
num_elements
/* out */
);
VAStatus
(
*
vaCopySurfaceToBuffer
)
(
VAStatus
(
*
vaCopySurfaceToBuffer
)
(
VADriverContextP
ctx
,
VADriverContextP
ctx
,
...
...
va/va_trace.c
0 → 100644
View file @
c259a979
/*
* Copyright (c) 2009 Intel Corporation. All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sub license, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice (including the
* next paragraph) shall be included in all copies or substantial portions
* of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#define _GNU_SOURCE 1
#include "va.h"
#include "va_backend.h"
#include <assert.h>
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include <dlfcn.h>
#include <unistd.h>
unsigned
int
trace_flag
=
0
;
static
const
char
*
trace_file
=
0
;
static
FILE
*
trace_fp
=
0
;
static
VASurfaceID
trace_rendertarget
;
/* current render target */
static
VAProfile
trace_profile
;
/* current entrypoint for buffers */
static
unsigned
int
trace_frame
;
static
unsigned
int
trace_slice
;
static
unsigned
int
trace_width
;
static
unsigned
int
trace_height
;
int
va_TraceInit
(
void
)
{
trace_file
=
getenv
(
"LIBVA_TRACE"
);
if
(
trace_file
)
{
trace_fp
=
fopen
(
trace_file
,
"w"
);
if
(
trace_fp
)
trace_flag
=
1
;
}
}
int
va_TraceEnd
(
void
)
{
if
(
trace_file
&&
trace_fp
)
{
fclose
(
trace_fp
);
trace_file
=
NULL
;
trace_fp
=
NULL
;
trace_flag
=
0
;
trace_width
=
0
;
trace_height
=
0
;
}
}
int
va_TraceMsg
(
const
char
*
msg
,
...)
{
va_list
args
;
if
(
msg
)
{
va_start
(
args
,
msg
);
vfprintf
(
trace_fp
,
msg
,
args
);
va_end
(
args
);
}
else
{
fflush
(
trace_fp
);
}
}
int
va_TraceCreateConfig
(
VADisplay
dpy
,
VAProfile
profile
,
VAEntrypoint
entrypoint
,
VAConfigAttrib
*
attrib_list
,
int
num_attribs
,
VAConfigID
*
config_id
/* out */
)
{
int
i
;
va_TraceMsg
(
"
\t
profile = %d
\n
"
,
profile
);
va_TraceMsg
(
"
\t
entrypoint = %d
\n
"
,
entrypoint
);
va_TraceMsg
(
"
\t
num_attribs = %d
\n
"
,
num_attribs
);
for
(
i
=
0
;
i
<
num_attribs
;
i
++
)
{
va_TraceMsg
(
"
\t\t
attrib_list[%d].type = 0x%08x
\n
"
,
i
,
attrib_list
[
i
].
type
);
va_TraceMsg
(
"
\t\t
attrib_list[%d].value = 0x%08x
\n
"
,
i
,
attrib_list
[
i
].
value
);
}
trace_profile
=
profile
;
}
int
va_TraceCreateSurface
(
VADisplay
dpy
,
int
width
,
int
height
,
int
format
,
int
num_surfaces
,
VASurfaceID
*
surfaces
/* out */
)
{
int
i
;
va_TraceMsg
(
"
\t
width = %d
\n
"
,
width
);
va_TraceMsg
(
"
\t
height = %d
\n
"
,
height
);
va_TraceMsg
(
"
\t
format = %d
\n
"
,
format
);
va_TraceMsg
(
"
\t
num_surfaces = %d
\n
"
,
num_surfaces
);
for
(
i
=
0
;
i
<
num_surfaces
;
i
++
)
va_TraceMsg
(
"
\t\t
surfaces[%d] = 0x%08x
\n
"
,
i
,
surfaces
[
i
]);
}
int
va_TraceCreateContext
(
VADisplay
dpy
,
VAConfigID
config_id
,
int
picture_width
,
int
picture_height
,
int
flag
,
VASurfaceID
*
render_targets
,
int
num_render_targets
,
VAContextID
*
context
/* out */
)
{
int
i
;
va_TraceMsg
(
"
\t
width = %d
\n
"
,
picture_width
);
va_TraceMsg
(
"
\t
height = %d
\n
"
,
picture_height
);
va_TraceMsg
(
"
\t
flag = 0x%08x
\n
"
,
flag
);
va_TraceMsg
(
"
\t
num_render_targets = %d
\n
"
,
num_render_targets
);
for
(
i
=
0
;
i
<
num_render_targets
;
i
++
)
va_TraceMsg
(
"
\t\t
render_targets[%d] = 0x%08x
\n
"
,
i
,
render_targets
[
i
]);
va_TraceMsg
(
"
\t
context = 0x%08x
\n
"
,
context
);
trace_frame
=
0
;
trace_slice
=
0
;
trace_width
=
picture_width
;
trace_height
=
picture_height
;
}
static
char
*
buffer_type_to_string
(
int
type
)
{
switch
(
type
)
{
case
VAPictureParameterBufferType
:
return
"VAPictureParameterBufferType"
;
case
VAIQMatrixBufferType
:
return
"VAIQMatrixBufferType"
;
case
VABitPlaneBufferType
:
return
"VABitPlaneBufferType"
;
case
VASliceGroupMapBufferType
:
return
"VASliceGroupMapBufferType"
;
case
VASliceParameterBufferType
:
return
"VASliceParameterBufferType"
;
case
VASliceDataBufferType
:
return
"VASliceDataBufferType"
;
case
VAProtectedSliceDataBufferType
:
return
"VAProtectedSliceDataBufferType"
;
case
VAMacroblockParameterBufferType
:
return
"VAMacroblockParameterBufferType"
;
case
VAResidualDataBufferType
:
return
"VAResidualDataBufferType"
;
case
VADeblockingParameterBufferType
:
return
"VADeblockingParameterBufferType"
;
case
VAImageBufferType
:
return
"VAImageBufferType"
;
case
VAEncCodedBufferType
:
return
"VAEncCodedBufferType"
;
case
VAEncSequenceParameterBufferType
:
return
"VAEncSequenceParameterBufferType"
;
case
VAEncPictureParameterBufferType
:
return
"VAEncPictureParameterBufferType"
;
case
VAEncSliceParameterBufferType
:
return
"VAEncSliceParameterBufferType"
;
default:
return
"UnknowBuffer"
;
}
}
static
int
va_TraceVABuffers
(
VADisplay
dpy
,
VAContextID
context
,
VABufferID
buffer
,
VABufferType
type
,
unsigned
int
size
,
unsigned
int
num_elements
,
void
*
pbuf
)
{
int
i
;
char
*
p
=
pbuf
;
unsigned
int
*
pi
=
(
unsigned
int
*
)
pbuf
;
va_TraceMsg
(
"***Buffer Data***"
);
for
(
i
=
0
;
i
<
size
;
i
++
)
{
if
((
i
%
16
)
==
0
)
va_TraceMsg
(
"
\n
0x%08x:"
,
i
);
va_TraceMsg
(
"%08x "
,
p
[
i
]);
}
va_TraceMsg
(
"
\n
"
);
return
0
;
}
static
void
va_TraceVAPictureParameterBufferMPEG2
(
VADisplay
dpy
,
VAContextID
context
,
VABufferID
buffer
,
VABufferType
type
,
unsigned
int
size
,
unsigned
int
num_elements
,
void
*
data
)
{
va_TraceVABuffers
(
dpy
,
context
,
buffer
,
type
,
size
,
num_elements
,
data
);
return
;
}
static
void
va_TraceVAIQMatrixBufferMPEG2
(
VADisplay
dpy
,
VAContextID
context
,
VABufferID
buffer
,
VABufferType
type
,
unsigned
int
size
,
unsigned
int
num_elements
,
void
*
data
)
{
va_TraceVABuffers
(
dpy
,
context
,
buffer
,
type
,
size
,
num_elements
,
data
);
return
;
}
static
void
va_TraceVASliceParameterBufferMPEG2
(
VADisplay
dpy
,
VAContextID
context
,
VABufferID
buffer
,
VABufferType
type
,
unsigned
int
size
,
unsigned
int
num_elements
,
void
*
data
)
{
va_TraceVABuffers
(
dpy
,
context
,
buffer
,
type
,
size
,
num_elements
,
data
);
return
;
}
static
void
va_TraceVAPictureParameterBufferMPEG4
(
VADisplay
dpy
,
VAContextID
context
,
VABufferID
buffer
,
VABufferType
type
,
unsigned
int
size
,
unsigned
int
num_elements
,
void
*
data
)
{
va_TraceVABuffers
(
dpy
,
context
,
buffer
,
type
,
size
,
num_elements
,
data
);
return
;
}
static
void
va_TraceVAIQMatrixBufferMPEG4
(
VADisplay
dpy
,
VAContextID
context
,
VABufferID
buffer
,
VABufferType
type
,
unsigned
int
size
,
unsigned
int
num_elements
,
void
*
data
)
{
va_TraceVABuffers
(
dpy
,
context
,
buffer
,
type
,
size
,
num_elements
,
data
);
return
;
}
static
void
va_TraceVASliceParameterBufferMPEG4
(
VADisplay
dpy
,
VAContextID
context
,
VABufferID
buffer
,
VABufferType
type
,
unsigned
int
size
,
unsigned
int
num_elements
,
void
*
data
)
{
va_TraceVABuffers
(
dpy
,
context
,
buffer
,
type
,
size
,
num_elements
,
data
);
return
;
}
static
void
va_TraceVAPictureParameterBufferH264
(
VADisplay
dpy
,
VAContextID
context
,
VABufferID
buffer
,
VABufferType
type
,
unsigned
int
size
,
unsigned
int
num_elements
,
void
*
data
)
{
int
i
;
VAPictureParameterBufferH264
*
p
=
(
VAPictureParameterBufferH264
*
)
data
;
va_TraceMsg
(
"==========H264PicParameterBuffer============
\n
"
);
#if 0
if (p->num_ref_frames > 4)
{
int num = 0;
for (i = 15; i >= 0; i--)
{
if (p->ReferenceFrames[i].flags != VA_PICTURE_H264_INVALID)
{
num++;
}
if (num > 4)
{
p->ReferenceFrames[i].flags = VA_PICTURE_H264_INVALID;
}
}
p->num_ref_frames = 4;
}
#endif
#if 1
va_TraceMsg
(
"picture id: %d
\n
"
,
p
->
CurrPic
.
picture_id
);
va_TraceMsg
(
"frame idx: %d
\n
"
,
p
->
CurrPic
.
frame_idx
);
va_TraceMsg
(
"picture flags: %d
\n
"
,
p
->
CurrPic
.
flags
);
va_TraceMsg
(
"top field order count: %d
\n
"
,
p
->
CurrPic
.
TopFieldOrderCnt
);
va_TraceMsg
(
"bottom field order count: %d
\n
"
,
p
->
CurrPic
.
BottomFieldOrderCnt
);
va_TraceMsg
(
"Reference frames:
\n
"
);
for
(
i
=
0
;
i
<
16
;
i
++
)
{
if
(
p
->
ReferenceFrames
[
i
].
flags
!=
VA_PICTURE_H264_INVALID
)
{
//va_TraceMsg("%d-%d; ", p->ReferenceFrames[i].TopFieldOrderCnt, p->ReferenceFrames[i].BottomFieldOrderCnt);
va_TraceMsg
(
"%d-%d-%d-%d; "
,
p
->
ReferenceFrames
[
i
].
TopFieldOrderCnt
,
p
->
ReferenceFrames
[
i
].
BottomFieldOrderCnt
,
p
->
ReferenceFrames
[
i
].
picture_id
,
p
->
ReferenceFrames
[
i
].
frame_idx
);
}
}
va_TraceMsg
(
"
\n
"
);
#endif
va_TraceMsg
(
"picture_width_in_mbs_minus1: %d
\n
"
,
p
->
picture_width_in_mbs_minus1
);
va_TraceMsg
(
"picture_height_in_mbs_minus1: %d
\n
"
,
p
->
picture_height_in_mbs_minus1
);
va_TraceMsg
(
"bit_depth_luma_minus8: %d
\n
"
,
p
->
bit_depth_luma_minus8
);
va_TraceMsg
(
"bit_depth_chroma_minus8: %d
\n
"
,
p
->
bit_depth_chroma_minus8
);
va_TraceMsg
(
"num_ref_frames: %d
\n
"
,
p
->
num_ref_frames
);
va_TraceMsg
(
"seq fields: %d
\n
"
,
p
->
seq_fields
.
value
);
va_TraceMsg
(
"
\t
chroma_format_idc: %d
\n
"
,
p
->
seq_fields
.
bits
.
chroma_format_idc
);
va_TraceMsg
(
"
\t
residual_colour_transform_flag: %d
\n
"
,
p
->
seq_fields
.
bits
.
residual_colour_transform_flag
);
va_TraceMsg
(
"
\t
frame_mbs_only_flag: %d
\n
"
,
p
->
seq_fields
.
bits
.
frame_mbs_only_flag
);
va_TraceMsg
(
"
\t
mb_adaptive_frame_field_flag: %d
\n
"
,
p
->
seq_fields
.
bits
.
mb_adaptive_frame_field_flag
);
va_TraceMsg
(
"
\t
direct_8x8_inference_flag: %d
\n
"
,
p
->
seq_fields
.
bits
.
direct_8x8_inference_flag
);
va_TraceMsg
(
"
\t
MinLumaBiPredSize8x8: %d
\n
"
,
p
->
seq_fields
.
bits
.
MinLumaBiPredSize8x8
);
va_TraceMsg
(
"num_slice_groups_minus1: %d
\n
"
,
p
->
num_slice_groups_minus1
);
va_TraceMsg
(
"slice_group_map_type: %d
\n
"
,
p
->
slice_group_map_type
);
va_TraceMsg
(
"slice_group_change_rate_minus1: %d
\n
"
,
p
->
slice_group_change_rate_minus1
);
va_TraceMsg
(
"pic_init_qp_minus26: %d
\n
"
,
p
->
pic_init_qp_minus26
);
va_TraceMsg
(
"pic_init_qs_minus26: %d
\n
"
,
p
->
pic_init_qs_minus26
);
va_TraceMsg
(
"chroma_qp_index_offset: %d
\n
"
,
p
->
chroma_qp_index_offset
);
va_TraceMsg
(
"second_chroma_qp_index_offset: %d
\n
"
,
p
->
second_chroma_qp_index_offset
);
va_TraceMsg
(
"pic_fields: %d
\n
"
,
p
->
pic_fields
.
value
);
va_TraceMsg
(
"
\t
entropy_coding_mode_flag: %d
\n
"
,
p
->
pic_fields
.
bits
.
entropy_coding_mode_flag
);
va_TraceMsg
(
"
\t
weighted_pred_flag: %d
\n
"
,
p
->
pic_fields
.
bits
.
weighted_pred_flag
);
va_TraceMsg
(
"
\t
weighted_bipred_idc: %d
\n
"
,
p
->
pic_fields
.
bits
.
weighted_bipred_idc
);
va_TraceMsg
(
"
\t
transform_8x8_mode_flag: %d
\n
"
,
p
->
pic_fields
.
bits
.
transform_8x8_mode_flag
);
va_TraceMsg
(
"
\t
field_pic_flag: %d
\n
"
,
p
->
pic_fields
.
bits
.
field_pic_flag
);
va_TraceMsg
(
"
\t
constrained_intra_pred_flag: %d
\n
"
,
p
->
pic_fields
.
bits
.
constrained_intra_pred_flag
);
va_TraceMsg
(
"frame_num: %d
\n
"
,
p
->
frame_num
);
return
;
}
static
void
va_TraceVASliceParameterBufferH264
(
VADisplay
dpy
,
VAContextID
context
,
VABufferID
buffer
,
VABufferType
type
,
unsigned
int
size
,
unsigned
int
num_elements
,
void
*
data
)
{
int
i
;
VASliceParameterBufferH264
*
p
=
(
VASliceParameterBufferH264
*
)
data
;
va_TraceMsg
(
"========== SLICE HEADER ============.
\n
"
);
va_TraceMsg
(
"slice_data_size: %d
\n
"
,
p
->
slice_data_size
);
va_TraceMsg
(
"slice_data_offset: %d
\n
"
,
p
->
slice_data_offset
);
va_TraceMsg
(
"slice_data_flag: %d
\n
"
,
p
->
slice_data_flag
);
va_TraceMsg
(
"slice_data_bit_offset: %d
\n
"
,
p
->
slice_data_bit_offset
);
va_TraceMsg
(
"first_mb_in_slice: %d
\n
"
,
p
->
first_mb_in_slice
);
va_TraceMsg
(
"slice_type: %d
\n
"
,
p
->
slice_type
);
va_TraceMsg
(
"direct_spatial_mv_pred_flag: %d
\n
"
,
p
->
direct_spatial_mv_pred_flag
);
va_TraceMsg
(
"num_ref_idx_l0_active_minus1: %d
\n
"
,
p
->
num_ref_idx_l0_active_minus1
);
va_TraceMsg
(
"num_ref_idx_l1_active_minus1: %d
\n
"
,
p
->
num_ref_idx_l1_active_minus1
);
va_TraceMsg
(
"cabac_init_idc: %d
\n
"
,
p
->
cabac_init_idc
);
va_TraceMsg
(
"slice_qp_delta: %d
\n
"
,
p
->
slice_qp_delta
);
va_TraceMsg
(
"disable_deblocking_filter_idc: %d
\n
"
,
p
->
disable_deblocking_filter_idc
);
va_TraceMsg
(
"slice_alpha_c0_offset_div2: %d
\n
"
,
p
->
slice_alpha_c0_offset_div2
);
va_TraceMsg
(
"slice_beta_offset_div2: %d
\n
"
,
p
->
slice_beta_offset_div2
);
#if 1
if
(
p
->
slice_type
==
0
||
p
->
slice_type
==
1
)
{
va_TraceMsg
(
"RefPicList0:
\n
"
);
for
(
i
=
0
;
i
<
p
->
num_ref_idx_l0_active_minus1
+
1
;
i
++
)
{
//va_TraceMsg("%d-%d; ", p->RefPicList0[i].TopFieldOrderCnt, p->RefPicList0[i].BottomFieldOrderCnt);
va_TraceMsg
(
"%d-%d-%d-%d; "
,
p
->
RefPicList0
[
i
].
TopFieldOrderCnt
,
p
->
RefPicList0
[
i
].
BottomFieldOrderCnt
,
p
->
RefPicList0
[
i
].
picture_id
,
p
->
RefPicList0
[
i
].
frame_idx
);
}
va_TraceMsg
(
"
\n
"
);
if
(
p
->
slice_type
==
1
)
{
va_TraceMsg
(
"RefPicList1:
\n
"
);
for
(
i
=
0
;
i
<
p
->
num_ref_idx_l1_active_minus1
+
1
;
i
++
)
{
//va_TraceMsg("%d-%d; ", p->RefPicList1[i].TopFieldOrderCnt, p->RefPicList1[i].BottomFieldOrderCnt);
va_TraceMsg
(
"%d-%d-%d-%d; "
,
p
->
RefPicList1
[
i
].
TopFieldOrderCnt
,
p
->
RefPicList1
[
i
].
BottomFieldOrderCnt
,
p
->
RefPicList1
[
i
].
picture_id
,
p
->
RefPicList1
[
i
].
frame_idx
);
}
}
va_TraceMsg
(
"
\n
"
);
}
#endif
va_TraceMsg
(
"luma_log2_weight_denom: %d
\n
"
,
p
->
luma_log2_weight_denom
);
va_TraceMsg
(
"chroma_log2_weight_denom: %d
\n
"
,
p
->
chroma_log2_weight_denom
);
va_TraceMsg
(
"luma_weight_l0_flag: %d
\n
"
,
p
->
luma_weight_l0_flag
);
if
(
p
->
luma_weight_l0_flag
)
{
for
(
i
=
0
;
i
<=
p
->
num_ref_idx_l0_active_minus1
;
i
++
)
{
va_TraceMsg
(
"%d "
,
p
->
luma_weight_l0
[
i
]);
va_TraceMsg
(
"%d "
,
p
->
luma_offset_l0
[
i
]);
}
va_TraceMsg
(
"
\n
"
);
}
va_TraceMsg
(
"chroma_weight_l0_flag: %d
\n
"
,
p
->
chroma_weight_l0_flag
);
if
(
p
->
chroma_weight_l0_flag
)
{
for
(
i
=
0
;
i
<=
p
->
num_ref_idx_l0_active_minus1
;
i
++
)
{
va_TraceMsg
(
"%d "
,
p
->
chroma_weight_l0
[
i
][
0
]);
va_TraceMsg
(
"%d "
,
p
->
chroma_offset_l0
[
i
][
0
]);
va_TraceMsg
(
"%d "
,
p
->
chroma_weight_l0
[
i
][
1
]);
va_TraceMsg
(
"%d "
,
p
->
chroma_offset_l0
[
i
][
1
]);
}
va_TraceMsg
(
"
\n
"
);
}
va_TraceMsg
(
"luma_weight_l1_flag: %d
\n
"
,
p
->
luma_weight_l1_flag
);
if
(
p
->
luma_weight_l1_flag
)
{
for
(
i
=
0
;
i
<=
p
->
num_ref_idx_l1_active_minus1
;
i
++
)
{
va_TraceMsg
(
"%d "
,
p
->
luma_weight_l1
[
i
]);
va_TraceMsg
(
"%d "
,
p
->
luma_offset_l1
[
i
]);
}
va_TraceMsg
(
"
\n
"
);
}
va_TraceMsg
(
"chroma_weight_l1_flag: %d
\n
"
,
p
->
chroma_weight_l1_flag
);
if
(
p
->
chroma_weight_l1_flag
)
{
for
(
i
=
0
;
i
<=
p
->
num_ref_idx_l1_active_minus1
;
i
++
)
{
va_TraceMsg
(
"%d "
,
p
->
chroma_weight_l1
[
i
][
0
]);
va_TraceMsg
(
"%d "
,
p
->
chroma_offset_l1
[
i
][
0
]);
va_TraceMsg
(
"%d "
,
p
->
chroma_weight_l1
[
i
][
1
]);
va_TraceMsg
(
"%d "
,
p
->
chroma_offset_l1
[
i
][
1
]);
}
va_TraceMsg
(
"
\n
"
);
}
}
static
void
va_TraceVAIQMatrixBufferH264
(
VADisplay
dpy
,
VAContextID
context
,
VABufferID
buffer
,
VABufferType
type
,
unsigned
int
size
,
unsigned
int
num_elements
,
void
*
data
)
{
va_TraceMsg
(
"========== IQMatrix ============.
\n
"
);
VAIQMatrixBufferH264
*
p
=
(
VAIQMatrixBufferH264
*
)
data
;
int
i
,
j
;
for
(
i
=
0
;
i
<
6
;
i
++
)
{
for
(
j
=
0
;
j
<
16
;
j
++
)
{
va_TraceMsg
(
"%d
\t
"
,
p
->
ScalingList4x4
[
i
][
j
]);
if
((
j
+
1
)
%
8
==
0
)
va_TraceMsg
(
"
\n
"
);
}
}
for
(
i
=
0
;
i
<
2
;
i
++
)
{
for
(
j
=
0
;
j
<
64
;
j
++
)
{
va_TraceMsg
(
"%d
\t
"
,
p
->
ScalingList8x8
[
i
][
j
]);
if
((
j
+
1
)
%
8
==
0
)
va_TraceMsg
(
"
\n
"
);
}
}
}
static
void
va_TraceVAPictureParameterBufferVC1
(
VADisplay
dpy
,
VAContextID
context
,
VABufferID
buffer
,
VABufferType
type
,
unsigned
int
size
,
unsigned
int
num_elements
,
void
*
data
)
{
VAPictureParameterBufferVC1
*
p
=
(
VAPictureParameterBufferVC1
*
)
data
;
va_TraceMsg
(
"
\t
forward_reference_picture = 0x%08x
\n
"
,
p
->
forward_reference_picture
);
va_TraceMsg
(
"
\t
backward_reference_picture = 0x%08x
\n
"
,
p
->
backward_reference_picture
);
va_TraceMsg
(
"
\t
inloop_decoded_picture = 0x%08x
\n
"
,
p
->
inloop_decoded_picture
);
va_TraceMsg
(
"
\t
pulldown = %d
\n
"
,
p
->
sequence_fields
.
bits
.
pulldown
);
va_TraceMsg
(
"
\t
interlace = %d
\n
"
,
p
->
sequence_fields
.
bits
.
interlace
);
va_TraceMsg
(
"
\t
tfcntrflag = %d
\n
"
,
p
->
sequence_fields
.
bits
.
tfcntrflag
);
va_TraceMsg
(
"
\t
finterpflag = %d
\n
"
,
p
->
sequence_fields
.
bits
.
finterpflag
);
va_TraceMsg
(
"
\t
psf = %d.
\n
"
,
p
->
sequence_fields
.
bits
.
psf
);
va_TraceMsg
(
"
\t
multires = %d.
\n
"
,
p
->
sequence_fields
.
bits
.
multires
);
va_TraceMsg
(
"
\t
overlap = %d.
\n
"
,
p
->
sequence_fields
.
bits
.
overlap
);
va_TraceMsg
(
"
\t
syncmarker = %d.
\n
"
,
p
->
sequence_fields
.
bits
.
syncmarker
);
va_TraceMsg
(
"
\t
rangered = %d.
\n
"
,
p
->
sequence_fields
.
bits
.
rangered
);
va_TraceMsg
(
"
\t
max_b_frames = %d.
\n
"
,
p
->
sequence_fields
.
bits
.
max_b_frames
);
va_TraceMsg
(
"
\t
coded_width = %d.
\n
"
,
p
->
coded_width
);
va_TraceMsg
(
"
\t
coded_height = %d.
\n
"
,
p
->
coded_height
);
va_TraceMsg
(
"
\t
closed_entry = %d.
\n
"
,
p
->
entrypoint_fields
.
bits
.
closed_entry
);
va_TraceMsg
(
"
\t
broken_link = %d.
\n
"
,
p
->
entrypoint_fields
.
bits
.
broken_link
);
va_TraceMsg
(
"
\t
closed_entry = %d.
\n
"
,
p
->
entrypoint_fields
.
bits
.
closed_entry
);
va_TraceMsg
(
"
\t
panscan_flag = %d.
\n
"
,
p
->
entrypoint_fields
.
bits
.
panscan_flag
);
va_TraceMsg
(
"
\t
loopfilter = %d.
\n
"
,
p
->
entrypoint_fields
.
bits
.
loopfilter
);
va_TraceMsg
(
"
\t
conditional_overlap_flag = %d.
\n
"
,
p
->
conditional_overlap_flag
);
va_TraceMsg
(
"
\t
fast_uvmc_flag = %d.
\n
"
,
p
->
fast_uvmc_flag
);
va_TraceMsg
(
"
\t
range_mapping_luma_flag = %d.
\n
"
,
p
->
range_mapping_fields
.
bits
.
luma_flag
);
va_TraceMsg
(
"
\t
range_mapping_luma = %d.
\n
"
,
p
->
range_mapping_fields
.
bits
.
luma
);
va_TraceMsg
(
"
\t
range_mapping_chroma_flag = %d.
\n
"
,
p
->
range_mapping_fields
.
bits
.
chroma_flag
);
va_TraceMsg
(
"
\t
range_mapping_chroma = %d.
\n
"
,
p
->
range_mapping_fields
.
bits
.
chroma
);
va_TraceMsg
(
"
\t
b_picture_fraction = %d.
\n
"
,
p
->
b_picture_fraction
);
va_TraceMsg
(
"
\t
cbp_table = %d.
\n
"
,
p
->
cbp_table
);
va_TraceMsg
(
"
\t
mb_mode_table = %d.
\n
"
,
p
->
mb_mode_table
);
va_TraceMsg
(
"
\t
range_reduction_frame = %d.
\n
"
,
p
->
range_reduction_frame
);
va_TraceMsg
(
"
\t
rounding_control = %d.
\n
"
,
p
->
rounding_control
);
va_TraceMsg
(
"
\t
post_processing = %d.
\n
"
,
p
->
post_processing
);
va_TraceMsg
(
"
\t
picture_resolution_index = %d.
\n
"
,
p
->
picture_resolution_index
);
va_TraceMsg
(
"
\t
luma_scale = %d.
\n
"
,
p
->
luma_scale
);
va_TraceMsg
(
"
\t
luma_shift = %d.
\n
"
,
p
->
luma_shift
);
va_TraceMsg
(
"
\t
picture_type = %d.
\n
"
,
p
->
picture_fields
.
bits
.
picture_type
);
va_TraceMsg
(
"
\t
frame_coding_mode = %d.
\n
"
,
p
->
picture_fields
.
bits
.
frame_coding_mode
);
va_TraceMsg
(
"
\t
top_field_first = %d.
\n
"
,
p
->
picture_fields
.
bits
.
top_field_first
);
va_TraceMsg
(
"
\t
is_first_field = %d.
\n
"
,
p
->
picture_fields
.
bits
.
is_first_field
);
va_TraceMsg
(
"
\t
intensity_compensation = %d.
\n
"
,
p
->
picture_fields
.
bits
.
intensity_compensation
);
va_TraceMsg
(
" ---------------------------------
\n
"
);
va_TraceMsg
(
"
\t
mv_type_mb = %d.
\n
"
,
p
->
raw_coding
.
flags
.
mv_type_mb
);
va_TraceMsg
(
"
\t
direct_mb = %d.
\n
"
,
p
->
raw_coding
.
flags
.
direct_mb
);
va_TraceMsg
(
"
\t
skip_mb = %d.
\n
"
,
p
->
raw_coding
.
flags
.
skip_mb
);
va_TraceMsg
(
"
\t
field_tx = %d.
\n
"
,
p
->
raw_coding
.
flags
.
field_tx
);
va_TraceMsg
(
"
\t
forward_mb = %d.
\n
"
,
p
->
raw_coding
.
flags
.
forward_mb
);
va_TraceMsg
(
"
\t
ac_pred = %d.
\n
"
,
p
->
raw_coding
.
flags
.
ac_pred
);
va_TraceMsg
(
"
\t
overflags = %d.
\n
"
,
p
->
raw_coding
.
flags
.
overflags
);
va_TraceMsg
(
" ---------------------------------
\n
"
);
va_TraceMsg
(
"
\t
bp_mv_type_mb = %d.
\n
"
,
p
->
bitplane_present
.
flags
.
bp_mv_type_mb
);
va_TraceMsg
(
"
\t
bp_direct_mb = %d.
\n
"
,
p
->
bitplane_present
.
flags
.
bp_direct_mb
);
va_TraceMsg
(
"
\t
bp_skip_mb = %d.
\n
"
,
p
->
bitplane_present
.
flags
.
bp_skip_mb
);
va_TraceMsg
(
"
\t
bp_field_tx = %d.
\n
"
,
p
->
bitplane_present
.
flags
.
bp_field_tx
);
va_TraceMsg
(
"
\t
bp_forward_mb = %d.
\n
"
,
p
->
bitplane_present
.
flags
.
bp_forward_mb
);
va_TraceMsg
(
"
\t
bp_ac_pred = %d.
\n
"
,
p
->
bitplane_present
.
flags
.
bp_ac_pred
);
va_TraceMsg
(
"
\t
bp_overflags = %d.
\n
"
,
p
->
bitplane_present
.
flags
.
bp_overflags
);
va_TraceMsg
(
" ---------------------------------
\n
"
);
va_TraceMsg
(
"
\t
reference_distance_flag = %d.
\n
"
,
p
->
reference_fields
.
bits
.
reference_distance_flag
);
va_TraceMsg
(
"
\t
reference_distance = %d.
\n
"
,
p
->
reference_fields
.
bits
.
reference_distance
);
va_TraceMsg
(
"
\t
num_reference_pictures = %d.
\n
"
,
p
->
reference_fields
.
bits
.
num_reference_pictures
);
va_TraceMsg
(
"
\t
reference_field_pic_indicator = %d.
\n
"
,
p
->
reference_fields
.
bits
.
reference_field_pic_indicator
);
va_TraceMsg
(
"
\t
mv_mode = %d.
\n
"
,
p
->
mv_fields
.
bits
.
mv_mode
);
va_TraceMsg
(
"
\t
mv_mode2 = %d.
\n
"
,
p
->
mv_fields
.
bits
.
mv_mode2
);
va_TraceMsg
(
"
\t
mv_table = %d.
\n
"
,
p
->
mv_fields
.
bits
.
mv_table
);
va_TraceMsg
(
"
\t
two_mv_block_pattern_table = %d.
\n
"
,
p
->
mv_fields
.
bits
.
two_mv_block_pattern_table
);
va_TraceMsg
(
"
\t
four_mv_switch = %d.
\n
"
,
p
->
mv_fields
.
bits
.
four_mv_switch
);
va_TraceMsg
(
"
\t
four_mv_block_pattern_table = %d.
\n
"
,
p
->
mv_fields
.
bits
.
four_mv_block_pattern_table
);
va_TraceMsg
(
"
\t
extended_mv_flag = %d.
\n
"
,
p
->
mv_fields
.
bits
.
extended_mv_flag
);
va_TraceMsg
(
"
\t
extended_mv_range = %d.
\n
"
,
p
->
mv_fields
.
bits
.
extended_mv_range
);
va_TraceMsg
(
"
\t
extended_dmv_flag = %d.
\n
"
,
p
->
mv_fields
.
bits
.
extended_dmv_flag
);
va_TraceMsg
(
"
\t
extended_dmv_range = %d.
\n
"
,
p
->
mv_fields
.
bits
.
extended_dmv_range
);
va_TraceMsg
(
"
\t
dquant = %d.
\n
"
,
p
->
pic_quantizer_fields
.
bits
.
dquant
);
va_TraceMsg
(
"
\t
quantizer = %d.
\n
"
,
p
->
pic_quantizer_fields
.
bits
.
quantizer
);
va_TraceMsg
(
"
\t
half_qp = %d.
\n
"
,
p
->
pic_quantizer_fields
.
bits
.
half_qp
);
va_TraceMsg
(
"
\t
pic_quantizer_scale = %d.
\n
"
,
p
->
pic_quantizer_fields
.
bits
.
pic_quantizer_scale
);
va_TraceMsg
(
"
\t
pic_quantizer_type = %d.
\n
"
,
p
->
pic_quantizer_fields
.
bits
.
pic_quantizer_type
);
va_TraceMsg
(
"
\t
dq_frame = %d.
\n
"
,
p
->
pic_quantizer_fields
.
bits
.
dq_frame
);
va_TraceMsg
(
"
\t
dq_profile = %d.
\n
"
,
p
->
pic_quantizer_fields
.
bits
.
dq_profile
);
va_TraceMsg
(
"
\t
dq_sb_edge = %d.
\n
"
,
p
->
pic_quantizer_fields
.
bits
.
dq_sb_edge
);
va_TraceMsg
(
"
\t
dq_db_edge = %d.
\n
"
,
p
->
pic_quantizer_fields
.
bits
.
dq_db_edge
);
va_TraceMsg
(
"
\t
dq_binary_level = %d.
\n
"
,
p
->
pic_quantizer_fields
.
bits
.
dq_binary_level
);
va_TraceMsg
(
"
\t
alt_pic_quantizer = %d.
\n
"
,
p
->
pic_quantizer_fields
.
bits
.
alt_pic_quantizer
);
va_TraceMsg
(
"
\t
variable_sized_transform_flag = %d.
\n
"
,
p
->
transform_fields
.
bits
.
variable_sized_transform_flag
);
va_TraceMsg
(
"
\t
mb_level_transform_type_flag = %d.
\n
"
,
p
->
transform_fields
.
bits
.
mb_level_transform_type_flag
);
va_TraceMsg
(
"
\t
frame_level_transform_type = %d.
\n
"
,
p
->
transform_fields
.
bits
.
frame_level_transform_type
);
va_TraceMsg
(
"
\t
transform_ac_codingset_idx1 = %d.
\n
"
,
p
->
transform_fields
.
bits
.
transform_ac_codingset_idx1
);
va_TraceMsg
(
"
\t
transform_ac_codingset_idx2 = %d.
\n
"
,
p
->
transform_fields
.
bits
.
transform_ac_codingset_idx2
);
va_TraceMsg
(
"
\t
intra_transform_dc_table = %d.
\n
"
,
p
->
transform_fields
.
bits
.
intra_transform_dc_table
);
}
static
void
va_TraceVASliceParameterBufferVC1
(
VADisplay
dpy
,
VAContextID
context
,
VABufferID
buffer
,
VABufferType
type
,
unsigned
int
size
,
unsigned
int
num_elements
,
void
*
data
)
{
VASliceParameterBufferVC1
*
p
=
(
VASliceParameterBufferVC1
*
)
data
;
va_TraceMsg
(
"========== SLICE NUMBER ==========
\n
"
);
va_TraceMsg
(
" slice_data_size = %d
\n
"
,
p
->
slice_data_size
);
va_TraceMsg
(
" slice_data_offset = %d
\n
"
,
p
->
slice_data_offset
);
va_TraceMsg
(
" slice_data_flag = %d
\n
"
,
p
->
slice_data_flag
);
va_TraceMsg
(
" macroblock_offset = %d
\n
"
,
p
->
macroblock_offset
);
va_TraceMsg
(
" slice_vertical_position = %d
\n
"
,
p
->
slice_vertical_position
);
}
int
va_TraceBeginPicture
(
VADisplay
dpy
,
VAContextID
context
,
VASurfaceID
render_target
)
{
int
i
;
va_TraceMsg
(
"
\t
context = 0x%08x
\n
"
,
context
);
va_TraceMsg
(
"
\t\t
render_targets = 0x%08x
\n
"
,
render_target
);
trace_rendertarget
=
render_target
;
/* for surface data dump after vaEndPicture */
trace_frame
++
;
trace_slice
=
0
;
}
VAStatus
vaBufferInfo
(
VADisplay
dpy
,
VAContextID
context
,
/* in */
VABufferID
buf_id
,
/* in */
VABufferType
*
type
,
/* out */
unsigned
int
*
size
,
/* out */
unsigned
int
*
num_elements
/* out */
);
static
int
va_TraceMPEG2Buf
(
VADisplay
dpy
,
VAContextID
context
,
VABufferID
buffer
,
VABufferType
type
,
unsigned
int
size
,
unsigned
int
num_elements
,
void
*
pbuf
)
{
switch
(
type
)
{
case
VAPictureParameterBufferType
:
va_TraceVAPictureParameterBufferMPEG2
(
dpy
,
context
,
buffer
,
type
,
size
,
num_elements
,
pbuf
);
break
;
case
VAIQMatrixBufferType
:
va_TraceVAIQMatrixBufferMPEG2
(
dpy
,
context
,
buffer
,
type
,
size
,
num_elements
,
pbuf
);
break
;
case
VABitPlaneBufferType
:
break
;
case
VASliceGroupMapBufferType
:
break
;
case
VASliceParameterBufferType
:
trace_slice
++
;
va_TraceVASliceParameterBufferMPEG2
(
dpy
,
context
,
buffer
,
type
,
size
,
num_elements
,
pbuf
);
break
;
case
VASliceDataBufferType
:
va_TraceVABuffers
(
dpy
,
context
,
buffer
,
type
,
size
,
num_elements
,
pbuf
);
break
;
case
VAMacroblockParameterBufferType
:
break
;
case
VAResidualDataBufferType
:
break
;
case
VADeblockingParameterBufferType
:
break
;
case
VAImageBufferType
:
break
;
case
VAProtectedSliceDataBufferType
:
break
;
case
VAEncCodedBufferType
:
break
;
case
VAEncSequenceParameterBufferType
:
break
;
case
VAEncPictureParameterBufferType
:
break
;
case
VAEncSliceParameterBufferType
:
break
;
case
VAEncH264VUIBufferType
:
break
;
case
VAEncH264SEIBufferType
:
break
;
}
return
0
;
}
static
int
va_TraceMPEG4Buf
(
VADisplay
dpy
,
VAContextID
context
,
VABufferID
buffer
,
VABufferType
type
,
unsigned
int
size
,
unsigned
int
num_elements
,
void
*
pbuf
)
{
switch
(
type
)
{
case
VAPictureParameterBufferType
:
va_TraceVAPictureParameterBufferMPEG4
(
dpy
,
context
,
buffer
,
type
,
size
,
num_elements
,
pbuf
);
break
;
case
VAIQMatrixBufferType
:
va_TraceVAIQMatrixBufferMPEG4
(
dpy
,
context
,
buffer
,
type
,
size
,
num_elements
,
pbuf
);
break
;
case
VABitPlaneBufferType
:
break
;
case
VASliceGroupMapBufferType
:
break
;
case
VASliceParameterBufferType
:
va_TraceVASliceParameterBufferMPEG4
(
dpy
,
context
,
buffer
,
type
,
size
,
num_elements
,
pbuf
);
break
;
case
VASliceDataBufferType
:
va_TraceVABuffers
(
dpy
,
context
,
buffer
,
type
,
size
,
num_elements
,
pbuf
);
break
;
case
VAMacroblockParameterBufferType
:
break
;
case
VAResidualDataBufferType
:
break
;
case
VADeblockingParameterBufferType
:
break
;
case
VAImageBufferType
:
break
;
case
VAProtectedSliceDataBufferType
:
va_TraceVABuffers
(
dpy
,
context
,
buffer
,
type
,
size
,
num_elements
,
pbuf
);
break
;
case
VAEncCodedBufferType
:
break
;
case
VAEncSequenceParameterBufferType
:
break
;
case
VAEncPictureParameterBufferType
:
break
;
case
VAEncSliceParameterBufferType
:
break
;
case
VAEncH264VUIBufferType
:
break
;
case
VAEncH264SEIBufferType
:
break
;
default:
break
;
}
return
0
;
}
static
int
va_TraceH264Buf
(
VADisplay
dpy
,
VAContextID
context
,
VABufferID
buffer
,
VABufferType
type
,
unsigned
int
size
,
unsigned
int
num_elements
,
void
*
pbuf
)
{
switch
(
type
)
{
case
VAPictureParameterBufferType
:
va_TraceVAPictureParameterBufferMPEG2
(
dpy
,
context
,
buffer
,
type
,
size
,
num_elements
,
pbuf
);
break
;
case
VAIQMatrixBufferType
:
va_TraceVAIQMatrixBufferH264
(
dpy
,
context
,
buffer
,
type
,
size
,
num_elements
,
pbuf
);
break
;
case
VABitPlaneBufferType
:
break
;
case
VASliceGroupMapBufferType
:
break
;
case
VASliceParameterBufferType
:
va_TraceVASliceParameterBufferH264
(
dpy
,
context
,
buffer
,
type
,
size
,
num_elements
,
pbuf
);
break
;
case
VASliceDataBufferType
:
va_TraceVABuffers
(
dpy
,
context
,
buffer
,
type
,
size
,
num_elements
,
pbuf
);
break
;
case
VAMacroblockParameterBufferType
:
break
;
case
VAResidualDataBufferType
:
break
;
case
VADeblockingParameterBufferType
:
break
;
case
VAImageBufferType
:
break
;
case
VAProtectedSliceDataBufferType
:
va_TraceVABuffers
(
dpy
,
context
,
buffer
,
type
,
size
,
num_elements
,
pbuf
);
break
;
case
VAEncCodedBufferType
:
break
;
case
VAEncSequenceParameterBufferType
:
break
;
case
VAEncPictureParameterBufferType
:
break
;
case
VAEncSliceParameterBufferType
:
break
;
case
VAEncH264VUIBufferType
:
break
;
case
VAEncH264SEIBufferType
:
break
;
default:
break
;
}
return
0
;
}
static
int
va_TraceVC1Buf
(
VADisplay
dpy
,
VAContextID
context
,
VABufferID
buffer
,
VABufferType
type
,
unsigned
int
size
,
unsigned
int
num_elements
,
void
*
pbuf
)
{
switch
(
type
)
{
case
VAPictureParameterBufferType
:
va_TraceVAPictureParameterBufferVC1
(
dpy
,
context
,
buffer
,
type
,
size
,
num_elements
,
pbuf
);
break
;
case
VAIQMatrixBufferType
:
break
;
case
VABitPlaneBufferType
:
va_TraceVABuffers
(
dpy
,
context
,
buffer
,
type
,
size
,
num_elements
,
pbuf
);
break
;
case
VASliceGroupMapBufferType
:
break
;
case
VASliceParameterBufferType
:
va_TraceVASliceParameterBufferVC1
(
dpy
,
context
,
buffer
,
type
,
size
,
num_elements
,
pbuf
);
break
;
case
VASliceDataBufferType
:
va_TraceVABuffers
(
dpy
,
context
,
buffer
,
type
,
size
,
num_elements
,
pbuf
);
break
;
case
VAMacroblockParameterBufferType
:
break
;
case
VAResidualDataBufferType
:
break
;
case
VADeblockingParameterBufferType
:
break
;
case
VAImageBufferType
:
break
;
case
VAProtectedSliceDataBufferType
:
va_TraceVABuffers
(
dpy
,
context
,
buffer
,
type
,
size
,
num_elements
,
pbuf
);
break
;
case
VAEncCodedBufferType
:
break
;
case
VAEncSequenceParameterBufferType
:
break
;
case
VAEncPictureParameterBufferType
:
break
;
case
VAEncSliceParameterBufferType
:
break
;
case
VAEncH264VUIBufferType
:
break
;
case
VAEncH264SEIBufferType
:
break
;
default:
break
;
}
return
0
;
}
int
va_TraceRenderPicture
(
VADisplay
dpy
,
VAContextID
context
,
VABufferID
*
buffers
,
int
num_buffers
)
{
VABufferType
type
;
unsigned
int
size
;
unsigned
int
num_elements
;
int
i
;
va_TraceMsg
(
"
\t
context = 0x%08x
\n
"
,
context
);
va_TraceMsg
(
"
\t
num_buffers = %d
\n
"
,
num_buffers
);
for
(
i
=
0
;
i
<
num_buffers
;
i
++
)
{
void
*
pbuf
;
/* get buffer type information */
vaBufferInfo
(
dpy
,
context
,
buffers
[
i
],
&
type
,
&
size
,
&
num_elements
);
va_TraceMsg
(
"
\t\t
buffers[%d] = 0x%08x
\n
"
,
i
,
buffers
[
i
]);
va_TraceMsg
(
"
\t\t\t
type = %s
\n
"
,
buffer_type_to_string
(
type
));
va_TraceMsg
(
"
\t\t\t
size = %d
\n
"
,
size
);
va_TraceMsg
(
"
\t\t\t
num_elements = %d
\n
"
,
num_elements
);
vaMapBuffer
(
dpy
,
buffers
[
i
],
&
pbuf
);
switch
(
trace_profile
)
{
case
VAProfileMPEG2Simple
:
case
VAProfileMPEG2Main
:
va_TraceMPEG2Buf
(
dpy
,
context
,
buffers
[
i
],
type
,
size
,
num_elements
,
pbuf
);
break
;
case
VAProfileMPEG4Simple
:
case
VAProfileMPEG4AdvancedSimple
:
case
VAProfileMPEG4Main
:
va_TraceMPEG4Buf
(
dpy
,
context
,
buffers
[
i
],
type
,
size
,
num_elements
,
pbuf
);
break
;
case
VAProfileH264Baseline
:
case
VAProfileH264Main
:
case
VAProfileH264High
:
va_TraceH264Buf
(
dpy
,
context
,
buffers
[
i
],
type
,
size
,
num_elements
,
pbuf
);
break
;
case
VAProfileVC1Simple
:
case
VAProfileVC1Main
:
case
VAProfileVC1Advanced
:
va_TraceVC1Buf
(
dpy
,
context
,
buffers
[
i
],
type
,
size
,
num_elements
,
pbuf
);
break
;
case
VAProfileH263Baseline
:
break
;
}
vaUnmapBuffer
(
dpy
,
buffers
[
i
]);
}
}
int
va_TraceEndPicture
(
VADisplay
dpy
,
VAContextID
context
)
{
int
i
,
j
;
unsigned
int
fourcc
;
/* following are output argument */
unsigned
int
luma_stride
;
unsigned
int
chroma_u_stride
;
unsigned
int
chroma_v_stride
;
unsigned
int
luma_offset
;
unsigned
int
chroma_u_offset
;
unsigned
int
chroma_v_offset
;
void
*
buffer
;
char
*
Y_data
,
*
UV_data
,
*
tmp
;
VAStatus
va_status
;
va_TraceMsg
(
"
\t
context = 0x%08x
\n
"
,
context
);
va_TraceMsg
(
"
\t\t
render_targets = 0x%08x
\n
"
,
trace_rendertarget
);
/* force the pipleline finish rendering */
vaSyncSurface
(
dpy
,
trace_rendertarget
);
va_TraceMsg
(
"***dump surface data***
\n
"
,
trace_rendertarget
);
va_status
=
vaCopySurfaceToBuffer
(
dpy
,
trace_rendertarget
,
&
fourcc
,
&
luma_stride
,
&
chroma_u_stride
,
&
chroma_v_stride
,
&
luma_offset
,
&
chroma_u_offset
,
&
chroma_v_offset
,
&
buffer
);
if
(
va_status
!=
VA_STATUS_SUCCESS
)
return
va_status
;
va_TraceMsg
(
"
\t
fourcc=0x%08x
\n
"
,
fourcc
);
va_TraceMsg
(
"
\t
width=%d
\n
"
,
trace_width
);
va_TraceMsg
(
"
\t
height=%d
\n
"
,
trace_height
);
va_TraceMsg
(
"
\t
luma_stride=%d
\n
"
,
luma_stride
);
va_TraceMsg
(
"
\t
chroma_u_stride=%d
\n
"
,
chroma_u_stride
);
va_TraceMsg
(
"
\t
chroma_v_stride=%d
\n
"
,
chroma_v_stride
);
va_TraceMsg
(
"
\t
luma_offset=%d
\n
"
,
luma_offset
);
va_TraceMsg
(
"
\t
chroma_u_offset=%d
\n
"
,
chroma_u_offset
);
va_TraceMsg
(
"
\t
chroma_v_offset=%d
\n
"
,
chroma_v_offset
);
va_TraceMsg
(
"**Y data**
\n
"
);
Y_data
=
buffer
;
UV_data
=
buffer
+
luma_offset
;
tmp
=
Y_data
;
for
(
i
=
0
;
i
<
trace_height
;
i
++
)
{
for
(
j
=
0
;
j
<
trace_width
;
j
++
)
{
if
((
j
%
16
)
==
0
)
va_TraceMsg
(
"
\n
0x%08x:"
,
j
+
i
*
trace_width
);
va_TraceMsg
(
"%08x "
,
tmp
[
j
]);
}
va_TraceMsg
(
"
\n
"
);
tmp
=
Y_data
+
i
*
luma_stride
;
}
tmp
=
UV_data
;
if
(
fourcc
==
VA_FOURCC_NV12
)
{
va_TraceMsg
(
"**UV data**
\n
"
);
for
(
i
=
0
;
i
<
trace_height
/
2
;
i
++
)
{
for
(
j
=
0
;
j
<
trace_width
;
j
++
)
{
if
((
j
%
16
)
==
0
)
va_TraceMsg
(
"
\n
0x%08x:"
,
j
+
i
*
trace_width
);
va_TraceMsg
(
"%08x "
,
tmp
[
j
]);
}
va_TraceMsg
(
"
\n
"
);
tmp
=
UV_data
+
i
*
chroma_u_stride
;
}
}
free
(
buffer
);
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment