Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
5ea2267f
Commit
5ea2267f
authored
Dec 07, 2019
by
Zebediah Figura
Committed by
Alexandre Julliard
Dec 09, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
qcap/avimux: Use BaseOutputPinImpl_Connect().
Signed-off-by:
Zebediah Figura
<
z.figura12@gmail.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
47e64825
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
21 additions
and
37 deletions
+21
-37
avimux.c
dlls/qcap/avimux.c
+21
-37
No files found.
dlls/qcap/avimux.c
View file @
5ea2267f
...
...
@@ -1132,19 +1132,35 @@ static HRESULT source_query_accept(struct strmbase_pin *base, const AM_MEDIA_TYP
return
S_OK
;
}
static
HRESULT
WINAPI
AviMuxOut_AttemptConnection
(
struct
strmbase_source
*
bas
e
,
static
HRESULT
WINAPI
AviMuxOut_AttemptConnection
(
struct
strmbase_source
*
ifac
e
,
IPin
*
pReceivePin
,
const
AM_MEDIA_TYPE
*
pmt
)
{
AviMux
*
filter
=
impl_from_source_pin
(
&
iface
->
pin
);
PIN_DIRECTION
dir
;
unsigned
int
i
;
HRESULT
hr
;
TRACE
(
"(%p)->(%p AM_MEDIA_TYPE(%p))
\n
"
,
base
,
pReceivePin
,
pmt
);
hr
=
IPin_QueryDirection
(
pReceivePin
,
&
dir
);
if
(
hr
==
S_OK
&&
dir
!=
PINDIR_INPUT
)
return
VFW_E_INVALID_DIRECTION
;
return
BaseOutputPinImpl_AttemptConnection
(
base
,
pReceivePin
,
pmt
);
if
(
FAILED
(
hr
=
BaseOutputPinImpl_AttemptConnection
(
iface
,
pReceivePin
,
pmt
)))
return
hr
;
for
(
i
=
0
;
i
<
filter
->
input_pin_no
;
++
i
)
{
if
(
!
filter
->
in
[
i
]
->
pin
.
pin
.
peer
)
continue
;
hr
=
IFilterGraph_Reconnect
(
filter
->
filter
.
filterInfo
.
pGraph
,
&
filter
->
in
[
i
]
->
pin
.
pin
.
IPin_iface
);
if
(
FAILED
(
hr
))
{
IPin_Disconnect
(
&
iface
->
pin
.
IPin_iface
);
break
;
}
}
return
hr
;
}
static
HRESULT
source_get_media_type
(
struct
strmbase_pin
*
base
,
unsigned
int
iPosition
,
AM_MEDIA_TYPE
*
amt
)
...
...
@@ -1201,43 +1217,11 @@ static const struct strmbase_source_ops source_ops =
.
pfnDecideAllocator
=
AviMuxOut_DecideAllocator
,
};
static
inline
AviMux
*
impl_from_out_IPin
(
IPin
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
AviMux
,
source
.
pin
.
IPin_iface
);
}
static
HRESULT
WINAPI
AviMuxOut_Connect
(
IPin
*
iface
,
IPin
*
pReceivePin
,
const
AM_MEDIA_TYPE
*
pmt
)
{
AviMux
*
This
=
impl_from_out_IPin
(
iface
);
HRESULT
hr
;
int
i
;
TRACE
(
"(%p)->(%p AM_MEDIA_TYPE(%p))
\n
"
,
This
,
pReceivePin
,
pmt
);
hr
=
BaseOutputPinImpl_Connect
(
iface
,
pReceivePin
,
pmt
);
if
(
FAILED
(
hr
))
return
hr
;
for
(
i
=
0
;
i
<
This
->
input_pin_no
;
i
++
)
{
if
(
!
This
->
in
[
i
]
->
pin
.
pin
.
peer
)
continue
;
hr
=
IFilterGraph_Reconnect
(
This
->
filter
.
filterInfo
.
pGraph
,
&
This
->
in
[
i
]
->
pin
.
pin
.
IPin_iface
);
if
(
FAILED
(
hr
))
{
BaseOutputPinImpl_Disconnect
(
iface
);
break
;
}
}
return
hr
;
}
static
const
IPinVtbl
AviMuxOut_PinVtbl
=
{
BasePinImpl_QueryInterface
,
BasePinImpl_AddRef
,
BasePinImpl_Release
,
AviMuxOut
_Connect
,
BaseOutputPinImpl
_Connect
,
BaseOutputPinImpl_ReceiveConnection
,
BaseOutputPinImpl_Disconnect
,
BasePinImpl_ConnectedTo
,
...
...
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