From: Ziqing Hui zhui@codeweavers.com
--- dlls/mfreadwrite/writer.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/dlls/mfreadwrite/writer.c b/dlls/mfreadwrite/writer.c index c708664d2fc..765b50155b9 100644 --- a/dlls/mfreadwrite/writer.c +++ b/dlls/mfreadwrite/writer.c @@ -83,6 +83,7 @@ struct sink_writer HRESULT status; MF_SINK_WRITER_STATISTICS stats;
+ IMFAttributes *attributes; IMFSinkWriterCallback *callback;
CRITICAL_SECTION cs; @@ -225,6 +226,8 @@ static ULONG WINAPI sink_writer_Release(IMFSinkWriter *iface) IMFPresentationClock_Release(writer->clock); if (writer->sink) IMFMediaSink_Release(writer->sink); + if (writer->attributes) + IMFAttributes_Release(writer->attributes); if (writer->callback) IMFSinkWriterCallback_Release(writer->callback); for (i = 0; i < writer->streams.count; ++i) @@ -978,6 +981,7 @@ HRESULT create_sink_writer_from_sink(IMFMediaSink *sink, IMFAttributes *attribut
if (attributes) { + IMFAttributes_AddRef((object->attributes = attributes)); IMFAttributes_GetUnknown(attributes, &MF_SINK_WRITER_ASYNC_CALLBACK, &IID_IMFSinkWriterCallback, (void **)&object->callback); }