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
467a96e9
Commit
467a96e9
authored
Feb 03, 2021
by
Nikolay Sivov
Committed by
Alexandre Julliard
Feb 03, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mfplat/tests: Add some tests for sample allocator using D3D9 device.
Signed-off-by:
Nikolay Sivov
<
nsivov@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
0e7836c0
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
78 additions
and
5 deletions
+78
-5
Makefile.in
dlls/mfplat/tests/Makefile.in
+1
-1
mfplat.c
dlls/mfplat/tests/mfplat.c
+77
-4
No files found.
dlls/mfplat/tests/Makefile.in
View file @
467a96e9
TESTDLL
=
mfplat.dll
IMPORTS
=
ole32 mfplat user32 d3d9 mfuuid propsys uuid strmiids
IMPORTS
=
ole32 mfplat user32 d3d9
dxva2
mfuuid propsys uuid strmiids
C_SRCS
=
\
mfplat.c
...
...
dlls/mfplat/tests/mfplat.c
View file @
467a96e9
...
...
@@ -46,6 +46,7 @@
#include "d3d9types.h"
#include "ks.h"
#include "ksmedia.h"
#include "dxva2api.h"
DEFINE_GUID
(
DUMMY_CLSID
,
0x12345678
,
0x1234
,
0x1234
,
0x12
,
0x13
,
0x14
,
0x15
,
0x16
,
0x17
,
0x18
,
0x19
);
DEFINE_GUID
(
DUMMY_GUID1
,
0x12345678
,
0x1234
,
0x1234
,
0x21
,
0x21
,
0x21
,
0x21
,
0x21
,
0x21
,
0x21
,
0x21
);
...
...
@@ -6290,15 +6291,20 @@ static void test_sample_allocator(void)
IMFDXGIDeviceManager
*
manager
;
IMFSample
*
sample
,
*
sample2
;
IMFDXGIBuffer
*
dxgi_buffer
;
IMFAttributes
*
attributes
;
D3D11_TEXTURE2D_DESC
desc
;
unsigned
int
buffer_count
,
token
;
ID3D11Texture2D
*
texture
;
IMFMediaBuffer
*
buffer
;
ID3D11Device
*
device
;
LONG
refcount
,
count
;
unsigned
int
token
;
IUnknown
*
unk
;
HRESULT
hr
;
BYTE
*
data
;
IDirect3D9
*
d3d9
;
HWND
window
;
IDirect3DDeviceManager9
*
d3d9_manager
;
IDirect3DDevice9
*
d3d9_device
;
if
(
!
pMFCreateVideoSampleAllocatorEx
)
{
...
...
@@ -6407,12 +6413,20 @@ todo_wine
check_interface
(
buffer
,
&
IID_IMFDXGIBuffer
,
FALSE
);
IMFMediaBuffer_Release
(
buffer
);
hr
=
IMFSample_GetBufferCount
(
sample
,
&
buffer_count
);
ok
(
hr
==
S_OK
,
"Unexpected hr %#x.
\n
"
,
hr
);
ok
(
buffer_count
==
1
,
"Unexpected buffer count %u.
\n
"
,
buffer_count
);
IMFSample_Release
(
sample
);
IMFVideoSampleAllocatorCallback_Release
(
allocator_cb
);
IMFVideoSampleAllocator_Release
(
allocator
);
/* IMFVideoSampleAllocatorEx */
hr
=
MFCreateAttributes
(
&
attributes
,
0
);
ok
(
hr
==
S_OK
,
"Unexpected hr %#x.
\n
"
,
hr
);
hr
=
pMFCreateVideoSampleAllocatorEx
(
&
IID_IMFVideoSampleAllocatorEx
,
(
void
**
)
&
allocatorex
);
ok
(
hr
==
S_OK
,
"Unexpected hr %#x.
\n
"
,
hr
);
...
...
@@ -6422,9 +6436,15 @@ todo_wine
hr
=
IMFVideoSampleAllocatorEx_InitializeSampleAllocatorEx
(
allocatorex
,
1
,
0
,
NULL
,
video_type
);
ok
(
hr
==
E_INVALIDARG
,
"Unexpected hr %#x.
\n
"
,
hr
);
hr
=
IMF
VideoSampleAllocatorEx_InitializeSampleAllocatorEx
(
allocatorex
,
0
,
0
,
NULL
,
video_type
);
hr
=
IMF
Attributes_SetUINT32
(
attributes
,
&
MF_SA_BUFFERS_PER_SAMPLE
,
2
);
ok
(
hr
==
S_OK
,
"Unexpected hr %#x.
\n
"
,
hr
);
EXPECT_REF
(
attributes
,
1
);
hr
=
IMFVideoSampleAllocatorEx_InitializeSampleAllocatorEx
(
allocatorex
,
0
,
0
,
attributes
,
video_type
);
ok
(
hr
==
S_OK
,
"Unexpected hr %#x.
\n
"
,
hr
);
todo_wine
EXPECT_REF
(
attributes
,
2
);
count
=
0
;
hr
=
IMFVideoSampleAllocatorCallback_GetFreeSampleCount
(
allocator_cb
,
&
count
);
ok
(
hr
==
S_OK
,
"Unexpected hr %#x.
\n
"
,
hr
);
...
...
@@ -6433,6 +6453,11 @@ todo_wine
hr
=
IMFVideoSampleAllocatorEx_AllocateSample
(
allocatorex
,
&
sample
);
ok
(
hr
==
S_OK
,
"Unexpected hr %#x.
\n
"
,
hr
);
hr
=
IMFSample_GetBufferCount
(
sample
,
&
buffer_count
);
ok
(
hr
==
S_OK
,
"Unexpected hr %#x.
\n
"
,
hr
);
todo_wine
ok
(
buffer_count
==
2
,
"Unexpected buffer count %u.
\n
"
,
buffer_count
);
hr
=
IMFVideoSampleAllocatorEx_AllocateSample
(
allocatorex
,
&
sample2
);
ok
(
hr
==
MF_E_SAMPLEALLOCATOR_EMPTY
,
"Unexpected hr %#x.
\n
"
,
hr
);
...
...
@@ -6440,6 +6465,7 @@ todo_wine
IMFVideoSampleAllocatorCallback_Release
(
allocator_cb
);
IMFVideoSampleAllocatorEx_Release
(
allocatorex
);
IMFAttributes_Release
(
attributes
);
/* Using device manager */
if
(
!
(
device
=
create_d3d11_device
()))
...
...
@@ -6511,10 +6537,57 @@ todo_wine
IMFSample_Release
(
sample
);
IMFVideoSampleAllocator_Release
(
allocator
);
IMFMediaType_Release
(
media_type
);
IMFDXGIDeviceManager_Release
(
manager
);
ID3D11Device_Release
(
device
);
/* Use D3D9 device manager. */
window
=
create_window
();
d3d9
=
Direct3DCreate9
(
D3D_SDK_VERSION
);
ok
(
!!
d3d9
,
"Failed to create a D3D9 object.
\n
"
);
if
(
!
(
d3d9_device
=
create_device
(
d3d9
,
window
)))
{
skip
(
"Failed to create a D3D9 device, skipping tests.
\n
"
);
goto
done
;
}
hr
=
DXVA2CreateDirect3DDeviceManager9
(
&
token
,
&
d3d9_manager
);
ok
(
hr
==
S_OK
,
"Unexpected hr %#x.
\n
"
,
hr
);
hr
=
IDirect3DDeviceManager9_ResetDevice
(
d3d9_manager
,
d3d9_device
,
token
);
ok
(
hr
==
S_OK
,
"Unexpected hr %#x.
\n
"
,
hr
);
hr
=
pMFCreateVideoSampleAllocatorEx
(
&
IID_IMFVideoSampleAllocator
,
(
void
**
)
&
allocator
);
ok
(
hr
==
S_OK
,
"Unexpected hr %#x.
\n
"
,
hr
);
hr
=
IMFVideoSampleAllocator_SetDirectXManager
(
allocator
,
(
IUnknown
*
)
d3d9_manager
);
ok
(
hr
==
S_OK
,
"Unexpected hr %#x.
\n
"
,
hr
);
hr
=
IMFVideoSampleAllocator_InitializeSampleAllocator
(
allocator
,
1
,
video_type
);
ok
(
hr
==
S_OK
,
"Unexpected hr %#x.
\n
"
,
hr
);
hr
=
IMFVideoSampleAllocator_AllocateSample
(
allocator
,
&
sample
);
ok
(
hr
==
S_OK
,
"Unexpected hr %#x.
\n
"
,
hr
);
check_interface
(
sample
,
&
IID_IMFTrackedSample
,
TRUE
);
check_interface
(
sample
,
&
IID_IMFDesiredSample
,
FALSE
);
hr
=
IMFSample_GetBufferByIndex
(
sample
,
0
,
&
buffer
);
ok
(
hr
==
S_OK
,
"Unexpected hr %#x.
\n
"
,
hr
);
check_interface
(
buffer
,
&
IID_IMF2DBuffer
,
TRUE
);
check_interface
(
buffer
,
&
IID_IMF2DBuffer2
,
TRUE
);
check_interface
(
buffer
,
&
IID_IMFGetService
,
TRUE
);
check_interface
(
buffer
,
&
IID_IMFDXGIBuffer
,
FALSE
);
IMFSample_Release
(
sample
);
IMFMediaBuffer_Release
(
buffer
);
IMFVideoSampleAllocator_Release
(
allocator
);
IMFMediaType_Release
(
media_type
);
done:
IDirect3D9_Release
(
d3d9
);
DestroyWindow
(
window
);
}
START_TEST
(
mfplat
)
...
...
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