[PATCH 2/5] wineqtdecoder: Fix implementation of QT_GetPin().
Zebediah Figura
z.figura12 at gmail.com
Mon May 13 22:17:55 CDT 2019
strmbase assumes that pins are consecutive.
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
dlls/wineqtdecoder/qtsplitter.c | 44 +++++++++++++++++++--------------
1 file changed, 25 insertions(+), 19 deletions(-)
diff --git a/dlls/wineqtdecoder/qtsplitter.c b/dlls/wineqtdecoder/qtsplitter.c
index 4855069c31..614b8913b4 100644
--- a/dlls/wineqtdecoder/qtsplitter.c
+++ b/dlls/wineqtdecoder/qtsplitter.c
@@ -202,29 +202,35 @@ static inline QTSplitter *impl_from_IBaseFilter( IBaseFilter *iface )
* Base Filter
*/
-static IPin* WINAPI QT_GetPin(BaseFilter *iface, int pos)
+static IPin * WINAPI QT_GetPin(BaseFilter *base, int index)
{
- QTSplitter *This = impl_from_BaseFilter(iface);
- TRACE("Asking for pos %x\n", pos);
+ QTSplitter *filter = impl_from_BaseFilter(base);
- if (pos > 2 || pos < 0)
- return NULL;
- switch (pos)
+ if (index == 0)
{
- case 0:
- IPin_AddRef(&This->pInputPin.pin.IPin_iface);
- return &This->pInputPin.pin.IPin_iface;
- case 1:
- if (This->pVideo_Pin)
- IPin_AddRef(&This->pVideo_Pin->pin.pin.IPin_iface);
- return &This->pVideo_Pin->pin.pin.IPin_iface;
- case 2:
- if (This->pAudio_Pin)
- IPin_AddRef(&This->pAudio_Pin->pin.pin.IPin_iface);
- return &This->pAudio_Pin->pin.pin.IPin_iface;
- default:
- return NULL;
+ IPin_AddRef(&filter->pInputPin.pin.IPin_iface);
+ return &filter->pInputPin.pin.IPin_iface;
}
+ else if (index == 1)
+ {
+ if (filter->pVideo_Pin)
+ {
+ IPin_AddRef(&filter->pVideo_Pin->pin.pin.IPin_iface);
+ return &filter->pVideo_Pin->pin.pin.IPin_iface;
+ }
+ else if (filter->pAudio_Pin)
+ {
+ IPin_AddRef(&filter->pAudio_Pin->pin.pin.IPin_iface);
+ return &filter->pAudio_Pin->pin.pin.IPin_iface;
+ }
+ }
+ else if (index == 2 && filter->pVideo_Pin && filter->pAudio_Pin)
+ {
+ IPin_AddRef(&filter->pAudio_Pin->pin.pin.IPin_iface);
+ return &filter->pAudio_Pin->pin.pin.IPin_iface;
+ }
+
+ return NULL;
}
static LONG WINAPI QT_GetPinCount(BaseFilter *iface)
--
2.21.0
More information about the wine-devel
mailing list