From: Rémi Bernon rbernon@codeweavers.com
--- dlls/mfsrcsnk/media_source.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+)
diff --git a/dlls/mfsrcsnk/media_source.c b/dlls/mfsrcsnk/media_source.c index 6c367111b49..2d25367820c 100644 --- a/dlls/mfsrcsnk/media_source.c +++ b/dlls/mfsrcsnk/media_source.c @@ -815,6 +815,24 @@ static void media_source_init_stream_map(struct media_source *source, UINT strea } }
+static void media_source_init_descriptors(struct media_source *source) +{ + UINT i; + + TRACE("source %p\n", source); + + for (i = 0; i < source->stream_count; i++) + { + struct media_stream *stream = source->streams[i]; + WCHAR buffer[512]; + NTSTATUS status; + + if (FAILED(status = winedmo_demuxer_stream_name(source->winedmo_demuxer, source->stream_map[i], buffer, ARRAY_SIZE(buffer))) + || FAILED(IMFStreamDescriptor_SetString(stream->descriptor, &MF_SD_STREAM_NAME, buffer))) + WARN("Failed to set stream descriptor name, status %#lx\n", status); + } +} + static HRESULT stream_descriptor_create(UINT32 id, IMFMediaType *media_type, IMFStreamDescriptor **out) { IMFStreamDescriptor *descriptor; @@ -916,6 +934,8 @@ static HRESULT media_source_async_create(struct media_source *source, IMFAsyncRe IMFMediaType_Release(media_type); }
+ media_source_init_descriptors(source); + done: IMFAsyncResult_SetStatus(result, hr); return MFInvokeCallback((IMFAsyncResult *)state);