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
015eb45a
Commit
015eb45a
authored
Oct 16, 2023
by
Fabian Maurer
Committed by
Alexandre Julliard
Oct 31, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winegstreamer: Implement IWMResamplerProps.
Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=55789
parent
ca01aece
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
58 additions
and
0 deletions
+58
-0
resampler.c
dlls/winegstreamer/resampler.c
+45
-0
wmcodecdsp.idl
include/wmcodecdsp.idl
+13
-0
No files found.
dlls/winegstreamer/resampler.c
View file @
015eb45a
...
...
@@ -41,6 +41,7 @@ struct resampler
IMediaObject
IMediaObject_iface
;
IPropertyBag
IPropertyBag_iface
;
IPropertyStore
IPropertyStore_iface
;
IWMResamplerProps
IWMResamplerProps_iface
;
IUnknown
*
outer
;
LONG
refcount
;
...
...
@@ -97,6 +98,8 @@ static HRESULT WINAPI unknown_QueryInterface(IUnknown *iface, REFIID iid, void *
*
out
=
&
impl
->
IPropertyBag_iface
;
else
if
(
IsEqualIID
(
iid
,
&
IID_IPropertyStore
))
*
out
=
&
impl
->
IPropertyStore_iface
;
else
if
(
IsEqualIID
(
iid
,
&
IID_IWMResamplerProps
))
*
out
=
&
impl
->
IWMResamplerProps_iface
;
else
{
*
out
=
NULL
;
...
...
@@ -872,6 +875,47 @@ static const IPropertyStoreVtbl property_store_vtbl =
property_store_Commit
,
};
static
inline
struct
resampler
*
impl_from_IWMResamplerProps
(
IWMResamplerProps
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
struct
resampler
,
IWMResamplerProps_iface
);
}
static
HRESULT
WINAPI
resampler_props_QueryInterface
(
IWMResamplerProps
*
iface
,
REFIID
iid
,
void
**
out
)
{
return
IUnknown_QueryInterface
(
impl_from_IWMResamplerProps
(
iface
)
->
outer
,
iid
,
out
);
}
static
ULONG
WINAPI
resampler_props_AddRef
(
IWMResamplerProps
*
iface
)
{
return
IUnknown_AddRef
(
impl_from_IWMResamplerProps
(
iface
)
->
outer
);
}
static
ULONG
WINAPI
resampler_props_Release
(
IWMResamplerProps
*
iface
)
{
return
IUnknown_Release
(
impl_from_IWMResamplerProps
(
iface
)
->
outer
);
}
static
HRESULT
WINAPI
resampler_props_SetHalfFilterLength
(
IWMResamplerProps
*
iface
,
LONG
length
)
{
FIXME
(
"iface %p, count %lu stub!
\n
"
,
iface
,
length
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
resampler_props_SetUserChannelMtx
(
IWMResamplerProps
*
iface
,
ChMtxType
*
conversion_matrix
)
{
FIXME
(
"iface %p, userChannelMtx %p stub!
\n
"
,
iface
,
conversion_matrix
);
return
E_NOTIMPL
;
}
static
const
IWMResamplerPropsVtbl
resampler_props_vtbl
=
{
resampler_props_QueryInterface
,
resampler_props_AddRef
,
resampler_props_Release
,
resampler_props_SetHalfFilterLength
,
resampler_props_SetUserChannelMtx
,
};
HRESULT
resampler_create
(
IUnknown
*
outer
,
IUnknown
**
out
)
{
static
const
struct
wg_format
input_format
=
...
...
@@ -924,6 +968,7 @@ HRESULT resampler_create(IUnknown *outer, IUnknown **out)
impl
->
IMediaObject_iface
.
lpVtbl
=
&
media_object_vtbl
;
impl
->
IPropertyBag_iface
.
lpVtbl
=
&
property_bag_vtbl
;
impl
->
IPropertyStore_iface
.
lpVtbl
=
&
property_store_vtbl
;
impl
->
IWMResamplerProps_iface
.
lpVtbl
=
&
resampler_props_vtbl
;
impl
->
refcount
=
1
;
impl
->
outer
=
outer
?
outer
:
&
impl
->
IUnknown_inner
;
...
...
include/wmcodecdsp.idl
View file @
015eb45a
...
...
@@ -91,3 +91,16 @@ coclass CWMVDecMediaObject {}
uuid
(
7
e320092
-
596
a
-
41b2
-
bbeb
-
175
d10504eb6
)
]
coclass
CWMVXEncMediaObject
{}
typedef
float
ChMtxType
;
[
local
,
object
,
uuid
(
e7e9984f
-
f09f
-
4
da4
-
903
f
-
6
e2e0efe56b5
),
]
interface
IWMResamplerProps
:
IUnknown
{
HRESULT
SetHalfFilterLength
(
LONG
length
)
;
HRESULT
SetUserChannelMtx
(
ChMtxType
*
conversion_matrix
)
;
}
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