Steps to Reproduce

This was reported on EPS that the function FMediaFoundationMovieStreamer::Init implemented in XboxCommonGDKMovieStreamer.cpp and WindowsMovieStreamer.cp always return true even if the call to OpenNextMovie(); returned false.

The customer reports that this cause startup Bink video to be skipped at startup. Looking at the code in \Engine\Source\Runtime\MoviePlayer\Private\DefaultGameMoviePlayer.cpp:

 

bool FDefaultGameMoviePlayer::PlayMovie()
{
...
    for (TSharedPtr<IMovieStreamer, ESPMode::ThreadSafe> MovieStreamer : MovieStreamers)
    {
        if (MovieStreamer->Init(LoadingScreenAttributes.MoviePaths, LoadingScreenAttributes.PlaybackType))
        {
            ActiveMovieStreamer = MovieStreamer;
            if (MovieViewportWeakPtr.IsValid())
            {
                MovieViewportWeakPtr.Pin()->SetViewportInterface(MovieStreamer->GetViewportInterface().ToSharedRef());
            }
            break;
        }
    }
...
} 

If the Init() function always return true, the next streamer (Bink) will never be visited and the startup movie will not be played.

The customer fixed that by changing the Init() function to return the result of OpenNextMovie():

bool FMediaFoundationMovieStreamer::Init(const TArray<FString>& MoviePaths, TEnumAsByte<EMoviePlaybackType> inPlaybackType)
{
    ...
    return OpenNextMovie();
} 

 

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-314754 in the post.

0
Login to Vote

Unresolved
ComponentUE - Media Framework
Affects Versions5.6
CreatedAug 20, 2025
UpdatedAug 20, 2025
View Jira Issue