Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/mfplay/player.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/dlls/mfplay/player.c b/dlls/mfplay/player.c index 854698774a6..5a85d9f0505 100644 --- a/dlls/mfplay/player.c +++ b/dlls/mfplay/player.c @@ -295,9 +295,20 @@ static HRESULT WINAPI media_item_GetPresentationAttribute(IMFPMediaItem *iface,
static HRESULT WINAPI media_item_GetCharacteristics(IMFPMediaItem *iface, MFP_MEDIAITEM_CHARACTERISTICS *flags) { - FIXME("%p, %p.\n", iface, flags); + struct media_item *item = impl_from_IMFPMediaItem(iface); + HRESULT hr;
- return E_NOTIMPL; + TRACE("%p, %p.\n", iface, flags); + + *flags = 0; + + if (SUCCEEDED(hr = IMFMediaSource_GetCharacteristics(item->source, flags))) + { + *flags &= (MFP_MEDIAITEM_IS_LIVE | MFP_MEDIAITEM_CAN_SEEK | + MFP_MEDIAITEM_CAN_PAUSE | MFP_MEDIAITEM_HAS_SLOW_SEEK); + } + + return hr; }
static HRESULT WINAPI media_item_SetStreamSink(IMFPMediaItem *iface, DWORD index, IUnknown *sink)