Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
0289b9c2
Commit
0289b9c2
authored
Apr 11, 2022
by
Nikolay Sivov
Committed by
Alexandre Julliard
Apr 11, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
evr/mixer: Implement GetAvailableVideoProcessorModes().
Signed-off-by:
Nikolay Sivov
<
nsivov@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
91d6e8b4
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
28 additions
and
10 deletions
+28
-10
mixer.c
dlls/evr/mixer.c
+20
-2
evr.c
dlls/evr/tests/evr.c
+8
-8
No files found.
dlls/evr/mixer.c
View file @
0289b9c2
...
...
@@ -1930,9 +1930,27 @@ static ULONG WINAPI video_mixer_processor_Release(IMFVideoProcessor *iface)
static
HRESULT
WINAPI
video_mixer_processor_GetAvailableVideoProcessorModes
(
IMFVideoProcessor
*
iface
,
UINT
*
count
,
GUID
**
modes
)
{
FIXME
(
"%p, %p, %p.
\n
"
,
iface
,
count
,
modes
);
struct
video_mixer
*
mixer
=
impl_from_IMFVideoProcessor
(
iface
);
IDirectXVideoProcessorService
*
service
;
DXVA2_VideoDesc
video_desc
;
HRESULT
hr
;
return
E_NOTIMPL
;
TRACE
(
"%p, %p, %p.
\n
"
,
iface
,
count
,
modes
);
EnterCriticalSection
(
&
mixer
->
cs
);
if
(
!
mixer
->
inputs
[
0
].
media_type
||
!
mixer
->
output
.
media_type
)
hr
=
MF_E_TRANSFORM_TYPE_NOT_SET
;
else
if
(
SUCCEEDED
(
hr
=
video_mixer_get_processor_service
(
mixer
,
&
service
)))
{
video_mixer_init_dxva_videodesc
(
mixer
->
inputs
[
0
].
media_type
,
&
video_desc
);
hr
=
IDirectXVideoProcessorService_GetVideoProcessorDeviceGuids
(
service
,
&
video_desc
,
count
,
modes
);
IDirectXVideoProcessorService_Release
(
service
);
}
LeaveCriticalSection
(
&
mixer
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
video_mixer_processor_GetVideoProcessorCaps
(
IMFVideoProcessor
*
iface
,
GUID
*
mode
,
...
...
dlls/evr/tests/evr.c
View file @
0289b9c2
...
...
@@ -654,7 +654,6 @@ static void test_default_mixer(void)
ok
(
hr
==
MF_E_TRANSFORM_TYPE_NOT_SET
,
"Unexpected hr %#lx.
\n
"
,
hr
);
hr
=
IMFVideoProcessor_GetAvailableVideoProcessorModes
(
processor
,
&
count
,
&
guids
);
todo_wine
ok
(
hr
==
MF_E_TRANSFORM_TYPE_NOT_SET
,
"Unexpected hr %#lx.
\n
"
,
hr
);
IMFVideoProcessor_Release
(
processor
);
...
...
@@ -1071,6 +1070,9 @@ static void test_default_mixer_type_negotiation(void)
hr
=
MFCreateVideoMixer
(
NULL
,
&
IID_IDirect3DDevice9
,
&
IID_IMFTransform
,
(
void
**
)
&
transform
);
ok
(
hr
==
S_OK
,
"Failed to create default mixer, hr %#lx.
\n
"
,
hr
);
hr
=
IMFTransform_QueryInterface
(
transform
,
&
IID_IMFVideoProcessor
,
(
void
**
)
&
processor
);
ok
(
hr
==
S_OK
,
"Unexpected hr %#lx.
\n
"
,
hr
);
hr
=
IMFTransform_GetInputAvailableType
(
transform
,
0
,
0
,
&
media_type
);
ok
(
hr
==
E_NOTIMPL
,
"Unexpected hr %#lx.
\n
"
,
hr
);
...
...
@@ -1095,6 +1097,9 @@ static void test_default_mixer_type_negotiation(void)
hr
=
IMFTransform_SetInputType
(
transform
,
0
,
media_type
,
MFT_SET_TYPE_TEST_ONLY
);
ok
(
hr
==
MF_E_NOT_INITIALIZED
,
"Unexpected hr %#lx.
\n
"
,
hr
);
hr
=
IMFVideoProcessor_GetAvailableVideoProcessorModes
(
processor
,
&
count
,
&
guids
);
ok
(
hr
==
MF_E_TRANSFORM_TYPE_NOT_SET
,
"Unexpected hr %#lx.
\n
"
,
hr
);
/* Now try with device manager. */
window
=
create_window
();
...
...
@@ -1282,9 +1287,6 @@ static void test_default_mixer_type_negotiation(void)
IMFMediaType_Release
(
media_type2
);
IMFMediaType_Release
(
media_type
);
hr
=
IMFTransform_QueryInterface
(
transform
,
&
IID_IMFVideoProcessor
,
(
void
**
)
&
processor
);
ok
(
hr
==
S_OK
,
"Unexpected hr %#lx.
\n
"
,
hr
);
hr
=
IMFVideoProcessor_GetVideoProcessorMode
(
processor
,
&
guid
);
todo_wine
ok
(
hr
==
MF_E_TRANSFORM_TYPE_NOT_SET
,
"Unexpected hr %#lx.
\n
"
,
hr
);
...
...
@@ -1302,7 +1304,6 @@ static void test_default_mixer_type_negotiation(void)
IMFMediaType_Release
(
media_type
);
hr
=
IMFVideoProcessor_GetAvailableVideoProcessorModes
(
processor
,
&
count
,
&
guids
);
todo_wine
ok
(
hr
==
MF_E_TRANSFORM_TYPE_NOT_SET
,
"Unexpected hr %#lx.
\n
"
,
hr
);
hr
=
IMFTransform_GetOutputAvailableType
(
transform
,
0
,
0
,
&
media_type
);
...
...
@@ -1319,10 +1320,9 @@ static void test_default_mixer_type_negotiation(void)
ok
(
hr
==
S_FALSE
,
"Unexpected hr %#lx.
\n
"
,
hr
);
hr
=
IMFVideoProcessor_GetAvailableVideoProcessorModes
(
processor
,
&
count
,
&
guids
);
todo_wine
ok
(
hr
==
S_OK
,
"Unexpected hr %#lx.
\n
"
,
hr
);
if
(
SUCCEEDED
(
hr
))
CoTaskMemFree
(
guids
);
ok
(
count
>
0
&&
!!
guids
,
"Unexpected modes data.
\n
"
);
CoTaskMemFree
(
guids
);
hr
=
IMFTransform_GetOutputCurrentType
(
transform
,
0
,
&
media_type2
);
ok
(
hr
==
S_OK
,
"Unexpected hr %#lx.
\n
"
,
hr
);
...
...
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