Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
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
vlc
Commits
652977b1
Commit
652977b1
authored
Jan 03, 2015
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
vdpau: remove unwarranted assumption on C calling convention
parent
7bc42a59
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
66 additions
and
19 deletions
+66
-19
modules/hw/vdpau/vlc_vdpau.c
modules/hw/vdpau/vlc_vdpau.c
+66
-19
No files found.
modules/hw/vdpau/vlc_vdpau.c
View file @
652977b1
...
@@ -109,37 +109,40 @@ struct vdp_s
...
@@ -109,37 +109,40 @@ struct vdp_s
void
*
handle
;
/**< Shared library handle */
void
*
handle
;
/**< Shared library handle */
};
};
#define CHECK_FUNC(id) \
if (unlikely(vdp->funcs[VDP_FUNC_ID_##id] == NULL)) \
return VDP_STATUS_NO_IMPLEMENTATION
const
char
*
vdp_get_error_string
(
const
vdp_t
*
vdp
,
VdpStatus
status
)
const
char
*
vdp_get_error_string
(
const
vdp_t
*
vdp
,
VdpStatus
status
)
{
{
if
(
unlikely
(
vdp
->
funcs
[
VDP_FUNC_ID_GET_ERROR_STRING
]
==
NULL
))
return
(
status
!=
VDP_STATUS_OK
)
?
"Unknown error"
:
"No error"
;
return
vdp
->
vt
.
get_error_string
(
status
);
return
vdp
->
vt
.
get_error_string
(
status
);
}
}
static
const
char
*
vdp_get_error_string_fallback
(
const
vdp_t
*
vdp
,
VdpStatus
status
)
{
(
void
)
vdp
;
return
(
status
!=
VDP_STATUS_OK
)
?
"Unknown error"
:
"No error"
;
}
VdpStatus
vdp_get_proc_address
(
const
vdp_t
*
vdp
,
VdpDevice
device
,
VdpStatus
vdp_get_proc_address
(
const
vdp_t
*
vdp
,
VdpDevice
device
,
VdpFuncId
func_id
,
void
**
func_ptr
)
VdpFuncId
func_id
,
void
**
func_ptr
)
{
{
CHECK_FUNC
(
GET_PROC_ADDRESS
);
return
vdp
->
vt
.
get_proc_address
(
device
,
func_id
,
func_ptr
);
return
vdp
->
vt
.
get_proc_address
(
device
,
func_id
,
func_ptr
);
}
}
VdpStatus
vdp_get_api_version
(
const
vdp_t
*
vdp
,
uint32_t
*
ver
)
VdpStatus
vdp_get_api_version
(
const
vdp_t
*
vdp
,
uint32_t
*
ver
)
{
{
CHECK_FUNC
(
GET_API_VERSION
);
return
vdp
->
vt
.
get_api_version
(
ver
);
return
vdp
->
vt
.
get_api_version
(
ver
);
}
}
VdpStatus
vdp_get_information_string
(
const
vdp_t
*
vdp
,
const
char
**
str
)
VdpStatus
vdp_get_information_string
(
const
vdp_t
*
vdp
,
const
char
**
str
)
{
{
CHECK_FUNC
(
GET_INFORMATION_STRING
);
return
vdp
->
vt
.
get_information_string
(
str
);
return
vdp
->
vt
.
get_information_string
(
str
);
}
}
/*** Device ***/
/*** Device ***/
VdpStatus
vdp_device_destroy
(
const
vdp_t
*
vdp
,
VdpDevice
device
)
VdpStatus
vdp_device_destroy
(
const
vdp_t
*
vdp
,
VdpDevice
device
)
{
{
CHECK_FUNC
(
DEVICE_DESTROY
);
return
vdp
->
vt
.
device_destroy
(
device
);
return
vdp
->
vt
.
device_destroy
(
device
);
}
}
...
@@ -153,6 +156,7 @@ VdpStatus vdp_generate_csc_matrix(const vdp_t *vdp, const VdpProcamp *procamp,
...
@@ -153,6 +156,7 @@ VdpStatus vdp_generate_csc_matrix(const vdp_t *vdp, const VdpProcamp *procamp,
buf
=
*
procamp
;
buf
=
*
procamp
;
copy
=
&
buf
;
copy
=
&
buf
;
}
}
CHECK_FUNC
(
GENERATE_CSC_MATRIX
);
return
vdp
->
vt
.
generate_csc_matrix
(
copy
,
standard
,
csc_matrix
);
return
vdp
->
vt
.
generate_csc_matrix
(
copy
,
standard
,
csc_matrix
);
}
}
...
@@ -160,6 +164,7 @@ VdpStatus vdp_generate_csc_matrix(const vdp_t *vdp, const VdpProcamp *procamp,
...
@@ -160,6 +164,7 @@ VdpStatus vdp_generate_csc_matrix(const vdp_t *vdp, const VdpProcamp *procamp,
VdpStatus
vdp_video_surface_query_capabilities
(
const
vdp_t
*
vdp
,
VdpDevice
dev
,
VdpStatus
vdp_video_surface_query_capabilities
(
const
vdp_t
*
vdp
,
VdpDevice
dev
,
VdpChromaType
type
,
VdpBool
*
ok
,
uint32_t
*
mw
,
uint32_t
*
mh
)
VdpChromaType
type
,
VdpBool
*
ok
,
uint32_t
*
mw
,
uint32_t
*
mh
)
{
{
CHECK_FUNC
(
VIDEO_SURFACE_QUERY_CAPABILITIES
);
return
vdp
->
vt
.
video_surface_query_capabilities
(
dev
,
type
,
ok
,
mw
,
mh
);
return
vdp
->
vt
.
video_surface_query_capabilities
(
dev
,
type
,
ok
,
mw
,
mh
);
}
}
...
@@ -167,6 +172,7 @@ VdpStatus vdp_video_surface_query_get_put_bits_y_cb_cr_capabilities(
...
@@ -167,6 +172,7 @@ VdpStatus vdp_video_surface_query_get_put_bits_y_cb_cr_capabilities(
const
vdp_t
*
vdp
,
VdpDevice
device
,
VdpChromaType
type
,
VdpYCbCrFormat
fmt
,
const
vdp_t
*
vdp
,
VdpDevice
device
,
VdpChromaType
type
,
VdpYCbCrFormat
fmt
,
VdpBool
*
ok
)
VdpBool
*
ok
)
{
{
CHECK_FUNC
(
VIDEO_SURFACE_QUERY_GET_PUT_BITS_Y_CB_CR_CAPABILITIES
);
return
vdp
->
vt
.
video_surface_query_get_put_bits_y_cb_cr_capabilities
(
return
vdp
->
vt
.
video_surface_query_get_put_bits_y_cb_cr_capabilities
(
device
,
type
,
fmt
,
ok
);
device
,
type
,
fmt
,
ok
);
}
}
...
@@ -174,17 +180,20 @@ VdpStatus vdp_video_surface_query_get_put_bits_y_cb_cr_capabilities(
...
@@ -174,17 +180,20 @@ VdpStatus vdp_video_surface_query_get_put_bits_y_cb_cr_capabilities(
VdpStatus
vdp_video_surface_create
(
const
vdp_t
*
vdp
,
VdpDevice
device
,
VdpStatus
vdp_video_surface_create
(
const
vdp_t
*
vdp
,
VdpDevice
device
,
VdpChromaType
chroma
,
uint32_t
w
,
uint32_t
h
,
VdpVideoSurface
*
surface
)
VdpChromaType
chroma
,
uint32_t
w
,
uint32_t
h
,
VdpVideoSurface
*
surface
)
{
{
CHECK_FUNC
(
VIDEO_SURFACE_CREATE
);
return
vdp
->
vt
.
video_surface_create
(
device
,
chroma
,
w
,
h
,
surface
);
return
vdp
->
vt
.
video_surface_create
(
device
,
chroma
,
w
,
h
,
surface
);
}
}
VdpStatus
vdp_video_surface_destroy
(
const
vdp_t
*
vdp
,
VdpVideoSurface
surface
)
VdpStatus
vdp_video_surface_destroy
(
const
vdp_t
*
vdp
,
VdpVideoSurface
surface
)
{
{
CHECK_FUNC
(
VIDEO_SURFACE_DESTROY
);
return
vdp
->
vt
.
video_surface_destroy
(
surface
);
return
vdp
->
vt
.
video_surface_destroy
(
surface
);
}
}
VdpStatus
vdp_video_surface_get_parameters
(
const
vdp_t
*
vdp
,
VdpStatus
vdp_video_surface_get_parameters
(
const
vdp_t
*
vdp
,
VdpVideoSurface
surface
,
VdpChromaType
*
type
,
uint32_t
*
w
,
uint32_t
*
h
)
VdpVideoSurface
surface
,
VdpChromaType
*
type
,
uint32_t
*
w
,
uint32_t
*
h
)
{
{
CHECK_FUNC
(
VIDEO_SURFACE_GET_PARAMETERS
);
return
vdp
->
vt
.
video_surface_get_parameters
(
surface
,
type
,
w
,
h
);
return
vdp
->
vt
.
video_surface_get_parameters
(
surface
,
type
,
w
,
h
);
}
}
...
@@ -192,6 +201,7 @@ VdpStatus vdp_video_surface_get_bits_y_cb_cr(const vdp_t *vdp,
...
@@ -192,6 +201,7 @@ VdpStatus vdp_video_surface_get_bits_y_cb_cr(const vdp_t *vdp,
VdpVideoSurface
surface
,
VdpYCbCrFormat
fmt
,
VdpVideoSurface
surface
,
VdpYCbCrFormat
fmt
,
void
*
const
*
data
,
uint32_t
const
*
pitches
)
void
*
const
*
data
,
uint32_t
const
*
pitches
)
{
{
CHECK_FUNC
(
VIDEO_SURFACE_GET_BITS_Y_CB_CR
);
return
vdp
->
vt
.
video_surface_get_bits_y_cb_cr
(
surface
,
fmt
,
data
,
pitches
);
return
vdp
->
vt
.
video_surface_get_bits_y_cb_cr
(
surface
,
fmt
,
data
,
pitches
);
}
}
...
@@ -199,6 +209,7 @@ VdpStatus vdp_video_surface_put_bits_y_cb_cr(const vdp_t *vdp,
...
@@ -199,6 +209,7 @@ VdpStatus vdp_video_surface_put_bits_y_cb_cr(const vdp_t *vdp,
VdpVideoSurface
surface
,
VdpYCbCrFormat
fmt
,
VdpVideoSurface
surface
,
VdpYCbCrFormat
fmt
,
const
void
*
const
*
data
,
uint32_t
const
*
pitches
)
const
void
*
const
*
data
,
uint32_t
const
*
pitches
)
{
{
CHECK_FUNC
(
VIDEO_SURFACE_PUT_BITS_Y_CB_CR
);
return
vdp
->
vt
.
video_surface_put_bits_y_cb_cr
(
surface
,
fmt
,
data
,
pitches
);
return
vdp
->
vt
.
video_surface_put_bits_y_cb_cr
(
surface
,
fmt
,
data
,
pitches
);
}
}
...
@@ -207,6 +218,7 @@ VdpStatus vdp_output_surface_query_capabilities(const vdp_t *vdp,
...
@@ -207,6 +218,7 @@ VdpStatus vdp_output_surface_query_capabilities(const vdp_t *vdp,
VdpDevice
device
,
VdpRGBAFormat
fmt
,
VdpBool
*
ok
,
VdpDevice
device
,
VdpRGBAFormat
fmt
,
VdpBool
*
ok
,
uint32_t
*
max_width
,
uint32_t
*
max_height
)
uint32_t
*
max_width
,
uint32_t
*
max_height
)
{
{
CHECK_FUNC
(
OUTPUT_SURFACE_QUERY_CAPABILITIES
);
return
vdp
->
vt
.
output_surface_query_capabilities
(
device
,
fmt
,
ok
,
return
vdp
->
vt
.
output_surface_query_capabilities
(
device
,
fmt
,
ok
,
max_width
,
max_height
);
max_width
,
max_height
);
}
}
...
@@ -214,6 +226,7 @@ VdpStatus vdp_output_surface_query_capabilities(const vdp_t *vdp,
...
@@ -214,6 +226,7 @@ VdpStatus vdp_output_surface_query_capabilities(const vdp_t *vdp,
VdpStatus
vdp_output_surface_query_get_put_bits_native_capabilities
(
VdpStatus
vdp_output_surface_query_get_put_bits_native_capabilities
(
const
vdp_t
*
vdp
,
VdpDevice
device
,
VdpRGBAFormat
fmt
,
VdpBool
*
ok
)
const
vdp_t
*
vdp
,
VdpDevice
device
,
VdpRGBAFormat
fmt
,
VdpBool
*
ok
)
{
{
CHECK_FUNC
(
OUTPUT_SURFACE_QUERY_GET_PUT_BITS_NATIVE_CAPABILITIES
);
return
vdp
->
vt
.
output_surface_query_get_put_bits_native_capabilities
(
return
vdp
->
vt
.
output_surface_query_get_put_bits_native_capabilities
(
device
,
fmt
,
ok
);
device
,
fmt
,
ok
);
}
}
...
@@ -222,6 +235,7 @@ VdpStatus vdp_output_surface_query_put_bits_indexed_capabilities(
...
@@ -222,6 +235,7 @@ VdpStatus vdp_output_surface_query_put_bits_indexed_capabilities(
const
vdp_t
*
vdp
,
VdpDevice
device
,
VdpRGBAFormat
fmt
,
const
vdp_t
*
vdp
,
VdpDevice
device
,
VdpRGBAFormat
fmt
,
VdpIndexedFormat
idxfmt
,
VdpColorTableFormat
colfmt
,
VdpBool
*
ok
)
VdpIndexedFormat
idxfmt
,
VdpColorTableFormat
colfmt
,
VdpBool
*
ok
)
{
{
CHECK_FUNC
(
OUTPUT_SURFACE_QUERY_PUT_BITS_INDEXED_CAPABILITIES
);
return
vdp
->
vt
.
output_surface_query_put_bits_indexed_capabilities
(
device
,
return
vdp
->
vt
.
output_surface_query_put_bits_indexed_capabilities
(
device
,
fmt
,
idxfmt
,
colfmt
,
ok
);
fmt
,
idxfmt
,
colfmt
,
ok
);
}
}
...
@@ -230,6 +244,7 @@ VdpStatus vdp_output_surface_query_put_bits_y_cb_cr_capabilities(
...
@@ -230,6 +244,7 @@ VdpStatus vdp_output_surface_query_put_bits_y_cb_cr_capabilities(
const
vdp_t
*
vdp
,
VdpDevice
device
,
const
vdp_t
*
vdp
,
VdpDevice
device
,
VdpRGBAFormat
fmt
,
VdpYCbCrFormat
yccfmt
,
VdpBool
*
ok
)
VdpRGBAFormat
fmt
,
VdpYCbCrFormat
yccfmt
,
VdpBool
*
ok
)
{
{
CHECK_FUNC
(
OUTPUT_SURFACE_QUERY_PUT_BITS_Y_CB_CR_CAPABILITIES
);
return
vdp
->
vt
.
output_surface_query_put_bits_y_cb_cr_capabilities
(
device
,
return
vdp
->
vt
.
output_surface_query_put_bits_y_cb_cr_capabilities
(
device
,
fmt
,
yccfmt
,
ok
);
fmt
,
yccfmt
,
ok
);
}
}
...
@@ -237,18 +252,21 @@ VdpStatus vdp_output_surface_query_put_bits_y_cb_cr_capabilities(
...
@@ -237,18 +252,21 @@ VdpStatus vdp_output_surface_query_put_bits_y_cb_cr_capabilities(
VdpStatus
vdp_output_surface_create
(
const
vdp_t
*
vdp
,
VdpDevice
device
,
VdpStatus
vdp_output_surface_create
(
const
vdp_t
*
vdp
,
VdpDevice
device
,
VdpRGBAFormat
fmt
,
uint32_t
w
,
uint32_t
h
,
VdpOutputSurface
*
surface
)
VdpRGBAFormat
fmt
,
uint32_t
w
,
uint32_t
h
,
VdpOutputSurface
*
surface
)
{
{
CHECK_FUNC
(
OUTPUT_SURFACE_CREATE
);
return
vdp
->
vt
.
output_surface_create
(
device
,
fmt
,
w
,
h
,
surface
);
return
vdp
->
vt
.
output_surface_create
(
device
,
fmt
,
w
,
h
,
surface
);
}
}
VdpStatus
vdp_output_surface_destroy
(
const
vdp_t
*
vdp
,
VdpStatus
vdp_output_surface_destroy
(
const
vdp_t
*
vdp
,
VdpOutputSurface
surface
)
VdpOutputSurface
surface
)
{
{
CHECK_FUNC
(
OUTPUT_SURFACE_DESTROY
);
return
vdp
->
vt
.
output_surface_destroy
(
surface
);
return
vdp
->
vt
.
output_surface_destroy
(
surface
);
}
}
VdpStatus
vdp_output_surface_get_parameters
(
const
vdp_t
*
vdp
,
VdpStatus
vdp_output_surface_get_parameters
(
const
vdp_t
*
vdp
,
VdpOutputSurface
surface
,
VdpRGBAFormat
*
fmt
,
uint32_t
*
w
,
uint32_t
*
h
)
VdpOutputSurface
surface
,
VdpRGBAFormat
*
fmt
,
uint32_t
*
w
,
uint32_t
*
h
)
{
{
CHECK_FUNC
(
OUTPUT_SURFACE_GET_PARAMETERS
);
return
vdp
->
vt
.
output_surface_get_parameters
(
surface
,
fmt
,
w
,
h
);
return
vdp
->
vt
.
output_surface_get_parameters
(
surface
,
fmt
,
w
,
h
);
}
}
...
@@ -256,6 +274,7 @@ VdpStatus vdp_output_surface_get_bits_native(const vdp_t *vdp,
...
@@ -256,6 +274,7 @@ VdpStatus vdp_output_surface_get_bits_native(const vdp_t *vdp,
VdpOutputSurface
surface
,
const
VdpRect
*
src
,
VdpOutputSurface
surface
,
const
VdpRect
*
src
,
void
*
const
*
data
,
uint32_t
const
*
pitches
)
void
*
const
*
data
,
uint32_t
const
*
pitches
)
{
{
CHECK_FUNC
(
OUTPUT_SURFACE_GET_BITS_NATIVE
);
return
vdp
->
vt
.
output_surface_get_bits_native
(
surface
,
src
,
data
,
pitches
);
return
vdp
->
vt
.
output_surface_get_bits_native
(
surface
,
src
,
data
,
pitches
);
}
}
...
@@ -263,6 +282,7 @@ VdpStatus vdp_output_surface_put_bits_native(const vdp_t *vdp,
...
@@ -263,6 +282,7 @@ VdpStatus vdp_output_surface_put_bits_native(const vdp_t *vdp,
VdpOutputSurface
surface
,
const
void
*
const
*
data
,
uint32_t
const
*
pitches
,
VdpOutputSurface
surface
,
const
void
*
const
*
data
,
uint32_t
const
*
pitches
,
const
VdpRect
*
dst
)
const
VdpRect
*
dst
)
{
{
CHECK_FUNC
(
OUTPUT_SURFACE_PUT_BITS_NATIVE
);
return
vdp
->
vt
.
output_surface_put_bits_native
(
surface
,
data
,
pitches
,
dst
);
return
vdp
->
vt
.
output_surface_put_bits_native
(
surface
,
data
,
pitches
,
dst
);
}
}
...
@@ -271,6 +291,7 @@ VdpStatus vdp_output_surface_put_bits_indexed(const vdp_t *vdp,
...
@@ -271,6 +291,7 @@ VdpStatus vdp_output_surface_put_bits_indexed(const vdp_t *vdp,
const
uint32_t
*
pitch
,
const
VdpRect
*
dst
,
const
uint32_t
*
pitch
,
const
VdpRect
*
dst
,
VdpColorTableFormat
tabfmt
,
const
void
*
tab
)
VdpColorTableFormat
tabfmt
,
const
void
*
tab
)
{
{
CHECK_FUNC
(
OUTPUT_SURFACE_PUT_BITS_INDEXED
);
return
vdp
->
vt
.
output_surface_put_bits_indexed
(
surface
,
fmt
,
data
,
pitch
,
return
vdp
->
vt
.
output_surface_put_bits_indexed
(
surface
,
fmt
,
data
,
pitch
,
dst
,
tabfmt
,
tab
);
dst
,
tabfmt
,
tab
);
}
}
...
@@ -279,6 +300,7 @@ VdpStatus vdp_output_surface_put_bits_y_cb_cr(const vdp_t *vdp,
...
@@ -279,6 +300,7 @@ VdpStatus vdp_output_surface_put_bits_y_cb_cr(const vdp_t *vdp,
VdpOutputSurface
surface
,
VdpYCbCrFormat
fmt
,
const
void
*
const
*
data
,
VdpOutputSurface
surface
,
VdpYCbCrFormat
fmt
,
const
void
*
const
*
data
,
const
uint32_t
*
pitches
,
const
VdpRect
*
dst
,
const
VdpCSCMatrix
*
mtx
)
const
uint32_t
*
pitches
,
const
VdpRect
*
dst
,
const
VdpCSCMatrix
*
mtx
)
{
{
CHECK_FUNC
(
OUTPUT_SURFACE_PUT_BITS_Y_CB_CR
);
return
vdp
->
vt
.
output_surface_put_bits_y_cb_cr
(
surface
,
fmt
,
data
,
return
vdp
->
vt
.
output_surface_put_bits_y_cb_cr
(
surface
,
fmt
,
data
,
pitches
,
dst
,
mtx
);
pitches
,
dst
,
mtx
);
}
}
...
@@ -287,6 +309,7 @@ VdpStatus vdp_output_surface_put_bits_y_cb_cr(const vdp_t *vdp,
...
@@ -287,6 +309,7 @@ VdpStatus vdp_output_surface_put_bits_y_cb_cr(const vdp_t *vdp,
VdpStatus
vdp_bitmap_surface_query_capabilities
(
const
vdp_t
*
vdp
,
VdpStatus
vdp_bitmap_surface_query_capabilities
(
const
vdp_t
*
vdp
,
VdpDevice
device
,
VdpRGBAFormat
fmt
,
VdpBool
*
ok
,
uint32_t
*
w
,
uint32_t
*
h
)
VdpDevice
device
,
VdpRGBAFormat
fmt
,
VdpBool
*
ok
,
uint32_t
*
w
,
uint32_t
*
h
)
{
{
CHECK_FUNC
(
BITMAP_SURFACE_QUERY_CAPABILITIES
);
return
vdp
->
vt
.
bitmap_surface_query_capabilities
(
device
,
fmt
,
ok
,
w
,
h
);
return
vdp
->
vt
.
bitmap_surface_query_capabilities
(
device
,
fmt
,
ok
,
w
,
h
);
}
}
...
@@ -294,12 +317,14 @@ VdpStatus vdp_bitmap_surface_create(const vdp_t *vdp, VdpDevice device,
...
@@ -294,12 +317,14 @@ VdpStatus vdp_bitmap_surface_create(const vdp_t *vdp, VdpDevice device,
VdpRGBAFormat
fmt
,
uint32_t
w
,
uint32_t
h
,
VdpBool
fq
,
VdpRGBAFormat
fmt
,
uint32_t
w
,
uint32_t
h
,
VdpBool
fq
,
VdpBitmapSurface
*
surface
)
VdpBitmapSurface
*
surface
)
{
{
CHECK_FUNC
(
BITMAP_SURFACE_CREATE
);
return
vdp
->
vt
.
bitmap_surface_create
(
device
,
fmt
,
w
,
h
,
fq
,
surface
);
return
vdp
->
vt
.
bitmap_surface_create
(
device
,
fmt
,
w
,
h
,
fq
,
surface
);
}
}
VdpStatus
vdp_bitmap_surface_destroy
(
const
vdp_t
*
vdp
,
VdpStatus
vdp_bitmap_surface_destroy
(
const
vdp_t
*
vdp
,
VdpBitmapSurface
surface
)
VdpBitmapSurface
surface
)
{
{
CHECK_FUNC
(
BITMAP_SURFACE_DESTROY
);
return
vdp
->
vt
.
bitmap_surface_destroy
(
surface
);
return
vdp
->
vt
.
bitmap_surface_destroy
(
surface
);
}
}
...
@@ -307,6 +332,7 @@ VdpStatus vdp_bitmap_surface_get_parameters(const vdp_t *vdp,
...
@@ -307,6 +332,7 @@ VdpStatus vdp_bitmap_surface_get_parameters(const vdp_t *vdp,
VdpBitmapSurface
surface
,
VdpRGBAFormat
*
fmt
,
uint32_t
*
w
,
uint32_t
*
h
,
VdpBitmapSurface
surface
,
VdpRGBAFormat
*
fmt
,
uint32_t
*
w
,
uint32_t
*
h
,
VdpBool
*
fq
)
VdpBool
*
fq
)
{
{
CHECK_FUNC
(
BITMAP_SURFACE_GET_PARAMETERS
);
return
vdp
->
vt
.
bitmap_surface_get_parameters
(
surface
,
fmt
,
w
,
h
,
fq
);
return
vdp
->
vt
.
bitmap_surface_get_parameters
(
surface
,
fmt
,
w
,
h
,
fq
);
}
}
...
@@ -314,6 +340,7 @@ VdpStatus vdp_bitmap_surface_put_bits_native(const vdp_t *vdp,
...
@@ -314,6 +340,7 @@ VdpStatus vdp_bitmap_surface_put_bits_native(const vdp_t *vdp,
VdpBitmapSurface
surface
,
const
void
*
const
*
data
,
const
uint32_t
*
pitch
,
VdpBitmapSurface
surface
,
const
void
*
const
*
data
,
const
uint32_t
*
pitch
,
const
VdpRect
*
rect
)
const
VdpRect
*
rect
)
{
{
CHECK_FUNC
(
BITMAP_SURFACE_PUT_BITS_NATIVE
);
return
vdp
->
vt
.
bitmap_surface_put_bits_native
(
surface
,
data
,
pitch
,
rect
);
return
vdp
->
vt
.
bitmap_surface_put_bits_native
(
surface
,
data
,
pitch
,
rect
);
}
}
...
@@ -323,6 +350,7 @@ VdpStatus vdp_output_surface_render_output_surface(const vdp_t *vdp,
...
@@ -323,6 +350,7 @@ VdpStatus vdp_output_surface_render_output_surface(const vdp_t *vdp,
const
VdpColor
*
colors
,
const
VdpColor
*
colors
,
const
VdpOutputSurfaceRenderBlendState
*
const
state
,
uint32_t
flags
)
const
VdpOutputSurfaceRenderBlendState
*
const
state
,
uint32_t
flags
)
{
{
CHECK_FUNC
(
OUTPUT_SURFACE_RENDER_OUTPUT_SURFACE
);
return
vdp
->
vt
.
output_surface_render_output_surface
(
dst_surface
,
dst_rect
,
return
vdp
->
vt
.
output_surface_render_output_surface
(
dst_surface
,
dst_rect
,
src_surface
,
src_rect
,
colors
,
state
,
flags
);
src_surface
,
src_rect
,
colors
,
state
,
flags
);
}
}
...
@@ -333,6 +361,7 @@ VdpStatus vdp_output_surface_render_bitmap_surface(const vdp_t *vdp,
...
@@ -333,6 +361,7 @@ VdpStatus vdp_output_surface_render_bitmap_surface(const vdp_t *vdp,
const
VdpColor
*
colors
,
const
VdpColor
*
colors
,
const
VdpOutputSurfaceRenderBlendState
*
state
,
uint32_t
flags
)
const
VdpOutputSurfaceRenderBlendState
*
state
,
uint32_t
flags
)
{
{
CHECK_FUNC
(
OUTPUT_SURFACE_RENDER_BITMAP_SURFACE
);
return
vdp
->
vt
.
output_surface_render_bitmap_surface
(
dst_surface
,
dst_rect
,
return
vdp
->
vt
.
output_surface_render_bitmap_surface
(
dst_surface
,
dst_rect
,
src_surface
,
src_rect
,
colors
,
state
,
flags
);
src_surface
,
src_rect
,
colors
,
state
,
flags
);
}
}
...
@@ -342,6 +371,7 @@ VdpStatus vdp_decoder_query_capabilities(const vdp_t *vdp, VdpDevice device,
...
@@ -342,6 +371,7 @@ VdpStatus vdp_decoder_query_capabilities(const vdp_t *vdp, VdpDevice device,
VdpDecoderProfile
profile
,
VdpBool
*
ok
,
uint32_t
*
l
,
uint32_t
*
m
,
VdpDecoderProfile
profile
,
VdpBool
*
ok
,
uint32_t
*
l
,
uint32_t
*
m
,
uint32_t
*
w
,
uint32_t
*
h
)
uint32_t
*
w
,
uint32_t
*
h
)
{
{
CHECK_FUNC
(
DECODER_QUERY_CAPABILITIES
);
return
vdp
->
vt
.
decoder_query_capabilities
(
device
,
profile
,
ok
,
l
,
m
,
w
,
h
);
return
vdp
->
vt
.
decoder_query_capabilities
(
device
,
profile
,
ok
,
l
,
m
,
w
,
h
);
}
}
...
@@ -349,25 +379,28 @@ VdpStatus vdp_decoder_create(const vdp_t *vdp, VdpDevice device,
...
@@ -349,25 +379,28 @@ VdpStatus vdp_decoder_create(const vdp_t *vdp, VdpDevice device,
VdpDecoderProfile
profile
,
uint32_t
w
,
uint32_t
h
,
uint32_t
refs
,
VdpDecoderProfile
profile
,
uint32_t
w
,
uint32_t
h
,
uint32_t
refs
,
VdpDecoder
*
decoder
)
VdpDecoder
*
decoder
)
{
{
CHECK_FUNC
(
DECODER_CREATE
);
return
vdp
->
vt
.
decoder_create
(
device
,
profile
,
w
,
h
,
refs
,
decoder
);
return
vdp
->
vt
.
decoder_create
(
device
,
profile
,
w
,
h
,
refs
,
decoder
);
}
}
VdpStatus
vdp_decoder_destroy
(
const
vdp_t
*
vdp
,
VdpDecoder
decoder
)
VdpStatus
vdp_decoder_destroy
(
const
vdp_t
*
vdp
,
VdpDecoder
decoder
)
{
{
CHECK_FUNC
(
DECODER_DESTROY
);
return
vdp
->
vt
.
decoder_destroy
(
decoder
);
return
vdp
->
vt
.
decoder_destroy
(
decoder
);
}
}
VdpStatus
vdp_decoder_get_parameters
(
const
vdp_t
*
vdp
,
VdpDecoder
decoder
,
VdpStatus
vdp_decoder_get_parameters
(
const
vdp_t
*
vdp
,
VdpDecoder
decoder
,
VdpDecoderProfile
*
profile
,
uint32_t
*
w
,
uint32_t
*
h
)
VdpDecoderProfile
*
profile
,
uint32_t
*
w
,
uint32_t
*
h
)
{
{
CHECK_FUNC
(
DECODER_GET_PARAMETERS
);
return
vdp
->
vt
.
decoder_get_parameters
(
decoder
,
profile
,
w
,
h
);
return
vdp
->
vt
.
decoder_get_parameters
(
decoder
,
profile
,
w
,
h
);
}
}
VdpStatus
vdp_decoder_render
(
const
vdp_t
*
vdp
,
VdpDecoder
decoder
,
VdpStatus
vdp_decoder_render
(
const
vdp_t
*
vdp
,
VdpDecoder
decoder
,
VdpVideoSurface
target
,
const
VdpPictureInfo
*
info
,
VdpVideoSurface
target
,
const
VdpPictureInfo
*
info
,
uint32_t
bufv
,
const
VdpBitstreamBuffer
*
bufc
)
uint32_t
bufv
,
const
VdpBitstreamBuffer
*
bufc
)
{
{
CHECK_FUNC
(
DECODER_RENDER
);
return
vdp
->
vt
.
decoder_render
(
decoder
,
target
,
info
,
bufv
,
bufc
);
return
vdp
->
vt
.
decoder_render
(
decoder
,
target
,
info
,
bufv
,
bufc
);
}
}
...
@@ -375,24 +408,28 @@ VdpStatus vdp_decoder_render(const vdp_t *vdp, VdpDecoder decoder,
...
@@ -375,24 +408,28 @@ VdpStatus vdp_decoder_render(const vdp_t *vdp, VdpDecoder decoder,
VdpStatus
vdp_video_mixer_query_feature_support
(
const
vdp_t
*
vdp
,
VdpStatus
vdp_video_mixer_query_feature_support
(
const
vdp_t
*
vdp
,
VdpDevice
device
,
VdpVideoMixerFeature
feature
,
VdpBool
*
ok
)
VdpDevice
device
,
VdpVideoMixerFeature
feature
,
VdpBool
*
ok
)
{
{
CHECK_FUNC
(
VIDEO_MIXER_QUERY_FEATURE_SUPPORT
);
return
vdp
->
vt
.
video_mixer_query_feature_support
(
device
,
feature
,
ok
);
return
vdp
->
vt
.
video_mixer_query_feature_support
(
device
,
feature
,
ok
);
}
}
VdpStatus
vdp_video_mixer_query_parameter_support
(
const
vdp_t
*
vdp
,
VdpStatus
vdp_video_mixer_query_parameter_support
(
const
vdp_t
*
vdp
,
VdpDevice
device
,
VdpVideoMixerParameter
parameter
,
VdpBool
*
ok
)
VdpDevice
device
,
VdpVideoMixerParameter
parameter
,
VdpBool
*
ok
)
{
{
CHECK_FUNC
(
VIDEO_MIXER_QUERY_PARAMETER_SUPPORT
);
return
vdp
->
vt
.
video_mixer_query_parameter_support
(
device
,
parameter
,
ok
);
return
vdp
->
vt
.
video_mixer_query_parameter_support
(
device
,
parameter
,
ok
);
}
}
VdpStatus
vdp_video_mixer_query_attribute_support
(
const
vdp_t
*
vdp
,
VdpStatus
vdp_video_mixer_query_attribute_support
(
const
vdp_t
*
vdp
,
VdpDevice
device
,
VdpVideoMixerAttribute
attribute
,
VdpBool
*
ok
)
VdpDevice
device
,
VdpVideoMixerAttribute
attribute
,
VdpBool
*
ok
)
{
{
CHECK_FUNC
(
VIDEO_MIXER_QUERY_ATTRIBUTE_SUPPORT
);
return
vdp
->
vt
.
video_mixer_query_attribute_support
(
device
,
attribute
,
ok
);
return
vdp
->
vt
.
video_mixer_query_attribute_support
(
device
,
attribute
,
ok
);
}
}
VdpStatus
vdp_video_mixer_query_parameter_value_range
(
const
vdp_t
*
vdp
,
VdpStatus
vdp_video_mixer_query_parameter_value_range
(
const
vdp_t
*
vdp
,
VdpDevice
device
,
VdpVideoMixerParameter
parameter
,
void
*
min
,
void
*
max
)
VdpDevice
device
,
VdpVideoMixerParameter
parameter
,
void
*
min
,
void
*
max
)
{
{
CHECK_FUNC
(
VIDEO_MIXER_QUERY_PARAMETER_VALUE_RANGE
);
return
vdp
->
vt
.
video_mixer_query_parameter_value_range
(
device
,
parameter
,
return
vdp
->
vt
.
video_mixer_query_parameter_value_range
(
device
,
parameter
,
min
,
max
);
min
,
max
);
}
}
...
@@ -400,6 +437,7 @@ VdpStatus vdp_video_mixer_query_parameter_value_range(const vdp_t *vdp,
...
@@ -400,6 +437,7 @@ VdpStatus vdp_video_mixer_query_parameter_value_range(const vdp_t *vdp,
VdpStatus
vdp_video_mixer_query_attribute_value_range
(
const
vdp_t
*
vdp
,
VdpStatus
vdp_video_mixer_query_attribute_value_range
(
const
vdp_t
*
vdp
,
VdpDevice
device
,
VdpVideoMixerAttribute
attribute
,
void
*
min
,
void
*
max
)
VdpDevice
device
,
VdpVideoMixerAttribute
attribute
,
void
*
min
,
void
*
max
)
{
{
CHECK_FUNC
(
VIDEO_MIXER_QUERY_ATTRIBUTE_VALUE_RANGE
);
return
vdp
->
vt
.
video_mixer_query_attribute_value_range
(
device
,
attribute
,
return
vdp
->
vt
.
video_mixer_query_attribute_value_range
(
device
,
attribute
,
min
,
max
);
min
,
max
);
}
}
...
@@ -409,6 +447,7 @@ VdpStatus vdp_video_mixer_create(const vdp_t *vdp, VdpDevice device,
...
@@ -409,6 +447,7 @@ VdpStatus vdp_video_mixer_create(const vdp_t *vdp, VdpDevice device,
uint32_t
parmc
,
const
VdpVideoMixerParameter
*
parmv
,
uint32_t
parmc
,
const
VdpVideoMixerParameter
*
parmv
,
const
void
*
const
*
parmvalv
,
VdpVideoMixer
*
mixer
)
const
void
*
const
*
parmvalv
,
VdpVideoMixer
*
mixer
)
{
{
CHECK_FUNC
(
VIDEO_MIXER_CREATE
);
return
vdp
->
vt
.
video_mixer_create
(
device
,
featc
,
featv
,
parmc
,
parmv
,
return
vdp
->
vt
.
video_mixer_create
(
device
,
featc
,
featv
,
parmc
,
parmv
,
parmvalv
,
mixer
);
parmvalv
,
mixer
);
}
}
...
@@ -417,6 +456,7 @@ VdpStatus vdp_video_mixer_set_feature_enables(const vdp_t *vdp,
...
@@ -417,6 +456,7 @@ VdpStatus vdp_video_mixer_set_feature_enables(const vdp_t *vdp,
VdpVideoMixer
mixer
,
uint32_t
count
,
const
VdpVideoMixerFeature
*
ids
,
VdpVideoMixer
mixer
,
uint32_t
count
,
const
VdpVideoMixerFeature
*
ids
,
const
VdpBool
*
values
)
const
VdpBool
*
values
)
{
{
CHECK_FUNC
(
VIDEO_MIXER_SET_FEATURE_ENABLES
);
return
vdp
->
vt
.
video_mixer_set_feature_enables
(
mixer
,
count
,
ids
,
values
);
return
vdp
->
vt
.
video_mixer_set_feature_enables
(
mixer
,
count
,
ids
,
values
);
}
}
...
@@ -424,6 +464,7 @@ VdpStatus vdp_video_mixer_set_attribute_values(const vdp_t *vdp,
...
@@ -424,6 +464,7 @@ VdpStatus vdp_video_mixer_set_attribute_values(const vdp_t *vdp,
VdpVideoMixer
mixer
,
uint32_t
count
,
VdpVideoMixer
mixer
,
uint32_t
count
,
const
VdpVideoMixerAttribute
*
const
ids
,
const
void
*
const
*
values
)
const
VdpVideoMixerAttribute
*
const
ids
,
const
void
*
const
*
values
)
{
{
CHECK_FUNC
(
VIDEO_MIXER_SET_ATTRIBUTE_VALUES
);
return
vdp
->
vt
.
video_mixer_set_attribute_values
(
mixer
,
count
,
ids
,
values
);
return
vdp
->
vt
.
video_mixer_set_attribute_values
(
mixer
,
count
,
ids
,
values
);
}
}
...
@@ -431,6 +472,7 @@ VdpStatus vdp_video_mixer_get_feature_support(const vdp_t *vdp,
...
@@ -431,6 +472,7 @@ VdpStatus vdp_video_mixer_get_feature_support(const vdp_t *vdp,
VdpVideoMixer
mixer
,
uint32_t
count
,
const
VdpVideoMixerFeature
*
ids
,
VdpVideoMixer
mixer
,
uint32_t
count
,
const
VdpVideoMixerFeature
*
ids
,
VdpBool
*
values
)
VdpBool
*
values
)
{
{
CHECK_FUNC
(
VIDEO_MIXER_GET_FEATURE_SUPPORT
);
return
vdp
->
vt
.
video_mixer_get_feature_support
(
mixer
,
count
,
ids
,
values
);
return
vdp
->
vt
.
video_mixer_get_feature_support
(
mixer
,
count
,
ids
,
values
);
}
}
...
@@ -438,6 +480,7 @@ VdpStatus vdp_video_mixer_get_feature_enables(const vdp_t *vdp,
...
@@ -438,6 +480,7 @@ VdpStatus vdp_video_mixer_get_feature_enables(const vdp_t *vdp,
VdpVideoMixer
mixer
,
uint32_t
count
,
const
VdpVideoMixerFeature
*
ids
,
VdpVideoMixer
mixer
,
uint32_t
count
,
const
VdpVideoMixerFeature
*
ids
,
VdpBool
*
values
)
VdpBool
*
values
)
{
{
CHECK_FUNC
(
VIDEO_MIXER_GET_FEATURE_ENABLES
);
return
vdp
->
vt
.
video_mixer_get_feature_enables
(
mixer
,
count
,
ids
,
values
);
return
vdp
->
vt
.
video_mixer_get_feature_enables
(
mixer
,
count
,
ids
,
values
);
}
}
...
@@ -445,6 +488,7 @@ VdpStatus vdp_video_mixer_get_parameter_values(const vdp_t *vdp,
...
@@ -445,6 +488,7 @@ VdpStatus vdp_video_mixer_get_parameter_values(const vdp_t *vdp,
VdpVideoMixer
mixer
,
uint32_t
count
,
const
VdpVideoMixerParameter
*
ids
,
VdpVideoMixer
mixer
,
uint32_t
count
,
const
VdpVideoMixerParameter
*
ids
,
void
*
const
*
values
)
void
*
const
*
values
)
{
{
CHECK_FUNC
(
VIDEO_MIXER_GET_PARAMETER_VALUES
);
return
vdp
->
vt
.
video_mixer_get_parameter_values
(
mixer
,
count
,
ids
,
values
);
return
vdp
->
vt
.
video_mixer_get_parameter_values
(
mixer
,
count
,
ids
,
values
);
}
}
...
@@ -452,11 +496,13 @@ VdpStatus vdp_video_mixer_get_attribute_values(const vdp_t *vdp,
...
@@ -452,11 +496,13 @@ VdpStatus vdp_video_mixer_get_attribute_values(const vdp_t *vdp,
VdpVideoMixer
mixer
,
uint32_t
count
,
const
VdpVideoMixerAttribute
*
ids
,
VdpVideoMixer
mixer
,
uint32_t
count
,
const
VdpVideoMixerAttribute
*
ids
,
void
*
const
*
values
)
void
*
const
*
values
)
{
{
CHECK_FUNC
(
VIDEO_MIXER_GET_ATTRIBUTE_VALUES
);
return
vdp
->
vt
.
video_mixer_get_attribute_values
(
mixer
,
count
,
ids
,
values
);
return
vdp
->
vt
.
video_mixer_get_attribute_values
(
mixer
,
count
,
ids
,
values
);
}
}
VdpStatus
vdp_video_mixer_destroy
(
const
vdp_t
*
vdp
,
VdpVideoMixer
mixer
)
VdpStatus
vdp_video_mixer_destroy
(
const
vdp_t
*
vdp
,
VdpVideoMixer
mixer
)
{
{
CHECK_FUNC
(
VIDEO_MIXER_DESTROY
);
return
vdp
->
vt
.
video_mixer_destroy
(
mixer
);
return
vdp
->
vt
.
video_mixer_destroy
(
mixer
);
}
}
...
@@ -468,6 +514,7 @@ VdpStatus vdp_video_mixer_render(const vdp_t *vdp, VdpVideoMixer mixer,
...
@@ -468,6 +514,7 @@ VdpStatus vdp_video_mixer_render(const vdp_t *vdp, VdpVideoMixer mixer,
VdpOutputSurface
dst
,
const
VdpRect
*
dst_rect
,
const
VdpRect
*
dst_v_rect
,
VdpOutputSurface
dst
,
const
VdpRect
*
dst_rect
,
const
VdpRect
*
dst_v_rect
,
uint32_t
layerc
,
const
VdpLayer
*
layerv
)
uint32_t
layerc
,
const
VdpLayer
*
layerv
)
{
{
CHECK_FUNC
(
VIDEO_MIXER_RENDER
);
return
vdp
->
vt
.
video_mixer_render
(
mixer
,
bgsurface
,
bgrect
,
pic_struct
,
return
vdp
->
vt
.
video_mixer_render
(
mixer
,
bgsurface
,
bgrect
,
pic_struct
,
prev_count
,
prev
,
cur
,
next_count
,
next
,
src_rect
,
dst
,
dst_rect
,
prev_count
,
prev
,
cur
,
next_count
,
next
,
src_rect
,
dst
,
dst_rect
,
dst_v_rect
,
layerc
,
layerv
);
dst_v_rect
,
layerc
,
layerv
);
...
@@ -477,18 +524,21 @@ VdpStatus vdp_video_mixer_render(const vdp_t *vdp, VdpVideoMixer mixer,
...
@@ -477,18 +524,21 @@ VdpStatus vdp_video_mixer_render(const vdp_t *vdp, VdpVideoMixer mixer,
VdpStatus
vdp_presentation_queue_target_destroy
(
const
vdp_t
*
vdp
,
VdpStatus
vdp_presentation_queue_target_destroy
(
const
vdp_t
*
vdp
,
VdpPresentationQueueTarget
target
)
VdpPresentationQueueTarget
target
)
{
{
CHECK_FUNC
(
PRESENTATION_QUEUE_TARGET_DESTROY
);
return
vdp
->
vt
.
presentation_queue_target_destroy
(
target
);
return
vdp
->
vt
.
presentation_queue_target_destroy
(
target
);
}
}
VdpStatus
vdp_presentation_queue_create
(
const
vdp_t
*
vdp
,
VdpDevice
device
,
VdpStatus
vdp_presentation_queue_create
(
const
vdp_t
*
vdp
,
VdpDevice
device
,
VdpPresentationQueueTarget
target
,
VdpPresentationQueue
*
queue
)
VdpPresentationQueueTarget
target
,
VdpPresentationQueue
*
queue
)
{
{
CHECK_FUNC
(
PRESENTATION_QUEUE_CREATE
);
return
vdp
->
vt
.
presentation_queue_create
(
device
,
target
,
queue
);
return
vdp
->
vt
.
presentation_queue_create
(
device
,
target
,
queue
);
}
}
VdpStatus
vdp_presentation_queue_destroy
(
const
vdp_t
*
vdp
,
VdpStatus
vdp_presentation_queue_destroy
(
const
vdp_t
*
vdp
,
VdpPresentationQueue
queue
)
VdpPresentationQueue
queue
)
{
{
CHECK_FUNC
(
PRESENTATION_QUEUE_DESTROY
);
return
vdp
->
vt
.
presentation_queue_destroy
(
queue
);
return
vdp
->
vt
.
presentation_queue_destroy
(
queue
);
}
}
...
@@ -496,18 +546,21 @@ VdpStatus vdp_presentation_queue_set_background_color(const vdp_t *vdp,
...
@@ -496,18 +546,21 @@ VdpStatus vdp_presentation_queue_set_background_color(const vdp_t *vdp,
VdpPresentationQueue
queue
,
const
VdpColor
*
color
)
VdpPresentationQueue
queue
,
const
VdpColor
*
color
)
{
{
VdpColor
bak
=
*
color
;
VdpColor
bak
=
*
color
;
CHECK_FUNC
(
PRESENTATION_QUEUE_SET_BACKGROUND_COLOR
);
return
vdp
->
vt
.
presentation_queue_set_background_color
(
queue
,
&
bak
);
return
vdp
->
vt
.
presentation_queue_set_background_color
(
queue
,
&
bak
);
}
}
VdpStatus
vdp_presentation_queue_get_background_color
(
const
vdp_t
*
vdp
,
VdpStatus
vdp_presentation_queue_get_background_color
(
const
vdp_t
*
vdp
,
VdpPresentationQueue
queue
,
VdpColor
*
color
)
VdpPresentationQueue
queue
,
VdpColor
*
color
)
{
{
CHECK_FUNC
(
PRESENTATION_QUEUE_GET_BACKGROUND_COLOR
);
return
vdp
->
vt
.
presentation_queue_get_background_color
(
queue
,
color
);
return
vdp
->
vt
.
presentation_queue_get_background_color
(
queue
,
color
);
}
}
VdpStatus
vdp_presentation_queue_get_time
(
const
vdp_t
*
vdp
,
VdpStatus
vdp_presentation_queue_get_time
(
const
vdp_t
*
vdp
,
VdpPresentationQueue
queue
,
VdpTime
*
current_time
)
VdpPresentationQueue
queue
,
VdpTime
*
current_time
)
{
{
CHECK_FUNC
(
PRESENTATION_QUEUE_GET_TIME
);
return
vdp
->
vt
.
presentation_queue_get_time
(
queue
,
current_time
);
return
vdp
->
vt
.
presentation_queue_get_time
(
queue
,
current_time
);
}
}
...
@@ -515,6 +568,7 @@ VdpStatus vdp_presentation_queue_display(const vdp_t *vdp,
...
@@ -515,6 +568,7 @@ VdpStatus vdp_presentation_queue_display(const vdp_t *vdp,
VdpPresentationQueue
queue
,
VdpOutputSurface
surface
,
uint32_t
clip_width
,
VdpPresentationQueue
queue
,
VdpOutputSurface
surface
,
uint32_t
clip_width
,
uint32_t
clip_height
,
VdpTime
pts
)
uint32_t
clip_height
,
VdpTime
pts
)
{
{
CHECK_FUNC
(
PRESENTATION_QUEUE_DISPLAY
);
return
vdp
->
vt
.
presentation_queue_display
(
queue
,
surface
,
clip_width
,
return
vdp
->
vt
.
presentation_queue_display
(
queue
,
surface
,
clip_width
,
clip_height
,
pts
);
clip_height
,
pts
);
}
}
...
@@ -522,6 +576,7 @@ VdpStatus vdp_presentation_queue_display(const vdp_t *vdp,
...
@@ -522,6 +576,7 @@ VdpStatus vdp_presentation_queue_display(const vdp_t *vdp,
VdpStatus
vdp_presentation_queue_block_until_surface_idle
(
const
vdp_t
*
vdp
,
VdpStatus
vdp_presentation_queue_block_until_surface_idle
(
const
vdp_t
*
vdp
,
VdpPresentationQueue
queue
,
VdpOutputSurface
surface
,
VdpTime
*
pts
)
VdpPresentationQueue
queue
,
VdpOutputSurface
surface
,
VdpTime
*
pts
)
{
{
CHECK_FUNC
(
PRESENTATION_QUEUE_BLOCK_UNTIL_SURFACE_IDLE
);
return
vdp
->
vt
.
presentation_queue_block_until_surface_idle
(
queue
,
surface
,
return
vdp
->
vt
.
presentation_queue_block_until_surface_idle
(
queue
,
surface
,
pts
);
pts
);
}
}
...
@@ -530,6 +585,7 @@ VdpStatus vdp_presentation_queue_query_surface_status(const vdp_t *vdp,
...
@@ -530,6 +585,7 @@ VdpStatus vdp_presentation_queue_query_surface_status(const vdp_t *vdp,
VdpPresentationQueue
queue
,
VdpOutputSurface
surface
,
VdpPresentationQueue
queue
,
VdpOutputSurface
surface
,
VdpPresentationQueueStatus
*
status
,
VdpTime
*
pts
)
VdpPresentationQueueStatus
*
status
,
VdpTime
*
pts
)
{
{
CHECK_FUNC
(
PRESENTATION_QUEUE_QUERY_SURFACE_STATUS
);
return
vdp
->
vt
.
presentation_queue_query_surface_status
(
queue
,
surface
,
return
vdp
->
vt
.
presentation_queue_query_surface_status
(
queue
,
surface
,
status
,
pts
);
status
,
pts
);
}
}
...
@@ -538,14 +594,10 @@ VdpStatus vdp_presentation_queue_query_surface_status(const vdp_t *vdp,
...
@@ -538,14 +594,10 @@ VdpStatus vdp_presentation_queue_query_surface_status(const vdp_t *vdp,
VdpStatus
vdp_preemption_callback_register
(
const
vdp_t
*
vdp
,
VdpDevice
device
,
VdpStatus
vdp_preemption_callback_register
(
const
vdp_t
*
vdp
,
VdpDevice
device
,
VdpPreemptionCallback
cb
,
void
*
ctx
)
VdpPreemptionCallback
cb
,
void
*
ctx
)
{
{
CHECK_FUNC
(
PREEMPTION_CALLBACK_REGISTER
);
return
vdp
->
vt
.
preemption_callback_register
(
device
,
cb
,
ctx
);
return
vdp
->
vt
.
preemption_callback_register
(
device
,
cb
,
ctx
);
}
}
static
VdpStatus
vdp_fallback
(
/* UNDEFINED - LEAVE EMPTY */
)
{
return
VDP_STATUS_NO_IMPLEMENTATION
;
}
/*** X11 & VLC ***/
/*** X11 & VLC ***/
#include <dlfcn.h>
#include <dlfcn.h>
#include <vdpau/vdpau_x11.h>
#include <vdpau/vdpau_x11.h>
...
@@ -591,12 +643,7 @@ VdpStatus vdp_create_x11(void *dpy, int snum,
...
@@ -591,12 +643,7 @@ VdpStatus vdp_create_x11(void *dpy, int snum,
for
(
VdpFuncId
i
=
0
;
i
<
sizeof
(
vdp
->
vt
)
/
sizeof
(
void
*
);
i
++
)
for
(
VdpFuncId
i
=
0
;
i
<
sizeof
(
vdp
->
vt
)
/
sizeof
(
void
*
);
i
++
)
if
(
gpa
(
*
devp
,
i
,
vdp
->
funcs
+
i
)
!=
VDP_STATUS_OK
)
if
(
gpa
(
*
devp
,
i
,
vdp
->
funcs
+
i
)
!=
VDP_STATUS_OK
)
{
vdp
->
funcs
[
i
]
=
NULL
;
void
*
fallback
=
vdp_fallback
;
if
(
unlikely
(
i
==
VDP_FUNC_ID_GET_ERROR_STRING
))
fallback
=
vdp_get_error_string_fallback
;
vdp
->
funcs
[
i
]
=
fallback
;
}
return
VDP_STATUS_OK
;
return
VDP_STATUS_OK
;
error:
error:
...
...
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