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
a95c1f30
Commit
a95c1f30
authored
May 13, 2019
by
Zebediah Figura
Committed by
Alexandre Julliard
May 14, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
strmbase: Remove function pointers from the IEnumPinsImpl structure.
Signed-off-by:
Zebediah Figura
<
z.figura12@gmail.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
40fef0fb
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
25 additions
and
43 deletions
+25
-43
enumpins.c
dlls/strmbase/enumpins.c
+16
-23
filter.c
dlls/strmbase/filter.c
+7
-14
strmbase_private.h
dlls/strmbase/strmbase_private.h
+1
-3
strmbase.h
include/wine/strmbase.h
+1
-3
No files found.
dlls/strmbase/enumpins.c
View file @
a95c1f30
...
...
@@ -29,9 +29,6 @@ typedef struct IEnumPinsImpl
LONG
refCount
;
ULONG
uIndex
;
BaseFilter
*
base
;
BaseFilter_GetPin
receive_pin
;
BaseFilter_GetPinCount
receive_pincount
;
BaseFilter_GetPinVersion
receive_version
;
DWORD
Version
;
}
IEnumPinsImpl
;
...
...
@@ -42,7 +39,7 @@ static inline IEnumPinsImpl *impl_from_IEnumPins(IEnumPins *iface)
static
const
struct
IEnumPinsVtbl
IEnumPinsImpl_Vtbl
;
HRESULT
WINAPI
EnumPins_Construct
(
BaseFilter
*
base
,
BaseFilter_GetPin
receive_pin
,
BaseFilter_GetPinCount
receive_pincount
,
BaseFilter_GetPinVersion
receive_version
,
IEnumPins
**
ppEnum
)
HRESULT
enum_pins_create
(
BaseFilter
*
base
,
IEnumPins
**
ppEnum
)
{
IEnumPinsImpl
*
pEnumPins
;
...
...
@@ -58,13 +55,10 @@ HRESULT WINAPI EnumPins_Construct(BaseFilter *base, BaseFilter_GetPin receive_p
pEnumPins
->
IEnumPins_iface
.
lpVtbl
=
&
IEnumPinsImpl_Vtbl
;
pEnumPins
->
refCount
=
1
;
pEnumPins
->
uIndex
=
0
;
pEnumPins
->
receive_pin
=
receive_pin
;
pEnumPins
->
receive_pincount
=
receive_pincount
;
pEnumPins
->
receive_version
=
receive_version
;
pEnumPins
->
base
=
base
;
IBaseFilter_AddRef
(
&
base
->
IBaseFilter_iface
);
*
ppEnum
=
&
pEnumPins
->
IEnumPins_iface
;
pEnumPins
->
Version
=
receive_version
(
base
)
;
pEnumPins
->
Version
=
base
->
pin_version
;
TRACE
(
"Created new enumerator (%p)
\n
"
,
*
ppEnum
);
return
S_OK
;
...
...
@@ -134,13 +128,13 @@ static HRESULT WINAPI IEnumPinsImpl_Next(IEnumPins * iface, ULONG cPins, IPin **
if
(
pcFetched
)
*
pcFetched
=
0
;
if
(
This
->
Version
!=
This
->
receive_version
(
This
->
base
)
)
if
(
This
->
Version
!=
This
->
base
->
pin_version
)
return
VFW_E_ENUM_OUT_OF_SYNC
;
while
(
i
<
cPins
)
{
IPin
*
pin
;
pin
=
This
->
receive_p
in
(
This
->
base
,
This
->
uIndex
+
i
);
pin
=
This
->
base
->
pFuncsTable
->
pfnGetP
in
(
This
->
base
,
This
->
uIndex
+
i
);
if
(
!
pin
)
break
;
...
...
@@ -164,39 +158,38 @@ static HRESULT WINAPI IEnumPinsImpl_Skip(IEnumPins *iface, ULONG count)
TRACE
(
"enum_pins %p, count %u.
\n
"
,
enum_pins
,
count
);
if
(
enum_pins
->
Version
!=
enum_pins
->
receive_version
(
enum_pins
->
base
)
)
if
(
enum_pins
->
Version
!=
enum_pins
->
base
->
pin_version
)
return
VFW_E_ENUM_OUT_OF_SYNC
;
if
(
enum_pins
->
uIndex
+
count
>
enum_pins
->
receive_pinc
ount
(
enum_pins
->
base
))
if
(
enum_pins
->
uIndex
+
count
>
enum_pins
->
base
->
pFuncsTable
->
pfnGetPinC
ount
(
enum_pins
->
base
))
return
S_FALSE
;
enum_pins
->
uIndex
+=
count
;
return
S_OK
;
}
static
HRESULT
WINAPI
IEnumPinsImpl_Reset
(
IEnumPins
*
iface
)
static
HRESULT
WINAPI
IEnumPinsImpl_Reset
(
IEnumPins
*
iface
)
{
IEnumPinsImpl
*
Thi
s
=
impl_from_IEnumPins
(
iface
);
IEnumPinsImpl
*
enum_pin
s
=
impl_from_IEnumPins
(
iface
);
TRACE
(
"
(%p)->()
\n
"
,
iface
);
TRACE
(
"
iface %p.
\n
"
,
iface
);
This
->
Version
=
This
->
receive_version
(
This
->
base
);
enum_pins
->
Version
=
enum_pins
->
base
->
pin_version
;
enum_pins
->
uIndex
=
0
;
This
->
uIndex
=
0
;
return
S_OK
;
}
static
HRESULT
WINAPI
IEnumPinsImpl_Clone
(
IEnumPins
*
iface
,
IEnumPins
**
ppEnum
)
static
HRESULT
WINAPI
IEnumPinsImpl_Clone
(
IEnumPins
*
iface
,
IEnumPins
**
out
)
{
IEnumPinsImpl
*
enum_pins
=
impl_from_IEnumPins
(
iface
);
HRESULT
hr
;
IEnumPinsImpl
*
This
=
impl_from_IEnumPins
(
iface
);
TRACE
(
"
(%p)->(%p)
\n
"
,
iface
,
ppEnum
);
TRACE
(
"
iface %p, out %p.
\n
"
,
iface
,
out
);
hr
=
EnumPins_Construct
(
This
->
base
,
This
->
receive_pin
,
This
->
receive_pincount
,
This
->
receive_version
,
ppEnum
);
if
(
FAILED
(
hr
))
if
(
FAILED
(
hr
=
enum_pins_create
(
enum_pins
->
base
,
out
)))
return
hr
;
return
IEnumPins_Skip
(
*
ppEnum
,
Thi
s
->
uIndex
);
return
IEnumPins_Skip
(
*
out
,
enum_pin
s
->
uIndex
);
}
static
const
IEnumPinsVtbl
IEnumPinsImpl_Vtbl
=
...
...
dlls/strmbase/filter.c
View file @
a95c1f30
...
...
@@ -125,13 +125,13 @@ HRESULT WINAPI BaseFilterImpl_GetSyncSource(IBaseFilter * iface, IReferenceClock
return
S_OK
;
}
HRESULT
WINAPI
BaseFilterImpl_EnumPins
(
IBaseFilter
*
iface
,
IEnumPins
**
ppEnum
)
HRESULT
WINAPI
BaseFilterImpl_EnumPins
(
IBaseFilter
*
iface
,
IEnumPins
**
enum_pins
)
{
BaseFilter
*
This
=
impl_from_IBaseFilter
(
iface
);
BaseFilter
*
filter
=
impl_from_IBaseFilter
(
iface
);
TRACE
(
"
(%p)->(%p)
\n
"
,
iface
,
ppEnum
);
TRACE
(
"
iface %p, enum_pins %p.
\n
"
,
iface
,
enum_pins
);
return
EnumPins_Construct
(
This
,
This
->
pFuncsTable
->
pfnGetPin
,
This
->
pFuncsTable
->
pfnGetPinCount
,
BaseFilterImpl_GetPinVersion
,
ppEnum
);
return
enum_pins_create
(
filter
,
enum_pins
);
}
HRESULT
WINAPI
BaseFilterImpl_FindPin
(
IBaseFilter
*
iface
,
const
WCHAR
*
id
,
IPin
**
ret
)
...
...
@@ -206,16 +206,9 @@ HRESULT WINAPI BaseFilterImpl_QueryVendorInfo(IBaseFilter * iface, LPWSTR *pVend
return
E_NOTIMPL
;
}
LONG
WINAPI
BaseFilterImpl_GetPinVersion
(
BaseFilter
*
This
)
{
TRACE
(
"(%p)
\n
"
,
This
);
return
This
->
pinVersion
;
}
VOID
WINAPI
BaseFilterImpl_IncrementPinVersion
(
BaseFilter
*
This
)
VOID
WINAPI
BaseFilterImpl_IncrementPinVersion
(
BaseFilter
*
filter
)
{
InterlockedIncrement
(
&
This
->
pinVersion
);
TRACE
(
"(%p) -> New pinVersion %i
\n
"
,
This
,
This
->
pinVersion
);
InterlockedIncrement
(
&
filter
->
pin_version
);
}
HRESULT
WINAPI
BaseFilter_Init
(
BaseFilter
*
This
,
const
IBaseFilterVtbl
*
Vtbl
,
const
CLSID
*
pClsid
,
DWORD_PTR
DebugInfo
,
const
BaseFilterFuncTable
*
pBaseFuncsTable
)
...
...
@@ -229,7 +222,7 @@ HRESULT WINAPI BaseFilter_Init(BaseFilter * This, const IBaseFilterVtbl *Vtbl, c
ZeroMemory
(
&
This
->
filterInfo
,
sizeof
(
FILTER_INFO
));
This
->
clsid
=
*
pClsid
;
This
->
csFilter
.
DebugInfo
->
Spare
[
0
]
=
DebugInfo
;
This
->
pin
V
ersion
=
1
;
This
->
pin
_v
ersion
=
1
;
This
->
pFuncsTable
=
pBaseFuncsTable
;
...
...
dlls/strmbase/strmbase_private.h
View file @
a95c1f30
...
...
@@ -63,9 +63,7 @@ void QualityControlRender_DoQOS(QualityControlImpl *priv);
void
QualityControlRender_BeginRender
(
QualityControlImpl
*
This
);
void
QualityControlRender_EndRender
(
QualityControlImpl
*
This
);
HRESULT
WINAPI
EnumPins_Construct
(
BaseFilter
*
base
,
BaseFilter_GetPin
pfn_get_pin
,
BaseFilter_GetPinCount
pfn_get_pin_count
,
BaseFilter_GetPinVersion
pfn_get_pin_version
,
IEnumPins
**
enum_pins
);
HRESULT
enum_pins_create
(
BaseFilter
*
base
,
IEnumPins
**
enum_pins
);
HRESULT
WINAPI
RendererPosPassThru_RegisterMediaTime
(
IUnknown
*
iface
,
REFERENCE_TIME
start
);
HRESULT
WINAPI
RendererPosPassThru_ResetMediaTime
(
IUnknown
*
iface
);
...
...
include/wine/strmbase.h
View file @
a95c1f30
...
...
@@ -163,14 +163,13 @@ typedef struct BaseFilter
IReferenceClock
*
pClock
;
FILTER_INFO
filterInfo
;
CLSID
clsid
;
LONG
pinV
ersion
;
LONG
pin_v
ersion
;
const
struct
BaseFilterFuncTable
*
pFuncsTable
;
}
BaseFilter
;
typedef
IPin
*
(
WINAPI
*
BaseFilter_GetPin
)(
BaseFilter
*
iface
,
int
iPosition
);
typedef
LONG
(
WINAPI
*
BaseFilter_GetPinCount
)(
BaseFilter
*
iface
);
typedef
LONG
(
WINAPI
*
BaseFilter_GetPinVersion
)(
BaseFilter
*
iface
);
typedef
struct
BaseFilterFuncTable
{
/* Required */
...
...
@@ -191,7 +190,6 @@ HRESULT WINAPI BaseFilterImpl_QueryFilterInfo(IBaseFilter * iface, FILTER_INFO *
HRESULT
WINAPI
BaseFilterImpl_JoinFilterGraph
(
IBaseFilter
*
iface
,
IFilterGraph
*
pGraph
,
LPCWSTR
pName
);
HRESULT
WINAPI
BaseFilterImpl_QueryVendorInfo
(
IBaseFilter
*
iface
,
LPWSTR
*
pVendorInfo
);
LONG
WINAPI
BaseFilterImpl_GetPinVersion
(
BaseFilter
*
This
);
VOID
WINAPI
BaseFilterImpl_IncrementPinVersion
(
BaseFilter
*
This
);
HRESULT
WINAPI
BaseFilter_Init
(
BaseFilter
*
This
,
const
IBaseFilterVtbl
*
Vtbl
,
const
CLSID
*
pClsid
,
DWORD_PTR
DebugInfo
,
const
BaseFilterFuncTable
*
pBaseFuncsTable
);
...
...
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