>>>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.
>
>
>

Reply via email to