sd.check fails in CppunitTest_sd_export_tests-ooxml2
Mike Kaganski
mikekaganski at gmail.com
Mon Aug 18 16:45:20 UTC 2025
On 8/6/2025 12:49 PM, Balázs Varga wrote:
> >>>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....
FYI, a brute force approach in Player::InitializeWindow, like
> static const BOOL sync = o3tl::IsRunningUnitTest() ? TRUE : FALSE;
> if (SUCCEEDED(hr))
> hr =
> g_pPlayer->CreateMediaItemFromURL(o3tl::toW(maURL.getStr()), sync, 0,
> nullptr);
works for me. It indeed is wrong, does not receive the synchronously
created media item , ... but the tests pass.
>
> Noel Grandin <noelgrandin at gmail.com> ezt írta (időpont: 2025. aug. 6.,
> Sze, 9:21):
>
>
>
> On Wed, 6 Aug 2025 at 09:13, Balázs Varga
> <balazs.varga991 at 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.
>
>
--
Best regards,
Mike Kaganski
More information about the LibreOffice
mailing list