>>>Probably the Player object, inside its dispose() method, or its destructor, needs to wait until the CreateMediaItemFromURL call completes. >>> We do similar stuff for child threads and asynchronous vcl PostUserEvent callbacks.
Yes, probably something like that can help on this. Fyi loading/importing those simple unit test docs works well because we create the Player objects and then create the Media items with async calls like, CreateMediaItemFromURL and SetMediaItem and we finish with them before any closing or disposing call (which does not have until we delete the media file or close the doc), against of these unit test where we closed the doc before we would have done with those calls.... Noel Grandin <noelgran...@gmail.com> ezt írta (időpont: 2025. aug. 6., Sze, 9:21): > > > On Wed, 6 Aug 2025 at 09:13, Balázs Varga <balazs.varga...@gmail.com> > wrote: > >> we make these calls and we InitializeWindow, so we create a >> MFPCreateMediaPlayer, CreateMediaItemFromURL with the tmp media file >> (avi): file:///C:/cygwin64/tmp/tesB70A.tmp, >> which methods (CreateMediaItemFromURL) completes asynchronously. When it >> does, MFPlay sends an MFP_EVENT_TYPE_MEDIAITEM_CREATED event, but before it >> could have finished, >> we dispose and Clear everything (also hwnd windows) related to >> MediaWindow/Player and I guess this happened (second call stack) >> MFPlay.dll!CMFPInnerPlayer::NotifyMediaItemCreatedEvent(struct >> IMFAsyncResult *) Unknown >> >>> >>> > Probably the Player object, inside its dispose() method, or its > destructor, needs to wait until the CreateMediaItemFromURL call completes. > We do similar stuff for child threads and asynchronous vcl PostUserEvent > callbacks. > > >