Files
UnrealEngineUWP/Engine/Source/Runtime/Launch/Public/LaunchEngineLoop.h

197 lines
4.8 KiB
C
Raw Normal View History

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3209340 on 2016/11/23 by Ben.Marsh Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h. Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms. * Every header now includes everything it needs to compile. * There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first. * There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h. * Every .cpp file includes its matching .h file first. * This helps validate that each header is including everything it needs to compile. * No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more. * You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there. * There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible. * No engine code explicitly includes a precompiled header any more. * We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies. * PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files. Tool used to generate this transform is at Engine\Source\Programs\IncludeTool. [CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
#include "CoreMinimal.h"
#if WITH_ENGINE
#include "UnrealEngine.h"
#endif
class FEngineService;
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3209340 on 2016/11/23 by Ben.Marsh Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h. Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms. * Every header now includes everything it needs to compile. * There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first. * There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h. * Every .cpp file includes its matching .h file first. * This helps validate that each header is including everything it needs to compile. * No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more. * You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there. * There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible. * No engine code explicitly includes a precompiled header any more. * We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies. * PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files. Tool used to generate this transform is at Engine\Source\Programs\IncludeTool. [CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
class FPendingCleanupObjects;
class ISessionService;
class FSlateRenderer;
struct FScopedSlowTask;
Copying //UE4/Dev-Sequencer to //UE4/Main (Source: //UE4/Dev-Sequencer @ 3617642) #lockdown nick.penwarden #rb none Change 3235667 on 2016/12/14 by Max.Preussner Media: Moved enums into separate header file, so they can be shared Change 3259266 on 2017/01/16 by Max.Preussner Core: Added timespan ratio Change 3267229 on 2017/01/21 by Max.Preussner Editor: Fixed texture samplers in materials not getting notified when sRGB mode changed Change 3274773 on 2017/01/27 by Max.Preussner Core: Added TLruCache template Change 3281579 on 2017/02/01 by Max.Preussner Core: Added scalar division to FTimespan Change 3289522 on 2017/02/07 by Max.Preussner MediaAssets: Added looping for play lists Change 3290664 on 2017/02/07 by Max.Preussner Engine: Moved UTexture material notification code into separate function, so it can be used by derived classes. Change 3290688 on 2017/02/07 by Max.Preussner MediaAssets: Notifying materials when media texture properties changed. Change 3291171 on 2017/02/07 by Max.Preussner MediaAssets: Filtering unused UTexture properties Change 3291229 on 2017/02/07 by Max.Preussner ImgMedia: Use displayWindow instead of dataWindow due to bug in OpenEXR with data window min < 0 Change 3298520 on 2017/02/11 by Max.Preussner Sequencer: Fixed skylight and reflection components off by one frame in PIE Change 3298778 on 2017/02/12 by Max.Preussner MediaUtils: Experimenting with dynamic pitch adjustment Change 3298987 on 2017/02/13 by Max.Chen Editor: Add matrix and transform properties to property editor test object Change 3298997 on 2017/02/13 by Max.Chen Editor: It's now possible to specify Units and ForceUnits meta-data on struct properties - Doing so will cause any child numeric and struct properties to use these units by default (unless another unit was specified) - Added percentage unit type - Multiplier unit types can now be converted between Change 3298998 on 2017/02/13 by Max.Chen Editor: Conversion between multiplier (1.5x) and percentage (150%) units is now possible Change 3348678 on 2017/03/15 by Max.Preussner Media: Added Buffering media event Change 3355268 on 2017/03/20 by Max.Preussner Core: TQueue documentation updates Change 3359055 on 2017/03/22 by Max.Preussner Portal: Removed dependency to Messaging.h Change 3359060 on 2017/03/22 by Max.Preussner Messaging: Modernization pass - added missing includes & forward declarations - include what you use - deprecated shared pointer typedefs - replaced some delegates with callback interfaces - documentation fixes Change 3359189 on 2017/03/22 by Max.Preussner Automation: Modernization pass - include what you use - removed molothic header - documentation fixes #upgradenotes: IAutomationWorkerModule.h is now in the module's public root directory Change 3359718 on 2017/03/22 by Max.Preussner Messaging: Moved common helper classes into MessagingCommon module #upgradenotes: If you use the common helper classes, replace "Messaging" with "MessagingCommon" in your Build.cs files and remove the "Helpers/" subdirectory from your include statements (unless you actually include header files from "Messaging", in which case you need to keep "Messaging" and add "MessagingCommon"). Change 3359793 on 2017/03/23 by Max.Preussner TargetDeviceServices: Modernization pass - include what you use - removed boilerplate header - deprecated selected shared pointer typedefs - reorganized files - documentation fixes Change 3361028 on 2017/03/23 by Max.Preussner DeviceManager: Modernization pass - include what you use - reduced shared pointer typedef usage - documentation fixes Change 3361197 on 2017/03/23 by Max.Preussner Messaging: Waking up message router thread on shutdown Change 3361246 on 2017/03/23 by Max.Preussner AutomationWindow: Removed boilerplate header #upgradenotes: Replace includes of AutomationWindow.h with IAutomationWindowModule.h Change 3361428 on 2017/03/23 by Max.Preussner AutomationController: Removed boilerplate header #upgradenotes: Instead of AutomationController.h, include the individual interface headers that you actually use. Remove the "Interfaces/" subdirectory from existing interface inclusions. Change 3363206 on 2017/03/24 by Max.Preussner ProfileLauncher: Modernization pass - include what you use (selected files) - reduced shared pointer typedef usages - removed dead code - cleaned up file organization - documentation fixes Change 3363290 on 2017/03/24 by Max.Preussner LauncherServices: Removed boilerplate header #upgradenotes: Instead of including LauncherServices.h, include the ILauncherXXX.h files that you actually use. Remove the "Interfaces/" subdirectory from existing ILauncherXXX.h includes Change 3363305 on 2017/03/24 by Max.Preussner LauncherCheck: Removed boilerplate header #upgradenotes: Include ILauncherCheckModule.h instead of LauncherCheck.h. Remove "Interfaces/" subdirectory from existing ILauncherCheckModule.h inclusions Change 3363708 on 2017/03/24 by Max.Preussner ImageWrapper: Removed boilerplate header #upgradenotes: Instead of including ImageWrapper.h, include the actual IImageWrapperXXX.h files that you use. Remove the "Interfaces/" subdirectory from existing IImageWrapperXXX.h includes Change 3363966 on 2017/03/24 by Max.Preussner ImageWrapper: Modernization pass - include what you use - reorganized internal files - documentation fixes Change 3364579 on 2017/03/24 by Max.Preussner ImageWrapper: Deprecated shared pointer typedef and removed usages #upgradenotes: Please use TSharedPtr<IImageWrapper> instead of IImageWrapperPtr Change 3364582 on 2017/03/24 by Max.Preussner NetworkFileSystem: Removed monolithic boilerplate header #upgradenotes: Instead of including NetworkFileServer.h, include the INetworkFileXXX.h headers that you actually use. Remove the "Interfaces/" subdirectory from existing INetworkFileXXX.h includes Change 3381440 on 2017/04/05 by Max.Preussner Oculus: Removed illegal pragmas Change 3391731 on 2017/04/12 by Max.Preussner ImgMedia: Added support for BMP, JPG and PNG image sequences Change 3401146 on 2017/04/19 by Max.Preussner Core: Cleanup pass for FTimespan usages; updated documentation When initializing time span values from single components, consider using the FromHours, FromMinutes, FromSeconds, Zero, MinValue and related methods instead of calling the overloaded constructors as they will make your code easier to read and understand. Change 3401504 on 2017/04/20 by Max.Preussner MCP: Fixed incorrect FTimespan usage of GetMilliseconds instead of GetTotalMilliseconds Change 3401833 on 2017/04/20 by Max.Preussner Core: Various improvements to FTimespan - added proper serialization - updated documentation - access fractions as milli-, micro- or nanoseconds - removed the following string formatters as they were not useful: %D %H %M %S %F - updated documentation #upgradenotes: The %D string formatter (previously total number of days) is now the zero-padded days component of the time span. Time spans are now always exported and stringified with a leading plus or minus sign. #jira UE-43990 #jira UE-44163 Change 3437543 on 2017/05/12 by Max.Preussner PS4Media: Added audio error codes conversion Change 3446564 on 2017/05/18 by Max.Preussner Networking: Fixed nullpointer crash if socket initialization fails Change 3459978 on 2017/05/25 by Max.Preussner ImgMedia: Renamed frame cache to frame loader Change 3463311 on 2017/05/26 by Max.Preussner Core: Added iterators & predicate based methods to LRU Cache Change 3464452 on 2017/05/29 by Max.Preussner ImgMedia: Added video sample output Change 3464468 on 2017/05/29 by Max.Preussner Media: Added separate cache visualization for loaded and cached samples Change 3464592 on 2017/05/29 by Max.Preussner Core: Added TLruCache::FindAndTouch Change 3464607 on 2017/05/29 by Max.Preussner Core: Added TRange::Inclusive / ::Exclusive Change 3464608 on 2017/05/29 by Max.Preussner Media: Fixed incorrect upper bound in support play rates of various players Change 3466732 on 2017/05/30 by Max.Preussner ImgMedia: Added image compression type to info string Change 3466871 on 2017/05/31 by Max.Preussner WmfMedia: Fixed session capabilities not showing up; added initialization logging Change 3467785 on 2017/05/31 by Max.Preussner MfMedia: Fixed sample stride calculated from media input instead of output Change 3467963 on 2017/05/31 by Max.Preussner WmfMedia: Reordered media sub-type string conversion to fix some tracks being reported incorrectly Change 3468110 on 2017/05/31 by Max.Preussner WmfMedia: Added MPEG-2 media sub types to utils Change 3468516 on 2017/05/31 by Max.Preussner AndroidMedia: Allow mediaplayer audio to be disable on Android (UE-45570) Change 3468554 on 2017/05/31 by Max.Preussner MediaAssets: Added AutoClear option to automatically clear media texture when media is unloaded Change 3468627 on 2017/05/31 by Max.Preussner ImgMedia: Allowing for auto-selection of EXR decoder thread count Change 3468648 on 2017/05/31 by Max.Preussner ImgMedia: Reorganized OpenExrWrapper files Change 3471789 on 2017/06/02 by Max.Preussner WmfMedia: Fixed potential concurrency issue in session state management Change 3472918 on 2017/06/03 by Max.Preussner Core: Allowing zero sized LRU cache; added default constructor Change 3472919 on 2017/06/03 by Max.Preussner Media: Added pre-Slate tick stage; renamed some functions; continued to implement sample caching Change 3473704 on 2017/06/05 by Max.Preussner AndroidMedia: Added settings class Change 3474407 on 2017/06/05 by Max.Preussner AndroidMedia: Implemented video sample processing Change 3474934 on 2017/06/05 by Max.Preussner ImgMedia: Fixed crash due to deleting loader work items twice (UE-45705) #jira UE-45705 Change 3476925 on 2017/06/06 by Max.Preussner Media: Added return values to media view interface; documentation fixes Change 3477158 on 2017/06/06 by Max.Preussner SwitchMedia: Implemented sample pooling Change 3477201 on 2017/06/07 by Max.Preussner PS4Media: Implemented video sample pooling Change 3481470 on 2017/06/08 by Max.Preussner Media: Fixed time stamps not set in recycled texture samples Change 3481472 on 2017/06/08 by Max.Preussner MediaAssets: Fixed no video samples fetched while player is in buffering state Change 3481473 on 2017/06/08 by Max.Preussner MediaUtils: Added default constructor to MediaSampleQueue Change 3481584 on 2017/06/08 by Max.Preussner MediaUtils: Paused state is considered forward for sample lookup as this is the common case. Change 3481588 on 2017/06/08 by Max.Preussner PS4Media: Redesigned the PS4 media player to support async file loading & track switching Change 3481627 on 2017/06/08 by Max.Preussner PS4Media: Opening media sources in thread pool if not precaching Change 3481666 on 2017/06/08 by Max.Preussner ImgMedia: Fixed SequencePath property file picker always opening default path Change 3481669 on 2017/06/08 by Max.Preussner ImgMedia: Fixed crash when quering cache state of empty image sequence Change 3481685 on 2017/06/08 by Max.Preussner ImgMedia: Fixed EXR reader failing to play slow loading sequences (UE-45719) #jira UE-45719 Change 3483623 on 2017/06/10 by Max.Preussner Media: Added getters for 360 view settings; added support for relative view updates Change 3483624 on 2017/06/10 by Max.Preussner Media: Added Blueprint support for 360 videos Change 3483626 on 2017/06/10 by Max.Preussner MediaPlayerEditor: Added 360 video mouse controls; broke out viewport widget into separate class. Change 3483627 on 2017/06/10 by Max.Preussner Core: Using system start time instead of current time for renamed log file names Change 3483630 on 2017/06/10 by Max.Preussner Core: Grouping log files by log name and processing each group separately when deleting old log files Change 3483816 on 2017/06/10 by Max.Preussner WmfMedia: Detecting audio device availability to prevent lockup of audio tracks Change 3483939 on 2017/06/11 by Max.Preussner AvfMedia: Finished Media Framework 3.0 upgrade - overhauled track switching - removed render thread flushes - reduced nesting - code cleanup pass Change 3483940 on 2017/06/11 by Max.Preussner Media: Consistent track switching behavior across platforms Change 3484172 on 2017/06/11 by Max.Preussner MediaPlayerEditor: Removed obsolete asset type actions Change 3484180 on 2017/06/11 by Max.Preussner MediaPlayerEditor: Fixed media player info overlays not visible during mouse capture Change 3484248 on 2017/06/11 by Max.Preussner MediaAssets: Media players now always have a playlist Change 3484249 on 2017/06/11 by Max.Preussner MediaPlayerEditor: Added UI controls to Playlist tab Change 3484250 on 2017/06/11 by Max.Preussner Media: Implemented overlay sample caching Change 3484252 on 2017/06/11 by Max.Preussner WmfMedia: Enabled support for .smi and .sami subtitle files Change 3485433 on 2017/06/12 by Max.Preussner ImgMedia: Enabled plug-in on all platforms; enabled EXR only on platforms that support it Change 3485720 on 2017/06/12 by Max.Preussner MediaPlayerEditor: Added ability to save playlists Change 3485828 on 2017/06/12 by Max.Preussner AvfMedia: Thread-safe ticking of video sampler; ticking audio processing on high frequency thread Change 3485926 on 2017/06/12 by Max.Preussner MediaUtils: Draining all unconsumed samples at the end of a frame Change 3486043 on 2017/06/12 by Max.Preussner Media: Consistent behavior for playlist navigation (UE-45964) #jira UE-45964 Change 3486104 on 2017/06/12 by Max.Preussner MediaPlayerEditor: Implemented simple overlay text positioning Change 3486145 on 2017/06/12 by Max.Preussner AndroidMediaPlayer: Moved video sample handling into render thread Change 3486147 on 2017/06/12 by Max.Preussner MediaPlayerEditor: Moved overlay texts into separate layer Change 3486188 on 2017/06/12 by Max.Preussner Media: Enabling media factory modules in Editor for all players Change 3486223 on 2017/06/12 by Max.Preussner Media: Defaulting players to select first audio and video tracks by default Change 3486473 on 2017/06/13 by Max.Preussner Media: Buffering is no longer a media player state, but handled separately (for players that can buffer while playing) Change 3486475 on 2017/06/13 by Max.Preussner MediaPlayerEditor: Showing busy bar when buffering or preparing Change 3487237 on 2017/06/13 by Max.Preussner AndroidMedia: Fixed video sample not getting processed on render thread Change 3487507 on 2017/06/13 by Michael.Trepka AvfMedia - small cleanup of the code for passing video frame rate to the video sampler Change 3487719 on 2017/06/13 by Michael.Trepka Disable shared PCH in OpenExrWrapper to solve a problem with bUseRTTI mismatch between the module and the PCH Change 3487842 on 2017/06/13 by Max.Preussner AndroidMedia: Fixed texture swizzle disabled on non-Engine builds Change 3488006 on 2017/06/13 by Michael.Trepka AvfMedia - Moved some logic from FAvfMediaPlayer::TickTickable() to FAvfMediaTracks::ProcessAudio() to make it thread safe, plus fixed a bug with the player not setting the current status to Stopped after opening a file Change 3488308 on 2017/06/13 by Chris.Babcock AndroidMedia: Fixed flicker issue #jira UE-45736 Change 3488335 on 2017/06/13 by Max.Preussner MediaAssets: Made UFileMediaSource::GetFullPath public Change 3488338 on 2017/06/13 by Max.Preussner MediaPlayerEditor: Fixed "Show file in Explorer" not working for file media sources Change 3488339 on 2017/06/13 by Max.Preussner MediaPlayerEditor: Showing a throbber when buffering player Change 3488768 on 2017/06/14 by Max.Preussner Core: Inlined FTimespan static functions hange 3490203 on 2017/06/14 by Max.Preussner Core: Force inlined TComPtr operators Change 3494083 on 2017/06/15 by Chris.Babcock AndroidMedia: Fix playlist looping (send PlaybackEndReached event) #jira UE-46086 Change 3497017 on 2017/06/16 by Max.Preussner MediaAssets: Playlists now auto advance with PlayOnOpen off Change 3497075 on 2017/06/17 by Chris.Babcock MediaPlayer Sampler node and external texture support for Android MediaPlayer - enable with USE_EXTERNALTEXTURE in AndroidMediaPlayer.cpp (disabled in this CL) - supports MediaSample node in material editor with scale/bias handled if above flag enabled - fixed looping problems, including eventual crashes - track switching fixed (lockups and missing video) - corrected resource leaks and crash switching maps #jira UE-46055 #jira UE-45744 #jira UE-46086 Change 3497163 on 2017/06/17 by Max.Preussner MediaUtils: Processing media events immediately if on game thread Change 3497170 on 2017/06/17 by Max.Preussner Media: All Media Framework interfaces are pure virtual Change 3498603 on 2017/06/19 by Ben.Marsh UBT: Prevent plugins which list modules multiple times from adding them twice. Change 3500870 on 2017/06/20 by Max.Preussner WmfMedia: Rewrote WMF state machine; now with track switching #jira UE-20209 #jira UE-35385 #jira UE-38337 #jira UE-45676 Change 3502181 on 2017/06/20 by Chris.Babcock MediaSampler node updates - fixed issue with ExternalTexture singleton for DLL compatiblity - now works for all players (registers texture samples with ExternalTexture by player GUID) - enabled OES in AndroidMediaPlayer now that materials can universally use the MediaSampler Change 3503182 on 2017/06/21 by Max.Preussner Media: Refactored status flags into an enum; exposed connecting status Change 3503724 on 2017/06/21 by Chris.Babcock Improvement in MediaPlayer Sampler node - RGB, R, G, B, A output pins like normal texture sampler - allow preview in material editor - fix OES detection for Android Change 3509088 on 2017/06/26 by Max.Preussner MediaAssets: Added AddFile and AddUrl to UMediaPlaylist Change 3510256 on 2017/06/26 by Max.Preussner WmfMedia: Fixed play rate not set to zero when end reached Change 3510273 on 2017/06/26 by Max.Preussner MediaPlayerEditor: Removed obsolete Slate culling rectangle code Change 3510413 on 2017/06/26 by Max.Preussner MediaPlayerEditor: Showing frame rate if available Change 3510533 on 2017/06/26 by Max.Preussner MediaUtils: Preventing media cache filling up when scrubbing Change 3510859 on 2017/06/26 by Max.Preussner PS4Media: Fixed track switching crashes (UE-45960) #jira UE-45960 Change 3514173 on 2017/06/28 by Max.Preussner WmfMedia: Optimized player capabilities check Change 3514174 on 2017/06/28 by Max.Preussner WmfMedia: Moved media source resolver code into utility class Change 3514714 on 2017/06/28 by Max.Preussner Core: Added TComPointer.IsValid; code cleanup pass Change 3517912 on 2017/06/30 by Max.Preussner MediaUtils: Added GetVideoAspectRatio to player facade Change 3524957 on 2017/07/06 by Max.Preussner ImgMedia: Decoding image frames only when video track is selected Change 3525252 on 2017/07/06 by Max.Preussner ImgMedia: Async image sequence initialization Change 3525266 on 2017/07/06 by Max.Preussner ImgMedia: Enabled reverse playback Change 3525722 on 2017/07/06 by Max.Preussner WmfMedia: Workaround for occasional WMF internal deadlock in IMFRateSupport Change 3525800 on 2017/07/07 by Max.Preussner WmfMedia: Fixed another WMF deadlock issue & some rate change glitches; improved logging. Change 3525801 on 2017/07/07 by Max.Preussner MediaPlayerEditor: Made scrubbing more responsive Change 3526500 on 2017/07/07 by Max.Preussner WmfMedia: Using NULL for Windows pointers Change 3527323 on 2017/07/07 by Max.Preussner WmfMedia: Added support for audio and video capture media sources Change 3530197 on 2017/07/10 by Max.Preussner WmfMedia: Added utility functions for enumerating audio and video capture devices Change 3533465 on 2017/07/12 by Max.Preussner Media: Added media capture device support API & implementation for WMF Change 3533469 on 2017/07/12 by Max.Preussner MediaPlayerEditor: Added source selection menu w/ capture device menu to navigation bar Change 3533540 on 2017/07/12 by Max.Preussner MediaAssets: Blueprint support for media capture device discovery Change 3533574 on 2017/07/12 by Max.Preussner WmfMedia: Using cached supported play rates; more strict pausing support check Change 3533924 on 2017/07/12 by Max.Preussner WmfMedia: Added global LowLatency setting (UEVR-859) Note that this setting is only supported when compiling for Windows 8 or newer. Change 3534027 on 2017/07/12 by Max.Preussner WmfMedia: Compile time support for low latency session attribute on < Windows8 #jira UEVR-859 Change 3538744 on 2017/07/14 by Max.Preussner MediaUtils: Renamed FDefaultMediaTimeSource to FAppMediaTimeSource Change 3542818 on 2017/07/18 by Max.Preussner WmfMedia: Fixed race condition on session shutdown Change 3543082 on 2017/07/18 by Max.Preussner WmfMedia: Fixed track selection in media that doesn't support seeking Change 3543092 on 2017/07/18 by Max.Preussner Media: Implemented media track format API Enables multiple formats per media track. By default, the first usable format is selected. This feature is currently only implemented for WmfMedia. All other players assume a single format per track. Change 3543794 on 2017/07/19 by Max.Preussner WmfMedia: Added string conversion for null GUIDs Change 3543796 on 2017/07/19 by Max.Preussner MfMedia: Copied GUID string conversion updates from WmfMedia Change 3543797 on 2017/07/19 by Max.Preussner WmfMedia: Preventing duplicate track formats in capture devices with legacy DirectX support Change 3544390 on 2017/07/19 by Max.Preussner Media: Allowing INDEX_NONE as 'current selection' index in track format related functions Change 3545368 on 2017/07/19 by Max.Preussner WmfMedia: Fixed session error with some media sources when attempting to seek to current position without ever starting Change 3545388 on 2017/07/19 by Max.Preussner MediaAssets: Fixed RGB input sources rendered upside down Change 3545430 on 2017/07/19 by Max.Preussner MediaAssets: Fixed incorrect sRGB conversion on BMP inputs Change 3547362 on 2017/07/20 by Max.Preussner Core: Added IsGraph and IsPrint to TCHAR utilities Change 3547376 on 2017/07/20 by Max.Preussner WmfMedia: Better log messages for non-standard video types (UE-47533) #jira UE-47533 Change 3547404 on 2017/07/20 by Max.Preussner QAGame: Enabled PlayOnOpen and Looping on MediaPlayerSwitch BP (UE-47542) #jira UE-47542 Change 3547466 on 2017/07/20 by Max.Preussner WmfMedia: Fixed edge case for detecting whether pause is available Change 3548742 on 2017/07/21 by Max.Preussner Media: Added API for changing the input frame rate Change 3548743 on 2017/07/21 by Max.Preussner WmfMedia: Implemented ability to change input frame rate Change 3554411 on 2017/07/25 by Max.Preussner AudioMixer: Broke out SynthComponent initialization code; added bIsUISound property Change 3554818 on 2017/07/25 by Max.Preussner Media: Added per track-type cache queries Change 3557284 on 2017/07/26 by Max.Preussner WmfMedia: Added buffer size check in texture sample as well Change 3560530 on 2017/07/27 by Max.Preussner WmfMedia: Made COM object destructors private and added assertions Change 3560580 on 2017/07/27 by Max.Preussner MediaUtils: Added method for querying number of objects in pool Change 3562572 on 2017/07/28 by Max.Preussner WmfMedia: Properly handling topology status errors when opening media Change 3576710 on 2017/08/08 by Chris.Babcock bug fixes for mediaplayer - rare cases in Android media tracks - make FMediaCaptureDevice members available in blueprints Change 3577736 on 2017/08/08 by Chris.Babcock Extend ExternalTexture to support 2x3 transform (scale/rotation + offset) Change 3578831 on 2017/08/09 by Max.Preussner MediaAssets: Made media sound component BP spawnable Change 3579210 on 2017/08/09 by Max.Preussner UdpMessaging: Not showing warning message if tunnel settings left empty to use defaults Change 3579547 on 2017/08/09 by Chris.Babcock Better support for Android external texture detection Change 3579567 on 2017/08/09 by Chris.Babcock Android camera plugin #jira UEMOB-215 Change 3580035 on 2017/08/10 by Andrew.Rodham Media Texture: External textures are now fully supported and enforced when attempting to sample external texture types in materials. - Textures can now dynamically provide an external texture GUID at runtime, which is queried by the uniform expression. Statically defined GUIDs remain supported. - Added necessary ExternalTexture(Parameter) methods to the material compiler and HLSL translator - Made UTexture::GetMaterialType const-correct #tests Test map that contains TextureObject, TextureObjectParameter, TextureSample and TextureSampleParameter nodes with media textures works on both a Nexus 10 (non-image-external), and a Pixel (image-external), and on desktop PC. Change 3581552 on 2017/08/10 by Chris.Babcock Use bilinear sampling instead of point for external texture (Android media and camera) Change 3581628 on 2017/08/10 by Max.Preussner Core: Fixed FTimespan import/export/copypaste (UE-43990) #jira UE-43990 #jira UE-44163 Change 3581909 on 2017/08/11 by Andrew.Rodham Media: Only cache material proxy pointers if they have been initialized (and thus, will be removed from the cache on release) - This prevents destroyed proxies from remaining in the texture registry #jira UE-48307 Change 3582451 on 2017/08/11 by Max.Preussner AudioMixer: Fixed initialization order of synth components This ensures that the Synth is initialized before OnRegister in the super class initializes and activates the AudioComponents. Previously, the AudioComponent would fail to activate, because Synth was nullptr. #jira UE-48055 Change 3582453 on 2017/08/11 by Max.Preussner MediaAssets: Enabling ticking in media sound component (UE-48055) #jira UE-48055 Change 3583101 on 2017/08/11 by Chris.Babcock Android camera improvements - return correct capture device type (webcamfront/rear) - remove seek (not supported) - support track formats - better framerate selection Change 3590109 on 2017/08/16 by Chris.Babcock Move external texture coordinate update to improve accuracy and save a uniform in final shader Change 3590530 on 2017/08/16 by Max.Preussner MediaAssets: Changed capture device enumeration BP function signatures to allow filter bit masks #jira UE-48166 Change 3590547 on 2017/08/16 by Max.Preussner MediaPlayerEditor: Ticking sound component directly Change 3590628 on 2017/08/16 by Max.Preussner Switch: Fixed media decoder asserting when attempting to pause without having started Change 3591816 on 2017/08/16 by Aaron.McLeran #jira UE-48470 Disabling async processing for procedural sound waves on mac. Change 3592266 on 2017/08/16 by Max.Preussner Media: Replaced media cache with the new sample processing pipeline; continued to implement MfMedia This change fixes stuttering issues with audio and video. However, proper pipeline flushing is not fully implemented yet, so the playback will break after the first playthrough, which might result in freeze frames or out of memory assertions depending on the platform. This will be addressed in an upcoming change. #jira UE-48474 #jira UE-45677 Change 3592355 on 2017/08/17 by Max.Preussner MediaUtils: Added sample sink collection to remove code duplication Change 3592739 on 2017/08/17 by Max.Preussner ImgMedia: Fetching only one video sample per frame Change 3592741 on 2017/08/17 by Max.Preussner MediaUtils: Better sample fetching when paused Change 3592761 on 2017/08/17 by Max.Preussner MediaUtils: Fixed overflow detection in sample sinks Change 3592762 on 2017/08/17 by Max.Preussner ImgMedia: Sending end reached event when looping Change 3592885 on 2017/08/17 by Max.Preussner ImgMedia: Fixed reverse play Change 3592887 on 2017/08/17 by Max.Preussner MediaUtils: Better sample range calculation for audio samples Change 3593010 on 2017/08/17 by Max.Preussner ImgMedia: Fixed async loading of non-EXR image sequences Change 3593193 on 2017/08/17 by Max.Preussner AndroidMedia: Fixed typo Change 3593230 on 2017/08/17 by Max.Preussner Media: Implemented flushing for player sample queues Change 3593346 on 2017/08/17 by Max.Preussner Media: Proper sample processing for reverse playback Change 3593482 on 2017/08/17 by Max.Preussner Switch: Fixed sample range check for reverse playback Change 3594428 on 2017/08/17 by Max.Preussner PS4Media: Fixed video not playing/crashing #jira UE-48547 #jira UE-48549 Change 3595404 on 2017/08/17 by Max.Preussner MediaAssets: Not requesting audio samples if not playing #jira UE-48557 Change 3595624 on 2017/08/17 by Max.Preussner PS4Media: Fixed no looping after track switching #jira UE-46524 #jira UE-48557 Change 3595704 on 2017/08/17 by Max.Preussner MediaUtils: Improved sample queue flushing Eventually this needs to be event-driven. #jira UE-48557 Change 3595706 on 2017/08/17 by Max.Preussner PS4Media: Flushing queues when track switching #jira UE-48557 Change 3595909 on 2017/08/17 by Max.Preussner Matinee: Fix Matinee redirect missing as UClass has been GC'ed (GitHub PR #3382) https://github.com/EpicGames/UnrealEngine/pull/3382 #jira UE-42906 #rn Fix Matinee redirect missing as UClass has been GC'ed (GitHub PR #3382) Change 3597480 on 2017/08/18 by Max.Preussner ImgMediaPlayer: Fixed presentation time calculation for very large delta times Change 3597669 on 2017/08/18 by Max.Preussner ImgMedia: Setting player stopped instead of paused when end reached Change 3597709 on 2017/08/18 by Max.Preussner SwitchMedia: Fixed audio sample duration calculation Change 3598479 on 2017/08/18 by Max.Preussner ImgMedia: Ensuring that first/last frame is played when starting playback forward/reverse; improved state checking; user logging Change 3598629 on 2017/08/18 by Max.Preussner MediaUtils: Properly handling pending flushes when peeking sample queues Change 3598633 on 2017/08/18 by Max.Preussner WmfMedia: Fixed occasional WMF deadlock when scrubbing Change 3598653 on 2017/08/18 by Max.Preussner MediaUtils: Fixed audio resampling in reverse playback Change 3598659 on 2017/08/18 by Max.Preussner MediaPlayerEditor: Creating sound output only if audio device available Change 3598688 on 2017/08/18 by Max.Preussner MediaUtils: Flushing sample queues on direction change regardless of paused state Change 3599444 on 2017/08/20 by Max.Preussner WmfMedia: Added missing check for rate control when quering supported rates Change 3603661 on 2017/08/22 by Max.Preussner WmfMedia: Fixed NV12 output Change 3604345 on 2017/08/23 by Max.Preussner MediaUtils: Added subtitle samples to media sample collection; fixed documentation Change 3604987 on 2017/08/23 by Max.Preussner PS4Media: Setting correct track format types Change 3605117 on 2017/08/23 by Joe.Barnes Fix issue where presentation time was being treated as milliseconds instead of microseconds. Change 3605128 on 2017/08/23 by Joe.Barnes Fix potential issue calculating total (looped) play time after seek or reset. Track last video presentation time Change 3605139 on 2017/08/23 by Joe.Barnes Support audio type DType_Setup. Fix issue with procedural sounds popping. Consume more samples if necessary. #jira ue-48544 Change 3605197 on 2017/08/23 by Max.Preussner Media: Fixed track display name formatting (UE-48767) #jira UE-48767 Change 3605817 on 2017/08/23 by Max.Chen Auto set sampler type on drop on actor. #jira UE-48769 Change 3605999 on 2017/08/23 by Max.Preussner MfMedia: Restarting source reader when switching tracks #jira UE-48766 Change 3606416 on 2017/08/23 by Max.Preussner PS4Media: Various player improvements #jira UE-48586 Change 3607656 on 2017/08/24 by Max.Preussner WmfMedia: Improved logging for Seek and SetRate Change 3607855 on 2017/08/24 by Max.Preussner MfMedia: Better verbose logging; validating seeks; reduced nesting; fixed track switching\ #jira UE-48766 Change 3608029 on 2017/08/24 by Max.Preussner PS4Media: Fixed streaming media not playing; improved result checks & logging #jira UE-48610 Change 3608473 on 2017/08/24 by Max.Preussner MfMedia: Fixed audio sample duration calculation #jira UE-48756 Change 3609316 on 2017/08/24 by Chris.Babcock Provide external texture RotationScale and Offset from sample Change 3610067 on 2017/08/25 by Richard.Wallis Mac: Editor locks up when Track switching and Mac: Media Audio continues to play after closing player. - Fix for creating extra OS AV media playback objects so audio playback not stopping due to over retained objects. - Trying to access OS AV Media Playback object (esp. the currentTime value) across mutliple threads at once seems to cause deadlock in the Apple libraries - moved location of currentTime acess point to Media Ticker - this sets the current time and is then just returned in the getter when on game main. - Trying to playback audio via OS media playback and through the engine at the same time when enabling the selected audio track. Engine version via sample buffers via AVAssetReaderTrackOutput doesn't seem to be working as intended with the new audio frame work audio sinks - so reverting to OS AV media playback for Mac at the moment until better fix for this can be put in. #jira UE-48590, UE-48604 Change 3610267 on 2017/08/25 by Max.Preussner PS4Media: Added missing track selection validation #jira UE-48765 Change 3610399 on 2017/08/25 by Max.Preussner PS4Media: Fixed infinite player re-initialization loop if track selection failed Change 3610809 on 2017/08/25 by Chris.Babcock Fixes for Android media player and camera player - buffer samples copy proper bytecount - realloc sets new buffer ptr - refcount of Java buffers fixed Change 3610953 on 2017/08/25 by Chris.Babcock Fix audio disable before play on Android media player Change 3611405 on 2017/08/25 by Max.Preussner WmfMedia: Resetting supported rates if RateSupport unavailable Change 3611406 on 2017/08/25 by Max.Preussner MfMedia: Resetting supported rates if RateSupport unavailable Change 3611453 on 2017/08/25 by Chris.Babcock Android external texture extension updates for compatibility Change 3611719 on 2017/08/26 by Max.Preussner Media: Added media event for completed seek operations; flushing sinks on seek Change 3611764 on 2017/08/26 by Max.Preussner AvfMedia: Setting player to preparing state prior to initializing tracks asynchronously Change 3611802 on 2017/08/26 by Max.Preussner Media: Exposed error state in media player Change 3611803 on 2017/08/26 by Max.Preussner MediaPlayerEditor: Showing error state in UI Change 3611887 on 2017/08/26 by Max.Preussner MediaUtils: Corrected media sample sink overflow check Change 3611892 on 2017/08/27 by Max.Preussner WmfMedia: Leaving session in error state after error Change 3611929 on 2017/08/27 by Max.Preussner MediaPlayerEditor: Fixed sound stopping on looping Change 3611930 on 2017/08/27 by Max.Preussner MfMedia: Rewrote async sample processing to fix various playback issues Change 3611942 on 2017/08/27 by Max.Preussner Media: Sending suspension event when playback ended Change 3611957 on 2017/08/27 by Max.Preussner UnrealEd: Allowed transient assets to be resaved to disk Change 3611981 on 2017/08/27 by Max.Preussner PS4Media: Rewrote sample processing to fix various playback issues #jira UE-48596 #jira UE-48793 Change 3612035 on 2017/08/27 by Max.Preussner UnrealEd: Picking standard default names when resaving transient packages Change 3612045 on 2017/08/27 by Max.Preussner Media: Fixed playlists not getting saved correctly from Editor (UE-35382) #jira UE-35382 Change 3612212 on 2017/08/28 by Richard.Wallis Fix for Multitrack Video samples continue to Play on Open after Play on Open is toggled off. Current Rate was not getting reset back to 0.0 on media close. #jira UE-47602 Change 3613531 on 2017/08/28 by Max.Preussner MediaAssets: Fixed external texture related crash on shutdown (UE-48918) Also no longer creating clock sink for media player CDO #jira UE-48918 Change 3613677 on 2017/08/28 by Andrew.Porter Fixed crash at exit in Mac editor caused by double release of AVPlayerItem object #jira UE-48937 Change 3615917 on 2017/08/29 by Max.Preussner MfMedia: Added compile options for DXVA and falling back to synchronous sample reading [CL 3617655 by Max Chen in Main branch]
2017-08-30 09:37:09 -04:00
struct FPreInitContext
{
bool bDumpEarlyConfigReads = false;
bool bDumpEarlyPakFileReads = false;
bool bForceQuitAfterEarlyReads = false;
bool bWithConfigPatching = false;
bool bDisableDisregardForGC = false;
bool bHasEditorToken = false;
bool bIsRegularClient = false;
UE_DEPRECATED(5.1, "Use bIsPossiblyUnrecognizedCommandlet instead")
bool bTokenDoesNotHaveDash = false;
bool bIsPossiblyUnrecognizedCommandlet = false;
FString Token;
const TCHAR* CommandletCommandLine = nullptr;
TCHAR* CommandLineCopy = nullptr;
FScopedSlowTask* SlowTaskPtr = nullptr;
void Cleanup();
#if WITH_ENGINE && !UE_SERVER
TSharedPtr<FSlateRenderer> SlateRenderer;
#endif // WITH_ENGINE && !UE_SERVER
};
/**
* Implements the main engine loop.
*/
class FEngineLoop
#if WITH_ENGINE
: public IEngineLoop
#endif
{
public:
Copying //UE4/Dev-Sequencer to //UE4/Main (Source: //UE4/Dev-Sequencer @ 3617642) #lockdown nick.penwarden #rb none Change 3235667 on 2016/12/14 by Max.Preussner Media: Moved enums into separate header file, so they can be shared Change 3259266 on 2017/01/16 by Max.Preussner Core: Added timespan ratio Change 3267229 on 2017/01/21 by Max.Preussner Editor: Fixed texture samplers in materials not getting notified when sRGB mode changed Change 3274773 on 2017/01/27 by Max.Preussner Core: Added TLruCache template Change 3281579 on 2017/02/01 by Max.Preussner Core: Added scalar division to FTimespan Change 3289522 on 2017/02/07 by Max.Preussner MediaAssets: Added looping for play lists Change 3290664 on 2017/02/07 by Max.Preussner Engine: Moved UTexture material notification code into separate function, so it can be used by derived classes. Change 3290688 on 2017/02/07 by Max.Preussner MediaAssets: Notifying materials when media texture properties changed. Change 3291171 on 2017/02/07 by Max.Preussner MediaAssets: Filtering unused UTexture properties Change 3291229 on 2017/02/07 by Max.Preussner ImgMedia: Use displayWindow instead of dataWindow due to bug in OpenEXR with data window min < 0 Change 3298520 on 2017/02/11 by Max.Preussner Sequencer: Fixed skylight and reflection components off by one frame in PIE Change 3298778 on 2017/02/12 by Max.Preussner MediaUtils: Experimenting with dynamic pitch adjustment Change 3298987 on 2017/02/13 by Max.Chen Editor: Add matrix and transform properties to property editor test object Change 3298997 on 2017/02/13 by Max.Chen Editor: It's now possible to specify Units and ForceUnits meta-data on struct properties - Doing so will cause any child numeric and struct properties to use these units by default (unless another unit was specified) - Added percentage unit type - Multiplier unit types can now be converted between Change 3298998 on 2017/02/13 by Max.Chen Editor: Conversion between multiplier (1.5x) and percentage (150%) units is now possible Change 3348678 on 2017/03/15 by Max.Preussner Media: Added Buffering media event Change 3355268 on 2017/03/20 by Max.Preussner Core: TQueue documentation updates Change 3359055 on 2017/03/22 by Max.Preussner Portal: Removed dependency to Messaging.h Change 3359060 on 2017/03/22 by Max.Preussner Messaging: Modernization pass - added missing includes & forward declarations - include what you use - deprecated shared pointer typedefs - replaced some delegates with callback interfaces - documentation fixes Change 3359189 on 2017/03/22 by Max.Preussner Automation: Modernization pass - include what you use - removed molothic header - documentation fixes #upgradenotes: IAutomationWorkerModule.h is now in the module's public root directory Change 3359718 on 2017/03/22 by Max.Preussner Messaging: Moved common helper classes into MessagingCommon module #upgradenotes: If you use the common helper classes, replace "Messaging" with "MessagingCommon" in your Build.cs files and remove the "Helpers/" subdirectory from your include statements (unless you actually include header files from "Messaging", in which case you need to keep "Messaging" and add "MessagingCommon"). Change 3359793 on 2017/03/23 by Max.Preussner TargetDeviceServices: Modernization pass - include what you use - removed boilerplate header - deprecated selected shared pointer typedefs - reorganized files - documentation fixes Change 3361028 on 2017/03/23 by Max.Preussner DeviceManager: Modernization pass - include what you use - reduced shared pointer typedef usage - documentation fixes Change 3361197 on 2017/03/23 by Max.Preussner Messaging: Waking up message router thread on shutdown Change 3361246 on 2017/03/23 by Max.Preussner AutomationWindow: Removed boilerplate header #upgradenotes: Replace includes of AutomationWindow.h with IAutomationWindowModule.h Change 3361428 on 2017/03/23 by Max.Preussner AutomationController: Removed boilerplate header #upgradenotes: Instead of AutomationController.h, include the individual interface headers that you actually use. Remove the "Interfaces/" subdirectory from existing interface inclusions. Change 3363206 on 2017/03/24 by Max.Preussner ProfileLauncher: Modernization pass - include what you use (selected files) - reduced shared pointer typedef usages - removed dead code - cleaned up file organization - documentation fixes Change 3363290 on 2017/03/24 by Max.Preussner LauncherServices: Removed boilerplate header #upgradenotes: Instead of including LauncherServices.h, include the ILauncherXXX.h files that you actually use. Remove the "Interfaces/" subdirectory from existing ILauncherXXX.h includes Change 3363305 on 2017/03/24 by Max.Preussner LauncherCheck: Removed boilerplate header #upgradenotes: Include ILauncherCheckModule.h instead of LauncherCheck.h. Remove "Interfaces/" subdirectory from existing ILauncherCheckModule.h inclusions Change 3363708 on 2017/03/24 by Max.Preussner ImageWrapper: Removed boilerplate header #upgradenotes: Instead of including ImageWrapper.h, include the actual IImageWrapperXXX.h files that you use. Remove the "Interfaces/" subdirectory from existing IImageWrapperXXX.h includes Change 3363966 on 2017/03/24 by Max.Preussner ImageWrapper: Modernization pass - include what you use - reorganized internal files - documentation fixes Change 3364579 on 2017/03/24 by Max.Preussner ImageWrapper: Deprecated shared pointer typedef and removed usages #upgradenotes: Please use TSharedPtr<IImageWrapper> instead of IImageWrapperPtr Change 3364582 on 2017/03/24 by Max.Preussner NetworkFileSystem: Removed monolithic boilerplate header #upgradenotes: Instead of including NetworkFileServer.h, include the INetworkFileXXX.h headers that you actually use. Remove the "Interfaces/" subdirectory from existing INetworkFileXXX.h includes Change 3381440 on 2017/04/05 by Max.Preussner Oculus: Removed illegal pragmas Change 3391731 on 2017/04/12 by Max.Preussner ImgMedia: Added support for BMP, JPG and PNG image sequences Change 3401146 on 2017/04/19 by Max.Preussner Core: Cleanup pass for FTimespan usages; updated documentation When initializing time span values from single components, consider using the FromHours, FromMinutes, FromSeconds, Zero, MinValue and related methods instead of calling the overloaded constructors as they will make your code easier to read and understand. Change 3401504 on 2017/04/20 by Max.Preussner MCP: Fixed incorrect FTimespan usage of GetMilliseconds instead of GetTotalMilliseconds Change 3401833 on 2017/04/20 by Max.Preussner Core: Various improvements to FTimespan - added proper serialization - updated documentation - access fractions as milli-, micro- or nanoseconds - removed the following string formatters as they were not useful: %D %H %M %S %F - updated documentation #upgradenotes: The %D string formatter (previously total number of days) is now the zero-padded days component of the time span. Time spans are now always exported and stringified with a leading plus or minus sign. #jira UE-43990 #jira UE-44163 Change 3437543 on 2017/05/12 by Max.Preussner PS4Media: Added audio error codes conversion Change 3446564 on 2017/05/18 by Max.Preussner Networking: Fixed nullpointer crash if socket initialization fails Change 3459978 on 2017/05/25 by Max.Preussner ImgMedia: Renamed frame cache to frame loader Change 3463311 on 2017/05/26 by Max.Preussner Core: Added iterators & predicate based methods to LRU Cache Change 3464452 on 2017/05/29 by Max.Preussner ImgMedia: Added video sample output Change 3464468 on 2017/05/29 by Max.Preussner Media: Added separate cache visualization for loaded and cached samples Change 3464592 on 2017/05/29 by Max.Preussner Core: Added TLruCache::FindAndTouch Change 3464607 on 2017/05/29 by Max.Preussner Core: Added TRange::Inclusive / ::Exclusive Change 3464608 on 2017/05/29 by Max.Preussner Media: Fixed incorrect upper bound in support play rates of various players Change 3466732 on 2017/05/30 by Max.Preussner ImgMedia: Added image compression type to info string Change 3466871 on 2017/05/31 by Max.Preussner WmfMedia: Fixed session capabilities not showing up; added initialization logging Change 3467785 on 2017/05/31 by Max.Preussner MfMedia: Fixed sample stride calculated from media input instead of output Change 3467963 on 2017/05/31 by Max.Preussner WmfMedia: Reordered media sub-type string conversion to fix some tracks being reported incorrectly Change 3468110 on 2017/05/31 by Max.Preussner WmfMedia: Added MPEG-2 media sub types to utils Change 3468516 on 2017/05/31 by Max.Preussner AndroidMedia: Allow mediaplayer audio to be disable on Android (UE-45570) Change 3468554 on 2017/05/31 by Max.Preussner MediaAssets: Added AutoClear option to automatically clear media texture when media is unloaded Change 3468627 on 2017/05/31 by Max.Preussner ImgMedia: Allowing for auto-selection of EXR decoder thread count Change 3468648 on 2017/05/31 by Max.Preussner ImgMedia: Reorganized OpenExrWrapper files Change 3471789 on 2017/06/02 by Max.Preussner WmfMedia: Fixed potential concurrency issue in session state management Change 3472918 on 2017/06/03 by Max.Preussner Core: Allowing zero sized LRU cache; added default constructor Change 3472919 on 2017/06/03 by Max.Preussner Media: Added pre-Slate tick stage; renamed some functions; continued to implement sample caching Change 3473704 on 2017/06/05 by Max.Preussner AndroidMedia: Added settings class Change 3474407 on 2017/06/05 by Max.Preussner AndroidMedia: Implemented video sample processing Change 3474934 on 2017/06/05 by Max.Preussner ImgMedia: Fixed crash due to deleting loader work items twice (UE-45705) #jira UE-45705 Change 3476925 on 2017/06/06 by Max.Preussner Media: Added return values to media view interface; documentation fixes Change 3477158 on 2017/06/06 by Max.Preussner SwitchMedia: Implemented sample pooling Change 3477201 on 2017/06/07 by Max.Preussner PS4Media: Implemented video sample pooling Change 3481470 on 2017/06/08 by Max.Preussner Media: Fixed time stamps not set in recycled texture samples Change 3481472 on 2017/06/08 by Max.Preussner MediaAssets: Fixed no video samples fetched while player is in buffering state Change 3481473 on 2017/06/08 by Max.Preussner MediaUtils: Added default constructor to MediaSampleQueue Change 3481584 on 2017/06/08 by Max.Preussner MediaUtils: Paused state is considered forward for sample lookup as this is the common case. Change 3481588 on 2017/06/08 by Max.Preussner PS4Media: Redesigned the PS4 media player to support async file loading & track switching Change 3481627 on 2017/06/08 by Max.Preussner PS4Media: Opening media sources in thread pool if not precaching Change 3481666 on 2017/06/08 by Max.Preussner ImgMedia: Fixed SequencePath property file picker always opening default path Change 3481669 on 2017/06/08 by Max.Preussner ImgMedia: Fixed crash when quering cache state of empty image sequence Change 3481685 on 2017/06/08 by Max.Preussner ImgMedia: Fixed EXR reader failing to play slow loading sequences (UE-45719) #jira UE-45719 Change 3483623 on 2017/06/10 by Max.Preussner Media: Added getters for 360 view settings; added support for relative view updates Change 3483624 on 2017/06/10 by Max.Preussner Media: Added Blueprint support for 360 videos Change 3483626 on 2017/06/10 by Max.Preussner MediaPlayerEditor: Added 360 video mouse controls; broke out viewport widget into separate class. Change 3483627 on 2017/06/10 by Max.Preussner Core: Using system start time instead of current time for renamed log file names Change 3483630 on 2017/06/10 by Max.Preussner Core: Grouping log files by log name and processing each group separately when deleting old log files Change 3483816 on 2017/06/10 by Max.Preussner WmfMedia: Detecting audio device availability to prevent lockup of audio tracks Change 3483939 on 2017/06/11 by Max.Preussner AvfMedia: Finished Media Framework 3.0 upgrade - overhauled track switching - removed render thread flushes - reduced nesting - code cleanup pass Change 3483940 on 2017/06/11 by Max.Preussner Media: Consistent track switching behavior across platforms Change 3484172 on 2017/06/11 by Max.Preussner MediaPlayerEditor: Removed obsolete asset type actions Change 3484180 on 2017/06/11 by Max.Preussner MediaPlayerEditor: Fixed media player info overlays not visible during mouse capture Change 3484248 on 2017/06/11 by Max.Preussner MediaAssets: Media players now always have a playlist Change 3484249 on 2017/06/11 by Max.Preussner MediaPlayerEditor: Added UI controls to Playlist tab Change 3484250 on 2017/06/11 by Max.Preussner Media: Implemented overlay sample caching Change 3484252 on 2017/06/11 by Max.Preussner WmfMedia: Enabled support for .smi and .sami subtitle files Change 3485433 on 2017/06/12 by Max.Preussner ImgMedia: Enabled plug-in on all platforms; enabled EXR only on platforms that support it Change 3485720 on 2017/06/12 by Max.Preussner MediaPlayerEditor: Added ability to save playlists Change 3485828 on 2017/06/12 by Max.Preussner AvfMedia: Thread-safe ticking of video sampler; ticking audio processing on high frequency thread Change 3485926 on 2017/06/12 by Max.Preussner MediaUtils: Draining all unconsumed samples at the end of a frame Change 3486043 on 2017/06/12 by Max.Preussner Media: Consistent behavior for playlist navigation (UE-45964) #jira UE-45964 Change 3486104 on 2017/06/12 by Max.Preussner MediaPlayerEditor: Implemented simple overlay text positioning Change 3486145 on 2017/06/12 by Max.Preussner AndroidMediaPlayer: Moved video sample handling into render thread Change 3486147 on 2017/06/12 by Max.Preussner MediaPlayerEditor: Moved overlay texts into separate layer Change 3486188 on 2017/06/12 by Max.Preussner Media: Enabling media factory modules in Editor for all players Change 3486223 on 2017/06/12 by Max.Preussner Media: Defaulting players to select first audio and video tracks by default Change 3486473 on 2017/06/13 by Max.Preussner Media: Buffering is no longer a media player state, but handled separately (for players that can buffer while playing) Change 3486475 on 2017/06/13 by Max.Preussner MediaPlayerEditor: Showing busy bar when buffering or preparing Change 3487237 on 2017/06/13 by Max.Preussner AndroidMedia: Fixed video sample not getting processed on render thread Change 3487507 on 2017/06/13 by Michael.Trepka AvfMedia - small cleanup of the code for passing video frame rate to the video sampler Change 3487719 on 2017/06/13 by Michael.Trepka Disable shared PCH in OpenExrWrapper to solve a problem with bUseRTTI mismatch between the module and the PCH Change 3487842 on 2017/06/13 by Max.Preussner AndroidMedia: Fixed texture swizzle disabled on non-Engine builds Change 3488006 on 2017/06/13 by Michael.Trepka AvfMedia - Moved some logic from FAvfMediaPlayer::TickTickable() to FAvfMediaTracks::ProcessAudio() to make it thread safe, plus fixed a bug with the player not setting the current status to Stopped after opening a file Change 3488308 on 2017/06/13 by Chris.Babcock AndroidMedia: Fixed flicker issue #jira UE-45736 Change 3488335 on 2017/06/13 by Max.Preussner MediaAssets: Made UFileMediaSource::GetFullPath public Change 3488338 on 2017/06/13 by Max.Preussner MediaPlayerEditor: Fixed "Show file in Explorer" not working for file media sources Change 3488339 on 2017/06/13 by Max.Preussner MediaPlayerEditor: Showing a throbber when buffering player Change 3488768 on 2017/06/14 by Max.Preussner Core: Inlined FTimespan static functions hange 3490203 on 2017/06/14 by Max.Preussner Core: Force inlined TComPtr operators Change 3494083 on 2017/06/15 by Chris.Babcock AndroidMedia: Fix playlist looping (send PlaybackEndReached event) #jira UE-46086 Change 3497017 on 2017/06/16 by Max.Preussner MediaAssets: Playlists now auto advance with PlayOnOpen off Change 3497075 on 2017/06/17 by Chris.Babcock MediaPlayer Sampler node and external texture support for Android MediaPlayer - enable with USE_EXTERNALTEXTURE in AndroidMediaPlayer.cpp (disabled in this CL) - supports MediaSample node in material editor with scale/bias handled if above flag enabled - fixed looping problems, including eventual crashes - track switching fixed (lockups and missing video) - corrected resource leaks and crash switching maps #jira UE-46055 #jira UE-45744 #jira UE-46086 Change 3497163 on 2017/06/17 by Max.Preussner MediaUtils: Processing media events immediately if on game thread Change 3497170 on 2017/06/17 by Max.Preussner Media: All Media Framework interfaces are pure virtual Change 3498603 on 2017/06/19 by Ben.Marsh UBT: Prevent plugins which list modules multiple times from adding them twice. Change 3500870 on 2017/06/20 by Max.Preussner WmfMedia: Rewrote WMF state machine; now with track switching #jira UE-20209 #jira UE-35385 #jira UE-38337 #jira UE-45676 Change 3502181 on 2017/06/20 by Chris.Babcock MediaSampler node updates - fixed issue with ExternalTexture singleton for DLL compatiblity - now works for all players (registers texture samples with ExternalTexture by player GUID) - enabled OES in AndroidMediaPlayer now that materials can universally use the MediaSampler Change 3503182 on 2017/06/21 by Max.Preussner Media: Refactored status flags into an enum; exposed connecting status Change 3503724 on 2017/06/21 by Chris.Babcock Improvement in MediaPlayer Sampler node - RGB, R, G, B, A output pins like normal texture sampler - allow preview in material editor - fix OES detection for Android Change 3509088 on 2017/06/26 by Max.Preussner MediaAssets: Added AddFile and AddUrl to UMediaPlaylist Change 3510256 on 2017/06/26 by Max.Preussner WmfMedia: Fixed play rate not set to zero when end reached Change 3510273 on 2017/06/26 by Max.Preussner MediaPlayerEditor: Removed obsolete Slate culling rectangle code Change 3510413 on 2017/06/26 by Max.Preussner MediaPlayerEditor: Showing frame rate if available Change 3510533 on 2017/06/26 by Max.Preussner MediaUtils: Preventing media cache filling up when scrubbing Change 3510859 on 2017/06/26 by Max.Preussner PS4Media: Fixed track switching crashes (UE-45960) #jira UE-45960 Change 3514173 on 2017/06/28 by Max.Preussner WmfMedia: Optimized player capabilities check Change 3514174 on 2017/06/28 by Max.Preussner WmfMedia: Moved media source resolver code into utility class Change 3514714 on 2017/06/28 by Max.Preussner Core: Added TComPointer.IsValid; code cleanup pass Change 3517912 on 2017/06/30 by Max.Preussner MediaUtils: Added GetVideoAspectRatio to player facade Change 3524957 on 2017/07/06 by Max.Preussner ImgMedia: Decoding image frames only when video track is selected Change 3525252 on 2017/07/06 by Max.Preussner ImgMedia: Async image sequence initialization Change 3525266 on 2017/07/06 by Max.Preussner ImgMedia: Enabled reverse playback Change 3525722 on 2017/07/06 by Max.Preussner WmfMedia: Workaround for occasional WMF internal deadlock in IMFRateSupport Change 3525800 on 2017/07/07 by Max.Preussner WmfMedia: Fixed another WMF deadlock issue & some rate change glitches; improved logging. Change 3525801 on 2017/07/07 by Max.Preussner MediaPlayerEditor: Made scrubbing more responsive Change 3526500 on 2017/07/07 by Max.Preussner WmfMedia: Using NULL for Windows pointers Change 3527323 on 2017/07/07 by Max.Preussner WmfMedia: Added support for audio and video capture media sources Change 3530197 on 2017/07/10 by Max.Preussner WmfMedia: Added utility functions for enumerating audio and video capture devices Change 3533465 on 2017/07/12 by Max.Preussner Media: Added media capture device support API & implementation for WMF Change 3533469 on 2017/07/12 by Max.Preussner MediaPlayerEditor: Added source selection menu w/ capture device menu to navigation bar Change 3533540 on 2017/07/12 by Max.Preussner MediaAssets: Blueprint support for media capture device discovery Change 3533574 on 2017/07/12 by Max.Preussner WmfMedia: Using cached supported play rates; more strict pausing support check Change 3533924 on 2017/07/12 by Max.Preussner WmfMedia: Added global LowLatency setting (UEVR-859) Note that this setting is only supported when compiling for Windows 8 or newer. Change 3534027 on 2017/07/12 by Max.Preussner WmfMedia: Compile time support for low latency session attribute on < Windows8 #jira UEVR-859 Change 3538744 on 2017/07/14 by Max.Preussner MediaUtils: Renamed FDefaultMediaTimeSource to FAppMediaTimeSource Change 3542818 on 2017/07/18 by Max.Preussner WmfMedia: Fixed race condition on session shutdown Change 3543082 on 2017/07/18 by Max.Preussner WmfMedia: Fixed track selection in media that doesn't support seeking Change 3543092 on 2017/07/18 by Max.Preussner Media: Implemented media track format API Enables multiple formats per media track. By default, the first usable format is selected. This feature is currently only implemented for WmfMedia. All other players assume a single format per track. Change 3543794 on 2017/07/19 by Max.Preussner WmfMedia: Added string conversion for null GUIDs Change 3543796 on 2017/07/19 by Max.Preussner MfMedia: Copied GUID string conversion updates from WmfMedia Change 3543797 on 2017/07/19 by Max.Preussner WmfMedia: Preventing duplicate track formats in capture devices with legacy DirectX support Change 3544390 on 2017/07/19 by Max.Preussner Media: Allowing INDEX_NONE as 'current selection' index in track format related functions Change 3545368 on 2017/07/19 by Max.Preussner WmfMedia: Fixed session error with some media sources when attempting to seek to current position without ever starting Change 3545388 on 2017/07/19 by Max.Preussner MediaAssets: Fixed RGB input sources rendered upside down Change 3545430 on 2017/07/19 by Max.Preussner MediaAssets: Fixed incorrect sRGB conversion on BMP inputs Change 3547362 on 2017/07/20 by Max.Preussner Core: Added IsGraph and IsPrint to TCHAR utilities Change 3547376 on 2017/07/20 by Max.Preussner WmfMedia: Better log messages for non-standard video types (UE-47533) #jira UE-47533 Change 3547404 on 2017/07/20 by Max.Preussner QAGame: Enabled PlayOnOpen and Looping on MediaPlayerSwitch BP (UE-47542) #jira UE-47542 Change 3547466 on 2017/07/20 by Max.Preussner WmfMedia: Fixed edge case for detecting whether pause is available Change 3548742 on 2017/07/21 by Max.Preussner Media: Added API for changing the input frame rate Change 3548743 on 2017/07/21 by Max.Preussner WmfMedia: Implemented ability to change input frame rate Change 3554411 on 2017/07/25 by Max.Preussner AudioMixer: Broke out SynthComponent initialization code; added bIsUISound property Change 3554818 on 2017/07/25 by Max.Preussner Media: Added per track-type cache queries Change 3557284 on 2017/07/26 by Max.Preussner WmfMedia: Added buffer size check in texture sample as well Change 3560530 on 2017/07/27 by Max.Preussner WmfMedia: Made COM object destructors private and added assertions Change 3560580 on 2017/07/27 by Max.Preussner MediaUtils: Added method for querying number of objects in pool Change 3562572 on 2017/07/28 by Max.Preussner WmfMedia: Properly handling topology status errors when opening media Change 3576710 on 2017/08/08 by Chris.Babcock bug fixes for mediaplayer - rare cases in Android media tracks - make FMediaCaptureDevice members available in blueprints Change 3577736 on 2017/08/08 by Chris.Babcock Extend ExternalTexture to support 2x3 transform (scale/rotation + offset) Change 3578831 on 2017/08/09 by Max.Preussner MediaAssets: Made media sound component BP spawnable Change 3579210 on 2017/08/09 by Max.Preussner UdpMessaging: Not showing warning message if tunnel settings left empty to use defaults Change 3579547 on 2017/08/09 by Chris.Babcock Better support for Android external texture detection Change 3579567 on 2017/08/09 by Chris.Babcock Android camera plugin #jira UEMOB-215 Change 3580035 on 2017/08/10 by Andrew.Rodham Media Texture: External textures are now fully supported and enforced when attempting to sample external texture types in materials. - Textures can now dynamically provide an external texture GUID at runtime, which is queried by the uniform expression. Statically defined GUIDs remain supported. - Added necessary ExternalTexture(Parameter) methods to the material compiler and HLSL translator - Made UTexture::GetMaterialType const-correct #tests Test map that contains TextureObject, TextureObjectParameter, TextureSample and TextureSampleParameter nodes with media textures works on both a Nexus 10 (non-image-external), and a Pixel (image-external), and on desktop PC. Change 3581552 on 2017/08/10 by Chris.Babcock Use bilinear sampling instead of point for external texture (Android media and camera) Change 3581628 on 2017/08/10 by Max.Preussner Core: Fixed FTimespan import/export/copypaste (UE-43990) #jira UE-43990 #jira UE-44163 Change 3581909 on 2017/08/11 by Andrew.Rodham Media: Only cache material proxy pointers if they have been initialized (and thus, will be removed from the cache on release) - This prevents destroyed proxies from remaining in the texture registry #jira UE-48307 Change 3582451 on 2017/08/11 by Max.Preussner AudioMixer: Fixed initialization order of synth components This ensures that the Synth is initialized before OnRegister in the super class initializes and activates the AudioComponents. Previously, the AudioComponent would fail to activate, because Synth was nullptr. #jira UE-48055 Change 3582453 on 2017/08/11 by Max.Preussner MediaAssets: Enabling ticking in media sound component (UE-48055) #jira UE-48055 Change 3583101 on 2017/08/11 by Chris.Babcock Android camera improvements - return correct capture device type (webcamfront/rear) - remove seek (not supported) - support track formats - better framerate selection Change 3590109 on 2017/08/16 by Chris.Babcock Move external texture coordinate update to improve accuracy and save a uniform in final shader Change 3590530 on 2017/08/16 by Max.Preussner MediaAssets: Changed capture device enumeration BP function signatures to allow filter bit masks #jira UE-48166 Change 3590547 on 2017/08/16 by Max.Preussner MediaPlayerEditor: Ticking sound component directly Change 3590628 on 2017/08/16 by Max.Preussner Switch: Fixed media decoder asserting when attempting to pause without having started Change 3591816 on 2017/08/16 by Aaron.McLeran #jira UE-48470 Disabling async processing for procedural sound waves on mac. Change 3592266 on 2017/08/16 by Max.Preussner Media: Replaced media cache with the new sample processing pipeline; continued to implement MfMedia This change fixes stuttering issues with audio and video. However, proper pipeline flushing is not fully implemented yet, so the playback will break after the first playthrough, which might result in freeze frames or out of memory assertions depending on the platform. This will be addressed in an upcoming change. #jira UE-48474 #jira UE-45677 Change 3592355 on 2017/08/17 by Max.Preussner MediaUtils: Added sample sink collection to remove code duplication Change 3592739 on 2017/08/17 by Max.Preussner ImgMedia: Fetching only one video sample per frame Change 3592741 on 2017/08/17 by Max.Preussner MediaUtils: Better sample fetching when paused Change 3592761 on 2017/08/17 by Max.Preussner MediaUtils: Fixed overflow detection in sample sinks Change 3592762 on 2017/08/17 by Max.Preussner ImgMedia: Sending end reached event when looping Change 3592885 on 2017/08/17 by Max.Preussner ImgMedia: Fixed reverse play Change 3592887 on 2017/08/17 by Max.Preussner MediaUtils: Better sample range calculation for audio samples Change 3593010 on 2017/08/17 by Max.Preussner ImgMedia: Fixed async loading of non-EXR image sequences Change 3593193 on 2017/08/17 by Max.Preussner AndroidMedia: Fixed typo Change 3593230 on 2017/08/17 by Max.Preussner Media: Implemented flushing for player sample queues Change 3593346 on 2017/08/17 by Max.Preussner Media: Proper sample processing for reverse playback Change 3593482 on 2017/08/17 by Max.Preussner Switch: Fixed sample range check for reverse playback Change 3594428 on 2017/08/17 by Max.Preussner PS4Media: Fixed video not playing/crashing #jira UE-48547 #jira UE-48549 Change 3595404 on 2017/08/17 by Max.Preussner MediaAssets: Not requesting audio samples if not playing #jira UE-48557 Change 3595624 on 2017/08/17 by Max.Preussner PS4Media: Fixed no looping after track switching #jira UE-46524 #jira UE-48557 Change 3595704 on 2017/08/17 by Max.Preussner MediaUtils: Improved sample queue flushing Eventually this needs to be event-driven. #jira UE-48557 Change 3595706 on 2017/08/17 by Max.Preussner PS4Media: Flushing queues when track switching #jira UE-48557 Change 3595909 on 2017/08/17 by Max.Preussner Matinee: Fix Matinee redirect missing as UClass has been GC'ed (GitHub PR #3382) https://github.com/EpicGames/UnrealEngine/pull/3382 #jira UE-42906 #rn Fix Matinee redirect missing as UClass has been GC'ed (GitHub PR #3382) Change 3597480 on 2017/08/18 by Max.Preussner ImgMediaPlayer: Fixed presentation time calculation for very large delta times Change 3597669 on 2017/08/18 by Max.Preussner ImgMedia: Setting player stopped instead of paused when end reached Change 3597709 on 2017/08/18 by Max.Preussner SwitchMedia: Fixed audio sample duration calculation Change 3598479 on 2017/08/18 by Max.Preussner ImgMedia: Ensuring that first/last frame is played when starting playback forward/reverse; improved state checking; user logging Change 3598629 on 2017/08/18 by Max.Preussner MediaUtils: Properly handling pending flushes when peeking sample queues Change 3598633 on 2017/08/18 by Max.Preussner WmfMedia: Fixed occasional WMF deadlock when scrubbing Change 3598653 on 2017/08/18 by Max.Preussner MediaUtils: Fixed audio resampling in reverse playback Change 3598659 on 2017/08/18 by Max.Preussner MediaPlayerEditor: Creating sound output only if audio device available Change 3598688 on 2017/08/18 by Max.Preussner MediaUtils: Flushing sample queues on direction change regardless of paused state Change 3599444 on 2017/08/20 by Max.Preussner WmfMedia: Added missing check for rate control when quering supported rates Change 3603661 on 2017/08/22 by Max.Preussner WmfMedia: Fixed NV12 output Change 3604345 on 2017/08/23 by Max.Preussner MediaUtils: Added subtitle samples to media sample collection; fixed documentation Change 3604987 on 2017/08/23 by Max.Preussner PS4Media: Setting correct track format types Change 3605117 on 2017/08/23 by Joe.Barnes Fix issue where presentation time was being treated as milliseconds instead of microseconds. Change 3605128 on 2017/08/23 by Joe.Barnes Fix potential issue calculating total (looped) play time after seek or reset. Track last video presentation time Change 3605139 on 2017/08/23 by Joe.Barnes Support audio type DType_Setup. Fix issue with procedural sounds popping. Consume more samples if necessary. #jira ue-48544 Change 3605197 on 2017/08/23 by Max.Preussner Media: Fixed track display name formatting (UE-48767) #jira UE-48767 Change 3605817 on 2017/08/23 by Max.Chen Auto set sampler type on drop on actor. #jira UE-48769 Change 3605999 on 2017/08/23 by Max.Preussner MfMedia: Restarting source reader when switching tracks #jira UE-48766 Change 3606416 on 2017/08/23 by Max.Preussner PS4Media: Various player improvements #jira UE-48586 Change 3607656 on 2017/08/24 by Max.Preussner WmfMedia: Improved logging for Seek and SetRate Change 3607855 on 2017/08/24 by Max.Preussner MfMedia: Better verbose logging; validating seeks; reduced nesting; fixed track switching\ #jira UE-48766 Change 3608029 on 2017/08/24 by Max.Preussner PS4Media: Fixed streaming media not playing; improved result checks & logging #jira UE-48610 Change 3608473 on 2017/08/24 by Max.Preussner MfMedia: Fixed audio sample duration calculation #jira UE-48756 Change 3609316 on 2017/08/24 by Chris.Babcock Provide external texture RotationScale and Offset from sample Change 3610067 on 2017/08/25 by Richard.Wallis Mac: Editor locks up when Track switching and Mac: Media Audio continues to play after closing player. - Fix for creating extra OS AV media playback objects so audio playback not stopping due to over retained objects. - Trying to access OS AV Media Playback object (esp. the currentTime value) across mutliple threads at once seems to cause deadlock in the Apple libraries - moved location of currentTime acess point to Media Ticker - this sets the current time and is then just returned in the getter when on game main. - Trying to playback audio via OS media playback and through the engine at the same time when enabling the selected audio track. Engine version via sample buffers via AVAssetReaderTrackOutput doesn't seem to be working as intended with the new audio frame work audio sinks - so reverting to OS AV media playback for Mac at the moment until better fix for this can be put in. #jira UE-48590, UE-48604 Change 3610267 on 2017/08/25 by Max.Preussner PS4Media: Added missing track selection validation #jira UE-48765 Change 3610399 on 2017/08/25 by Max.Preussner PS4Media: Fixed infinite player re-initialization loop if track selection failed Change 3610809 on 2017/08/25 by Chris.Babcock Fixes for Android media player and camera player - buffer samples copy proper bytecount - realloc sets new buffer ptr - refcount of Java buffers fixed Change 3610953 on 2017/08/25 by Chris.Babcock Fix audio disable before play on Android media player Change 3611405 on 2017/08/25 by Max.Preussner WmfMedia: Resetting supported rates if RateSupport unavailable Change 3611406 on 2017/08/25 by Max.Preussner MfMedia: Resetting supported rates if RateSupport unavailable Change 3611453 on 2017/08/25 by Chris.Babcock Android external texture extension updates for compatibility Change 3611719 on 2017/08/26 by Max.Preussner Media: Added media event for completed seek operations; flushing sinks on seek Change 3611764 on 2017/08/26 by Max.Preussner AvfMedia: Setting player to preparing state prior to initializing tracks asynchronously Change 3611802 on 2017/08/26 by Max.Preussner Media: Exposed error state in media player Change 3611803 on 2017/08/26 by Max.Preussner MediaPlayerEditor: Showing error state in UI Change 3611887 on 2017/08/26 by Max.Preussner MediaUtils: Corrected media sample sink overflow check Change 3611892 on 2017/08/27 by Max.Preussner WmfMedia: Leaving session in error state after error Change 3611929 on 2017/08/27 by Max.Preussner MediaPlayerEditor: Fixed sound stopping on looping Change 3611930 on 2017/08/27 by Max.Preussner MfMedia: Rewrote async sample processing to fix various playback issues Change 3611942 on 2017/08/27 by Max.Preussner Media: Sending suspension event when playback ended Change 3611957 on 2017/08/27 by Max.Preussner UnrealEd: Allowed transient assets to be resaved to disk Change 3611981 on 2017/08/27 by Max.Preussner PS4Media: Rewrote sample processing to fix various playback issues #jira UE-48596 #jira UE-48793 Change 3612035 on 2017/08/27 by Max.Preussner UnrealEd: Picking standard default names when resaving transient packages Change 3612045 on 2017/08/27 by Max.Preussner Media: Fixed playlists not getting saved correctly from Editor (UE-35382) #jira UE-35382 Change 3612212 on 2017/08/28 by Richard.Wallis Fix for Multitrack Video samples continue to Play on Open after Play on Open is toggled off. Current Rate was not getting reset back to 0.0 on media close. #jira UE-47602 Change 3613531 on 2017/08/28 by Max.Preussner MediaAssets: Fixed external texture related crash on shutdown (UE-48918) Also no longer creating clock sink for media player CDO #jira UE-48918 Change 3613677 on 2017/08/28 by Andrew.Porter Fixed crash at exit in Mac editor caused by double release of AVPlayerItem object #jira UE-48937 Change 3615917 on 2017/08/29 by Max.Preussner MfMedia: Added compile options for DXVA and falling back to synchronous sample reading [CL 3617655 by Max Chen in Main branch]
2017-08-30 09:37:09 -04:00
/** Default constructor. */
FEngineLoop();
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3420477) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3386262 on 2017/04/10 by Ben.Marsh Add app-local deployment of DirectX components that are no longer included with newer versions of Windows by default (XAudio 2.7, XInput 1.3). Also add a one-click button to the packaging settings to include the default app-local dependencies, rather than having to specify the path. Change 3386999 on 2017/04/10 by Ben.Marsh Plugins: Add support for explicit dependencies from one plugin onto another. Required plugins can be configured in an identical manner to project files, by adding a "Plugins" key to the .uplugin file. Dependencies are automatically built and loaded, and the plugin browser will warn if you try to disable a plugin that something else has a dependency on. Change 3387073 on 2017/04/10 by Ben.Marsh Move FLightPropagationRuntimeSettings into the Renderer module, to remove engine dependency on a plugin. Change 3387988 on 2017/04/11 by Steve.Robb Comments added to clarify the role of DestructItem and DestructItems. Change 3388085 on 2017/04/11 by Ben.Marsh UBT: Fix bEnabled flag on plugin references being ignored. Now collect up all the plugin references in order of priority before creating plugin instances for them. Fixes CIS fail for UT. Change 3390048 on 2017/04/12 by Richard.Hinckley #jira UE-43876 Fixed description of Streaming settings (within Project Settings). Change 3390697 on 2017/04/12 by Steve.Robb CLASS_PointersDefaultToAutoWeak and CLASS_PointersDefaultToWeak removed. Change 3390711 on 2017/04/12 by Steve.Robb AGRESSIVE_ARRAY_FORCEINLINE removed. Change 3392167 on 2017/04/13 by Robert.Manuszewski UObject can be added to GC cluster only if all of its Outers can also be added to it. Fixing asserts caused by components that are added to GC clusters even if their owner actors that can't be in GC clusters. #jira UE-42948 Change 3392309 on 2017/04/13 by Robert.Manuszewski When adding objects to clusters after these clusters have been created it's possible to come across objects that are already in the cluster we're adding the object to so instead of crashing, allow it. Change 3392620 on 2017/04/13 by Ben.Marsh UGS: Only check for updates every 5 minutes. Change 3392623 on 2017/04/13 by Ben.Marsh UGS: Only poll for new changes every 60 seconds. Change 3392744 on 2017/04/13 by Ben.Marsh UGS: Query changelist descriptions individually to determine whether changes affect code or content, to hopefully reduce Perforce server load. Change 3392874 on 2017/04/13 by Ben.Marsh UGS: Allow specifying regexes in the project config file which filters which changes to be displayed. Useful for changes submitted by build machines, updates to collections, etc... Change 3392878 on 2017/04/13 by Ben.Marsh Update UGS to version 1.96 Change 3395635 on 2017/04/17 by Ben.Marsh UAT: Prefix log output from executing UAT commands through BuildGraph with the name of that command. Change 3395655 on 2017/04/17 by Ben.Marsh UAT: Add a command for syncing a DDC over the network (SyncDDC). Allows specifying a maximum size to copy, number of days worth of modified files to copy, and time limit not to be exceeded. Change 3396989 on 2017/04/17 by Wes.Hunt CrashReporter configurable tweaks. * Added QueueWaitingTimeAlertThreshold (used to be hardcoded to 1 min). - When the queue waiting time gets beyond this many seconds, trigger a slack alert message. Default is 10 min. - Zero means never alert. * Added DiskSpaceAvailableAlertInterval (used to be hardcoded to 1 day). - Interval by which to report disk space availability. - Default is never (Zero) * Updated config file to match production config. #codereview:jin.zhang Change 3397656 on 2017/04/18 by Ben.Marsh UBT: Allow modules to opt-out of getting the default include paths from being added, by setting bAddDefaultIncludePaths = false from their build.cs file. Change 3397677 on 2017/04/18 by Robert.Manuszewski PR #3167 : Adding more descriptive error text to DetatchLinker error check (by rooneym) Change 3397722 on 2017/04/18 by Robert.Manuszewski PR #2252: Increase linker reporting for failed imports (Contributed by FineRedMist) Change 3397739 on 2017/04/18 by Richard.Hinckley #jira UE-44100 Fixed SanitizePackageName() to remove double-slash, triple-slash, etc. from package names. Also updated CreatePackage() to call SanitizePackageName() before creating. Change 3398023 on 2017/04/18 by Ben.Marsh PR #3105: Cook/package with editor and debugger attached (Contributed by projectgheist) Change 3398095 on 2017/04/18 by Ben.Marsh PR #3051: Generate map file from UAT (Contributed by projectgheist) Change 3398212 on 2017/04/18 by Ben.Marsh PR #2915: UE-38232: Removed duplicate stats (Contributed by projectgheist) Change 3399304 on 2017/04/19 by Ben.Marsh UGS: Prevent editor target files being removed when running custom tools. Change 3399306 on 2017/04/19 by Robert.Manuszewski Moved InitPropertiesFromCustomList to UbLueprintGeneratedClass and made it thread safe Change 3399729 on 2017/04/19 by Steve.Robb Simple optimization to TBitArray::RemoveAt() when all removed bits are at the end of the array. RemoveAtSwap() now simply decrements the count instead of calling RemoveAt(). Checks for a positive count added to RemoveAt() and RemoveAtSwap(). Change 3399750 on 2017/04/19 by Jin.Zhang Order branch alphabetically #RB Change 3400186 on 2017/04/19 by Steve.Robb Per-header generated code. Change 3401458 on 2017/04/20 by Steve.Robb Static log categories moved out of headers to prevent duplicates when the header is included multiple times. #jira UE-37507 Change 3401657 on 2017/04/20 by Gil.Gribb UE4 - Simplified and reworked lock free lists and the task graph bringing all platforms under the same scheme. Change 3401735 on 2017/04/20 by Gil.Gribb UE4 - Updated apple platform atomics with a new clang version which is intended to be shared among all clang platforms. Change 3403362 on 2017/04/21 by Steve.Robb Algo::Sort() fixed to support C arrays. Size+count versions of Also::IsSorted() deprecated. Algo::IsSortedBy() added. Algo::FindBy() added to allow an element to be found by projection. Simplifications and generalizations. Change 3404017 on 2017/04/21 by Ben.Marsh Fix issue where referenced plugin descriptors were missing from console builds, and prevent monolithic builds from offering to disable missing plugins. Change 3405299 on 2017/04/24 by Steve.Robb Clarified the class of the incompatible function in the error message about incompatible BP event specifiers. #jira UE-35106 Change 3405302 on 2017/04/24 by Ben.Marsh UBT: Allow excluding documentation from generated project files, by setting <ProjectFileGenerator><bIncludeDocumentation>false</bIncludeDocumentation></ProjectFileGenerator> in the XML configuration file. Change 3405629 on 2017/04/24 by Ben.Marsh Rename CPPEnvironment to CppCompileEnvironment, to reflect the class name. Change 3406431 on 2017/04/24 by Ben.Marsh UAT: Fix incorrect handling of P4SubmitOptions when multiple values are present. Change 3406670 on 2017/04/24 by Ben.Marsh UBT: Enable warnings for classes with virtual functions and no virtual destructor (C4265 on Windows, -fdelete-non-virtual-dtor on Clang). Change 3407080 on 2017/04/25 by Gil.Gribb UE4 - Critical fix: Propoerly disambiguate imports with the same name and the same outer name. This fixes an assert: LocalExportIndex.IsNull. Change 3407486 on 2017/04/25 by Gil.Gribb UE4 - Made changes so that servers, programs and non-engine executables do not create background or high priority threads. Change 3407495 on 2017/04/25 by Gil.Gribb UE4 - Tweaked out XBox and Windows low level file IO. Change 3407497 on 2017/04/25 by Gil.Gribb UE4 - Fixed bug in the pak precacher that would result in blocks being discarded too soon, which, in turn, resulted in redudnant reads. Change 3407705 on 2017/04/25 by Ben.Marsh Removing most of the junk in DotNETUtilities. Change 3409701 on 2017/04/26 by Ben.Marsh Disable another static analyzer warning for third party libraries. Change 3410074 on 2017/04/26 by Daniel.Lamb Network platform file runs heart beats and responds to modified file changes. Cook on the fly server in the editor (COTS) now detects changes to content and notifies client. Fixed issue with network platform file not using correct sandbox. #test cook on the side shootergame Change 3411131 on 2017/04/27 by Steve.Robb TIsTriviallyDestructible now supports forward-declared enums. Change 3411186 on 2017/04/27 by Steve.Robb Fix for #includes in generated code for Within classes which are in a different module from the generated class. Change 3411917 on 2017/04/27 by Steve.Robb Fixes to pushing/popping the CPP macro. Change 3411966 on 2017/04/27 by Steve.Robb Include spam reduced in generated code. Change 3412155 on 2017/04/27 by Ben.Marsh Fix for PVS Studio warning: VFOVInRadians used instead of HFOVInRadians. Change 3412223 on 2017/04/27 by Ben.Marsh Fix for PVS-Studio warning: Calling SetHelperA.Num() twice. Change 3412273 on 2017/04/27 by Ben.Marsh Fix for PVS-Studio warning: Duplicated variable name. Change 3412511 on 2017/04/27 by Ben.Marsh PR #3462: Fixed PVS-Studio issues (Part 1) (Contributed by PaulEremeeff) Change 3412582 on 2017/04/27 by Ben.Marsh Fix for PVS-Studio warning: Incorrect variable name in copy/pasted code Change 3413136 on 2017/04/28 by Robert.Manuszewski Helper functions for dissolving specific GC clusters Change 3413310 on 2017/04/28 by Ben.Marsh Fix for PVS-Studio warning: Incorrect variable name in copy/pasted code. Change 3413341 on 2017/04/28 by Gil.Gribb UE4 - Add prestream capability to allow us to preload always loaded sublevels. Only turned on for Shootergame. Change 3413351 on 2017/04/28 by Ben.Marsh Include code analysis macros directly from Platform.h, so that macros are available to everything. Change 3413352 on 2017/04/28 by Ben.Marsh Fixing a few more PVS studio warnings. Change 3413437 on 2017/04/28 by Ben.Marsh Fix for PVS-Studio warning: Comparison is always true. Change 3413759 on 2017/04/28 by Ben.Marsh Suppressing warnings for PVS-Studio. Change 3413784 on 2017/04/28 by Ben.Marsh Fix PVS-Studio warning. Change 3413898 on 2017/04/28 by Ben.Marsh Fix PVS-Studio warning: Same conditional is checked twice. Change 3413915 on 2017/04/28 by Ben.Marsh Fix PVS-Studio warning: LHS of expression is identical to RHS. Change 3413989 on 2017/04/28 by Ben.Marsh Fix for PVS-Studio warning: If CurrentGraph->SubGraphs.Num() == 1, it will always enter the first conditional block. Change 3414053 on 2017/04/28 by Ben.Marsh More PVS-Studio fixes. Change 3414062 on 2017/04/28 by Ben.Marsh Fix for PVS-Studio warning: Pointer to object goes out of scope without being freed. Change 3414070 on 2017/04/28 by Ben.Marsh Fix for PVS-Studio warning: Fix incorrect condition. Change 3414071 on 2017/04/28 by Ben.Marsh Fix for PVS-Studio warning: Array index is always zero. Change 3414116 on 2017/04/28 by Ben.Marsh BuildGraph: Allow marking compile tasks as unsuitable for use with the parallel executor, via an AllowParallelExecutor="false" attribute. Change 3414160 on 2017/04/28 by Ben.Marsh Add support for running PVS-Studio through UnrealBuildTool. To use, pass -StaticAnalyzer=PVSStudio to the build command line (similarly, the Visual C++ analyzer can now be invoked using -StaticAnalyzer=VisualCpp). A log file will be written to the Engine/Saved/PVS-Studio or <Project>/Saved/PVS-Studio directory containing diagnostics, which can be opened using the "unparsed output" filter in the PVS-Studio standalone application. High priority warnings are printed to stdout. Change 3414237 on 2017/04/28 by Ben.Marsh EC: Allow disabling and enabling the log preprocessor via special markers in the log. To disable: <-- Suspend Log Parsing --> To enable: <-- Resume Log Parsing --> Change 3414343 on 2017/04/28 by Ben.Marsh UBT: Exclude ThirdParty folders from PVS output. Change 3414392 on 2017/04/28 by Ben.Marsh Fix regular strings being casted to BSTRs; BSTRs have a hidden length prefix in the two bytes before the first character, so passing a regular TCHAR* is reading random memory. Change 3414459 on 2017/04/28 by Ben.Marsh Fix for PVS-Studio warning: Object goes out of scope without being freed. Change 3414495 on 2017/04/28 by Ben.Marsh Suppress some more PVS-Studio warnings. Change 3414514 on 2017/04/28 by Ben.Marsh Fix for PVS-Studio warning: Testing WorldType being equal to EditorPreview and not equal to Inactive is redundant; changing to match description in comment instead. Change 3414526 on 2017/04/28 by Ben.Marsh Fix for PVS-Studio warning: Variable assigned to itself has no effect. Change 3415183 on 2017/04/29 by Ben.Marsh Fix conflict in macro definitions for ENABLE_HTTP_FOR_NFS - rename the macro defined by NetworkFile to ENABLE_HTTP_FOR_NF. Hopefully fix CIS. Change 3415765 on 2017/05/01 by Ben.Marsh Suppressing PVS-Studio warning to get things building cleanly. Not sure if FContentHelper is being leaked or not. Change 3415853 on 2017/05/01 by Ben.Marsh EC: Fix jobs never completing if a "Sync & Build" step fails. Dependent jobs should evaluate their run conditions as soon as the parent step finishes, rather than waiting for child job steps to be created. Change 3416138 on 2017/05/01 by Ben.Marsh Fix Fortnite cook failures. Not sure what the exact problem is here, but my hunch is that discarded "const" causes blueprint compile failures due to not being able to connect output pins between nodes for overloaded functions, or something like that. Change 3416309 on 2017/05/01 by Ben.Marsh Build: Fix node names for static analysis. Change 3416360 on 2017/05/01 by Ben.Marsh UBT: Remove unused arguments to PrepForUATPackageOrDeploy for Windows. Change 3416398 on 2017/05/01 by Daniel.Lamb Cook on the fly NetworkFileServerConnection Remove FileModifiedCallback delegate when the connection is closed. #test Cook on the side shootergame. Change 3416826 on 2017/05/01 by Daniel.Lamb Added callback to game when files are requested reload from networkfileserver. Game will need to unload / reload effected objects. Working on simple reload capability in shootergame. #test Cook on the side shootergame with reloading Change 3417983 on 2017/05/02 by Ben.Marsh EC: Remove warning for lines not matching p4 tag syntax when running preflights; multi-line descriptions in shelved changelists break this pattern. Change 3418747 on 2017/05/02 by Steve.Robb Fix for const pointer properties. Fix for UHT debugging manifest. Test added for pointer properties. Change 3420477 on 2017/05/03 by Gil.Gribb UE4 - Removed check from windows async IO layer. [CL 3421020 by Ben Marsh in Main branch]
2017-05-03 14:18:32 -04:00
virtual ~FEngineLoop() { }
public:
/**
* Pre-Initialize the main loop, and generates the commandline from standard ArgC/ArgV from main().
*
* @param ArgC The number of strings in ArgV.
* @param ArgV The command line parameters (ArgV[0] is expected to be the executable name).
* @param AdditionalCommandLine Optional string to append to the command line (after ArgV is put together).
* @return Returns the error level, 0 if successful and > 0 if there were errors.
*/
Copying //UE4/Dev-Sequencer to //UE4/Main (Source: //UE4/Dev-Sequencer @ 3617642) #lockdown nick.penwarden #rb none Change 3235667 on 2016/12/14 by Max.Preussner Media: Moved enums into separate header file, so they can be shared Change 3259266 on 2017/01/16 by Max.Preussner Core: Added timespan ratio Change 3267229 on 2017/01/21 by Max.Preussner Editor: Fixed texture samplers in materials not getting notified when sRGB mode changed Change 3274773 on 2017/01/27 by Max.Preussner Core: Added TLruCache template Change 3281579 on 2017/02/01 by Max.Preussner Core: Added scalar division to FTimespan Change 3289522 on 2017/02/07 by Max.Preussner MediaAssets: Added looping for play lists Change 3290664 on 2017/02/07 by Max.Preussner Engine: Moved UTexture material notification code into separate function, so it can be used by derived classes. Change 3290688 on 2017/02/07 by Max.Preussner MediaAssets: Notifying materials when media texture properties changed. Change 3291171 on 2017/02/07 by Max.Preussner MediaAssets: Filtering unused UTexture properties Change 3291229 on 2017/02/07 by Max.Preussner ImgMedia: Use displayWindow instead of dataWindow due to bug in OpenEXR with data window min < 0 Change 3298520 on 2017/02/11 by Max.Preussner Sequencer: Fixed skylight and reflection components off by one frame in PIE Change 3298778 on 2017/02/12 by Max.Preussner MediaUtils: Experimenting with dynamic pitch adjustment Change 3298987 on 2017/02/13 by Max.Chen Editor: Add matrix and transform properties to property editor test object Change 3298997 on 2017/02/13 by Max.Chen Editor: It's now possible to specify Units and ForceUnits meta-data on struct properties - Doing so will cause any child numeric and struct properties to use these units by default (unless another unit was specified) - Added percentage unit type - Multiplier unit types can now be converted between Change 3298998 on 2017/02/13 by Max.Chen Editor: Conversion between multiplier (1.5x) and percentage (150%) units is now possible Change 3348678 on 2017/03/15 by Max.Preussner Media: Added Buffering media event Change 3355268 on 2017/03/20 by Max.Preussner Core: TQueue documentation updates Change 3359055 on 2017/03/22 by Max.Preussner Portal: Removed dependency to Messaging.h Change 3359060 on 2017/03/22 by Max.Preussner Messaging: Modernization pass - added missing includes & forward declarations - include what you use - deprecated shared pointer typedefs - replaced some delegates with callback interfaces - documentation fixes Change 3359189 on 2017/03/22 by Max.Preussner Automation: Modernization pass - include what you use - removed molothic header - documentation fixes #upgradenotes: IAutomationWorkerModule.h is now in the module's public root directory Change 3359718 on 2017/03/22 by Max.Preussner Messaging: Moved common helper classes into MessagingCommon module #upgradenotes: If you use the common helper classes, replace "Messaging" with "MessagingCommon" in your Build.cs files and remove the "Helpers/" subdirectory from your include statements (unless you actually include header files from "Messaging", in which case you need to keep "Messaging" and add "MessagingCommon"). Change 3359793 on 2017/03/23 by Max.Preussner TargetDeviceServices: Modernization pass - include what you use - removed boilerplate header - deprecated selected shared pointer typedefs - reorganized files - documentation fixes Change 3361028 on 2017/03/23 by Max.Preussner DeviceManager: Modernization pass - include what you use - reduced shared pointer typedef usage - documentation fixes Change 3361197 on 2017/03/23 by Max.Preussner Messaging: Waking up message router thread on shutdown Change 3361246 on 2017/03/23 by Max.Preussner AutomationWindow: Removed boilerplate header #upgradenotes: Replace includes of AutomationWindow.h with IAutomationWindowModule.h Change 3361428 on 2017/03/23 by Max.Preussner AutomationController: Removed boilerplate header #upgradenotes: Instead of AutomationController.h, include the individual interface headers that you actually use. Remove the "Interfaces/" subdirectory from existing interface inclusions. Change 3363206 on 2017/03/24 by Max.Preussner ProfileLauncher: Modernization pass - include what you use (selected files) - reduced shared pointer typedef usages - removed dead code - cleaned up file organization - documentation fixes Change 3363290 on 2017/03/24 by Max.Preussner LauncherServices: Removed boilerplate header #upgradenotes: Instead of including LauncherServices.h, include the ILauncherXXX.h files that you actually use. Remove the "Interfaces/" subdirectory from existing ILauncherXXX.h includes Change 3363305 on 2017/03/24 by Max.Preussner LauncherCheck: Removed boilerplate header #upgradenotes: Include ILauncherCheckModule.h instead of LauncherCheck.h. Remove "Interfaces/" subdirectory from existing ILauncherCheckModule.h inclusions Change 3363708 on 2017/03/24 by Max.Preussner ImageWrapper: Removed boilerplate header #upgradenotes: Instead of including ImageWrapper.h, include the actual IImageWrapperXXX.h files that you use. Remove the "Interfaces/" subdirectory from existing IImageWrapperXXX.h includes Change 3363966 on 2017/03/24 by Max.Preussner ImageWrapper: Modernization pass - include what you use - reorganized internal files - documentation fixes Change 3364579 on 2017/03/24 by Max.Preussner ImageWrapper: Deprecated shared pointer typedef and removed usages #upgradenotes: Please use TSharedPtr<IImageWrapper> instead of IImageWrapperPtr Change 3364582 on 2017/03/24 by Max.Preussner NetworkFileSystem: Removed monolithic boilerplate header #upgradenotes: Instead of including NetworkFileServer.h, include the INetworkFileXXX.h headers that you actually use. Remove the "Interfaces/" subdirectory from existing INetworkFileXXX.h includes Change 3381440 on 2017/04/05 by Max.Preussner Oculus: Removed illegal pragmas Change 3391731 on 2017/04/12 by Max.Preussner ImgMedia: Added support for BMP, JPG and PNG image sequences Change 3401146 on 2017/04/19 by Max.Preussner Core: Cleanup pass for FTimespan usages; updated documentation When initializing time span values from single components, consider using the FromHours, FromMinutes, FromSeconds, Zero, MinValue and related methods instead of calling the overloaded constructors as they will make your code easier to read and understand. Change 3401504 on 2017/04/20 by Max.Preussner MCP: Fixed incorrect FTimespan usage of GetMilliseconds instead of GetTotalMilliseconds Change 3401833 on 2017/04/20 by Max.Preussner Core: Various improvements to FTimespan - added proper serialization - updated documentation - access fractions as milli-, micro- or nanoseconds - removed the following string formatters as they were not useful: %D %H %M %S %F - updated documentation #upgradenotes: The %D string formatter (previously total number of days) is now the zero-padded days component of the time span. Time spans are now always exported and stringified with a leading plus or minus sign. #jira UE-43990 #jira UE-44163 Change 3437543 on 2017/05/12 by Max.Preussner PS4Media: Added audio error codes conversion Change 3446564 on 2017/05/18 by Max.Preussner Networking: Fixed nullpointer crash if socket initialization fails Change 3459978 on 2017/05/25 by Max.Preussner ImgMedia: Renamed frame cache to frame loader Change 3463311 on 2017/05/26 by Max.Preussner Core: Added iterators & predicate based methods to LRU Cache Change 3464452 on 2017/05/29 by Max.Preussner ImgMedia: Added video sample output Change 3464468 on 2017/05/29 by Max.Preussner Media: Added separate cache visualization for loaded and cached samples Change 3464592 on 2017/05/29 by Max.Preussner Core: Added TLruCache::FindAndTouch Change 3464607 on 2017/05/29 by Max.Preussner Core: Added TRange::Inclusive / ::Exclusive Change 3464608 on 2017/05/29 by Max.Preussner Media: Fixed incorrect upper bound in support play rates of various players Change 3466732 on 2017/05/30 by Max.Preussner ImgMedia: Added image compression type to info string Change 3466871 on 2017/05/31 by Max.Preussner WmfMedia: Fixed session capabilities not showing up; added initialization logging Change 3467785 on 2017/05/31 by Max.Preussner MfMedia: Fixed sample stride calculated from media input instead of output Change 3467963 on 2017/05/31 by Max.Preussner WmfMedia: Reordered media sub-type string conversion to fix some tracks being reported incorrectly Change 3468110 on 2017/05/31 by Max.Preussner WmfMedia: Added MPEG-2 media sub types to utils Change 3468516 on 2017/05/31 by Max.Preussner AndroidMedia: Allow mediaplayer audio to be disable on Android (UE-45570) Change 3468554 on 2017/05/31 by Max.Preussner MediaAssets: Added AutoClear option to automatically clear media texture when media is unloaded Change 3468627 on 2017/05/31 by Max.Preussner ImgMedia: Allowing for auto-selection of EXR decoder thread count Change 3468648 on 2017/05/31 by Max.Preussner ImgMedia: Reorganized OpenExrWrapper files Change 3471789 on 2017/06/02 by Max.Preussner WmfMedia: Fixed potential concurrency issue in session state management Change 3472918 on 2017/06/03 by Max.Preussner Core: Allowing zero sized LRU cache; added default constructor Change 3472919 on 2017/06/03 by Max.Preussner Media: Added pre-Slate tick stage; renamed some functions; continued to implement sample caching Change 3473704 on 2017/06/05 by Max.Preussner AndroidMedia: Added settings class Change 3474407 on 2017/06/05 by Max.Preussner AndroidMedia: Implemented video sample processing Change 3474934 on 2017/06/05 by Max.Preussner ImgMedia: Fixed crash due to deleting loader work items twice (UE-45705) #jira UE-45705 Change 3476925 on 2017/06/06 by Max.Preussner Media: Added return values to media view interface; documentation fixes Change 3477158 on 2017/06/06 by Max.Preussner SwitchMedia: Implemented sample pooling Change 3477201 on 2017/06/07 by Max.Preussner PS4Media: Implemented video sample pooling Change 3481470 on 2017/06/08 by Max.Preussner Media: Fixed time stamps not set in recycled texture samples Change 3481472 on 2017/06/08 by Max.Preussner MediaAssets: Fixed no video samples fetched while player is in buffering state Change 3481473 on 2017/06/08 by Max.Preussner MediaUtils: Added default constructor to MediaSampleQueue Change 3481584 on 2017/06/08 by Max.Preussner MediaUtils: Paused state is considered forward for sample lookup as this is the common case. Change 3481588 on 2017/06/08 by Max.Preussner PS4Media: Redesigned the PS4 media player to support async file loading & track switching Change 3481627 on 2017/06/08 by Max.Preussner PS4Media: Opening media sources in thread pool if not precaching Change 3481666 on 2017/06/08 by Max.Preussner ImgMedia: Fixed SequencePath property file picker always opening default path Change 3481669 on 2017/06/08 by Max.Preussner ImgMedia: Fixed crash when quering cache state of empty image sequence Change 3481685 on 2017/06/08 by Max.Preussner ImgMedia: Fixed EXR reader failing to play slow loading sequences (UE-45719) #jira UE-45719 Change 3483623 on 2017/06/10 by Max.Preussner Media: Added getters for 360 view settings; added support for relative view updates Change 3483624 on 2017/06/10 by Max.Preussner Media: Added Blueprint support for 360 videos Change 3483626 on 2017/06/10 by Max.Preussner MediaPlayerEditor: Added 360 video mouse controls; broke out viewport widget into separate class. Change 3483627 on 2017/06/10 by Max.Preussner Core: Using system start time instead of current time for renamed log file names Change 3483630 on 2017/06/10 by Max.Preussner Core: Grouping log files by log name and processing each group separately when deleting old log files Change 3483816 on 2017/06/10 by Max.Preussner WmfMedia: Detecting audio device availability to prevent lockup of audio tracks Change 3483939 on 2017/06/11 by Max.Preussner AvfMedia: Finished Media Framework 3.0 upgrade - overhauled track switching - removed render thread flushes - reduced nesting - code cleanup pass Change 3483940 on 2017/06/11 by Max.Preussner Media: Consistent track switching behavior across platforms Change 3484172 on 2017/06/11 by Max.Preussner MediaPlayerEditor: Removed obsolete asset type actions Change 3484180 on 2017/06/11 by Max.Preussner MediaPlayerEditor: Fixed media player info overlays not visible during mouse capture Change 3484248 on 2017/06/11 by Max.Preussner MediaAssets: Media players now always have a playlist Change 3484249 on 2017/06/11 by Max.Preussner MediaPlayerEditor: Added UI controls to Playlist tab Change 3484250 on 2017/06/11 by Max.Preussner Media: Implemented overlay sample caching Change 3484252 on 2017/06/11 by Max.Preussner WmfMedia: Enabled support for .smi and .sami subtitle files Change 3485433 on 2017/06/12 by Max.Preussner ImgMedia: Enabled plug-in on all platforms; enabled EXR only on platforms that support it Change 3485720 on 2017/06/12 by Max.Preussner MediaPlayerEditor: Added ability to save playlists Change 3485828 on 2017/06/12 by Max.Preussner AvfMedia: Thread-safe ticking of video sampler; ticking audio processing on high frequency thread Change 3485926 on 2017/06/12 by Max.Preussner MediaUtils: Draining all unconsumed samples at the end of a frame Change 3486043 on 2017/06/12 by Max.Preussner Media: Consistent behavior for playlist navigation (UE-45964) #jira UE-45964 Change 3486104 on 2017/06/12 by Max.Preussner MediaPlayerEditor: Implemented simple overlay text positioning Change 3486145 on 2017/06/12 by Max.Preussner AndroidMediaPlayer: Moved video sample handling into render thread Change 3486147 on 2017/06/12 by Max.Preussner MediaPlayerEditor: Moved overlay texts into separate layer Change 3486188 on 2017/06/12 by Max.Preussner Media: Enabling media factory modules in Editor for all players Change 3486223 on 2017/06/12 by Max.Preussner Media: Defaulting players to select first audio and video tracks by default Change 3486473 on 2017/06/13 by Max.Preussner Media: Buffering is no longer a media player state, but handled separately (for players that can buffer while playing) Change 3486475 on 2017/06/13 by Max.Preussner MediaPlayerEditor: Showing busy bar when buffering or preparing Change 3487237 on 2017/06/13 by Max.Preussner AndroidMedia: Fixed video sample not getting processed on render thread Change 3487507 on 2017/06/13 by Michael.Trepka AvfMedia - small cleanup of the code for passing video frame rate to the video sampler Change 3487719 on 2017/06/13 by Michael.Trepka Disable shared PCH in OpenExrWrapper to solve a problem with bUseRTTI mismatch between the module and the PCH Change 3487842 on 2017/06/13 by Max.Preussner AndroidMedia: Fixed texture swizzle disabled on non-Engine builds Change 3488006 on 2017/06/13 by Michael.Trepka AvfMedia - Moved some logic from FAvfMediaPlayer::TickTickable() to FAvfMediaTracks::ProcessAudio() to make it thread safe, plus fixed a bug with the player not setting the current status to Stopped after opening a file Change 3488308 on 2017/06/13 by Chris.Babcock AndroidMedia: Fixed flicker issue #jira UE-45736 Change 3488335 on 2017/06/13 by Max.Preussner MediaAssets: Made UFileMediaSource::GetFullPath public Change 3488338 on 2017/06/13 by Max.Preussner MediaPlayerEditor: Fixed "Show file in Explorer" not working for file media sources Change 3488339 on 2017/06/13 by Max.Preussner MediaPlayerEditor: Showing a throbber when buffering player Change 3488768 on 2017/06/14 by Max.Preussner Core: Inlined FTimespan static functions hange 3490203 on 2017/06/14 by Max.Preussner Core: Force inlined TComPtr operators Change 3494083 on 2017/06/15 by Chris.Babcock AndroidMedia: Fix playlist looping (send PlaybackEndReached event) #jira UE-46086 Change 3497017 on 2017/06/16 by Max.Preussner MediaAssets: Playlists now auto advance with PlayOnOpen off Change 3497075 on 2017/06/17 by Chris.Babcock MediaPlayer Sampler node and external texture support for Android MediaPlayer - enable with USE_EXTERNALTEXTURE in AndroidMediaPlayer.cpp (disabled in this CL) - supports MediaSample node in material editor with scale/bias handled if above flag enabled - fixed looping problems, including eventual crashes - track switching fixed (lockups and missing video) - corrected resource leaks and crash switching maps #jira UE-46055 #jira UE-45744 #jira UE-46086 Change 3497163 on 2017/06/17 by Max.Preussner MediaUtils: Processing media events immediately if on game thread Change 3497170 on 2017/06/17 by Max.Preussner Media: All Media Framework interfaces are pure virtual Change 3498603 on 2017/06/19 by Ben.Marsh UBT: Prevent plugins which list modules multiple times from adding them twice. Change 3500870 on 2017/06/20 by Max.Preussner WmfMedia: Rewrote WMF state machine; now with track switching #jira UE-20209 #jira UE-35385 #jira UE-38337 #jira UE-45676 Change 3502181 on 2017/06/20 by Chris.Babcock MediaSampler node updates - fixed issue with ExternalTexture singleton for DLL compatiblity - now works for all players (registers texture samples with ExternalTexture by player GUID) - enabled OES in AndroidMediaPlayer now that materials can universally use the MediaSampler Change 3503182 on 2017/06/21 by Max.Preussner Media: Refactored status flags into an enum; exposed connecting status Change 3503724 on 2017/06/21 by Chris.Babcock Improvement in MediaPlayer Sampler node - RGB, R, G, B, A output pins like normal texture sampler - allow preview in material editor - fix OES detection for Android Change 3509088 on 2017/06/26 by Max.Preussner MediaAssets: Added AddFile and AddUrl to UMediaPlaylist Change 3510256 on 2017/06/26 by Max.Preussner WmfMedia: Fixed play rate not set to zero when end reached Change 3510273 on 2017/06/26 by Max.Preussner MediaPlayerEditor: Removed obsolete Slate culling rectangle code Change 3510413 on 2017/06/26 by Max.Preussner MediaPlayerEditor: Showing frame rate if available Change 3510533 on 2017/06/26 by Max.Preussner MediaUtils: Preventing media cache filling up when scrubbing Change 3510859 on 2017/06/26 by Max.Preussner PS4Media: Fixed track switching crashes (UE-45960) #jira UE-45960 Change 3514173 on 2017/06/28 by Max.Preussner WmfMedia: Optimized player capabilities check Change 3514174 on 2017/06/28 by Max.Preussner WmfMedia: Moved media source resolver code into utility class Change 3514714 on 2017/06/28 by Max.Preussner Core: Added TComPointer.IsValid; code cleanup pass Change 3517912 on 2017/06/30 by Max.Preussner MediaUtils: Added GetVideoAspectRatio to player facade Change 3524957 on 2017/07/06 by Max.Preussner ImgMedia: Decoding image frames only when video track is selected Change 3525252 on 2017/07/06 by Max.Preussner ImgMedia: Async image sequence initialization Change 3525266 on 2017/07/06 by Max.Preussner ImgMedia: Enabled reverse playback Change 3525722 on 2017/07/06 by Max.Preussner WmfMedia: Workaround for occasional WMF internal deadlock in IMFRateSupport Change 3525800 on 2017/07/07 by Max.Preussner WmfMedia: Fixed another WMF deadlock issue & some rate change glitches; improved logging. Change 3525801 on 2017/07/07 by Max.Preussner MediaPlayerEditor: Made scrubbing more responsive Change 3526500 on 2017/07/07 by Max.Preussner WmfMedia: Using NULL for Windows pointers Change 3527323 on 2017/07/07 by Max.Preussner WmfMedia: Added support for audio and video capture media sources Change 3530197 on 2017/07/10 by Max.Preussner WmfMedia: Added utility functions for enumerating audio and video capture devices Change 3533465 on 2017/07/12 by Max.Preussner Media: Added media capture device support API & implementation for WMF Change 3533469 on 2017/07/12 by Max.Preussner MediaPlayerEditor: Added source selection menu w/ capture device menu to navigation bar Change 3533540 on 2017/07/12 by Max.Preussner MediaAssets: Blueprint support for media capture device discovery Change 3533574 on 2017/07/12 by Max.Preussner WmfMedia: Using cached supported play rates; more strict pausing support check Change 3533924 on 2017/07/12 by Max.Preussner WmfMedia: Added global LowLatency setting (UEVR-859) Note that this setting is only supported when compiling for Windows 8 or newer. Change 3534027 on 2017/07/12 by Max.Preussner WmfMedia: Compile time support for low latency session attribute on < Windows8 #jira UEVR-859 Change 3538744 on 2017/07/14 by Max.Preussner MediaUtils: Renamed FDefaultMediaTimeSource to FAppMediaTimeSource Change 3542818 on 2017/07/18 by Max.Preussner WmfMedia: Fixed race condition on session shutdown Change 3543082 on 2017/07/18 by Max.Preussner WmfMedia: Fixed track selection in media that doesn't support seeking Change 3543092 on 2017/07/18 by Max.Preussner Media: Implemented media track format API Enables multiple formats per media track. By default, the first usable format is selected. This feature is currently only implemented for WmfMedia. All other players assume a single format per track. Change 3543794 on 2017/07/19 by Max.Preussner WmfMedia: Added string conversion for null GUIDs Change 3543796 on 2017/07/19 by Max.Preussner MfMedia: Copied GUID string conversion updates from WmfMedia Change 3543797 on 2017/07/19 by Max.Preussner WmfMedia: Preventing duplicate track formats in capture devices with legacy DirectX support Change 3544390 on 2017/07/19 by Max.Preussner Media: Allowing INDEX_NONE as 'current selection' index in track format related functions Change 3545368 on 2017/07/19 by Max.Preussner WmfMedia: Fixed session error with some media sources when attempting to seek to current position without ever starting Change 3545388 on 2017/07/19 by Max.Preussner MediaAssets: Fixed RGB input sources rendered upside down Change 3545430 on 2017/07/19 by Max.Preussner MediaAssets: Fixed incorrect sRGB conversion on BMP inputs Change 3547362 on 2017/07/20 by Max.Preussner Core: Added IsGraph and IsPrint to TCHAR utilities Change 3547376 on 2017/07/20 by Max.Preussner WmfMedia: Better log messages for non-standard video types (UE-47533) #jira UE-47533 Change 3547404 on 2017/07/20 by Max.Preussner QAGame: Enabled PlayOnOpen and Looping on MediaPlayerSwitch BP (UE-47542) #jira UE-47542 Change 3547466 on 2017/07/20 by Max.Preussner WmfMedia: Fixed edge case for detecting whether pause is available Change 3548742 on 2017/07/21 by Max.Preussner Media: Added API for changing the input frame rate Change 3548743 on 2017/07/21 by Max.Preussner WmfMedia: Implemented ability to change input frame rate Change 3554411 on 2017/07/25 by Max.Preussner AudioMixer: Broke out SynthComponent initialization code; added bIsUISound property Change 3554818 on 2017/07/25 by Max.Preussner Media: Added per track-type cache queries Change 3557284 on 2017/07/26 by Max.Preussner WmfMedia: Added buffer size check in texture sample as well Change 3560530 on 2017/07/27 by Max.Preussner WmfMedia: Made COM object destructors private and added assertions Change 3560580 on 2017/07/27 by Max.Preussner MediaUtils: Added method for querying number of objects in pool Change 3562572 on 2017/07/28 by Max.Preussner WmfMedia: Properly handling topology status errors when opening media Change 3576710 on 2017/08/08 by Chris.Babcock bug fixes for mediaplayer - rare cases in Android media tracks - make FMediaCaptureDevice members available in blueprints Change 3577736 on 2017/08/08 by Chris.Babcock Extend ExternalTexture to support 2x3 transform (scale/rotation + offset) Change 3578831 on 2017/08/09 by Max.Preussner MediaAssets: Made media sound component BP spawnable Change 3579210 on 2017/08/09 by Max.Preussner UdpMessaging: Not showing warning message if tunnel settings left empty to use defaults Change 3579547 on 2017/08/09 by Chris.Babcock Better support for Android external texture detection Change 3579567 on 2017/08/09 by Chris.Babcock Android camera plugin #jira UEMOB-215 Change 3580035 on 2017/08/10 by Andrew.Rodham Media Texture: External textures are now fully supported and enforced when attempting to sample external texture types in materials. - Textures can now dynamically provide an external texture GUID at runtime, which is queried by the uniform expression. Statically defined GUIDs remain supported. - Added necessary ExternalTexture(Parameter) methods to the material compiler and HLSL translator - Made UTexture::GetMaterialType const-correct #tests Test map that contains TextureObject, TextureObjectParameter, TextureSample and TextureSampleParameter nodes with media textures works on both a Nexus 10 (non-image-external), and a Pixel (image-external), and on desktop PC. Change 3581552 on 2017/08/10 by Chris.Babcock Use bilinear sampling instead of point for external texture (Android media and camera) Change 3581628 on 2017/08/10 by Max.Preussner Core: Fixed FTimespan import/export/copypaste (UE-43990) #jira UE-43990 #jira UE-44163 Change 3581909 on 2017/08/11 by Andrew.Rodham Media: Only cache material proxy pointers if they have been initialized (and thus, will be removed from the cache on release) - This prevents destroyed proxies from remaining in the texture registry #jira UE-48307 Change 3582451 on 2017/08/11 by Max.Preussner AudioMixer: Fixed initialization order of synth components This ensures that the Synth is initialized before OnRegister in the super class initializes and activates the AudioComponents. Previously, the AudioComponent would fail to activate, because Synth was nullptr. #jira UE-48055 Change 3582453 on 2017/08/11 by Max.Preussner MediaAssets: Enabling ticking in media sound component (UE-48055) #jira UE-48055 Change 3583101 on 2017/08/11 by Chris.Babcock Android camera improvements - return correct capture device type (webcamfront/rear) - remove seek (not supported) - support track formats - better framerate selection Change 3590109 on 2017/08/16 by Chris.Babcock Move external texture coordinate update to improve accuracy and save a uniform in final shader Change 3590530 on 2017/08/16 by Max.Preussner MediaAssets: Changed capture device enumeration BP function signatures to allow filter bit masks #jira UE-48166 Change 3590547 on 2017/08/16 by Max.Preussner MediaPlayerEditor: Ticking sound component directly Change 3590628 on 2017/08/16 by Max.Preussner Switch: Fixed media decoder asserting when attempting to pause without having started Change 3591816 on 2017/08/16 by Aaron.McLeran #jira UE-48470 Disabling async processing for procedural sound waves on mac. Change 3592266 on 2017/08/16 by Max.Preussner Media: Replaced media cache with the new sample processing pipeline; continued to implement MfMedia This change fixes stuttering issues with audio and video. However, proper pipeline flushing is not fully implemented yet, so the playback will break after the first playthrough, which might result in freeze frames or out of memory assertions depending on the platform. This will be addressed in an upcoming change. #jira UE-48474 #jira UE-45677 Change 3592355 on 2017/08/17 by Max.Preussner MediaUtils: Added sample sink collection to remove code duplication Change 3592739 on 2017/08/17 by Max.Preussner ImgMedia: Fetching only one video sample per frame Change 3592741 on 2017/08/17 by Max.Preussner MediaUtils: Better sample fetching when paused Change 3592761 on 2017/08/17 by Max.Preussner MediaUtils: Fixed overflow detection in sample sinks Change 3592762 on 2017/08/17 by Max.Preussner ImgMedia: Sending end reached event when looping Change 3592885 on 2017/08/17 by Max.Preussner ImgMedia: Fixed reverse play Change 3592887 on 2017/08/17 by Max.Preussner MediaUtils: Better sample range calculation for audio samples Change 3593010 on 2017/08/17 by Max.Preussner ImgMedia: Fixed async loading of non-EXR image sequences Change 3593193 on 2017/08/17 by Max.Preussner AndroidMedia: Fixed typo Change 3593230 on 2017/08/17 by Max.Preussner Media: Implemented flushing for player sample queues Change 3593346 on 2017/08/17 by Max.Preussner Media: Proper sample processing for reverse playback Change 3593482 on 2017/08/17 by Max.Preussner Switch: Fixed sample range check for reverse playback Change 3594428 on 2017/08/17 by Max.Preussner PS4Media: Fixed video not playing/crashing #jira UE-48547 #jira UE-48549 Change 3595404 on 2017/08/17 by Max.Preussner MediaAssets: Not requesting audio samples if not playing #jira UE-48557 Change 3595624 on 2017/08/17 by Max.Preussner PS4Media: Fixed no looping after track switching #jira UE-46524 #jira UE-48557 Change 3595704 on 2017/08/17 by Max.Preussner MediaUtils: Improved sample queue flushing Eventually this needs to be event-driven. #jira UE-48557 Change 3595706 on 2017/08/17 by Max.Preussner PS4Media: Flushing queues when track switching #jira UE-48557 Change 3595909 on 2017/08/17 by Max.Preussner Matinee: Fix Matinee redirect missing as UClass has been GC'ed (GitHub PR #3382) https://github.com/EpicGames/UnrealEngine/pull/3382 #jira UE-42906 #rn Fix Matinee redirect missing as UClass has been GC'ed (GitHub PR #3382) Change 3597480 on 2017/08/18 by Max.Preussner ImgMediaPlayer: Fixed presentation time calculation for very large delta times Change 3597669 on 2017/08/18 by Max.Preussner ImgMedia: Setting player stopped instead of paused when end reached Change 3597709 on 2017/08/18 by Max.Preussner SwitchMedia: Fixed audio sample duration calculation Change 3598479 on 2017/08/18 by Max.Preussner ImgMedia: Ensuring that first/last frame is played when starting playback forward/reverse; improved state checking; user logging Change 3598629 on 2017/08/18 by Max.Preussner MediaUtils: Properly handling pending flushes when peeking sample queues Change 3598633 on 2017/08/18 by Max.Preussner WmfMedia: Fixed occasional WMF deadlock when scrubbing Change 3598653 on 2017/08/18 by Max.Preussner MediaUtils: Fixed audio resampling in reverse playback Change 3598659 on 2017/08/18 by Max.Preussner MediaPlayerEditor: Creating sound output only if audio device available Change 3598688 on 2017/08/18 by Max.Preussner MediaUtils: Flushing sample queues on direction change regardless of paused state Change 3599444 on 2017/08/20 by Max.Preussner WmfMedia: Added missing check for rate control when quering supported rates Change 3603661 on 2017/08/22 by Max.Preussner WmfMedia: Fixed NV12 output Change 3604345 on 2017/08/23 by Max.Preussner MediaUtils: Added subtitle samples to media sample collection; fixed documentation Change 3604987 on 2017/08/23 by Max.Preussner PS4Media: Setting correct track format types Change 3605117 on 2017/08/23 by Joe.Barnes Fix issue where presentation time was being treated as milliseconds instead of microseconds. Change 3605128 on 2017/08/23 by Joe.Barnes Fix potential issue calculating total (looped) play time after seek or reset. Track last video presentation time Change 3605139 on 2017/08/23 by Joe.Barnes Support audio type DType_Setup. Fix issue with procedural sounds popping. Consume more samples if necessary. #jira ue-48544 Change 3605197 on 2017/08/23 by Max.Preussner Media: Fixed track display name formatting (UE-48767) #jira UE-48767 Change 3605817 on 2017/08/23 by Max.Chen Auto set sampler type on drop on actor. #jira UE-48769 Change 3605999 on 2017/08/23 by Max.Preussner MfMedia: Restarting source reader when switching tracks #jira UE-48766 Change 3606416 on 2017/08/23 by Max.Preussner PS4Media: Various player improvements #jira UE-48586 Change 3607656 on 2017/08/24 by Max.Preussner WmfMedia: Improved logging for Seek and SetRate Change 3607855 on 2017/08/24 by Max.Preussner MfMedia: Better verbose logging; validating seeks; reduced nesting; fixed track switching\ #jira UE-48766 Change 3608029 on 2017/08/24 by Max.Preussner PS4Media: Fixed streaming media not playing; improved result checks & logging #jira UE-48610 Change 3608473 on 2017/08/24 by Max.Preussner MfMedia: Fixed audio sample duration calculation #jira UE-48756 Change 3609316 on 2017/08/24 by Chris.Babcock Provide external texture RotationScale and Offset from sample Change 3610067 on 2017/08/25 by Richard.Wallis Mac: Editor locks up when Track switching and Mac: Media Audio continues to play after closing player. - Fix for creating extra OS AV media playback objects so audio playback not stopping due to over retained objects. - Trying to access OS AV Media Playback object (esp. the currentTime value) across mutliple threads at once seems to cause deadlock in the Apple libraries - moved location of currentTime acess point to Media Ticker - this sets the current time and is then just returned in the getter when on game main. - Trying to playback audio via OS media playback and through the engine at the same time when enabling the selected audio track. Engine version via sample buffers via AVAssetReaderTrackOutput doesn't seem to be working as intended with the new audio frame work audio sinks - so reverting to OS AV media playback for Mac at the moment until better fix for this can be put in. #jira UE-48590, UE-48604 Change 3610267 on 2017/08/25 by Max.Preussner PS4Media: Added missing track selection validation #jira UE-48765 Change 3610399 on 2017/08/25 by Max.Preussner PS4Media: Fixed infinite player re-initialization loop if track selection failed Change 3610809 on 2017/08/25 by Chris.Babcock Fixes for Android media player and camera player - buffer samples copy proper bytecount - realloc sets new buffer ptr - refcount of Java buffers fixed Change 3610953 on 2017/08/25 by Chris.Babcock Fix audio disable before play on Android media player Change 3611405 on 2017/08/25 by Max.Preussner WmfMedia: Resetting supported rates if RateSupport unavailable Change 3611406 on 2017/08/25 by Max.Preussner MfMedia: Resetting supported rates if RateSupport unavailable Change 3611453 on 2017/08/25 by Chris.Babcock Android external texture extension updates for compatibility Change 3611719 on 2017/08/26 by Max.Preussner Media: Added media event for completed seek operations; flushing sinks on seek Change 3611764 on 2017/08/26 by Max.Preussner AvfMedia: Setting player to preparing state prior to initializing tracks asynchronously Change 3611802 on 2017/08/26 by Max.Preussner Media: Exposed error state in media player Change 3611803 on 2017/08/26 by Max.Preussner MediaPlayerEditor: Showing error state in UI Change 3611887 on 2017/08/26 by Max.Preussner MediaUtils: Corrected media sample sink overflow check Change 3611892 on 2017/08/27 by Max.Preussner WmfMedia: Leaving session in error state after error Change 3611929 on 2017/08/27 by Max.Preussner MediaPlayerEditor: Fixed sound stopping on looping Change 3611930 on 2017/08/27 by Max.Preussner MfMedia: Rewrote async sample processing to fix various playback issues Change 3611942 on 2017/08/27 by Max.Preussner Media: Sending suspension event when playback ended Change 3611957 on 2017/08/27 by Max.Preussner UnrealEd: Allowed transient assets to be resaved to disk Change 3611981 on 2017/08/27 by Max.Preussner PS4Media: Rewrote sample processing to fix various playback issues #jira UE-48596 #jira UE-48793 Change 3612035 on 2017/08/27 by Max.Preussner UnrealEd: Picking standard default names when resaving transient packages Change 3612045 on 2017/08/27 by Max.Preussner Media: Fixed playlists not getting saved correctly from Editor (UE-35382) #jira UE-35382 Change 3612212 on 2017/08/28 by Richard.Wallis Fix for Multitrack Video samples continue to Play on Open after Play on Open is toggled off. Current Rate was not getting reset back to 0.0 on media close. #jira UE-47602 Change 3613531 on 2017/08/28 by Max.Preussner MediaAssets: Fixed external texture related crash on shutdown (UE-48918) Also no longer creating clock sink for media player CDO #jira UE-48918 Change 3613677 on 2017/08/28 by Andrew.Porter Fixed crash at exit in Mac editor caused by double release of AVPlayerItem object #jira UE-48937 Change 3615917 on 2017/08/29 by Max.Preussner MfMedia: Added compile options for DXVA and falling back to synchronous sample reading [CL 3617655 by Max Chen in Main branch]
2017-08-30 09:37:09 -04:00
int32 PreInit(int32 ArgC, TCHAR* ArgV[], const TCHAR* AdditionalCommandline = nullptr);
/**
* Pre-Initialize the main loop - parse command line, sets up GIsEditor, etc.
*
* @param CmdLine The command line.
* @return The error level; 0 if successful, > 0 if there were errors.
*/
int32 PreInit(const TCHAR* CmdLine);
/** First part of PreInit. */
int32 PreInitPreStartupScreen(const TCHAR* CmdLine);
/** Second part of PreInit. */
int32 PreInitPostStartupScreen(const TCHAR* CmdLine);
/** Load all modules needed before Init. */
void LoadPreInitModules();
/** Load core modules. */
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3151653) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2975891 on 2016/05/12 by Gil.Gribb merged in new async stuff from dev-rendering. Change 2976695 on 2016/05/13 by Gil.Gribb updated precache list Change 2977030 on 2016/05/13 by Gil.Gribb Added time slicing to CreateAsyncPackagesFromQueue, radically reduced the frequency of "precache trimming" and changed a few things in the test rig and logging Change 2977090 on 2016/05/13 by Gil.Gribb Fixed module manager threading and added cmd line param to force async loading thread. Change 2977292 on 2016/05/13 by Gil.Gribb check for thread safety in looking at asset registry Change 2977296 on 2016/05/13 by Gil.Gribb removed some super-expensive check()s from precacher Change 2978368 on 2016/05/16 by Gil.Gribb Move several exposive bools inside of the basic tests inside of FLinkerLoad::Preload, saves a fraction of second. Change 2978414 on 2016/05/16 by Gil.Gribb Added support and testing for unmounting pak files to the pak precacher. Change 2978446 on 2016/05/16 by Gil.Gribb Allow linker listing in non-shipping builds Change 2978550 on 2016/05/16 by Gil.Gribb Allowed some linker spew in non-shipping builds (instead of debug builds). Some tweak to help track down the music.uasset leak. Change 2979952 on 2016/05/17 by Robert.Manuszewski Merging //UE4/Dev-Core @ 2979938 to Dev-UE-30519-LoadTimes Change 2984927 on 2016/05/20 by Gil.Gribb fix a few bugs with an mcp repro Change 2984951 on 2016/05/20 by Gil.Gribb fixed issues with USE_NEW_ASYNC_IO = 0 Change 2985296 on 2016/05/20 by Gil.Gribb Fixed several bugs with the MCP boot test Change 2987956 on 2016/05/24 by Robert.Manuszewski Fixing leaked linkers created by blocking load requests during async loading. Change 2987959 on 2016/05/24 by Joe.Conley Enable load timings in block loading also (in addition to async loading). Change 3017713 on 2016/06/17 by Robert.Manuszewski Removing GUseSeekFreeLoading. Change 3017722 on 2016/06/17 by Robert.Manuszewski Renaming LOAD_SeekFree flag to LOAD_Async to better reflect its current purpose. Change 3017833 on 2016/06/17 by Robert.Manuszewski Merging //UE4/Dev-Core to Dev-UE-30519-LoadTimes (//Tasks/Dev-Core/Dev-UE-30519-LoadTimes) Change 3017840 on 2016/06/17 by Robert.Manuszewski Re-doing Dev-Core changes to Delegates 2/2 Change 3022872 on 2016/06/22 by Gil.Gribb reorder memory trim and deleting loaders Change 3059218 on 2016/07/21 by Robert.Manuszewski Fixing compilation errors - adding missing load time tracker stats. Change 3064508 on 2016/07/26 by Robert.Manuszewski Removing blocking loading path in cooked builds. LoadPackage will now use the async path. Change 3066312 on 2016/07/27 by Gil.Gribb Event driven loader, first pass Change 3066785 on 2016/07/27 by Gil.Gribb Removed check...searching forward for export fusion can release a node Change 3068118 on 2016/07/28 by Gil.Gribb critical bug fixes for the event driven loader Change 3068333 on 2016/07/28 by Gil.Gribb correctly handle the case where a file is rejected after loading the summary Change 3069618 on 2016/07/28 by Robert.Manuszewski Merging //UE4/Dev-Core to Dev-UE-30519-LoadTimes (//Tasks/Dev-Core/Dev-UE-30519-LoadTimes) Change 3069901 on 2016/07/29 by Robert.Manuszewski Fixing an hang when loading QA-Blueprints level Change 3070171 on 2016/07/29 by Gil.Gribb fixed CDO cyclic dependencies Change 3075288 on 2016/08/03 by Gil.Gribb misc fixes to the event driven loader Change 3077332 on 2016/08/04 by Robert.Manuszewski Fixing checkSlow asserts caused by new loading code not being flagged as IsInAsyncLoadThread() and CreateSynchEvent deprecation warning. Change 3078113 on 2016/08/04 by Gil.Gribb implemented "nicks rule" and undid some previous material and world hacks needed without it. Change 3079480 on 2016/08/05 by Gil.Gribb fixes and tweaks on event driven loader Change 3080135 on 2016/08/07 by Gil.Gribb misc fixes for event driven loader, now with reasonable memory Change 3083722 on 2016/08/10 by Robert.Manuszewski Fixing hangs when async loading packages. Change 3091747 on 2016/08/17 by Gil.Gribb Fix all hitches in streaming load that were regressions. Change 3093258 on 2016/08/18 by Gil.Gribb Fix bug that caused an assert when packages fail to load for certain reasons (like loading an uncooked file). Change 3095719 on 2016/08/20 by Gil.Gribb reenable async loading thread and cleanup and bug fixes Change 3096350 on 2016/08/22 by Gil.Gribb tweak task priorities a bit to minimize precaching memory Change 3096355 on 2016/08/22 by Gil.Gribb add support for precaching for "loose files" in the generic async layer. Change 3098091 on 2016/08/23 by Gil.Gribb Split header into a separate file and disabled a bad optimization in the bulk data. Change 3099783 on 2016/08/24 by Gil.Gribb rework dependency graph to be much, much faster. About half done. Change 3100995 on 2016/08/25 by Gil.Gribb fixed bugs with streaming texture from .uexp and cook time check that should have been runtime only Change 3101369 on 2016/08/25 by Gil.Gribb fixed bug with blueprints in the new loader. Change 3102793 on 2016/08/26 by Gil.Gribb PS4 - fixed small block memcpy to actually be inline Change 3103785 on 2016/08/27 by Gil.Gribb fixed case bug with pak order. devirtualized flinkerload::serialize, made sure -fileopenlog is not heavily skewed Change 3104884 on 2016/08/29 by Gil.Gribb fixed a BP bug and tweaked the -fileopenlog behavior to do leaf assets DFS Change 3105266 on 2016/08/29 by Ben.Zeigler Editor build compilation fix Change 3105774 on 2016/08/30 by Gil.Gribb add checks to locate cases where we try to use something that isn't loaded yet Change 3107794 on 2016/08/31 by Gil.Gribb fixed abug with BP's not loading the parent CDO soon enough Change 3114278 on 2016/09/06 by Gil.Gribb looping loads for paragon load test Change 3114311 on 2016/09/06 by Ben.Zeigler Fix linux compile Change 3114350 on 2016/09/06 by Ben.Zeigler Linux supports fast unaligned int reads Change 3116169 on 2016/09/07 by Ben.Zeigler Force enable separate bulk data cooking when using split cooked files, end-of-exp-file doesn't make sense with the new cook scheme and will crash at runtime Change 3116538 on 2016/09/07 by Gil.Gribb add dependencies for CDO subobjects Change 3116596 on 2016/09/07 by Ben.Zeigler Change crash to warning when trying to load an import to a missing native class, can happen with editor only classes. Change 3116855 on 2016/09/07 by Ben.Zeigler Move cook dialog down a bit so I can cook without constant dialogs popping up Change 3117452 on 2016/09/08 by Robert.Manuszewski Fixing hang when suspending async loading with the async loading thread enabled. Change 3119255 on 2016/09/09 by Robert.Manuszewski Removing texture allocations from PackageFileSummary as they were not used by anything. Change 3119303 on 2016/09/09 by Gil.Gribb Fixed font issue by making all all bulk data either inline or in a ubulk. Added support for compressed packages. Change 3120324 on 2016/09/09 by Ben.Zeigler Fix Cook warnings. Skip transient and client/server only objects when adding dependencies, and mark ShapeComponent BodySetups as properly transient. Change 3121960 on 2016/09/12 by Ben.Zeigler Add RandomizeLoadOrder CVar to randomize the package serial number it uses for sorting async loads Change 3122635 on 2016/09/13 by Gil.Gribb reworked searching disk warning and minor change to the background tasks used for decompression Change 3122743 on 2016/09/13 by Gil.Gribb added some checks around memory accounting Change 3123395 on 2016/09/13 by Ben.Zeigler Enable MallocBinned2 by default on cooked windows builds, similar to how PS4 works. Disabled thread pool cache clearing on windows, the threading function it was using is very slow on windows specifically Change 3124748 on 2016/09/14 by Gil.Gribb Store template in import/export table and refer to it for each export to avoid calling GetArchetypeFromRequiredInfo. Minor fix for some NeedLoadForCLient etc stuff on landscape and CDOs. Fix texture streamer minmips stuff. Change 3125153 on 2016/09/14 by Gil.Gribb don't put transient objects in the import map Change 3126668 on 2016/09/15 by Gil.Gribb Fix critical bug with imports not waiting for the corresponding export to serialize. Fixed paragon test rig to run longer looping by flushing the renderer. Made random mode more random. Change 3126755 on 2016/09/15 by Gil.Gribb ooops, test rig fix Change 3127408 on 2016/09/15 by Ben.Zeigler Back out changelist 3123395, restoring windows memory to 4.13 setup Change 3127409 on 2016/09/15 by Ben.Zeigler Remove Memory trim from FlushAsyncLoading, because it gets called much more often in new flow and is slow on some platforms Change 3127948 on 2016/09/16 by Gil.Gribb Added a check() on any attempt to serialize a pointer to something that hasn't been created yet. This will help us find missing dependencies. There is an exception to this related to CDOs. Change 3128094 on 2016/09/16 by Robert.Manuszewski Fixing exports referenced by weak object pointers not being added to the preload dependency list of of the exports that depend on them. + Moved weak object pointer serialization to FArchive operator << to be able to override its behavior when cooking. Change 3128148 on 2016/09/16 by Robert.Manuszewski Gil's mod to how we detect exports with missing dependencies Change 3129052 on 2016/09/16 by Ben.Zeigler Add Missing Serialize helpers for WeakObjectPtrs, fixes crash with replicating weak objects Change 3129053 on 2016/09/16 by Ben.Zeigler Fake integrate CL #3123581 from Dev-Framework, to correctly handle detecting components as editor only even when they have collision. Fixes crashes with blueprint editor only components that depend on native templates Change 3129630 on 2016/09/17 by Gil.Gribb better logging for missing dependencies and properly ifdef'd the CDO primitive comp hack Change 3130178 on 2016/09/19 by Robert.Manuszewski Use the correct macro (COOK_FOR_EVENT_DRIVEN_LOAD instead of USE_NEW_ASYNC_IO) for SavePackage changes from CL #3128094 Change 3130224 on 2016/09/19 by Robert.Manuszewski Compile error fix Change 3130391 on 2016/09/19 by Gil.Gribb Add cook time fatal errors, and undid a previous change we don't seem to need relating to editor only CDOs Change 3130484 on 2016/09/19 by Gil.Gribb fixed botched GetArchetypeFromRequiredInfo Change 3131966 on 2016/09/20 by Robert.Manuszewski Making the new event driven loader disabled by default. It's now also configurable via project settings (under Streaming Settings -> Event Driven Loader Enabled). Enabled the event driven loader for a few internal projects. Change 3132035 on 2016/09/20 by Gil.Gribb fix dynamic switch on new loader Change 3132041 on 2016/09/20 by Robert.Manuszewski Fix for packages not being saved to disk when cooking with event driven loader disabled. Change 3132195 on 2016/09/20 by Robert.Manuszewski Enabling the event driven loader for Zen Change 3133870 on 2016/09/21 by Graeme.Thornton Config files now enable the event driven loader with the correct cvar name Change 3135812 on 2016/09/22 by Gil.Gribb fixed some bugs with GC during streaming Change 3136102 on 2016/09/22 by Robert.Manuszewski Release GC lock when FlushingAsyncLoading when running GC. Change 3136633 on 2016/09/22 by Gil.Gribb fix bug with linkers finsihing before other things linked their imports Change 3138002 on 2016/09/23 by Robert.Manuszewski Added an assert that will prevent content cooked for the event driven loader to be loaded by game builds that have the EDL disabled. Change 3138012 on 2016/09/23 by Gil.Gribb Improved the fix to prevent packages from finishing before external imports have linked. Async load object libraries. Change 3138031 on 2016/09/23 by Gil.Gribb do not preload obj libs in editor Change 3139176 on 2016/09/24 by Gil.Gribb fixed another bug with an attempt to call GetArchetypeFromRequiredInfo Change 3139459 on 2016/09/26 by Robert.Manuszewski Merging //UE4/Release-4.13 to Dev-LoadTimes (//Tasks/UE4/Dev-LoadTimes) Change 3139668 on 2016/09/26 by Gil.Gribb change some checks to errors on bad bulk data loads Change 3141127 on 2016/09/27 by Robert.Manuszewski Preventing linkers from being detached too early when async loading. Change 3141129 on 2016/09/27 by Robert.Manuszewski Releasing GC Lock before calling post GC callbacks to allow StaticFindObject use in these callbacks Change 3142048 on 2016/09/27 by Robert.Manuszewski Changing async loading code to not close DelayedLinkerClosePackages linkers until the async package that triggered their creation has finished loading. Change 3143132 on 2016/09/28 by Gil.Gribb fixed text render comp, which has some editor only issues. Fixes a runtime crash and adds a cooktime warning. Change 3143198 on 2016/09/28 by Gil.Gribb fixed it so that bogus loads of bulk data are warned but do not crash Change 3143287 on 2016/09/28 by Robert.Manuszewski UBT will now invalidate its makefiles if ini files are newer than the makefile (ini files may contains global build settings). + Android toolchain will add hashed command line values to the action reposnse filenames to actually allow it to detect compiler command line changes when detecting actions to execute Change 3143344 on 2016/09/28 by Robert.Manuszewski Make UAT pass the project filename to UBT when build non-code projects so that UBT can parse all ini files. Change 3143865 on 2016/09/28 by Gil.Gribb iffy fix for the net load assert in paragon, plus a few checks and one bit of code removed that should never be hit in the EDL, but makes no sense Change 3144683 on 2016/09/29 by Graeme.Thornton Minor refactor of pak file non-filename stuff - Don't check for file existing before running through the security delegate - Default behaviour when using new IO is to reject uasset/umap/ubulk/uexp files immediately. Can be disabled by setting EXCLUDE_NONPAK_UE_EXTENSIONS to 0 in project .build.cs Change 3144745 on 2016/09/29 by Graeme.Thornton Orion non-pak file whitelisting is enabled for all cooked game only builds now, rather than just clients Change 3144780 on 2016/09/29 by Gil.Gribb use poison proxy on non-test/shipping builds Change 3144819 on 2016/09/29 by Gil.Gribb added a few asserts and added an improved fix for the net crash Change 3145414 on 2016/09/29 by Gil.Gribb fixed android assert....not sure why I need that block of code. Change 3146502 on 2016/09/30 by Robert.Manuszewski Fix for GPU hang from MarcusW Change 3146774 on 2016/09/30 by Robert.Manuszewski Fixing a crash when constantly streaming levels in and out caused by keeping references to objects (levels) that were requested to be streamed out. - Removed FAsyncObjectsReferencer. References will now be owned by FAsyncPackage - UGCObjectReferencer is now more thread safe Change 3148008 on 2016/10/01 by Gil.Gribb add additional error for attempting to create an object from a class that needs to be loaded Change 3148009 on 2016/10/01 by Gil.Gribb fix very old threading bug whereby the ASL and GT would attempt to use the same static array Change 3148222 on 2016/10/02 by Robert.Manuszewski Fix for an assert when an FGCObject is removed when purging UObjects Change 3148229 on 2016/10/02 by Gil.Gribb disable assert that was crashing paragon ps4 Change 3148409 on 2016/10/03 by Robert.Manuszewski Allow another case for removing FGCObjects while in GC. Change 3148416 on 2016/10/03 by Robert.Manuszewski Merging //UE4/Release-4.13 to Dev-LoadTimes (//Tasks/UE4/Dev-LoadTimes) Change 3149566 on 2016/10/03 by Ben.Zeigler #jira UE-36664 Fix issue where objects loaded during async loading could be added to the wrong package's object list, if a time slice ended at the wrong point Change 3149913 on 2016/10/04 by Gil.Gribb better broadcast Change 2889560 on 2016/03/02 by Steven.Hutton Packages for scheduled tasks. Change 2889566 on 2016/03/02 by Steven.Hutton Remaining nuget packages for hangfire, unity and scheduled tasks. Change 2980458 on 2016/05/17 by Chris.Wood Attempt to fix crash report submission problems from CRP to CR website [UE-30257] - Crashreports are sometimes missing file attachments Passing crash GUID so that website can easily check for duplicates in future Increased request timeout for AddCrash to be longer than website database timeout Logging retries for future visibility CRP v.1.1.6 Change 3047870 on 2016/07/13 by Steven.Hutton Updated CRW to entity framework with repository models. #rb none Change 3126265 on 2016/09/15 by Steve.Robb Fix for TCString::Strspn. Change 3126266 on 2016/09/15 by Steve.Robb Alternative fix for GitHub 2698: Fix one bug : Parsing command "Enable True" is invalid. #jira UE-34670 Change 3126268 on 2016/09/15 by Steve.Robb UWorld can no longer be extended by users. UHT now handles final class declarations. #jira UE-35708 Change 3126273 on 2016/09/15 by Steve.Robb A further attempt to catch uninitialized pointers supplied to the GC. #jira UE-34361 Change 3130042 on 2016/09/19 by Steve.Robb Super for USTRUCTs. Suggested here: https://udn.unrealengine.com/questions/310461/automatically-typedef-super-for-ustructs.html Change 3131861 on 2016/09/20 by Steven.Hutton Reconciling work for view engine changes #rb none Change 3131862 on 2016/09/20 by Steve.Robb Removal of THasOperatorEquals and THasOperatorNotEquals from Platform.h, which should have happened as part of CL# 3045963. Change 3131863 on 2016/09/20 by Steven.Hutton Adding packages #rb none Change 3131869 on 2016/09/20 by Steve.Robb Improved error message for enum classes with a missing base: Error: Missing base specifier for enum class 'EMyEnum' - did you mean ': uint8'? Change 3132046 on 2016/09/20 by Graeme.Thornton Fix for cvar thread access assert in FLandscapeComponentGrassData serialization function - This function can be called from the async thread so access CVarGrassDiscardDataOnLoad with GetValueOnAnyThread() rather than GetValueOnGameThread() Change 3133201 on 2016/09/20 by Ben.Zeigler Reorganize WindowsPlatformMemory and MacPlatformMemory to work like LinuxPlatformMemory where there is an enum to select the allocator, and move some of it up to GenericPlatformMemory Add command line options to select malloc at runtime for Windows and Linux, I don't know how Mac options work Improve the performance of BroadcastSlow_OnlyUseForSpecialPurposes on windows, but there are cases where it occaisionally stalls for a few seconds waiting for the flush Add MallocBinned2 as an option for mac, linux, and windows, but default to off due to some threading issues Change 3133722 on 2016/09/21 by Graeme.Thornton Cooker forces a shader compilation flush when it detects that it has passed the max memory budget Change 3133756 on 2016/09/21 by Steve.Robb Refactor of TrimPrecedingAndTrailing to avoid a call to FString::Mid with a negative count, which is now illegal. #jira UE-36163 Change 3134182 on 2016/09/21 by Steve.Robb GitHub #1986: Don't show warnings and erros in console twice with UCommandlet::LogToConsole == true #jira UE-25915 Change 3134306 on 2016/09/21 by Ben.Zeigler Fix it so FMallocBinned2::Trim skips task threads on desktop platforms, they are too slow and don't allocate much memory Enable MallocBinned2 as default binned malloc on Windows Remove the -Run command line check as it was removed from the old version as well Change 3135569 on 2016/09/22 by Graeme.Thornton Don't create material resources if we are in a build that can never render - Saves a few MB of memory Change 3135652 on 2016/09/22 by Steve.Robb New async-loading-thread-safe IsA implementation. #jira UECORE-298 Change 3135692 on 2016/09/22 by Steven.Hutton Minor bug fixes to view pages #rb none Change 3135990 on 2016/09/22 by Robert.Manuszewski Adding ENGINE_API to FStripDataFlags sp that it can be used outside of the Engine module. Change 3136020 on 2016/09/22 by Steve.Robb Display a meaningful error and shutdown if Core modules fail to load. https://udn.unrealengine.com/questions/312063/mac-unrealheadertool-failing-randomly.html Change 3136107 on 2016/09/22 by Chris.Wood Added S3 file upload to output stage of Crash Report Process (v.1.1.26) [UE-35991] - Crash Report Process to write crash files to S3 Also adds OOM alerts to CRP. Also disk space alerts changed to 5% free space and repeat once every 30 minutes instead of 10 minutes. Change 3137562 on 2016/09/23 by Steve.Robb TUniquePtr<T[]> support. Change 3138030 on 2016/09/23 by Steve.Robb Virtual UProperty functions moved out of headers into .cpp files to ease iteration. Change 3140381 on 2016/09/26 by Chris.Wood Disabled uploads via CRRs while leaving services switched on to avoid crashes in some clients. [UETOOL-1005] - Turn off CrashReportReceivers Change 3141150 on 2016/09/27 by Steve.Robb Invoke support for TFunction. Change 3141151 on 2016/09/27 by Steve.Robb UBoolProperty now supports hashing and is therefore usable as a TSet element or TMap key. FText is now prevented from being a TSet element or TMap key. UTextProperty::GetCPPTypeForwardDeclaration implementation moved to the .cpp file. #jira UE-36051 #jira UE-36053 Change 3141440 on 2016/09/27 by Chris.Wood Removed legacy queues and unnecessary duplication checks from Crash Report Process (v1.2.0) [UE-36246] - CRP scalability: Simplify CRP inputs to DataRouter/S3 only Change 3142999 on 2016/09/28 by Chris.Wood Added dedicated PS4 crash queue to Crash Report Process (v1.2.1) Change 3144831 on 2016/09/29 by Steve.Robb InternalPrecache now flags the archive as in-error so that it can be checked by a caller, rather than popping up a dialog box and asserting. #jira https://jira.it.epicgames.net/browse/OPP-6036 Change 3145184 on 2016/09/29 by Robert.Manuszewski FScopedCreateImportCounter will now always store the current linker and restore the previous one when it exits. Change 3148432 on 2016/10/03 by Robert.Manuszewski Thread safety fixes for the async log writer + made the async log writer flush its archive more often. Change 3148661 on 2016/10/03 by Graeme.Thornton Fixing merge of IsNonPakFilenameAllowed() - Removed directory search stuff... we pass everything to the delegate now anyway Change 3149669 on 2016/10/03 by Ben.Zeigler Lower verbosity of warnings from deleting native properties. These cases do not cause any problems and are not fixable without resaving the content after it has started warning. I checked Jira history and neither of these warnings has ever found a real bug, but has caused a lot of content to be resaved unnecessarily. Change 3149670 on 2016/10/03 by Ben.Zeigler Merge CL #3149566 from Dev-LoadTimes #jira UE-36664 Fix issue where objects loaded during async loading could be added to the wrong package's object list, if a time slice ended at the wrong point Change 3149835 on 2016/10/04 by Graeme.Thornton Thread safety fix for SkyLightComponent - Add to global update list from PostLoad rather than PostInitProperties so that it happens on the game thread, and not the async loading thread (if enabled) Change 3149836 on 2016/10/04 by Graeme.Thornton Thread safety fix for ReflectionCaptureComponent - Add to global update list from PostLoad rather than PostInitProperties so that it happens on the game thread, and not the async loading thread (if enabled) Change 3149959 on 2016/10/04 by Robert.Manuszewski Allow import packages to be missing if they're on the KnownMissingPackages list Change 3150023 on 2016/10/04 by Steven.Hutton Updating jira strings. #rb none Change 3150050 on 2016/10/04 by Steve.Robb MakeShared now returns a TSharedRef (which is implicitly convertible to TSharedPtr) rather than a TSharedPtr (which is not implicitly convertible to TSharedRef), for ease of use and because MakeShared can't return a null pointer anyway. Change 3150110 on 2016/10/04 by Robert.Manuszewski Allow UGCObjectReferencer::AddObjects to happen during BeginDestry and FinishDestroy. It's fine as long as we're not adding new objects during reachability analysis. Change 3150120 on 2016/10/04 by Gil.Gribb fix task graph/binned2 broadcast for PS4 Change 3150195 on 2016/10/04 by Robert.Manuszewski Fixing WEX crash #jira UE-36801 Change 3150212 on 2016/10/04 by Robert.Manuszewski Increasing compiler memory limit to fix CIS errors #jira UE-36795 Change 3151583 on 2016/10/05 by Robert.Manuszewski Temporarily switching to the old IsA path #jria UE-36803 Change 3151642 on 2016/10/05 by Steve.Robb Dependency fixes for GameFeedback modules. Change 3151653 on 2016/10/05 by Robert.Manuszewski Maybe fix for crash on the Mac #jira UE-36846 [CL 3152539 by Robert Manuszewski in Main branch]
2016-10-05 16:51:01 -04:00
bool LoadCoreModules();
/** Clean up PreInit context. */
void CleanupPreInitContext();
#if WITH_ENGINE
/** Load all core modules needed at startup time. */
bool LoadStartupCoreModules();
/** Load all modules needed at startup time. */
bool LoadStartupModules();
/**
* Initialize the main loop (the rest of the initialization).
*
* @return The error level; 0 if successful, > 0 if there were errors.
*/
virtual int32 Init() override;
/** Initialize the timing options from the command line. */
void InitTime();
/** Performs shut down. */
void Exit();
/** Whether the engine should operate in an idle mode that uses no CPU or GPU time. */
bool ShouldUseIdleMode() const;
/** Advances the main loop. */
virtual void Tick() override;
/** Removes references to any objects pending cleanup by deleting them. */
virtual void ClearPendingCleanupObjects() override;
#endif // WITH_ENGINE
Copying //UE4/Dev-Console to //UE4/Dev-Main (Source: //UE4/Dev-Console @ 3632338) #rb none #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3443778 by Ben.Woodhouse Aliasing for transient resources + new high level API Changelists integrated: 3368830 3368887 3377762 3377763 3379513 3381840 3382046 3382138 3385390 3385391 3385531 3396613 3388752 3396756 3397007 3397059 3397780 3397883 3401716 3415179 Change 3576521 by Bart.Hawthorne ShooterGame - update the game instance's online mode when the LAN option is changed Change 3587252 by Ben.Woodhouse Integrate from //UE4/Main/...@3584123 to //UE4/Dev-Console/... Change 3587943 by Luke.Thatcher [CONSOLE] [+] Improved XGE shader compiler - Added support for XGE interception interface, which allows asynchronous streaming of shader tasks into XGE, and eliminates the stalling/flushing found in the old system. - Old system has been renamed "Xml interface" - Both systems are available and selectable based on r.XGEShaderCompile.Mode CVar. Overview of the new system: - New system uses an additional XGEControlWorker process to manage communication between the engine and XGE. This is simply a copy of ShaderCompileWorker.exe (the implementation is part of SCW, but XGE requires the two files to be separate, hence the duplicate). - When shader jobs arrive from the engine, the shader compiler thread spawns an instance of XGEControlWorker within an XGE context, and connects to it via named pipes. - Job command lines are fed to the control worker via the pipe, which the worker enqueues within XGE by issuing a CreateProcess call, which is intercepted. Job completion is reported back to the engine via the named pipes. - New system is preferred over the old one, and is enabled with "-xgeshadercompile" command line switch or "r.XGEShaderCompile" cvar. - The new system depends on the "XGEController" engine module. Support for which is based on the WITH_XGE_CONTROLLER #define, or -xgecontroller/-noxgecontroller command line options. #jira UECON-263 Change 3590037 by Luke.Thatcher [CONSOLE] [!] Fix compile/link errors with XGE controller module - Various unity related fixes needed. Change 3590047 by Luke.Thatcher [CONSOLE] [!] Compile XGE controller module for Editor builds only - The module should only be used in uncooked, non-monolitic binaries (i.e. the editor). Change 3594074 by Luke.Thatcher [CONSOLE] [!] Fix Linux build - case sensitive header include was wrong in XGEControllerModule.cpp Change 3596292 by Luke.Thatcher [CONSOLE] [!] Actually fix unity/nopch build errors in XGE Controller! Change 3596776 by Jonathan.Fitzpatrick cherry pick CL 3595292 cooker change which fixes a condition where DLC would always cook with all maps regardless of which maps were specified. Change 3596795 by Jonathan.Fitzpatrick Back out changelist 3596776 Change 3596816 by Jonathan.Fitzpatrick Moved the DLC map check ahead of the "no maps found" condition so that include-all-maps can be skipped if DLC maps are found. Change 3604282 by Ben.Marsh UBT: Add support for pre-build and post-build steps when using MegaXGE. Change 3606862 by Ben.Marsh Fix missing header guard warning. Change 3611644 by Ben.Woodhouse Integrate from //UE4/Main/...@3610522 to //UE4/Dev-Console/... Change 3614089 by Joe.Barnes Call GRHICommandList.LatchBypass() after variables it checks are set. #jira ue-48130 Change 3617783 by Daniel.Eldar Headers for the HDR changes (they are pre-requisites for compilation). Integrated from: //UE4/Partner-Microsoft-DX12/Engine/Source/ThirdParty/Windows/DirectX/... to //UE4/Dev-Console/Engine/Source/ThirdParty/Windows/DirectX/... #jira UECON-226 Change 3619117 by Ben.Woodhouse Integrate from //UE4/Main/...@3617655 to //UE4/Dev-Console/... Change 3619123 by Ben.Woodhouse Integrate from //UE4/Main/...@3618361 to //UE4/Dev-Console/... Change 3619603 by Stewart.Lynch Merging //Fortnite/Dev-Athena/Engine/Source/Runtime/Engine/Private/Materials/MaterialInstanceConstant.cpp to //UE4/Dev-Console/Engine/Source/Runtime/Engine/Private/Materials/MaterialInstanceConstant.cpp Changed UMaterialInstance::PostLoad(); to Super::PostLoad(); Change 3619608 by Stewart.Lynch Merging //Fortnite/Dev-Athena/Engine/Source/Runtime/... to //UE4/Dev-Console/Engine/Source/Runtime/... LLM update * made sure that all csv stat tracking is disabled if running without -LLMCSV * added new UObject scopes * increased LLM_MAX_THREAD_SCOPE_STACK_DEPTH to 128 to cope with new UObject scopes * added material scopes * changed UMaterialInstance::PostLoad(); to Super::PostLoad(); Change 3619634 by Stewart.Lynch Merging //Fortnite/Main/... to //UE4/Dev-Console/... General LLM improvements * added tracking for misc task graph tasks (moves 20MB out of Untagged) * renamed EngineTick to EngineMisc * added tracking for FName * added tracking for GC_ProcessObjectArray potential leak * renamed index & vertex buffers stat to Meshes * added hooks for MemPro to track allocations from a single category. Currently defined out. I haven't added MemPro.cpp/h. * removed AVAILABLE_PHYSICAL stat from LLM csv * csv files now include the date in the filename * fixed potential threading bug when reading stat values to csv * added lots more scopes * started changing Stat scopes to enum scopes. Stat scopes will be phased out. * added tracking of FName memory * added llm tracking for CPU symbol allocations (20MB) * added tracking for GC * fixed tracking for TransientMemoryAllocator * added tracking for networking memory * added more audio memory tracking * added tracking for blueprints * added tracking for static meshes * show on screen warning if debug memory is enabled * added tracking for particles * renamed Phys to PhysX and added more scopes * renamed Slate to UI and added more scopes * much better coverage of networking memory * improved coverage of audio Change 3619642 by Stewart.Lynch Merging //Fortnite/Main/Engine/Source/Runtime/Core/... to //UE4/Dev-Console/Engine/Source/Runtime/Core/... Windows builds were incorrectly showing the debug memory enabled warning. Made IsDebugMemoryEnabled always return false on Windows. Change 3619799 by Luke.Thatcher [CONSOLE] [-] Disable peak memory tracking in LLM. Change 3619809 by Luke.Thatcher [CONSOLE] [^] Merging CL 3580894 from //Fortnite/Main/... to //UE4/Dev-Console/... - Add Render Target Pool Stats. Use "stat rendertargetpool" to view. Change 3619928 by Luke.Thatcher [CONSOLE] [^] Enable symbol compression on symstore task (Merging CL 3606945 from //Fortnite/Main/... to //UE4/Dev-Console/...) Change 3620571 by Keith.Judge Double the size of the occlusion query buffer in D3D12. This costs 256KB of memory. We need to refactor this in future to resize according to content on demand like D3D11.x. #jira FORT-53103 #jira FORT-53119 Change 3622419 by Daniel.Eldar [General] Fix for occasional ensure to do with retriving the new cvar value. #JIRA UE-46644 Change 3622491 by Daniel.Eldar [General] Added support for scaling on stat unit and unitgraph. #JIRA UE-46644 Change 3622610 by Daniel.Eldar [General] Fixed a compilation warning Change 3624659 by Ben.Woodhouse Integrate from //UE4/Main/...@3624175 to //UE4/Dev-Console/... Change 3624678 by Ben.Woodhouse Integrate from //UE4/Main/...@3624415 to //UE4/Dev-Console/... Change 3624878 by Ben.Woodhouse Integrate as edit CLs 3611835 3611844 3616942 3617607 Descriptor heap memory fix (saves up to ~100MB). * Fix a bug where rolling over a thread-local heap immediately after switching to context-local would crash due to an uninitialized syncpoint * Add a separate value for context local heaps (LOCAL_HEAP_SIZE) and set it to a sensible value (2MB) instead of the current 16MB. This means thread local heaps will be allocated in chunks of ~2MB instead of 16MB. There can be up to 6 thread-local heaps, since they're per-context. Measured peak descriptor heap memory with LLM: 45MB (compared to 145MB previously) This improves behaviour, but this code could use a bit of a rewrite to allow it to reclaim memory better. For example, the global heap memory is almost entirely wasted currently, since when a context switches to "context local strategy" it simply throws this memory away, never to be reclaimed. Having the pools thread-local is also not a good strategy. Ideally we want a thread-safe pool allocator for descriptor heaps which is shared between all the contexts . Change 3624882 by Ben.Woodhouse Fix virtual destructor warning in D3DX12.h Change 3626419 by Stewart.Lynch Merging //Fortnite/Main/... to //UE4/Dev-Console/... LLM Update - Memory reductions, Summary page, enum scopes, refactor and cleanup of tags * Remove all static arrays and hard limits from LLM. Everything is now dynamically allocated using the internal LLM allocators. The overhead when LLM is disabled is now only 48K (was 40MB) * re-wrote LLMMap. Now stores an int32 index rather then pointer in the HashMap array. Also, changed the Values to be arrays for structs instead of structs of arrays. Means that the tag can be stored in a single byte. Changed the size of the allocation size from int64 to int32. All this takes the memory down from around 600MB to 100MB. It was 120 bytes per allocation, now 29 bytes. * changed all LLM scopes over to enums. This has a number of benefits; LLM can be enable in Test, less CPU overhead, stored in a byte (LLM overhead /= 8) * summary page for content creators where all lower-level stats are grouped under one Engine stat * renamed ELLMScopeTag enum to ELLMTag * renamed LLM_SCOPED_TAG_WITH_ENUM macro to LLM_SCOPE * removed Tracker arg from LLM_SCOPE and added LLM_PLATFORM_SCOPE macro * fixed GenericPlatformMallocCrash stat. Although it seems not be be used anymore * fixed BackupOOMMemoryPool stat (now shows in both default and platform pages) * lots of changes adding/removing/renaming tags * added LLMArray and FLLMObjectAllocator classes * disabled asset tag tracking by default because it takes up so much memory even when not used * enable LLM in all non-shipping builds. In Test the on screendisplay won't show because it uses the stats system but it till still write out the csv. * all the stat macros have been left as they were and can be enabled on the LLM_STAT_TAGS_ENABLED define. These are needed for the asset tagging. * disabled LLM_TRACK_PEAK_MEMORY because there is a problem with the way it adds the peaks for multiple threads. This needs to be fixed. * added a CVar to control the csv write interval: LLM.LLMWriteInterval * added static arrays for the enum tags setup. Easier to manage and removes need for slow switch statements. * renamed FLLMThreadStateManager to FLLMTracker to make it consistent with the enum #jira UECON-264 Change 3626906 by Joe.Barnes Fix compile errors when nativizing when a property references a sub object of a dervied type with modified default properties Change 3628045 by Stewart.Lynch Merging //Fortnite/Main/Engine/Source/Runtime/Core/... to //UE4/Dev-Console/Engine/Source/Runtime/Core/... LLM - enabled LLM on Windows * fixed crash in FLLMObjectAllocator destructor. Only happens on Windows shutdown. * changed Align to AlignArbitrary in LLMArray. Small memory saving. * clear ThreadStateAllocator in FLLMTracker::Clear(). Small memory saving * set program size to zero on windows because it isn't relevant #jira UECON-282 Change 3632279 by Ben.Woodhouse Back out changelist 3619862 #jira UE-49472 [CL 3632432 by Joe Barnes in Main branch]
2017-09-07 22:18:47 -04:00
/** RHI post-init initialization */
static void PostInitRHI();
/** Pre-init HMD device (if necessary). */
static void PreInitHMDDevice();
public:
/** Initializes the application. */
Copying //UE4/Dev-Sequencer to //UE4/Main (Source: //UE4/Dev-Sequencer @ 3617642) #lockdown nick.penwarden #rb none Change 3235667 on 2016/12/14 by Max.Preussner Media: Moved enums into separate header file, so they can be shared Change 3259266 on 2017/01/16 by Max.Preussner Core: Added timespan ratio Change 3267229 on 2017/01/21 by Max.Preussner Editor: Fixed texture samplers in materials not getting notified when sRGB mode changed Change 3274773 on 2017/01/27 by Max.Preussner Core: Added TLruCache template Change 3281579 on 2017/02/01 by Max.Preussner Core: Added scalar division to FTimespan Change 3289522 on 2017/02/07 by Max.Preussner MediaAssets: Added looping for play lists Change 3290664 on 2017/02/07 by Max.Preussner Engine: Moved UTexture material notification code into separate function, so it can be used by derived classes. Change 3290688 on 2017/02/07 by Max.Preussner MediaAssets: Notifying materials when media texture properties changed. Change 3291171 on 2017/02/07 by Max.Preussner MediaAssets: Filtering unused UTexture properties Change 3291229 on 2017/02/07 by Max.Preussner ImgMedia: Use displayWindow instead of dataWindow due to bug in OpenEXR with data window min < 0 Change 3298520 on 2017/02/11 by Max.Preussner Sequencer: Fixed skylight and reflection components off by one frame in PIE Change 3298778 on 2017/02/12 by Max.Preussner MediaUtils: Experimenting with dynamic pitch adjustment Change 3298987 on 2017/02/13 by Max.Chen Editor: Add matrix and transform properties to property editor test object Change 3298997 on 2017/02/13 by Max.Chen Editor: It's now possible to specify Units and ForceUnits meta-data on struct properties - Doing so will cause any child numeric and struct properties to use these units by default (unless another unit was specified) - Added percentage unit type - Multiplier unit types can now be converted between Change 3298998 on 2017/02/13 by Max.Chen Editor: Conversion between multiplier (1.5x) and percentage (150%) units is now possible Change 3348678 on 2017/03/15 by Max.Preussner Media: Added Buffering media event Change 3355268 on 2017/03/20 by Max.Preussner Core: TQueue documentation updates Change 3359055 on 2017/03/22 by Max.Preussner Portal: Removed dependency to Messaging.h Change 3359060 on 2017/03/22 by Max.Preussner Messaging: Modernization pass - added missing includes & forward declarations - include what you use - deprecated shared pointer typedefs - replaced some delegates with callback interfaces - documentation fixes Change 3359189 on 2017/03/22 by Max.Preussner Automation: Modernization pass - include what you use - removed molothic header - documentation fixes #upgradenotes: IAutomationWorkerModule.h is now in the module's public root directory Change 3359718 on 2017/03/22 by Max.Preussner Messaging: Moved common helper classes into MessagingCommon module #upgradenotes: If you use the common helper classes, replace "Messaging" with "MessagingCommon" in your Build.cs files and remove the "Helpers/" subdirectory from your include statements (unless you actually include header files from "Messaging", in which case you need to keep "Messaging" and add "MessagingCommon"). Change 3359793 on 2017/03/23 by Max.Preussner TargetDeviceServices: Modernization pass - include what you use - removed boilerplate header - deprecated selected shared pointer typedefs - reorganized files - documentation fixes Change 3361028 on 2017/03/23 by Max.Preussner DeviceManager: Modernization pass - include what you use - reduced shared pointer typedef usage - documentation fixes Change 3361197 on 2017/03/23 by Max.Preussner Messaging: Waking up message router thread on shutdown Change 3361246 on 2017/03/23 by Max.Preussner AutomationWindow: Removed boilerplate header #upgradenotes: Replace includes of AutomationWindow.h with IAutomationWindowModule.h Change 3361428 on 2017/03/23 by Max.Preussner AutomationController: Removed boilerplate header #upgradenotes: Instead of AutomationController.h, include the individual interface headers that you actually use. Remove the "Interfaces/" subdirectory from existing interface inclusions. Change 3363206 on 2017/03/24 by Max.Preussner ProfileLauncher: Modernization pass - include what you use (selected files) - reduced shared pointer typedef usages - removed dead code - cleaned up file organization - documentation fixes Change 3363290 on 2017/03/24 by Max.Preussner LauncherServices: Removed boilerplate header #upgradenotes: Instead of including LauncherServices.h, include the ILauncherXXX.h files that you actually use. Remove the "Interfaces/" subdirectory from existing ILauncherXXX.h includes Change 3363305 on 2017/03/24 by Max.Preussner LauncherCheck: Removed boilerplate header #upgradenotes: Include ILauncherCheckModule.h instead of LauncherCheck.h. Remove "Interfaces/" subdirectory from existing ILauncherCheckModule.h inclusions Change 3363708 on 2017/03/24 by Max.Preussner ImageWrapper: Removed boilerplate header #upgradenotes: Instead of including ImageWrapper.h, include the actual IImageWrapperXXX.h files that you use. Remove the "Interfaces/" subdirectory from existing IImageWrapperXXX.h includes Change 3363966 on 2017/03/24 by Max.Preussner ImageWrapper: Modernization pass - include what you use - reorganized internal files - documentation fixes Change 3364579 on 2017/03/24 by Max.Preussner ImageWrapper: Deprecated shared pointer typedef and removed usages #upgradenotes: Please use TSharedPtr<IImageWrapper> instead of IImageWrapperPtr Change 3364582 on 2017/03/24 by Max.Preussner NetworkFileSystem: Removed monolithic boilerplate header #upgradenotes: Instead of including NetworkFileServer.h, include the INetworkFileXXX.h headers that you actually use. Remove the "Interfaces/" subdirectory from existing INetworkFileXXX.h includes Change 3381440 on 2017/04/05 by Max.Preussner Oculus: Removed illegal pragmas Change 3391731 on 2017/04/12 by Max.Preussner ImgMedia: Added support for BMP, JPG and PNG image sequences Change 3401146 on 2017/04/19 by Max.Preussner Core: Cleanup pass for FTimespan usages; updated documentation When initializing time span values from single components, consider using the FromHours, FromMinutes, FromSeconds, Zero, MinValue and related methods instead of calling the overloaded constructors as they will make your code easier to read and understand. Change 3401504 on 2017/04/20 by Max.Preussner MCP: Fixed incorrect FTimespan usage of GetMilliseconds instead of GetTotalMilliseconds Change 3401833 on 2017/04/20 by Max.Preussner Core: Various improvements to FTimespan - added proper serialization - updated documentation - access fractions as milli-, micro- or nanoseconds - removed the following string formatters as they were not useful: %D %H %M %S %F - updated documentation #upgradenotes: The %D string formatter (previously total number of days) is now the zero-padded days component of the time span. Time spans are now always exported and stringified with a leading plus or minus sign. #jira UE-43990 #jira UE-44163 Change 3437543 on 2017/05/12 by Max.Preussner PS4Media: Added audio error codes conversion Change 3446564 on 2017/05/18 by Max.Preussner Networking: Fixed nullpointer crash if socket initialization fails Change 3459978 on 2017/05/25 by Max.Preussner ImgMedia: Renamed frame cache to frame loader Change 3463311 on 2017/05/26 by Max.Preussner Core: Added iterators & predicate based methods to LRU Cache Change 3464452 on 2017/05/29 by Max.Preussner ImgMedia: Added video sample output Change 3464468 on 2017/05/29 by Max.Preussner Media: Added separate cache visualization for loaded and cached samples Change 3464592 on 2017/05/29 by Max.Preussner Core: Added TLruCache::FindAndTouch Change 3464607 on 2017/05/29 by Max.Preussner Core: Added TRange::Inclusive / ::Exclusive Change 3464608 on 2017/05/29 by Max.Preussner Media: Fixed incorrect upper bound in support play rates of various players Change 3466732 on 2017/05/30 by Max.Preussner ImgMedia: Added image compression type to info string Change 3466871 on 2017/05/31 by Max.Preussner WmfMedia: Fixed session capabilities not showing up; added initialization logging Change 3467785 on 2017/05/31 by Max.Preussner MfMedia: Fixed sample stride calculated from media input instead of output Change 3467963 on 2017/05/31 by Max.Preussner WmfMedia: Reordered media sub-type string conversion to fix some tracks being reported incorrectly Change 3468110 on 2017/05/31 by Max.Preussner WmfMedia: Added MPEG-2 media sub types to utils Change 3468516 on 2017/05/31 by Max.Preussner AndroidMedia: Allow mediaplayer audio to be disable on Android (UE-45570) Change 3468554 on 2017/05/31 by Max.Preussner MediaAssets: Added AutoClear option to automatically clear media texture when media is unloaded Change 3468627 on 2017/05/31 by Max.Preussner ImgMedia: Allowing for auto-selection of EXR decoder thread count Change 3468648 on 2017/05/31 by Max.Preussner ImgMedia: Reorganized OpenExrWrapper files Change 3471789 on 2017/06/02 by Max.Preussner WmfMedia: Fixed potential concurrency issue in session state management Change 3472918 on 2017/06/03 by Max.Preussner Core: Allowing zero sized LRU cache; added default constructor Change 3472919 on 2017/06/03 by Max.Preussner Media: Added pre-Slate tick stage; renamed some functions; continued to implement sample caching Change 3473704 on 2017/06/05 by Max.Preussner AndroidMedia: Added settings class Change 3474407 on 2017/06/05 by Max.Preussner AndroidMedia: Implemented video sample processing Change 3474934 on 2017/06/05 by Max.Preussner ImgMedia: Fixed crash due to deleting loader work items twice (UE-45705) #jira UE-45705 Change 3476925 on 2017/06/06 by Max.Preussner Media: Added return values to media view interface; documentation fixes Change 3477158 on 2017/06/06 by Max.Preussner SwitchMedia: Implemented sample pooling Change 3477201 on 2017/06/07 by Max.Preussner PS4Media: Implemented video sample pooling Change 3481470 on 2017/06/08 by Max.Preussner Media: Fixed time stamps not set in recycled texture samples Change 3481472 on 2017/06/08 by Max.Preussner MediaAssets: Fixed no video samples fetched while player is in buffering state Change 3481473 on 2017/06/08 by Max.Preussner MediaUtils: Added default constructor to MediaSampleQueue Change 3481584 on 2017/06/08 by Max.Preussner MediaUtils: Paused state is considered forward for sample lookup as this is the common case. Change 3481588 on 2017/06/08 by Max.Preussner PS4Media: Redesigned the PS4 media player to support async file loading & track switching Change 3481627 on 2017/06/08 by Max.Preussner PS4Media: Opening media sources in thread pool if not precaching Change 3481666 on 2017/06/08 by Max.Preussner ImgMedia: Fixed SequencePath property file picker always opening default path Change 3481669 on 2017/06/08 by Max.Preussner ImgMedia: Fixed crash when quering cache state of empty image sequence Change 3481685 on 2017/06/08 by Max.Preussner ImgMedia: Fixed EXR reader failing to play slow loading sequences (UE-45719) #jira UE-45719 Change 3483623 on 2017/06/10 by Max.Preussner Media: Added getters for 360 view settings; added support for relative view updates Change 3483624 on 2017/06/10 by Max.Preussner Media: Added Blueprint support for 360 videos Change 3483626 on 2017/06/10 by Max.Preussner MediaPlayerEditor: Added 360 video mouse controls; broke out viewport widget into separate class. Change 3483627 on 2017/06/10 by Max.Preussner Core: Using system start time instead of current time for renamed log file names Change 3483630 on 2017/06/10 by Max.Preussner Core: Grouping log files by log name and processing each group separately when deleting old log files Change 3483816 on 2017/06/10 by Max.Preussner WmfMedia: Detecting audio device availability to prevent lockup of audio tracks Change 3483939 on 2017/06/11 by Max.Preussner AvfMedia: Finished Media Framework 3.0 upgrade - overhauled track switching - removed render thread flushes - reduced nesting - code cleanup pass Change 3483940 on 2017/06/11 by Max.Preussner Media: Consistent track switching behavior across platforms Change 3484172 on 2017/06/11 by Max.Preussner MediaPlayerEditor: Removed obsolete asset type actions Change 3484180 on 2017/06/11 by Max.Preussner MediaPlayerEditor: Fixed media player info overlays not visible during mouse capture Change 3484248 on 2017/06/11 by Max.Preussner MediaAssets: Media players now always have a playlist Change 3484249 on 2017/06/11 by Max.Preussner MediaPlayerEditor: Added UI controls to Playlist tab Change 3484250 on 2017/06/11 by Max.Preussner Media: Implemented overlay sample caching Change 3484252 on 2017/06/11 by Max.Preussner WmfMedia: Enabled support for .smi and .sami subtitle files Change 3485433 on 2017/06/12 by Max.Preussner ImgMedia: Enabled plug-in on all platforms; enabled EXR only on platforms that support it Change 3485720 on 2017/06/12 by Max.Preussner MediaPlayerEditor: Added ability to save playlists Change 3485828 on 2017/06/12 by Max.Preussner AvfMedia: Thread-safe ticking of video sampler; ticking audio processing on high frequency thread Change 3485926 on 2017/06/12 by Max.Preussner MediaUtils: Draining all unconsumed samples at the end of a frame Change 3486043 on 2017/06/12 by Max.Preussner Media: Consistent behavior for playlist navigation (UE-45964) #jira UE-45964 Change 3486104 on 2017/06/12 by Max.Preussner MediaPlayerEditor: Implemented simple overlay text positioning Change 3486145 on 2017/06/12 by Max.Preussner AndroidMediaPlayer: Moved video sample handling into render thread Change 3486147 on 2017/06/12 by Max.Preussner MediaPlayerEditor: Moved overlay texts into separate layer Change 3486188 on 2017/06/12 by Max.Preussner Media: Enabling media factory modules in Editor for all players Change 3486223 on 2017/06/12 by Max.Preussner Media: Defaulting players to select first audio and video tracks by default Change 3486473 on 2017/06/13 by Max.Preussner Media: Buffering is no longer a media player state, but handled separately (for players that can buffer while playing) Change 3486475 on 2017/06/13 by Max.Preussner MediaPlayerEditor: Showing busy bar when buffering or preparing Change 3487237 on 2017/06/13 by Max.Preussner AndroidMedia: Fixed video sample not getting processed on render thread Change 3487507 on 2017/06/13 by Michael.Trepka AvfMedia - small cleanup of the code for passing video frame rate to the video sampler Change 3487719 on 2017/06/13 by Michael.Trepka Disable shared PCH in OpenExrWrapper to solve a problem with bUseRTTI mismatch between the module and the PCH Change 3487842 on 2017/06/13 by Max.Preussner AndroidMedia: Fixed texture swizzle disabled on non-Engine builds Change 3488006 on 2017/06/13 by Michael.Trepka AvfMedia - Moved some logic from FAvfMediaPlayer::TickTickable() to FAvfMediaTracks::ProcessAudio() to make it thread safe, plus fixed a bug with the player not setting the current status to Stopped after opening a file Change 3488308 on 2017/06/13 by Chris.Babcock AndroidMedia: Fixed flicker issue #jira UE-45736 Change 3488335 on 2017/06/13 by Max.Preussner MediaAssets: Made UFileMediaSource::GetFullPath public Change 3488338 on 2017/06/13 by Max.Preussner MediaPlayerEditor: Fixed "Show file in Explorer" not working for file media sources Change 3488339 on 2017/06/13 by Max.Preussner MediaPlayerEditor: Showing a throbber when buffering player Change 3488768 on 2017/06/14 by Max.Preussner Core: Inlined FTimespan static functions hange 3490203 on 2017/06/14 by Max.Preussner Core: Force inlined TComPtr operators Change 3494083 on 2017/06/15 by Chris.Babcock AndroidMedia: Fix playlist looping (send PlaybackEndReached event) #jira UE-46086 Change 3497017 on 2017/06/16 by Max.Preussner MediaAssets: Playlists now auto advance with PlayOnOpen off Change 3497075 on 2017/06/17 by Chris.Babcock MediaPlayer Sampler node and external texture support for Android MediaPlayer - enable with USE_EXTERNALTEXTURE in AndroidMediaPlayer.cpp (disabled in this CL) - supports MediaSample node in material editor with scale/bias handled if above flag enabled - fixed looping problems, including eventual crashes - track switching fixed (lockups and missing video) - corrected resource leaks and crash switching maps #jira UE-46055 #jira UE-45744 #jira UE-46086 Change 3497163 on 2017/06/17 by Max.Preussner MediaUtils: Processing media events immediately if on game thread Change 3497170 on 2017/06/17 by Max.Preussner Media: All Media Framework interfaces are pure virtual Change 3498603 on 2017/06/19 by Ben.Marsh UBT: Prevent plugins which list modules multiple times from adding them twice. Change 3500870 on 2017/06/20 by Max.Preussner WmfMedia: Rewrote WMF state machine; now with track switching #jira UE-20209 #jira UE-35385 #jira UE-38337 #jira UE-45676 Change 3502181 on 2017/06/20 by Chris.Babcock MediaSampler node updates - fixed issue with ExternalTexture singleton for DLL compatiblity - now works for all players (registers texture samples with ExternalTexture by player GUID) - enabled OES in AndroidMediaPlayer now that materials can universally use the MediaSampler Change 3503182 on 2017/06/21 by Max.Preussner Media: Refactored status flags into an enum; exposed connecting status Change 3503724 on 2017/06/21 by Chris.Babcock Improvement in MediaPlayer Sampler node - RGB, R, G, B, A output pins like normal texture sampler - allow preview in material editor - fix OES detection for Android Change 3509088 on 2017/06/26 by Max.Preussner MediaAssets: Added AddFile and AddUrl to UMediaPlaylist Change 3510256 on 2017/06/26 by Max.Preussner WmfMedia: Fixed play rate not set to zero when end reached Change 3510273 on 2017/06/26 by Max.Preussner MediaPlayerEditor: Removed obsolete Slate culling rectangle code Change 3510413 on 2017/06/26 by Max.Preussner MediaPlayerEditor: Showing frame rate if available Change 3510533 on 2017/06/26 by Max.Preussner MediaUtils: Preventing media cache filling up when scrubbing Change 3510859 on 2017/06/26 by Max.Preussner PS4Media: Fixed track switching crashes (UE-45960) #jira UE-45960 Change 3514173 on 2017/06/28 by Max.Preussner WmfMedia: Optimized player capabilities check Change 3514174 on 2017/06/28 by Max.Preussner WmfMedia: Moved media source resolver code into utility class Change 3514714 on 2017/06/28 by Max.Preussner Core: Added TComPointer.IsValid; code cleanup pass Change 3517912 on 2017/06/30 by Max.Preussner MediaUtils: Added GetVideoAspectRatio to player facade Change 3524957 on 2017/07/06 by Max.Preussner ImgMedia: Decoding image frames only when video track is selected Change 3525252 on 2017/07/06 by Max.Preussner ImgMedia: Async image sequence initialization Change 3525266 on 2017/07/06 by Max.Preussner ImgMedia: Enabled reverse playback Change 3525722 on 2017/07/06 by Max.Preussner WmfMedia: Workaround for occasional WMF internal deadlock in IMFRateSupport Change 3525800 on 2017/07/07 by Max.Preussner WmfMedia: Fixed another WMF deadlock issue & some rate change glitches; improved logging. Change 3525801 on 2017/07/07 by Max.Preussner MediaPlayerEditor: Made scrubbing more responsive Change 3526500 on 2017/07/07 by Max.Preussner WmfMedia: Using NULL for Windows pointers Change 3527323 on 2017/07/07 by Max.Preussner WmfMedia: Added support for audio and video capture media sources Change 3530197 on 2017/07/10 by Max.Preussner WmfMedia: Added utility functions for enumerating audio and video capture devices Change 3533465 on 2017/07/12 by Max.Preussner Media: Added media capture device support API & implementation for WMF Change 3533469 on 2017/07/12 by Max.Preussner MediaPlayerEditor: Added source selection menu w/ capture device menu to navigation bar Change 3533540 on 2017/07/12 by Max.Preussner MediaAssets: Blueprint support for media capture device discovery Change 3533574 on 2017/07/12 by Max.Preussner WmfMedia: Using cached supported play rates; more strict pausing support check Change 3533924 on 2017/07/12 by Max.Preussner WmfMedia: Added global LowLatency setting (UEVR-859) Note that this setting is only supported when compiling for Windows 8 or newer. Change 3534027 on 2017/07/12 by Max.Preussner WmfMedia: Compile time support for low latency session attribute on < Windows8 #jira UEVR-859 Change 3538744 on 2017/07/14 by Max.Preussner MediaUtils: Renamed FDefaultMediaTimeSource to FAppMediaTimeSource Change 3542818 on 2017/07/18 by Max.Preussner WmfMedia: Fixed race condition on session shutdown Change 3543082 on 2017/07/18 by Max.Preussner WmfMedia: Fixed track selection in media that doesn't support seeking Change 3543092 on 2017/07/18 by Max.Preussner Media: Implemented media track format API Enables multiple formats per media track. By default, the first usable format is selected. This feature is currently only implemented for WmfMedia. All other players assume a single format per track. Change 3543794 on 2017/07/19 by Max.Preussner WmfMedia: Added string conversion for null GUIDs Change 3543796 on 2017/07/19 by Max.Preussner MfMedia: Copied GUID string conversion updates from WmfMedia Change 3543797 on 2017/07/19 by Max.Preussner WmfMedia: Preventing duplicate track formats in capture devices with legacy DirectX support Change 3544390 on 2017/07/19 by Max.Preussner Media: Allowing INDEX_NONE as 'current selection' index in track format related functions Change 3545368 on 2017/07/19 by Max.Preussner WmfMedia: Fixed session error with some media sources when attempting to seek to current position without ever starting Change 3545388 on 2017/07/19 by Max.Preussner MediaAssets: Fixed RGB input sources rendered upside down Change 3545430 on 2017/07/19 by Max.Preussner MediaAssets: Fixed incorrect sRGB conversion on BMP inputs Change 3547362 on 2017/07/20 by Max.Preussner Core: Added IsGraph and IsPrint to TCHAR utilities Change 3547376 on 2017/07/20 by Max.Preussner WmfMedia: Better log messages for non-standard video types (UE-47533) #jira UE-47533 Change 3547404 on 2017/07/20 by Max.Preussner QAGame: Enabled PlayOnOpen and Looping on MediaPlayerSwitch BP (UE-47542) #jira UE-47542 Change 3547466 on 2017/07/20 by Max.Preussner WmfMedia: Fixed edge case for detecting whether pause is available Change 3548742 on 2017/07/21 by Max.Preussner Media: Added API for changing the input frame rate Change 3548743 on 2017/07/21 by Max.Preussner WmfMedia: Implemented ability to change input frame rate Change 3554411 on 2017/07/25 by Max.Preussner AudioMixer: Broke out SynthComponent initialization code; added bIsUISound property Change 3554818 on 2017/07/25 by Max.Preussner Media: Added per track-type cache queries Change 3557284 on 2017/07/26 by Max.Preussner WmfMedia: Added buffer size check in texture sample as well Change 3560530 on 2017/07/27 by Max.Preussner WmfMedia: Made COM object destructors private and added assertions Change 3560580 on 2017/07/27 by Max.Preussner MediaUtils: Added method for querying number of objects in pool Change 3562572 on 2017/07/28 by Max.Preussner WmfMedia: Properly handling topology status errors when opening media Change 3576710 on 2017/08/08 by Chris.Babcock bug fixes for mediaplayer - rare cases in Android media tracks - make FMediaCaptureDevice members available in blueprints Change 3577736 on 2017/08/08 by Chris.Babcock Extend ExternalTexture to support 2x3 transform (scale/rotation + offset) Change 3578831 on 2017/08/09 by Max.Preussner MediaAssets: Made media sound component BP spawnable Change 3579210 on 2017/08/09 by Max.Preussner UdpMessaging: Not showing warning message if tunnel settings left empty to use defaults Change 3579547 on 2017/08/09 by Chris.Babcock Better support for Android external texture detection Change 3579567 on 2017/08/09 by Chris.Babcock Android camera plugin #jira UEMOB-215 Change 3580035 on 2017/08/10 by Andrew.Rodham Media Texture: External textures are now fully supported and enforced when attempting to sample external texture types in materials. - Textures can now dynamically provide an external texture GUID at runtime, which is queried by the uniform expression. Statically defined GUIDs remain supported. - Added necessary ExternalTexture(Parameter) methods to the material compiler and HLSL translator - Made UTexture::GetMaterialType const-correct #tests Test map that contains TextureObject, TextureObjectParameter, TextureSample and TextureSampleParameter nodes with media textures works on both a Nexus 10 (non-image-external), and a Pixel (image-external), and on desktop PC. Change 3581552 on 2017/08/10 by Chris.Babcock Use bilinear sampling instead of point for external texture (Android media and camera) Change 3581628 on 2017/08/10 by Max.Preussner Core: Fixed FTimespan import/export/copypaste (UE-43990) #jira UE-43990 #jira UE-44163 Change 3581909 on 2017/08/11 by Andrew.Rodham Media: Only cache material proxy pointers if they have been initialized (and thus, will be removed from the cache on release) - This prevents destroyed proxies from remaining in the texture registry #jira UE-48307 Change 3582451 on 2017/08/11 by Max.Preussner AudioMixer: Fixed initialization order of synth components This ensures that the Synth is initialized before OnRegister in the super class initializes and activates the AudioComponents. Previously, the AudioComponent would fail to activate, because Synth was nullptr. #jira UE-48055 Change 3582453 on 2017/08/11 by Max.Preussner MediaAssets: Enabling ticking in media sound component (UE-48055) #jira UE-48055 Change 3583101 on 2017/08/11 by Chris.Babcock Android camera improvements - return correct capture device type (webcamfront/rear) - remove seek (not supported) - support track formats - better framerate selection Change 3590109 on 2017/08/16 by Chris.Babcock Move external texture coordinate update to improve accuracy and save a uniform in final shader Change 3590530 on 2017/08/16 by Max.Preussner MediaAssets: Changed capture device enumeration BP function signatures to allow filter bit masks #jira UE-48166 Change 3590547 on 2017/08/16 by Max.Preussner MediaPlayerEditor: Ticking sound component directly Change 3590628 on 2017/08/16 by Max.Preussner Switch: Fixed media decoder asserting when attempting to pause without having started Change 3591816 on 2017/08/16 by Aaron.McLeran #jira UE-48470 Disabling async processing for procedural sound waves on mac. Change 3592266 on 2017/08/16 by Max.Preussner Media: Replaced media cache with the new sample processing pipeline; continued to implement MfMedia This change fixes stuttering issues with audio and video. However, proper pipeline flushing is not fully implemented yet, so the playback will break after the first playthrough, which might result in freeze frames or out of memory assertions depending on the platform. This will be addressed in an upcoming change. #jira UE-48474 #jira UE-45677 Change 3592355 on 2017/08/17 by Max.Preussner MediaUtils: Added sample sink collection to remove code duplication Change 3592739 on 2017/08/17 by Max.Preussner ImgMedia: Fetching only one video sample per frame Change 3592741 on 2017/08/17 by Max.Preussner MediaUtils: Better sample fetching when paused Change 3592761 on 2017/08/17 by Max.Preussner MediaUtils: Fixed overflow detection in sample sinks Change 3592762 on 2017/08/17 by Max.Preussner ImgMedia: Sending end reached event when looping Change 3592885 on 2017/08/17 by Max.Preussner ImgMedia: Fixed reverse play Change 3592887 on 2017/08/17 by Max.Preussner MediaUtils: Better sample range calculation for audio samples Change 3593010 on 2017/08/17 by Max.Preussner ImgMedia: Fixed async loading of non-EXR image sequences Change 3593193 on 2017/08/17 by Max.Preussner AndroidMedia: Fixed typo Change 3593230 on 2017/08/17 by Max.Preussner Media: Implemented flushing for player sample queues Change 3593346 on 2017/08/17 by Max.Preussner Media: Proper sample processing for reverse playback Change 3593482 on 2017/08/17 by Max.Preussner Switch: Fixed sample range check for reverse playback Change 3594428 on 2017/08/17 by Max.Preussner PS4Media: Fixed video not playing/crashing #jira UE-48547 #jira UE-48549 Change 3595404 on 2017/08/17 by Max.Preussner MediaAssets: Not requesting audio samples if not playing #jira UE-48557 Change 3595624 on 2017/08/17 by Max.Preussner PS4Media: Fixed no looping after track switching #jira UE-46524 #jira UE-48557 Change 3595704 on 2017/08/17 by Max.Preussner MediaUtils: Improved sample queue flushing Eventually this needs to be event-driven. #jira UE-48557 Change 3595706 on 2017/08/17 by Max.Preussner PS4Media: Flushing queues when track switching #jira UE-48557 Change 3595909 on 2017/08/17 by Max.Preussner Matinee: Fix Matinee redirect missing as UClass has been GC'ed (GitHub PR #3382) https://github.com/EpicGames/UnrealEngine/pull/3382 #jira UE-42906 #rn Fix Matinee redirect missing as UClass has been GC'ed (GitHub PR #3382) Change 3597480 on 2017/08/18 by Max.Preussner ImgMediaPlayer: Fixed presentation time calculation for very large delta times Change 3597669 on 2017/08/18 by Max.Preussner ImgMedia: Setting player stopped instead of paused when end reached Change 3597709 on 2017/08/18 by Max.Preussner SwitchMedia: Fixed audio sample duration calculation Change 3598479 on 2017/08/18 by Max.Preussner ImgMedia: Ensuring that first/last frame is played when starting playback forward/reverse; improved state checking; user logging Change 3598629 on 2017/08/18 by Max.Preussner MediaUtils: Properly handling pending flushes when peeking sample queues Change 3598633 on 2017/08/18 by Max.Preussner WmfMedia: Fixed occasional WMF deadlock when scrubbing Change 3598653 on 2017/08/18 by Max.Preussner MediaUtils: Fixed audio resampling in reverse playback Change 3598659 on 2017/08/18 by Max.Preussner MediaPlayerEditor: Creating sound output only if audio device available Change 3598688 on 2017/08/18 by Max.Preussner MediaUtils: Flushing sample queues on direction change regardless of paused state Change 3599444 on 2017/08/20 by Max.Preussner WmfMedia: Added missing check for rate control when quering supported rates Change 3603661 on 2017/08/22 by Max.Preussner WmfMedia: Fixed NV12 output Change 3604345 on 2017/08/23 by Max.Preussner MediaUtils: Added subtitle samples to media sample collection; fixed documentation Change 3604987 on 2017/08/23 by Max.Preussner PS4Media: Setting correct track format types Change 3605117 on 2017/08/23 by Joe.Barnes Fix issue where presentation time was being treated as milliseconds instead of microseconds. Change 3605128 on 2017/08/23 by Joe.Barnes Fix potential issue calculating total (looped) play time after seek or reset. Track last video presentation time Change 3605139 on 2017/08/23 by Joe.Barnes Support audio type DType_Setup. Fix issue with procedural sounds popping. Consume more samples if necessary. #jira ue-48544 Change 3605197 on 2017/08/23 by Max.Preussner Media: Fixed track display name formatting (UE-48767) #jira UE-48767 Change 3605817 on 2017/08/23 by Max.Chen Auto set sampler type on drop on actor. #jira UE-48769 Change 3605999 on 2017/08/23 by Max.Preussner MfMedia: Restarting source reader when switching tracks #jira UE-48766 Change 3606416 on 2017/08/23 by Max.Preussner PS4Media: Various player improvements #jira UE-48586 Change 3607656 on 2017/08/24 by Max.Preussner WmfMedia: Improved logging for Seek and SetRate Change 3607855 on 2017/08/24 by Max.Preussner MfMedia: Better verbose logging; validating seeks; reduced nesting; fixed track switching\ #jira UE-48766 Change 3608029 on 2017/08/24 by Max.Preussner PS4Media: Fixed streaming media not playing; improved result checks & logging #jira UE-48610 Change 3608473 on 2017/08/24 by Max.Preussner MfMedia: Fixed audio sample duration calculation #jira UE-48756 Change 3609316 on 2017/08/24 by Chris.Babcock Provide external texture RotationScale and Offset from sample Change 3610067 on 2017/08/25 by Richard.Wallis Mac: Editor locks up when Track switching and Mac: Media Audio continues to play after closing player. - Fix for creating extra OS AV media playback objects so audio playback not stopping due to over retained objects. - Trying to access OS AV Media Playback object (esp. the currentTime value) across mutliple threads at once seems to cause deadlock in the Apple libraries - moved location of currentTime acess point to Media Ticker - this sets the current time and is then just returned in the getter when on game main. - Trying to playback audio via OS media playback and through the engine at the same time when enabling the selected audio track. Engine version via sample buffers via AVAssetReaderTrackOutput doesn't seem to be working as intended with the new audio frame work audio sinks - so reverting to OS AV media playback for Mac at the moment until better fix for this can be put in. #jira UE-48590, UE-48604 Change 3610267 on 2017/08/25 by Max.Preussner PS4Media: Added missing track selection validation #jira UE-48765 Change 3610399 on 2017/08/25 by Max.Preussner PS4Media: Fixed infinite player re-initialization loop if track selection failed Change 3610809 on 2017/08/25 by Chris.Babcock Fixes for Android media player and camera player - buffer samples copy proper bytecount - realloc sets new buffer ptr - refcount of Java buffers fixed Change 3610953 on 2017/08/25 by Chris.Babcock Fix audio disable before play on Android media player Change 3611405 on 2017/08/25 by Max.Preussner WmfMedia: Resetting supported rates if RateSupport unavailable Change 3611406 on 2017/08/25 by Max.Preussner MfMedia: Resetting supported rates if RateSupport unavailable Change 3611453 on 2017/08/25 by Chris.Babcock Android external texture extension updates for compatibility Change 3611719 on 2017/08/26 by Max.Preussner Media: Added media event for completed seek operations; flushing sinks on seek Change 3611764 on 2017/08/26 by Max.Preussner AvfMedia: Setting player to preparing state prior to initializing tracks asynchronously Change 3611802 on 2017/08/26 by Max.Preussner Media: Exposed error state in media player Change 3611803 on 2017/08/26 by Max.Preussner MediaPlayerEditor: Showing error state in UI Change 3611887 on 2017/08/26 by Max.Preussner MediaUtils: Corrected media sample sink overflow check Change 3611892 on 2017/08/27 by Max.Preussner WmfMedia: Leaving session in error state after error Change 3611929 on 2017/08/27 by Max.Preussner MediaPlayerEditor: Fixed sound stopping on looping Change 3611930 on 2017/08/27 by Max.Preussner MfMedia: Rewrote async sample processing to fix various playback issues Change 3611942 on 2017/08/27 by Max.Preussner Media: Sending suspension event when playback ended Change 3611957 on 2017/08/27 by Max.Preussner UnrealEd: Allowed transient assets to be resaved to disk Change 3611981 on 2017/08/27 by Max.Preussner PS4Media: Rewrote sample processing to fix various playback issues #jira UE-48596 #jira UE-48793 Change 3612035 on 2017/08/27 by Max.Preussner UnrealEd: Picking standard default names when resaving transient packages Change 3612045 on 2017/08/27 by Max.Preussner Media: Fixed playlists not getting saved correctly from Editor (UE-35382) #jira UE-35382 Change 3612212 on 2017/08/28 by Richard.Wallis Fix for Multitrack Video samples continue to Play on Open after Play on Open is toggled off. Current Rate was not getting reset back to 0.0 on media close. #jira UE-47602 Change 3613531 on 2017/08/28 by Max.Preussner MediaAssets: Fixed external texture related crash on shutdown (UE-48918) Also no longer creating clock sink for media player CDO #jira UE-48918 Change 3613677 on 2017/08/28 by Andrew.Porter Fixed crash at exit in Mac editor caused by double release of AVPlayerItem object #jira UE-48937 Change 3615917 on 2017/08/29 by Max.Preussner MfMedia: Added compile options for DXVA and falling back to synchronous sample reading [CL 3617655 by Max Chen in Main branch]
2017-08-30 09:37:09 -04:00
static bool AppInit();
/**
* Prepares the application for shutdown.
*
* This function is called from within guarded exit code, only during non-error exits.
*/
Copying //UE4/Dev-Sequencer to //UE4/Main (Source: //UE4/Dev-Sequencer @ 3617642) #lockdown nick.penwarden #rb none Change 3235667 on 2016/12/14 by Max.Preussner Media: Moved enums into separate header file, so they can be shared Change 3259266 on 2017/01/16 by Max.Preussner Core: Added timespan ratio Change 3267229 on 2017/01/21 by Max.Preussner Editor: Fixed texture samplers in materials not getting notified when sRGB mode changed Change 3274773 on 2017/01/27 by Max.Preussner Core: Added TLruCache template Change 3281579 on 2017/02/01 by Max.Preussner Core: Added scalar division to FTimespan Change 3289522 on 2017/02/07 by Max.Preussner MediaAssets: Added looping for play lists Change 3290664 on 2017/02/07 by Max.Preussner Engine: Moved UTexture material notification code into separate function, so it can be used by derived classes. Change 3290688 on 2017/02/07 by Max.Preussner MediaAssets: Notifying materials when media texture properties changed. Change 3291171 on 2017/02/07 by Max.Preussner MediaAssets: Filtering unused UTexture properties Change 3291229 on 2017/02/07 by Max.Preussner ImgMedia: Use displayWindow instead of dataWindow due to bug in OpenEXR with data window min < 0 Change 3298520 on 2017/02/11 by Max.Preussner Sequencer: Fixed skylight and reflection components off by one frame in PIE Change 3298778 on 2017/02/12 by Max.Preussner MediaUtils: Experimenting with dynamic pitch adjustment Change 3298987 on 2017/02/13 by Max.Chen Editor: Add matrix and transform properties to property editor test object Change 3298997 on 2017/02/13 by Max.Chen Editor: It's now possible to specify Units and ForceUnits meta-data on struct properties - Doing so will cause any child numeric and struct properties to use these units by default (unless another unit was specified) - Added percentage unit type - Multiplier unit types can now be converted between Change 3298998 on 2017/02/13 by Max.Chen Editor: Conversion between multiplier (1.5x) and percentage (150%) units is now possible Change 3348678 on 2017/03/15 by Max.Preussner Media: Added Buffering media event Change 3355268 on 2017/03/20 by Max.Preussner Core: TQueue documentation updates Change 3359055 on 2017/03/22 by Max.Preussner Portal: Removed dependency to Messaging.h Change 3359060 on 2017/03/22 by Max.Preussner Messaging: Modernization pass - added missing includes & forward declarations - include what you use - deprecated shared pointer typedefs - replaced some delegates with callback interfaces - documentation fixes Change 3359189 on 2017/03/22 by Max.Preussner Automation: Modernization pass - include what you use - removed molothic header - documentation fixes #upgradenotes: IAutomationWorkerModule.h is now in the module's public root directory Change 3359718 on 2017/03/22 by Max.Preussner Messaging: Moved common helper classes into MessagingCommon module #upgradenotes: If you use the common helper classes, replace "Messaging" with "MessagingCommon" in your Build.cs files and remove the "Helpers/" subdirectory from your include statements (unless you actually include header files from "Messaging", in which case you need to keep "Messaging" and add "MessagingCommon"). Change 3359793 on 2017/03/23 by Max.Preussner TargetDeviceServices: Modernization pass - include what you use - removed boilerplate header - deprecated selected shared pointer typedefs - reorganized files - documentation fixes Change 3361028 on 2017/03/23 by Max.Preussner DeviceManager: Modernization pass - include what you use - reduced shared pointer typedef usage - documentation fixes Change 3361197 on 2017/03/23 by Max.Preussner Messaging: Waking up message router thread on shutdown Change 3361246 on 2017/03/23 by Max.Preussner AutomationWindow: Removed boilerplate header #upgradenotes: Replace includes of AutomationWindow.h with IAutomationWindowModule.h Change 3361428 on 2017/03/23 by Max.Preussner AutomationController: Removed boilerplate header #upgradenotes: Instead of AutomationController.h, include the individual interface headers that you actually use. Remove the "Interfaces/" subdirectory from existing interface inclusions. Change 3363206 on 2017/03/24 by Max.Preussner ProfileLauncher: Modernization pass - include what you use (selected files) - reduced shared pointer typedef usages - removed dead code - cleaned up file organization - documentation fixes Change 3363290 on 2017/03/24 by Max.Preussner LauncherServices: Removed boilerplate header #upgradenotes: Instead of including LauncherServices.h, include the ILauncherXXX.h files that you actually use. Remove the "Interfaces/" subdirectory from existing ILauncherXXX.h includes Change 3363305 on 2017/03/24 by Max.Preussner LauncherCheck: Removed boilerplate header #upgradenotes: Include ILauncherCheckModule.h instead of LauncherCheck.h. Remove "Interfaces/" subdirectory from existing ILauncherCheckModule.h inclusions Change 3363708 on 2017/03/24 by Max.Preussner ImageWrapper: Removed boilerplate header #upgradenotes: Instead of including ImageWrapper.h, include the actual IImageWrapperXXX.h files that you use. Remove the "Interfaces/" subdirectory from existing IImageWrapperXXX.h includes Change 3363966 on 2017/03/24 by Max.Preussner ImageWrapper: Modernization pass - include what you use - reorganized internal files - documentation fixes Change 3364579 on 2017/03/24 by Max.Preussner ImageWrapper: Deprecated shared pointer typedef and removed usages #upgradenotes: Please use TSharedPtr<IImageWrapper> instead of IImageWrapperPtr Change 3364582 on 2017/03/24 by Max.Preussner NetworkFileSystem: Removed monolithic boilerplate header #upgradenotes: Instead of including NetworkFileServer.h, include the INetworkFileXXX.h headers that you actually use. Remove the "Interfaces/" subdirectory from existing INetworkFileXXX.h includes Change 3381440 on 2017/04/05 by Max.Preussner Oculus: Removed illegal pragmas Change 3391731 on 2017/04/12 by Max.Preussner ImgMedia: Added support for BMP, JPG and PNG image sequences Change 3401146 on 2017/04/19 by Max.Preussner Core: Cleanup pass for FTimespan usages; updated documentation When initializing time span values from single components, consider using the FromHours, FromMinutes, FromSeconds, Zero, MinValue and related methods instead of calling the overloaded constructors as they will make your code easier to read and understand. Change 3401504 on 2017/04/20 by Max.Preussner MCP: Fixed incorrect FTimespan usage of GetMilliseconds instead of GetTotalMilliseconds Change 3401833 on 2017/04/20 by Max.Preussner Core: Various improvements to FTimespan - added proper serialization - updated documentation - access fractions as milli-, micro- or nanoseconds - removed the following string formatters as they were not useful: %D %H %M %S %F - updated documentation #upgradenotes: The %D string formatter (previously total number of days) is now the zero-padded days component of the time span. Time spans are now always exported and stringified with a leading plus or minus sign. #jira UE-43990 #jira UE-44163 Change 3437543 on 2017/05/12 by Max.Preussner PS4Media: Added audio error codes conversion Change 3446564 on 2017/05/18 by Max.Preussner Networking: Fixed nullpointer crash if socket initialization fails Change 3459978 on 2017/05/25 by Max.Preussner ImgMedia: Renamed frame cache to frame loader Change 3463311 on 2017/05/26 by Max.Preussner Core: Added iterators & predicate based methods to LRU Cache Change 3464452 on 2017/05/29 by Max.Preussner ImgMedia: Added video sample output Change 3464468 on 2017/05/29 by Max.Preussner Media: Added separate cache visualization for loaded and cached samples Change 3464592 on 2017/05/29 by Max.Preussner Core: Added TLruCache::FindAndTouch Change 3464607 on 2017/05/29 by Max.Preussner Core: Added TRange::Inclusive / ::Exclusive Change 3464608 on 2017/05/29 by Max.Preussner Media: Fixed incorrect upper bound in support play rates of various players Change 3466732 on 2017/05/30 by Max.Preussner ImgMedia: Added image compression type to info string Change 3466871 on 2017/05/31 by Max.Preussner WmfMedia: Fixed session capabilities not showing up; added initialization logging Change 3467785 on 2017/05/31 by Max.Preussner MfMedia: Fixed sample stride calculated from media input instead of output Change 3467963 on 2017/05/31 by Max.Preussner WmfMedia: Reordered media sub-type string conversion to fix some tracks being reported incorrectly Change 3468110 on 2017/05/31 by Max.Preussner WmfMedia: Added MPEG-2 media sub types to utils Change 3468516 on 2017/05/31 by Max.Preussner AndroidMedia: Allow mediaplayer audio to be disable on Android (UE-45570) Change 3468554 on 2017/05/31 by Max.Preussner MediaAssets: Added AutoClear option to automatically clear media texture when media is unloaded Change 3468627 on 2017/05/31 by Max.Preussner ImgMedia: Allowing for auto-selection of EXR decoder thread count Change 3468648 on 2017/05/31 by Max.Preussner ImgMedia: Reorganized OpenExrWrapper files Change 3471789 on 2017/06/02 by Max.Preussner WmfMedia: Fixed potential concurrency issue in session state management Change 3472918 on 2017/06/03 by Max.Preussner Core: Allowing zero sized LRU cache; added default constructor Change 3472919 on 2017/06/03 by Max.Preussner Media: Added pre-Slate tick stage; renamed some functions; continued to implement sample caching Change 3473704 on 2017/06/05 by Max.Preussner AndroidMedia: Added settings class Change 3474407 on 2017/06/05 by Max.Preussner AndroidMedia: Implemented video sample processing Change 3474934 on 2017/06/05 by Max.Preussner ImgMedia: Fixed crash due to deleting loader work items twice (UE-45705) #jira UE-45705 Change 3476925 on 2017/06/06 by Max.Preussner Media: Added return values to media view interface; documentation fixes Change 3477158 on 2017/06/06 by Max.Preussner SwitchMedia: Implemented sample pooling Change 3477201 on 2017/06/07 by Max.Preussner PS4Media: Implemented video sample pooling Change 3481470 on 2017/06/08 by Max.Preussner Media: Fixed time stamps not set in recycled texture samples Change 3481472 on 2017/06/08 by Max.Preussner MediaAssets: Fixed no video samples fetched while player is in buffering state Change 3481473 on 2017/06/08 by Max.Preussner MediaUtils: Added default constructor to MediaSampleQueue Change 3481584 on 2017/06/08 by Max.Preussner MediaUtils: Paused state is considered forward for sample lookup as this is the common case. Change 3481588 on 2017/06/08 by Max.Preussner PS4Media: Redesigned the PS4 media player to support async file loading & track switching Change 3481627 on 2017/06/08 by Max.Preussner PS4Media: Opening media sources in thread pool if not precaching Change 3481666 on 2017/06/08 by Max.Preussner ImgMedia: Fixed SequencePath property file picker always opening default path Change 3481669 on 2017/06/08 by Max.Preussner ImgMedia: Fixed crash when quering cache state of empty image sequence Change 3481685 on 2017/06/08 by Max.Preussner ImgMedia: Fixed EXR reader failing to play slow loading sequences (UE-45719) #jira UE-45719 Change 3483623 on 2017/06/10 by Max.Preussner Media: Added getters for 360 view settings; added support for relative view updates Change 3483624 on 2017/06/10 by Max.Preussner Media: Added Blueprint support for 360 videos Change 3483626 on 2017/06/10 by Max.Preussner MediaPlayerEditor: Added 360 video mouse controls; broke out viewport widget into separate class. Change 3483627 on 2017/06/10 by Max.Preussner Core: Using system start time instead of current time for renamed log file names Change 3483630 on 2017/06/10 by Max.Preussner Core: Grouping log files by log name and processing each group separately when deleting old log files Change 3483816 on 2017/06/10 by Max.Preussner WmfMedia: Detecting audio device availability to prevent lockup of audio tracks Change 3483939 on 2017/06/11 by Max.Preussner AvfMedia: Finished Media Framework 3.0 upgrade - overhauled track switching - removed render thread flushes - reduced nesting - code cleanup pass Change 3483940 on 2017/06/11 by Max.Preussner Media: Consistent track switching behavior across platforms Change 3484172 on 2017/06/11 by Max.Preussner MediaPlayerEditor: Removed obsolete asset type actions Change 3484180 on 2017/06/11 by Max.Preussner MediaPlayerEditor: Fixed media player info overlays not visible during mouse capture Change 3484248 on 2017/06/11 by Max.Preussner MediaAssets: Media players now always have a playlist Change 3484249 on 2017/06/11 by Max.Preussner MediaPlayerEditor: Added UI controls to Playlist tab Change 3484250 on 2017/06/11 by Max.Preussner Media: Implemented overlay sample caching Change 3484252 on 2017/06/11 by Max.Preussner WmfMedia: Enabled support for .smi and .sami subtitle files Change 3485433 on 2017/06/12 by Max.Preussner ImgMedia: Enabled plug-in on all platforms; enabled EXR only on platforms that support it Change 3485720 on 2017/06/12 by Max.Preussner MediaPlayerEditor: Added ability to save playlists Change 3485828 on 2017/06/12 by Max.Preussner AvfMedia: Thread-safe ticking of video sampler; ticking audio processing on high frequency thread Change 3485926 on 2017/06/12 by Max.Preussner MediaUtils: Draining all unconsumed samples at the end of a frame Change 3486043 on 2017/06/12 by Max.Preussner Media: Consistent behavior for playlist navigation (UE-45964) #jira UE-45964 Change 3486104 on 2017/06/12 by Max.Preussner MediaPlayerEditor: Implemented simple overlay text positioning Change 3486145 on 2017/06/12 by Max.Preussner AndroidMediaPlayer: Moved video sample handling into render thread Change 3486147 on 2017/06/12 by Max.Preussner MediaPlayerEditor: Moved overlay texts into separate layer Change 3486188 on 2017/06/12 by Max.Preussner Media: Enabling media factory modules in Editor for all players Change 3486223 on 2017/06/12 by Max.Preussner Media: Defaulting players to select first audio and video tracks by default Change 3486473 on 2017/06/13 by Max.Preussner Media: Buffering is no longer a media player state, but handled separately (for players that can buffer while playing) Change 3486475 on 2017/06/13 by Max.Preussner MediaPlayerEditor: Showing busy bar when buffering or preparing Change 3487237 on 2017/06/13 by Max.Preussner AndroidMedia: Fixed video sample not getting processed on render thread Change 3487507 on 2017/06/13 by Michael.Trepka AvfMedia - small cleanup of the code for passing video frame rate to the video sampler Change 3487719 on 2017/06/13 by Michael.Trepka Disable shared PCH in OpenExrWrapper to solve a problem with bUseRTTI mismatch between the module and the PCH Change 3487842 on 2017/06/13 by Max.Preussner AndroidMedia: Fixed texture swizzle disabled on non-Engine builds Change 3488006 on 2017/06/13 by Michael.Trepka AvfMedia - Moved some logic from FAvfMediaPlayer::TickTickable() to FAvfMediaTracks::ProcessAudio() to make it thread safe, plus fixed a bug with the player not setting the current status to Stopped after opening a file Change 3488308 on 2017/06/13 by Chris.Babcock AndroidMedia: Fixed flicker issue #jira UE-45736 Change 3488335 on 2017/06/13 by Max.Preussner MediaAssets: Made UFileMediaSource::GetFullPath public Change 3488338 on 2017/06/13 by Max.Preussner MediaPlayerEditor: Fixed "Show file in Explorer" not working for file media sources Change 3488339 on 2017/06/13 by Max.Preussner MediaPlayerEditor: Showing a throbber when buffering player Change 3488768 on 2017/06/14 by Max.Preussner Core: Inlined FTimespan static functions hange 3490203 on 2017/06/14 by Max.Preussner Core: Force inlined TComPtr operators Change 3494083 on 2017/06/15 by Chris.Babcock AndroidMedia: Fix playlist looping (send PlaybackEndReached event) #jira UE-46086 Change 3497017 on 2017/06/16 by Max.Preussner MediaAssets: Playlists now auto advance with PlayOnOpen off Change 3497075 on 2017/06/17 by Chris.Babcock MediaPlayer Sampler node and external texture support for Android MediaPlayer - enable with USE_EXTERNALTEXTURE in AndroidMediaPlayer.cpp (disabled in this CL) - supports MediaSample node in material editor with scale/bias handled if above flag enabled - fixed looping problems, including eventual crashes - track switching fixed (lockups and missing video) - corrected resource leaks and crash switching maps #jira UE-46055 #jira UE-45744 #jira UE-46086 Change 3497163 on 2017/06/17 by Max.Preussner MediaUtils: Processing media events immediately if on game thread Change 3497170 on 2017/06/17 by Max.Preussner Media: All Media Framework interfaces are pure virtual Change 3498603 on 2017/06/19 by Ben.Marsh UBT: Prevent plugins which list modules multiple times from adding them twice. Change 3500870 on 2017/06/20 by Max.Preussner WmfMedia: Rewrote WMF state machine; now with track switching #jira UE-20209 #jira UE-35385 #jira UE-38337 #jira UE-45676 Change 3502181 on 2017/06/20 by Chris.Babcock MediaSampler node updates - fixed issue with ExternalTexture singleton for DLL compatiblity - now works for all players (registers texture samples with ExternalTexture by player GUID) - enabled OES in AndroidMediaPlayer now that materials can universally use the MediaSampler Change 3503182 on 2017/06/21 by Max.Preussner Media: Refactored status flags into an enum; exposed connecting status Change 3503724 on 2017/06/21 by Chris.Babcock Improvement in MediaPlayer Sampler node - RGB, R, G, B, A output pins like normal texture sampler - allow preview in material editor - fix OES detection for Android Change 3509088 on 2017/06/26 by Max.Preussner MediaAssets: Added AddFile and AddUrl to UMediaPlaylist Change 3510256 on 2017/06/26 by Max.Preussner WmfMedia: Fixed play rate not set to zero when end reached Change 3510273 on 2017/06/26 by Max.Preussner MediaPlayerEditor: Removed obsolete Slate culling rectangle code Change 3510413 on 2017/06/26 by Max.Preussner MediaPlayerEditor: Showing frame rate if available Change 3510533 on 2017/06/26 by Max.Preussner MediaUtils: Preventing media cache filling up when scrubbing Change 3510859 on 2017/06/26 by Max.Preussner PS4Media: Fixed track switching crashes (UE-45960) #jira UE-45960 Change 3514173 on 2017/06/28 by Max.Preussner WmfMedia: Optimized player capabilities check Change 3514174 on 2017/06/28 by Max.Preussner WmfMedia: Moved media source resolver code into utility class Change 3514714 on 2017/06/28 by Max.Preussner Core: Added TComPointer.IsValid; code cleanup pass Change 3517912 on 2017/06/30 by Max.Preussner MediaUtils: Added GetVideoAspectRatio to player facade Change 3524957 on 2017/07/06 by Max.Preussner ImgMedia: Decoding image frames only when video track is selected Change 3525252 on 2017/07/06 by Max.Preussner ImgMedia: Async image sequence initialization Change 3525266 on 2017/07/06 by Max.Preussner ImgMedia: Enabled reverse playback Change 3525722 on 2017/07/06 by Max.Preussner WmfMedia: Workaround for occasional WMF internal deadlock in IMFRateSupport Change 3525800 on 2017/07/07 by Max.Preussner WmfMedia: Fixed another WMF deadlock issue & some rate change glitches; improved logging. Change 3525801 on 2017/07/07 by Max.Preussner MediaPlayerEditor: Made scrubbing more responsive Change 3526500 on 2017/07/07 by Max.Preussner WmfMedia: Using NULL for Windows pointers Change 3527323 on 2017/07/07 by Max.Preussner WmfMedia: Added support for audio and video capture media sources Change 3530197 on 2017/07/10 by Max.Preussner WmfMedia: Added utility functions for enumerating audio and video capture devices Change 3533465 on 2017/07/12 by Max.Preussner Media: Added media capture device support API & implementation for WMF Change 3533469 on 2017/07/12 by Max.Preussner MediaPlayerEditor: Added source selection menu w/ capture device menu to navigation bar Change 3533540 on 2017/07/12 by Max.Preussner MediaAssets: Blueprint support for media capture device discovery Change 3533574 on 2017/07/12 by Max.Preussner WmfMedia: Using cached supported play rates; more strict pausing support check Change 3533924 on 2017/07/12 by Max.Preussner WmfMedia: Added global LowLatency setting (UEVR-859) Note that this setting is only supported when compiling for Windows 8 or newer. Change 3534027 on 2017/07/12 by Max.Preussner WmfMedia: Compile time support for low latency session attribute on < Windows8 #jira UEVR-859 Change 3538744 on 2017/07/14 by Max.Preussner MediaUtils: Renamed FDefaultMediaTimeSource to FAppMediaTimeSource Change 3542818 on 2017/07/18 by Max.Preussner WmfMedia: Fixed race condition on session shutdown Change 3543082 on 2017/07/18 by Max.Preussner WmfMedia: Fixed track selection in media that doesn't support seeking Change 3543092 on 2017/07/18 by Max.Preussner Media: Implemented media track format API Enables multiple formats per media track. By default, the first usable format is selected. This feature is currently only implemented for WmfMedia. All other players assume a single format per track. Change 3543794 on 2017/07/19 by Max.Preussner WmfMedia: Added string conversion for null GUIDs Change 3543796 on 2017/07/19 by Max.Preussner MfMedia: Copied GUID string conversion updates from WmfMedia Change 3543797 on 2017/07/19 by Max.Preussner WmfMedia: Preventing duplicate track formats in capture devices with legacy DirectX support Change 3544390 on 2017/07/19 by Max.Preussner Media: Allowing INDEX_NONE as 'current selection' index in track format related functions Change 3545368 on 2017/07/19 by Max.Preussner WmfMedia: Fixed session error with some media sources when attempting to seek to current position without ever starting Change 3545388 on 2017/07/19 by Max.Preussner MediaAssets: Fixed RGB input sources rendered upside down Change 3545430 on 2017/07/19 by Max.Preussner MediaAssets: Fixed incorrect sRGB conversion on BMP inputs Change 3547362 on 2017/07/20 by Max.Preussner Core: Added IsGraph and IsPrint to TCHAR utilities Change 3547376 on 2017/07/20 by Max.Preussner WmfMedia: Better log messages for non-standard video types (UE-47533) #jira UE-47533 Change 3547404 on 2017/07/20 by Max.Preussner QAGame: Enabled PlayOnOpen and Looping on MediaPlayerSwitch BP (UE-47542) #jira UE-47542 Change 3547466 on 2017/07/20 by Max.Preussner WmfMedia: Fixed edge case for detecting whether pause is available Change 3548742 on 2017/07/21 by Max.Preussner Media: Added API for changing the input frame rate Change 3548743 on 2017/07/21 by Max.Preussner WmfMedia: Implemented ability to change input frame rate Change 3554411 on 2017/07/25 by Max.Preussner AudioMixer: Broke out SynthComponent initialization code; added bIsUISound property Change 3554818 on 2017/07/25 by Max.Preussner Media: Added per track-type cache queries Change 3557284 on 2017/07/26 by Max.Preussner WmfMedia: Added buffer size check in texture sample as well Change 3560530 on 2017/07/27 by Max.Preussner WmfMedia: Made COM object destructors private and added assertions Change 3560580 on 2017/07/27 by Max.Preussner MediaUtils: Added method for querying number of objects in pool Change 3562572 on 2017/07/28 by Max.Preussner WmfMedia: Properly handling topology status errors when opening media Change 3576710 on 2017/08/08 by Chris.Babcock bug fixes for mediaplayer - rare cases in Android media tracks - make FMediaCaptureDevice members available in blueprints Change 3577736 on 2017/08/08 by Chris.Babcock Extend ExternalTexture to support 2x3 transform (scale/rotation + offset) Change 3578831 on 2017/08/09 by Max.Preussner MediaAssets: Made media sound component BP spawnable Change 3579210 on 2017/08/09 by Max.Preussner UdpMessaging: Not showing warning message if tunnel settings left empty to use defaults Change 3579547 on 2017/08/09 by Chris.Babcock Better support for Android external texture detection Change 3579567 on 2017/08/09 by Chris.Babcock Android camera plugin #jira UEMOB-215 Change 3580035 on 2017/08/10 by Andrew.Rodham Media Texture: External textures are now fully supported and enforced when attempting to sample external texture types in materials. - Textures can now dynamically provide an external texture GUID at runtime, which is queried by the uniform expression. Statically defined GUIDs remain supported. - Added necessary ExternalTexture(Parameter) methods to the material compiler and HLSL translator - Made UTexture::GetMaterialType const-correct #tests Test map that contains TextureObject, TextureObjectParameter, TextureSample and TextureSampleParameter nodes with media textures works on both a Nexus 10 (non-image-external), and a Pixel (image-external), and on desktop PC. Change 3581552 on 2017/08/10 by Chris.Babcock Use bilinear sampling instead of point for external texture (Android media and camera) Change 3581628 on 2017/08/10 by Max.Preussner Core: Fixed FTimespan import/export/copypaste (UE-43990) #jira UE-43990 #jira UE-44163 Change 3581909 on 2017/08/11 by Andrew.Rodham Media: Only cache material proxy pointers if they have been initialized (and thus, will be removed from the cache on release) - This prevents destroyed proxies from remaining in the texture registry #jira UE-48307 Change 3582451 on 2017/08/11 by Max.Preussner AudioMixer: Fixed initialization order of synth components This ensures that the Synth is initialized before OnRegister in the super class initializes and activates the AudioComponents. Previously, the AudioComponent would fail to activate, because Synth was nullptr. #jira UE-48055 Change 3582453 on 2017/08/11 by Max.Preussner MediaAssets: Enabling ticking in media sound component (UE-48055) #jira UE-48055 Change 3583101 on 2017/08/11 by Chris.Babcock Android camera improvements - return correct capture device type (webcamfront/rear) - remove seek (not supported) - support track formats - better framerate selection Change 3590109 on 2017/08/16 by Chris.Babcock Move external texture coordinate update to improve accuracy and save a uniform in final shader Change 3590530 on 2017/08/16 by Max.Preussner MediaAssets: Changed capture device enumeration BP function signatures to allow filter bit masks #jira UE-48166 Change 3590547 on 2017/08/16 by Max.Preussner MediaPlayerEditor: Ticking sound component directly Change 3590628 on 2017/08/16 by Max.Preussner Switch: Fixed media decoder asserting when attempting to pause without having started Change 3591816 on 2017/08/16 by Aaron.McLeran #jira UE-48470 Disabling async processing for procedural sound waves on mac. Change 3592266 on 2017/08/16 by Max.Preussner Media: Replaced media cache with the new sample processing pipeline; continued to implement MfMedia This change fixes stuttering issues with audio and video. However, proper pipeline flushing is not fully implemented yet, so the playback will break after the first playthrough, which might result in freeze frames or out of memory assertions depending on the platform. This will be addressed in an upcoming change. #jira UE-48474 #jira UE-45677 Change 3592355 on 2017/08/17 by Max.Preussner MediaUtils: Added sample sink collection to remove code duplication Change 3592739 on 2017/08/17 by Max.Preussner ImgMedia: Fetching only one video sample per frame Change 3592741 on 2017/08/17 by Max.Preussner MediaUtils: Better sample fetching when paused Change 3592761 on 2017/08/17 by Max.Preussner MediaUtils: Fixed overflow detection in sample sinks Change 3592762 on 2017/08/17 by Max.Preussner ImgMedia: Sending end reached event when looping Change 3592885 on 2017/08/17 by Max.Preussner ImgMedia: Fixed reverse play Change 3592887 on 2017/08/17 by Max.Preussner MediaUtils: Better sample range calculation for audio samples Change 3593010 on 2017/08/17 by Max.Preussner ImgMedia: Fixed async loading of non-EXR image sequences Change 3593193 on 2017/08/17 by Max.Preussner AndroidMedia: Fixed typo Change 3593230 on 2017/08/17 by Max.Preussner Media: Implemented flushing for player sample queues Change 3593346 on 2017/08/17 by Max.Preussner Media: Proper sample processing for reverse playback Change 3593482 on 2017/08/17 by Max.Preussner Switch: Fixed sample range check for reverse playback Change 3594428 on 2017/08/17 by Max.Preussner PS4Media: Fixed video not playing/crashing #jira UE-48547 #jira UE-48549 Change 3595404 on 2017/08/17 by Max.Preussner MediaAssets: Not requesting audio samples if not playing #jira UE-48557 Change 3595624 on 2017/08/17 by Max.Preussner PS4Media: Fixed no looping after track switching #jira UE-46524 #jira UE-48557 Change 3595704 on 2017/08/17 by Max.Preussner MediaUtils: Improved sample queue flushing Eventually this needs to be event-driven. #jira UE-48557 Change 3595706 on 2017/08/17 by Max.Preussner PS4Media: Flushing queues when track switching #jira UE-48557 Change 3595909 on 2017/08/17 by Max.Preussner Matinee: Fix Matinee redirect missing as UClass has been GC'ed (GitHub PR #3382) https://github.com/EpicGames/UnrealEngine/pull/3382 #jira UE-42906 #rn Fix Matinee redirect missing as UClass has been GC'ed (GitHub PR #3382) Change 3597480 on 2017/08/18 by Max.Preussner ImgMediaPlayer: Fixed presentation time calculation for very large delta times Change 3597669 on 2017/08/18 by Max.Preussner ImgMedia: Setting player stopped instead of paused when end reached Change 3597709 on 2017/08/18 by Max.Preussner SwitchMedia: Fixed audio sample duration calculation Change 3598479 on 2017/08/18 by Max.Preussner ImgMedia: Ensuring that first/last frame is played when starting playback forward/reverse; improved state checking; user logging Change 3598629 on 2017/08/18 by Max.Preussner MediaUtils: Properly handling pending flushes when peeking sample queues Change 3598633 on 2017/08/18 by Max.Preussner WmfMedia: Fixed occasional WMF deadlock when scrubbing Change 3598653 on 2017/08/18 by Max.Preussner MediaUtils: Fixed audio resampling in reverse playback Change 3598659 on 2017/08/18 by Max.Preussner MediaPlayerEditor: Creating sound output only if audio device available Change 3598688 on 2017/08/18 by Max.Preussner MediaUtils: Flushing sample queues on direction change regardless of paused state Change 3599444 on 2017/08/20 by Max.Preussner WmfMedia: Added missing check for rate control when quering supported rates Change 3603661 on 2017/08/22 by Max.Preussner WmfMedia: Fixed NV12 output Change 3604345 on 2017/08/23 by Max.Preussner MediaUtils: Added subtitle samples to media sample collection; fixed documentation Change 3604987 on 2017/08/23 by Max.Preussner PS4Media: Setting correct track format types Change 3605117 on 2017/08/23 by Joe.Barnes Fix issue where presentation time was being treated as milliseconds instead of microseconds. Change 3605128 on 2017/08/23 by Joe.Barnes Fix potential issue calculating total (looped) play time after seek or reset. Track last video presentation time Change 3605139 on 2017/08/23 by Joe.Barnes Support audio type DType_Setup. Fix issue with procedural sounds popping. Consume more samples if necessary. #jira ue-48544 Change 3605197 on 2017/08/23 by Max.Preussner Media: Fixed track display name formatting (UE-48767) #jira UE-48767 Change 3605817 on 2017/08/23 by Max.Chen Auto set sampler type on drop on actor. #jira UE-48769 Change 3605999 on 2017/08/23 by Max.Preussner MfMedia: Restarting source reader when switching tracks #jira UE-48766 Change 3606416 on 2017/08/23 by Max.Preussner PS4Media: Various player improvements #jira UE-48586 Change 3607656 on 2017/08/24 by Max.Preussner WmfMedia: Improved logging for Seek and SetRate Change 3607855 on 2017/08/24 by Max.Preussner MfMedia: Better verbose logging; validating seeks; reduced nesting; fixed track switching\ #jira UE-48766 Change 3608029 on 2017/08/24 by Max.Preussner PS4Media: Fixed streaming media not playing; improved result checks & logging #jira UE-48610 Change 3608473 on 2017/08/24 by Max.Preussner MfMedia: Fixed audio sample duration calculation #jira UE-48756 Change 3609316 on 2017/08/24 by Chris.Babcock Provide external texture RotationScale and Offset from sample Change 3610067 on 2017/08/25 by Richard.Wallis Mac: Editor locks up when Track switching and Mac: Media Audio continues to play after closing player. - Fix for creating extra OS AV media playback objects so audio playback not stopping due to over retained objects. - Trying to access OS AV Media Playback object (esp. the currentTime value) across mutliple threads at once seems to cause deadlock in the Apple libraries - moved location of currentTime acess point to Media Ticker - this sets the current time and is then just returned in the getter when on game main. - Trying to playback audio via OS media playback and through the engine at the same time when enabling the selected audio track. Engine version via sample buffers via AVAssetReaderTrackOutput doesn't seem to be working as intended with the new audio frame work audio sinks - so reverting to OS AV media playback for Mac at the moment until better fix for this can be put in. #jira UE-48590, UE-48604 Change 3610267 on 2017/08/25 by Max.Preussner PS4Media: Added missing track selection validation #jira UE-48765 Change 3610399 on 2017/08/25 by Max.Preussner PS4Media: Fixed infinite player re-initialization loop if track selection failed Change 3610809 on 2017/08/25 by Chris.Babcock Fixes for Android media player and camera player - buffer samples copy proper bytecount - realloc sets new buffer ptr - refcount of Java buffers fixed Change 3610953 on 2017/08/25 by Chris.Babcock Fix audio disable before play on Android media player Change 3611405 on 2017/08/25 by Max.Preussner WmfMedia: Resetting supported rates if RateSupport unavailable Change 3611406 on 2017/08/25 by Max.Preussner MfMedia: Resetting supported rates if RateSupport unavailable Change 3611453 on 2017/08/25 by Chris.Babcock Android external texture extension updates for compatibility Change 3611719 on 2017/08/26 by Max.Preussner Media: Added media event for completed seek operations; flushing sinks on seek Change 3611764 on 2017/08/26 by Max.Preussner AvfMedia: Setting player to preparing state prior to initializing tracks asynchronously Change 3611802 on 2017/08/26 by Max.Preussner Media: Exposed error state in media player Change 3611803 on 2017/08/26 by Max.Preussner MediaPlayerEditor: Showing error state in UI Change 3611887 on 2017/08/26 by Max.Preussner MediaUtils: Corrected media sample sink overflow check Change 3611892 on 2017/08/27 by Max.Preussner WmfMedia: Leaving session in error state after error Change 3611929 on 2017/08/27 by Max.Preussner MediaPlayerEditor: Fixed sound stopping on looping Change 3611930 on 2017/08/27 by Max.Preussner MfMedia: Rewrote async sample processing to fix various playback issues Change 3611942 on 2017/08/27 by Max.Preussner Media: Sending suspension event when playback ended Change 3611957 on 2017/08/27 by Max.Preussner UnrealEd: Allowed transient assets to be resaved to disk Change 3611981 on 2017/08/27 by Max.Preussner PS4Media: Rewrote sample processing to fix various playback issues #jira UE-48596 #jira UE-48793 Change 3612035 on 2017/08/27 by Max.Preussner UnrealEd: Picking standard default names when resaving transient packages Change 3612045 on 2017/08/27 by Max.Preussner Media: Fixed playlists not getting saved correctly from Editor (UE-35382) #jira UE-35382 Change 3612212 on 2017/08/28 by Richard.Wallis Fix for Multitrack Video samples continue to Play on Open after Play on Open is toggled off. Current Rate was not getting reset back to 0.0 on media close. #jira UE-47602 Change 3613531 on 2017/08/28 by Max.Preussner MediaAssets: Fixed external texture related crash on shutdown (UE-48918) Also no longer creating clock sink for media player CDO #jira UE-48918 Change 3613677 on 2017/08/28 by Andrew.Porter Fixed crash at exit in Mac editor caused by double release of AVPlayerItem object #jira UE-48937 Change 3615917 on 2017/08/29 by Max.Preussner MfMedia: Added compile options for DXVA and falling back to synchronous sample reading [CL 3617655 by Max Chen in Main branch]
2017-08-30 09:37:09 -04:00
static void AppPreExit();
/**
* Shuts down the application.
*
* This function called outside guarded exit code, during all exits (including error exits).
*/
Copying //UE4/Dev-Sequencer to //UE4/Main (Source: //UE4/Dev-Sequencer @ 3617642) #lockdown nick.penwarden #rb none Change 3235667 on 2016/12/14 by Max.Preussner Media: Moved enums into separate header file, so they can be shared Change 3259266 on 2017/01/16 by Max.Preussner Core: Added timespan ratio Change 3267229 on 2017/01/21 by Max.Preussner Editor: Fixed texture samplers in materials not getting notified when sRGB mode changed Change 3274773 on 2017/01/27 by Max.Preussner Core: Added TLruCache template Change 3281579 on 2017/02/01 by Max.Preussner Core: Added scalar division to FTimespan Change 3289522 on 2017/02/07 by Max.Preussner MediaAssets: Added looping for play lists Change 3290664 on 2017/02/07 by Max.Preussner Engine: Moved UTexture material notification code into separate function, so it can be used by derived classes. Change 3290688 on 2017/02/07 by Max.Preussner MediaAssets: Notifying materials when media texture properties changed. Change 3291171 on 2017/02/07 by Max.Preussner MediaAssets: Filtering unused UTexture properties Change 3291229 on 2017/02/07 by Max.Preussner ImgMedia: Use displayWindow instead of dataWindow due to bug in OpenEXR with data window min < 0 Change 3298520 on 2017/02/11 by Max.Preussner Sequencer: Fixed skylight and reflection components off by one frame in PIE Change 3298778 on 2017/02/12 by Max.Preussner MediaUtils: Experimenting with dynamic pitch adjustment Change 3298987 on 2017/02/13 by Max.Chen Editor: Add matrix and transform properties to property editor test object Change 3298997 on 2017/02/13 by Max.Chen Editor: It's now possible to specify Units and ForceUnits meta-data on struct properties - Doing so will cause any child numeric and struct properties to use these units by default (unless another unit was specified) - Added percentage unit type - Multiplier unit types can now be converted between Change 3298998 on 2017/02/13 by Max.Chen Editor: Conversion between multiplier (1.5x) and percentage (150%) units is now possible Change 3348678 on 2017/03/15 by Max.Preussner Media: Added Buffering media event Change 3355268 on 2017/03/20 by Max.Preussner Core: TQueue documentation updates Change 3359055 on 2017/03/22 by Max.Preussner Portal: Removed dependency to Messaging.h Change 3359060 on 2017/03/22 by Max.Preussner Messaging: Modernization pass - added missing includes & forward declarations - include what you use - deprecated shared pointer typedefs - replaced some delegates with callback interfaces - documentation fixes Change 3359189 on 2017/03/22 by Max.Preussner Automation: Modernization pass - include what you use - removed molothic header - documentation fixes #upgradenotes: IAutomationWorkerModule.h is now in the module's public root directory Change 3359718 on 2017/03/22 by Max.Preussner Messaging: Moved common helper classes into MessagingCommon module #upgradenotes: If you use the common helper classes, replace "Messaging" with "MessagingCommon" in your Build.cs files and remove the "Helpers/" subdirectory from your include statements (unless you actually include header files from "Messaging", in which case you need to keep "Messaging" and add "MessagingCommon"). Change 3359793 on 2017/03/23 by Max.Preussner TargetDeviceServices: Modernization pass - include what you use - removed boilerplate header - deprecated selected shared pointer typedefs - reorganized files - documentation fixes Change 3361028 on 2017/03/23 by Max.Preussner DeviceManager: Modernization pass - include what you use - reduced shared pointer typedef usage - documentation fixes Change 3361197 on 2017/03/23 by Max.Preussner Messaging: Waking up message router thread on shutdown Change 3361246 on 2017/03/23 by Max.Preussner AutomationWindow: Removed boilerplate header #upgradenotes: Replace includes of AutomationWindow.h with IAutomationWindowModule.h Change 3361428 on 2017/03/23 by Max.Preussner AutomationController: Removed boilerplate header #upgradenotes: Instead of AutomationController.h, include the individual interface headers that you actually use. Remove the "Interfaces/" subdirectory from existing interface inclusions. Change 3363206 on 2017/03/24 by Max.Preussner ProfileLauncher: Modernization pass - include what you use (selected files) - reduced shared pointer typedef usages - removed dead code - cleaned up file organization - documentation fixes Change 3363290 on 2017/03/24 by Max.Preussner LauncherServices: Removed boilerplate header #upgradenotes: Instead of including LauncherServices.h, include the ILauncherXXX.h files that you actually use. Remove the "Interfaces/" subdirectory from existing ILauncherXXX.h includes Change 3363305 on 2017/03/24 by Max.Preussner LauncherCheck: Removed boilerplate header #upgradenotes: Include ILauncherCheckModule.h instead of LauncherCheck.h. Remove "Interfaces/" subdirectory from existing ILauncherCheckModule.h inclusions Change 3363708 on 2017/03/24 by Max.Preussner ImageWrapper: Removed boilerplate header #upgradenotes: Instead of including ImageWrapper.h, include the actual IImageWrapperXXX.h files that you use. Remove the "Interfaces/" subdirectory from existing IImageWrapperXXX.h includes Change 3363966 on 2017/03/24 by Max.Preussner ImageWrapper: Modernization pass - include what you use - reorganized internal files - documentation fixes Change 3364579 on 2017/03/24 by Max.Preussner ImageWrapper: Deprecated shared pointer typedef and removed usages #upgradenotes: Please use TSharedPtr<IImageWrapper> instead of IImageWrapperPtr Change 3364582 on 2017/03/24 by Max.Preussner NetworkFileSystem: Removed monolithic boilerplate header #upgradenotes: Instead of including NetworkFileServer.h, include the INetworkFileXXX.h headers that you actually use. Remove the "Interfaces/" subdirectory from existing INetworkFileXXX.h includes Change 3381440 on 2017/04/05 by Max.Preussner Oculus: Removed illegal pragmas Change 3391731 on 2017/04/12 by Max.Preussner ImgMedia: Added support for BMP, JPG and PNG image sequences Change 3401146 on 2017/04/19 by Max.Preussner Core: Cleanup pass for FTimespan usages; updated documentation When initializing time span values from single components, consider using the FromHours, FromMinutes, FromSeconds, Zero, MinValue and related methods instead of calling the overloaded constructors as they will make your code easier to read and understand. Change 3401504 on 2017/04/20 by Max.Preussner MCP: Fixed incorrect FTimespan usage of GetMilliseconds instead of GetTotalMilliseconds Change 3401833 on 2017/04/20 by Max.Preussner Core: Various improvements to FTimespan - added proper serialization - updated documentation - access fractions as milli-, micro- or nanoseconds - removed the following string formatters as they were not useful: %D %H %M %S %F - updated documentation #upgradenotes: The %D string formatter (previously total number of days) is now the zero-padded days component of the time span. Time spans are now always exported and stringified with a leading plus or minus sign. #jira UE-43990 #jira UE-44163 Change 3437543 on 2017/05/12 by Max.Preussner PS4Media: Added audio error codes conversion Change 3446564 on 2017/05/18 by Max.Preussner Networking: Fixed nullpointer crash if socket initialization fails Change 3459978 on 2017/05/25 by Max.Preussner ImgMedia: Renamed frame cache to frame loader Change 3463311 on 2017/05/26 by Max.Preussner Core: Added iterators & predicate based methods to LRU Cache Change 3464452 on 2017/05/29 by Max.Preussner ImgMedia: Added video sample output Change 3464468 on 2017/05/29 by Max.Preussner Media: Added separate cache visualization for loaded and cached samples Change 3464592 on 2017/05/29 by Max.Preussner Core: Added TLruCache::FindAndTouch Change 3464607 on 2017/05/29 by Max.Preussner Core: Added TRange::Inclusive / ::Exclusive Change 3464608 on 2017/05/29 by Max.Preussner Media: Fixed incorrect upper bound in support play rates of various players Change 3466732 on 2017/05/30 by Max.Preussner ImgMedia: Added image compression type to info string Change 3466871 on 2017/05/31 by Max.Preussner WmfMedia: Fixed session capabilities not showing up; added initialization logging Change 3467785 on 2017/05/31 by Max.Preussner MfMedia: Fixed sample stride calculated from media input instead of output Change 3467963 on 2017/05/31 by Max.Preussner WmfMedia: Reordered media sub-type string conversion to fix some tracks being reported incorrectly Change 3468110 on 2017/05/31 by Max.Preussner WmfMedia: Added MPEG-2 media sub types to utils Change 3468516 on 2017/05/31 by Max.Preussner AndroidMedia: Allow mediaplayer audio to be disable on Android (UE-45570) Change 3468554 on 2017/05/31 by Max.Preussner MediaAssets: Added AutoClear option to automatically clear media texture when media is unloaded Change 3468627 on 2017/05/31 by Max.Preussner ImgMedia: Allowing for auto-selection of EXR decoder thread count Change 3468648 on 2017/05/31 by Max.Preussner ImgMedia: Reorganized OpenExrWrapper files Change 3471789 on 2017/06/02 by Max.Preussner WmfMedia: Fixed potential concurrency issue in session state management Change 3472918 on 2017/06/03 by Max.Preussner Core: Allowing zero sized LRU cache; added default constructor Change 3472919 on 2017/06/03 by Max.Preussner Media: Added pre-Slate tick stage; renamed some functions; continued to implement sample caching Change 3473704 on 2017/06/05 by Max.Preussner AndroidMedia: Added settings class Change 3474407 on 2017/06/05 by Max.Preussner AndroidMedia: Implemented video sample processing Change 3474934 on 2017/06/05 by Max.Preussner ImgMedia: Fixed crash due to deleting loader work items twice (UE-45705) #jira UE-45705 Change 3476925 on 2017/06/06 by Max.Preussner Media: Added return values to media view interface; documentation fixes Change 3477158 on 2017/06/06 by Max.Preussner SwitchMedia: Implemented sample pooling Change 3477201 on 2017/06/07 by Max.Preussner PS4Media: Implemented video sample pooling Change 3481470 on 2017/06/08 by Max.Preussner Media: Fixed time stamps not set in recycled texture samples Change 3481472 on 2017/06/08 by Max.Preussner MediaAssets: Fixed no video samples fetched while player is in buffering state Change 3481473 on 2017/06/08 by Max.Preussner MediaUtils: Added default constructor to MediaSampleQueue Change 3481584 on 2017/06/08 by Max.Preussner MediaUtils: Paused state is considered forward for sample lookup as this is the common case. Change 3481588 on 2017/06/08 by Max.Preussner PS4Media: Redesigned the PS4 media player to support async file loading & track switching Change 3481627 on 2017/06/08 by Max.Preussner PS4Media: Opening media sources in thread pool if not precaching Change 3481666 on 2017/06/08 by Max.Preussner ImgMedia: Fixed SequencePath property file picker always opening default path Change 3481669 on 2017/06/08 by Max.Preussner ImgMedia: Fixed crash when quering cache state of empty image sequence Change 3481685 on 2017/06/08 by Max.Preussner ImgMedia: Fixed EXR reader failing to play slow loading sequences (UE-45719) #jira UE-45719 Change 3483623 on 2017/06/10 by Max.Preussner Media: Added getters for 360 view settings; added support for relative view updates Change 3483624 on 2017/06/10 by Max.Preussner Media: Added Blueprint support for 360 videos Change 3483626 on 2017/06/10 by Max.Preussner MediaPlayerEditor: Added 360 video mouse controls; broke out viewport widget into separate class. Change 3483627 on 2017/06/10 by Max.Preussner Core: Using system start time instead of current time for renamed log file names Change 3483630 on 2017/06/10 by Max.Preussner Core: Grouping log files by log name and processing each group separately when deleting old log files Change 3483816 on 2017/06/10 by Max.Preussner WmfMedia: Detecting audio device availability to prevent lockup of audio tracks Change 3483939 on 2017/06/11 by Max.Preussner AvfMedia: Finished Media Framework 3.0 upgrade - overhauled track switching - removed render thread flushes - reduced nesting - code cleanup pass Change 3483940 on 2017/06/11 by Max.Preussner Media: Consistent track switching behavior across platforms Change 3484172 on 2017/06/11 by Max.Preussner MediaPlayerEditor: Removed obsolete asset type actions Change 3484180 on 2017/06/11 by Max.Preussner MediaPlayerEditor: Fixed media player info overlays not visible during mouse capture Change 3484248 on 2017/06/11 by Max.Preussner MediaAssets: Media players now always have a playlist Change 3484249 on 2017/06/11 by Max.Preussner MediaPlayerEditor: Added UI controls to Playlist tab Change 3484250 on 2017/06/11 by Max.Preussner Media: Implemented overlay sample caching Change 3484252 on 2017/06/11 by Max.Preussner WmfMedia: Enabled support for .smi and .sami subtitle files Change 3485433 on 2017/06/12 by Max.Preussner ImgMedia: Enabled plug-in on all platforms; enabled EXR only on platforms that support it Change 3485720 on 2017/06/12 by Max.Preussner MediaPlayerEditor: Added ability to save playlists Change 3485828 on 2017/06/12 by Max.Preussner AvfMedia: Thread-safe ticking of video sampler; ticking audio processing on high frequency thread Change 3485926 on 2017/06/12 by Max.Preussner MediaUtils: Draining all unconsumed samples at the end of a frame Change 3486043 on 2017/06/12 by Max.Preussner Media: Consistent behavior for playlist navigation (UE-45964) #jira UE-45964 Change 3486104 on 2017/06/12 by Max.Preussner MediaPlayerEditor: Implemented simple overlay text positioning Change 3486145 on 2017/06/12 by Max.Preussner AndroidMediaPlayer: Moved video sample handling into render thread Change 3486147 on 2017/06/12 by Max.Preussner MediaPlayerEditor: Moved overlay texts into separate layer Change 3486188 on 2017/06/12 by Max.Preussner Media: Enabling media factory modules in Editor for all players Change 3486223 on 2017/06/12 by Max.Preussner Media: Defaulting players to select first audio and video tracks by default Change 3486473 on 2017/06/13 by Max.Preussner Media: Buffering is no longer a media player state, but handled separately (for players that can buffer while playing) Change 3486475 on 2017/06/13 by Max.Preussner MediaPlayerEditor: Showing busy bar when buffering or preparing Change 3487237 on 2017/06/13 by Max.Preussner AndroidMedia: Fixed video sample not getting processed on render thread Change 3487507 on 2017/06/13 by Michael.Trepka AvfMedia - small cleanup of the code for passing video frame rate to the video sampler Change 3487719 on 2017/06/13 by Michael.Trepka Disable shared PCH in OpenExrWrapper to solve a problem with bUseRTTI mismatch between the module and the PCH Change 3487842 on 2017/06/13 by Max.Preussner AndroidMedia: Fixed texture swizzle disabled on non-Engine builds Change 3488006 on 2017/06/13 by Michael.Trepka AvfMedia - Moved some logic from FAvfMediaPlayer::TickTickable() to FAvfMediaTracks::ProcessAudio() to make it thread safe, plus fixed a bug with the player not setting the current status to Stopped after opening a file Change 3488308 on 2017/06/13 by Chris.Babcock AndroidMedia: Fixed flicker issue #jira UE-45736 Change 3488335 on 2017/06/13 by Max.Preussner MediaAssets: Made UFileMediaSource::GetFullPath public Change 3488338 on 2017/06/13 by Max.Preussner MediaPlayerEditor: Fixed "Show file in Explorer" not working for file media sources Change 3488339 on 2017/06/13 by Max.Preussner MediaPlayerEditor: Showing a throbber when buffering player Change 3488768 on 2017/06/14 by Max.Preussner Core: Inlined FTimespan static functions hange 3490203 on 2017/06/14 by Max.Preussner Core: Force inlined TComPtr operators Change 3494083 on 2017/06/15 by Chris.Babcock AndroidMedia: Fix playlist looping (send PlaybackEndReached event) #jira UE-46086 Change 3497017 on 2017/06/16 by Max.Preussner MediaAssets: Playlists now auto advance with PlayOnOpen off Change 3497075 on 2017/06/17 by Chris.Babcock MediaPlayer Sampler node and external texture support for Android MediaPlayer - enable with USE_EXTERNALTEXTURE in AndroidMediaPlayer.cpp (disabled in this CL) - supports MediaSample node in material editor with scale/bias handled if above flag enabled - fixed looping problems, including eventual crashes - track switching fixed (lockups and missing video) - corrected resource leaks and crash switching maps #jira UE-46055 #jira UE-45744 #jira UE-46086 Change 3497163 on 2017/06/17 by Max.Preussner MediaUtils: Processing media events immediately if on game thread Change 3497170 on 2017/06/17 by Max.Preussner Media: All Media Framework interfaces are pure virtual Change 3498603 on 2017/06/19 by Ben.Marsh UBT: Prevent plugins which list modules multiple times from adding them twice. Change 3500870 on 2017/06/20 by Max.Preussner WmfMedia: Rewrote WMF state machine; now with track switching #jira UE-20209 #jira UE-35385 #jira UE-38337 #jira UE-45676 Change 3502181 on 2017/06/20 by Chris.Babcock MediaSampler node updates - fixed issue with ExternalTexture singleton for DLL compatiblity - now works for all players (registers texture samples with ExternalTexture by player GUID) - enabled OES in AndroidMediaPlayer now that materials can universally use the MediaSampler Change 3503182 on 2017/06/21 by Max.Preussner Media: Refactored status flags into an enum; exposed connecting status Change 3503724 on 2017/06/21 by Chris.Babcock Improvement in MediaPlayer Sampler node - RGB, R, G, B, A output pins like normal texture sampler - allow preview in material editor - fix OES detection for Android Change 3509088 on 2017/06/26 by Max.Preussner MediaAssets: Added AddFile and AddUrl to UMediaPlaylist Change 3510256 on 2017/06/26 by Max.Preussner WmfMedia: Fixed play rate not set to zero when end reached Change 3510273 on 2017/06/26 by Max.Preussner MediaPlayerEditor: Removed obsolete Slate culling rectangle code Change 3510413 on 2017/06/26 by Max.Preussner MediaPlayerEditor: Showing frame rate if available Change 3510533 on 2017/06/26 by Max.Preussner MediaUtils: Preventing media cache filling up when scrubbing Change 3510859 on 2017/06/26 by Max.Preussner PS4Media: Fixed track switching crashes (UE-45960) #jira UE-45960 Change 3514173 on 2017/06/28 by Max.Preussner WmfMedia: Optimized player capabilities check Change 3514174 on 2017/06/28 by Max.Preussner WmfMedia: Moved media source resolver code into utility class Change 3514714 on 2017/06/28 by Max.Preussner Core: Added TComPointer.IsValid; code cleanup pass Change 3517912 on 2017/06/30 by Max.Preussner MediaUtils: Added GetVideoAspectRatio to player facade Change 3524957 on 2017/07/06 by Max.Preussner ImgMedia: Decoding image frames only when video track is selected Change 3525252 on 2017/07/06 by Max.Preussner ImgMedia: Async image sequence initialization Change 3525266 on 2017/07/06 by Max.Preussner ImgMedia: Enabled reverse playback Change 3525722 on 2017/07/06 by Max.Preussner WmfMedia: Workaround for occasional WMF internal deadlock in IMFRateSupport Change 3525800 on 2017/07/07 by Max.Preussner WmfMedia: Fixed another WMF deadlock issue & some rate change glitches; improved logging. Change 3525801 on 2017/07/07 by Max.Preussner MediaPlayerEditor: Made scrubbing more responsive Change 3526500 on 2017/07/07 by Max.Preussner WmfMedia: Using NULL for Windows pointers Change 3527323 on 2017/07/07 by Max.Preussner WmfMedia: Added support for audio and video capture media sources Change 3530197 on 2017/07/10 by Max.Preussner WmfMedia: Added utility functions for enumerating audio and video capture devices Change 3533465 on 2017/07/12 by Max.Preussner Media: Added media capture device support API & implementation for WMF Change 3533469 on 2017/07/12 by Max.Preussner MediaPlayerEditor: Added source selection menu w/ capture device menu to navigation bar Change 3533540 on 2017/07/12 by Max.Preussner MediaAssets: Blueprint support for media capture device discovery Change 3533574 on 2017/07/12 by Max.Preussner WmfMedia: Using cached supported play rates; more strict pausing support check Change 3533924 on 2017/07/12 by Max.Preussner WmfMedia: Added global LowLatency setting (UEVR-859) Note that this setting is only supported when compiling for Windows 8 or newer. Change 3534027 on 2017/07/12 by Max.Preussner WmfMedia: Compile time support for low latency session attribute on < Windows8 #jira UEVR-859 Change 3538744 on 2017/07/14 by Max.Preussner MediaUtils: Renamed FDefaultMediaTimeSource to FAppMediaTimeSource Change 3542818 on 2017/07/18 by Max.Preussner WmfMedia: Fixed race condition on session shutdown Change 3543082 on 2017/07/18 by Max.Preussner WmfMedia: Fixed track selection in media that doesn't support seeking Change 3543092 on 2017/07/18 by Max.Preussner Media: Implemented media track format API Enables multiple formats per media track. By default, the first usable format is selected. This feature is currently only implemented for WmfMedia. All other players assume a single format per track. Change 3543794 on 2017/07/19 by Max.Preussner WmfMedia: Added string conversion for null GUIDs Change 3543796 on 2017/07/19 by Max.Preussner MfMedia: Copied GUID string conversion updates from WmfMedia Change 3543797 on 2017/07/19 by Max.Preussner WmfMedia: Preventing duplicate track formats in capture devices with legacy DirectX support Change 3544390 on 2017/07/19 by Max.Preussner Media: Allowing INDEX_NONE as 'current selection' index in track format related functions Change 3545368 on 2017/07/19 by Max.Preussner WmfMedia: Fixed session error with some media sources when attempting to seek to current position without ever starting Change 3545388 on 2017/07/19 by Max.Preussner MediaAssets: Fixed RGB input sources rendered upside down Change 3545430 on 2017/07/19 by Max.Preussner MediaAssets: Fixed incorrect sRGB conversion on BMP inputs Change 3547362 on 2017/07/20 by Max.Preussner Core: Added IsGraph and IsPrint to TCHAR utilities Change 3547376 on 2017/07/20 by Max.Preussner WmfMedia: Better log messages for non-standard video types (UE-47533) #jira UE-47533 Change 3547404 on 2017/07/20 by Max.Preussner QAGame: Enabled PlayOnOpen and Looping on MediaPlayerSwitch BP (UE-47542) #jira UE-47542 Change 3547466 on 2017/07/20 by Max.Preussner WmfMedia: Fixed edge case for detecting whether pause is available Change 3548742 on 2017/07/21 by Max.Preussner Media: Added API for changing the input frame rate Change 3548743 on 2017/07/21 by Max.Preussner WmfMedia: Implemented ability to change input frame rate Change 3554411 on 2017/07/25 by Max.Preussner AudioMixer: Broke out SynthComponent initialization code; added bIsUISound property Change 3554818 on 2017/07/25 by Max.Preussner Media: Added per track-type cache queries Change 3557284 on 2017/07/26 by Max.Preussner WmfMedia: Added buffer size check in texture sample as well Change 3560530 on 2017/07/27 by Max.Preussner WmfMedia: Made COM object destructors private and added assertions Change 3560580 on 2017/07/27 by Max.Preussner MediaUtils: Added method for querying number of objects in pool Change 3562572 on 2017/07/28 by Max.Preussner WmfMedia: Properly handling topology status errors when opening media Change 3576710 on 2017/08/08 by Chris.Babcock bug fixes for mediaplayer - rare cases in Android media tracks - make FMediaCaptureDevice members available in blueprints Change 3577736 on 2017/08/08 by Chris.Babcock Extend ExternalTexture to support 2x3 transform (scale/rotation + offset) Change 3578831 on 2017/08/09 by Max.Preussner MediaAssets: Made media sound component BP spawnable Change 3579210 on 2017/08/09 by Max.Preussner UdpMessaging: Not showing warning message if tunnel settings left empty to use defaults Change 3579547 on 2017/08/09 by Chris.Babcock Better support for Android external texture detection Change 3579567 on 2017/08/09 by Chris.Babcock Android camera plugin #jira UEMOB-215 Change 3580035 on 2017/08/10 by Andrew.Rodham Media Texture: External textures are now fully supported and enforced when attempting to sample external texture types in materials. - Textures can now dynamically provide an external texture GUID at runtime, which is queried by the uniform expression. Statically defined GUIDs remain supported. - Added necessary ExternalTexture(Parameter) methods to the material compiler and HLSL translator - Made UTexture::GetMaterialType const-correct #tests Test map that contains TextureObject, TextureObjectParameter, TextureSample and TextureSampleParameter nodes with media textures works on both a Nexus 10 (non-image-external), and a Pixel (image-external), and on desktop PC. Change 3581552 on 2017/08/10 by Chris.Babcock Use bilinear sampling instead of point for external texture (Android media and camera) Change 3581628 on 2017/08/10 by Max.Preussner Core: Fixed FTimespan import/export/copypaste (UE-43990) #jira UE-43990 #jira UE-44163 Change 3581909 on 2017/08/11 by Andrew.Rodham Media: Only cache material proxy pointers if they have been initialized (and thus, will be removed from the cache on release) - This prevents destroyed proxies from remaining in the texture registry #jira UE-48307 Change 3582451 on 2017/08/11 by Max.Preussner AudioMixer: Fixed initialization order of synth components This ensures that the Synth is initialized before OnRegister in the super class initializes and activates the AudioComponents. Previously, the AudioComponent would fail to activate, because Synth was nullptr. #jira UE-48055 Change 3582453 on 2017/08/11 by Max.Preussner MediaAssets: Enabling ticking in media sound component (UE-48055) #jira UE-48055 Change 3583101 on 2017/08/11 by Chris.Babcock Android camera improvements - return correct capture device type (webcamfront/rear) - remove seek (not supported) - support track formats - better framerate selection Change 3590109 on 2017/08/16 by Chris.Babcock Move external texture coordinate update to improve accuracy and save a uniform in final shader Change 3590530 on 2017/08/16 by Max.Preussner MediaAssets: Changed capture device enumeration BP function signatures to allow filter bit masks #jira UE-48166 Change 3590547 on 2017/08/16 by Max.Preussner MediaPlayerEditor: Ticking sound component directly Change 3590628 on 2017/08/16 by Max.Preussner Switch: Fixed media decoder asserting when attempting to pause without having started Change 3591816 on 2017/08/16 by Aaron.McLeran #jira UE-48470 Disabling async processing for procedural sound waves on mac. Change 3592266 on 2017/08/16 by Max.Preussner Media: Replaced media cache with the new sample processing pipeline; continued to implement MfMedia This change fixes stuttering issues with audio and video. However, proper pipeline flushing is not fully implemented yet, so the playback will break after the first playthrough, which might result in freeze frames or out of memory assertions depending on the platform. This will be addressed in an upcoming change. #jira UE-48474 #jira UE-45677 Change 3592355 on 2017/08/17 by Max.Preussner MediaUtils: Added sample sink collection to remove code duplication Change 3592739 on 2017/08/17 by Max.Preussner ImgMedia: Fetching only one video sample per frame Change 3592741 on 2017/08/17 by Max.Preussner MediaUtils: Better sample fetching when paused Change 3592761 on 2017/08/17 by Max.Preussner MediaUtils: Fixed overflow detection in sample sinks Change 3592762 on 2017/08/17 by Max.Preussner ImgMedia: Sending end reached event when looping Change 3592885 on 2017/08/17 by Max.Preussner ImgMedia: Fixed reverse play Change 3592887 on 2017/08/17 by Max.Preussner MediaUtils: Better sample range calculation for audio samples Change 3593010 on 2017/08/17 by Max.Preussner ImgMedia: Fixed async loading of non-EXR image sequences Change 3593193 on 2017/08/17 by Max.Preussner AndroidMedia: Fixed typo Change 3593230 on 2017/08/17 by Max.Preussner Media: Implemented flushing for player sample queues Change 3593346 on 2017/08/17 by Max.Preussner Media: Proper sample processing for reverse playback Change 3593482 on 2017/08/17 by Max.Preussner Switch: Fixed sample range check for reverse playback Change 3594428 on 2017/08/17 by Max.Preussner PS4Media: Fixed video not playing/crashing #jira UE-48547 #jira UE-48549 Change 3595404 on 2017/08/17 by Max.Preussner MediaAssets: Not requesting audio samples if not playing #jira UE-48557 Change 3595624 on 2017/08/17 by Max.Preussner PS4Media: Fixed no looping after track switching #jira UE-46524 #jira UE-48557 Change 3595704 on 2017/08/17 by Max.Preussner MediaUtils: Improved sample queue flushing Eventually this needs to be event-driven. #jira UE-48557 Change 3595706 on 2017/08/17 by Max.Preussner PS4Media: Flushing queues when track switching #jira UE-48557 Change 3595909 on 2017/08/17 by Max.Preussner Matinee: Fix Matinee redirect missing as UClass has been GC'ed (GitHub PR #3382) https://github.com/EpicGames/UnrealEngine/pull/3382 #jira UE-42906 #rn Fix Matinee redirect missing as UClass has been GC'ed (GitHub PR #3382) Change 3597480 on 2017/08/18 by Max.Preussner ImgMediaPlayer: Fixed presentation time calculation for very large delta times Change 3597669 on 2017/08/18 by Max.Preussner ImgMedia: Setting player stopped instead of paused when end reached Change 3597709 on 2017/08/18 by Max.Preussner SwitchMedia: Fixed audio sample duration calculation Change 3598479 on 2017/08/18 by Max.Preussner ImgMedia: Ensuring that first/last frame is played when starting playback forward/reverse; improved state checking; user logging Change 3598629 on 2017/08/18 by Max.Preussner MediaUtils: Properly handling pending flushes when peeking sample queues Change 3598633 on 2017/08/18 by Max.Preussner WmfMedia: Fixed occasional WMF deadlock when scrubbing Change 3598653 on 2017/08/18 by Max.Preussner MediaUtils: Fixed audio resampling in reverse playback Change 3598659 on 2017/08/18 by Max.Preussner MediaPlayerEditor: Creating sound output only if audio device available Change 3598688 on 2017/08/18 by Max.Preussner MediaUtils: Flushing sample queues on direction change regardless of paused state Change 3599444 on 2017/08/20 by Max.Preussner WmfMedia: Added missing check for rate control when quering supported rates Change 3603661 on 2017/08/22 by Max.Preussner WmfMedia: Fixed NV12 output Change 3604345 on 2017/08/23 by Max.Preussner MediaUtils: Added subtitle samples to media sample collection; fixed documentation Change 3604987 on 2017/08/23 by Max.Preussner PS4Media: Setting correct track format types Change 3605117 on 2017/08/23 by Joe.Barnes Fix issue where presentation time was being treated as milliseconds instead of microseconds. Change 3605128 on 2017/08/23 by Joe.Barnes Fix potential issue calculating total (looped) play time after seek or reset. Track last video presentation time Change 3605139 on 2017/08/23 by Joe.Barnes Support audio type DType_Setup. Fix issue with procedural sounds popping. Consume more samples if necessary. #jira ue-48544 Change 3605197 on 2017/08/23 by Max.Preussner Media: Fixed track display name formatting (UE-48767) #jira UE-48767 Change 3605817 on 2017/08/23 by Max.Chen Auto set sampler type on drop on actor. #jira UE-48769 Change 3605999 on 2017/08/23 by Max.Preussner MfMedia: Restarting source reader when switching tracks #jira UE-48766 Change 3606416 on 2017/08/23 by Max.Preussner PS4Media: Various player improvements #jira UE-48586 Change 3607656 on 2017/08/24 by Max.Preussner WmfMedia: Improved logging for Seek and SetRate Change 3607855 on 2017/08/24 by Max.Preussner MfMedia: Better verbose logging; validating seeks; reduced nesting; fixed track switching\ #jira UE-48766 Change 3608029 on 2017/08/24 by Max.Preussner PS4Media: Fixed streaming media not playing; improved result checks & logging #jira UE-48610 Change 3608473 on 2017/08/24 by Max.Preussner MfMedia: Fixed audio sample duration calculation #jira UE-48756 Change 3609316 on 2017/08/24 by Chris.Babcock Provide external texture RotationScale and Offset from sample Change 3610067 on 2017/08/25 by Richard.Wallis Mac: Editor locks up when Track switching and Mac: Media Audio continues to play after closing player. - Fix for creating extra OS AV media playback objects so audio playback not stopping due to over retained objects. - Trying to access OS AV Media Playback object (esp. the currentTime value) across mutliple threads at once seems to cause deadlock in the Apple libraries - moved location of currentTime acess point to Media Ticker - this sets the current time and is then just returned in the getter when on game main. - Trying to playback audio via OS media playback and through the engine at the same time when enabling the selected audio track. Engine version via sample buffers via AVAssetReaderTrackOutput doesn't seem to be working as intended with the new audio frame work audio sinks - so reverting to OS AV media playback for Mac at the moment until better fix for this can be put in. #jira UE-48590, UE-48604 Change 3610267 on 2017/08/25 by Max.Preussner PS4Media: Added missing track selection validation #jira UE-48765 Change 3610399 on 2017/08/25 by Max.Preussner PS4Media: Fixed infinite player re-initialization loop if track selection failed Change 3610809 on 2017/08/25 by Chris.Babcock Fixes for Android media player and camera player - buffer samples copy proper bytecount - realloc sets new buffer ptr - refcount of Java buffers fixed Change 3610953 on 2017/08/25 by Chris.Babcock Fix audio disable before play on Android media player Change 3611405 on 2017/08/25 by Max.Preussner WmfMedia: Resetting supported rates if RateSupport unavailable Change 3611406 on 2017/08/25 by Max.Preussner MfMedia: Resetting supported rates if RateSupport unavailable Change 3611453 on 2017/08/25 by Chris.Babcock Android external texture extension updates for compatibility Change 3611719 on 2017/08/26 by Max.Preussner Media: Added media event for completed seek operations; flushing sinks on seek Change 3611764 on 2017/08/26 by Max.Preussner AvfMedia: Setting player to preparing state prior to initializing tracks asynchronously Change 3611802 on 2017/08/26 by Max.Preussner Media: Exposed error state in media player Change 3611803 on 2017/08/26 by Max.Preussner MediaPlayerEditor: Showing error state in UI Change 3611887 on 2017/08/26 by Max.Preussner MediaUtils: Corrected media sample sink overflow check Change 3611892 on 2017/08/27 by Max.Preussner WmfMedia: Leaving session in error state after error Change 3611929 on 2017/08/27 by Max.Preussner MediaPlayerEditor: Fixed sound stopping on looping Change 3611930 on 2017/08/27 by Max.Preussner MfMedia: Rewrote async sample processing to fix various playback issues Change 3611942 on 2017/08/27 by Max.Preussner Media: Sending suspension event when playback ended Change 3611957 on 2017/08/27 by Max.Preussner UnrealEd: Allowed transient assets to be resaved to disk Change 3611981 on 2017/08/27 by Max.Preussner PS4Media: Rewrote sample processing to fix various playback issues #jira UE-48596 #jira UE-48793 Change 3612035 on 2017/08/27 by Max.Preussner UnrealEd: Picking standard default names when resaving transient packages Change 3612045 on 2017/08/27 by Max.Preussner Media: Fixed playlists not getting saved correctly from Editor (UE-35382) #jira UE-35382 Change 3612212 on 2017/08/28 by Richard.Wallis Fix for Multitrack Video samples continue to Play on Open after Play on Open is toggled off. Current Rate was not getting reset back to 0.0 on media close. #jira UE-47602 Change 3613531 on 2017/08/28 by Max.Preussner MediaAssets: Fixed external texture related crash on shutdown (UE-48918) Also no longer creating clock sink for media player CDO #jira UE-48918 Change 3613677 on 2017/08/28 by Andrew.Porter Fixed crash at exit in Mac editor caused by double release of AVPlayerItem object #jira UE-48937 Change 3615917 on 2017/08/29 by Max.Preussner MfMedia: Added compile options for DXVA and falling back to synchronous sample reading [CL 3617655 by Max Chen in Main branch]
2017-08-30 09:37:09 -04:00
static void AppExit();
private:
/** Utility function that processes Slate operations. */
void ProcessLocalPlayerSlateOperations() const;
protected:
/** Holds a dynamically expanding array of frame times in milliseconds (if FApp::IsBenchmarking() is set). */
TArray<float> FrameTimes;
/** Holds the total time spent ticking engine. */
double TotalTickTime;
/** Holds the maximum number of seconds engine should be ticked. */
double MaxTickTime;
/** Holds the maximum number of frames to render in benchmarking mode. */
uint64 MaxFrameCounter;
/** Holds the number of cycles in the last frame. */
uint32 LastFrameCycles;
#if WITH_ENGINE
/** Holds the objects which need to be cleaned up when the rendering thread finishes the previous frame. */
FPendingCleanupObjects* PendingCleanupObjects;
#endif //WITH_ENGINE
private:
#if WITH_ENGINE
/** Holds the engine service. */
FEngineService* EngineService;
/** Holds the application session service. */
TSharedPtr<ISessionService> SessionService;
#endif // WITH_ENGINE
FPreInitContext PreInitContext;
};
Copying //UE4/Dev-Sequencer to //UE4/Main (Source: //UE4/Dev-Sequencer @ 3617642) #lockdown nick.penwarden #rb none Change 3235667 on 2016/12/14 by Max.Preussner Media: Moved enums into separate header file, so they can be shared Change 3259266 on 2017/01/16 by Max.Preussner Core: Added timespan ratio Change 3267229 on 2017/01/21 by Max.Preussner Editor: Fixed texture samplers in materials not getting notified when sRGB mode changed Change 3274773 on 2017/01/27 by Max.Preussner Core: Added TLruCache template Change 3281579 on 2017/02/01 by Max.Preussner Core: Added scalar division to FTimespan Change 3289522 on 2017/02/07 by Max.Preussner MediaAssets: Added looping for play lists Change 3290664 on 2017/02/07 by Max.Preussner Engine: Moved UTexture material notification code into separate function, so it can be used by derived classes. Change 3290688 on 2017/02/07 by Max.Preussner MediaAssets: Notifying materials when media texture properties changed. Change 3291171 on 2017/02/07 by Max.Preussner MediaAssets: Filtering unused UTexture properties Change 3291229 on 2017/02/07 by Max.Preussner ImgMedia: Use displayWindow instead of dataWindow due to bug in OpenEXR with data window min < 0 Change 3298520 on 2017/02/11 by Max.Preussner Sequencer: Fixed skylight and reflection components off by one frame in PIE Change 3298778 on 2017/02/12 by Max.Preussner MediaUtils: Experimenting with dynamic pitch adjustment Change 3298987 on 2017/02/13 by Max.Chen Editor: Add matrix and transform properties to property editor test object Change 3298997 on 2017/02/13 by Max.Chen Editor: It's now possible to specify Units and ForceUnits meta-data on struct properties - Doing so will cause any child numeric and struct properties to use these units by default (unless another unit was specified) - Added percentage unit type - Multiplier unit types can now be converted between Change 3298998 on 2017/02/13 by Max.Chen Editor: Conversion between multiplier (1.5x) and percentage (150%) units is now possible Change 3348678 on 2017/03/15 by Max.Preussner Media: Added Buffering media event Change 3355268 on 2017/03/20 by Max.Preussner Core: TQueue documentation updates Change 3359055 on 2017/03/22 by Max.Preussner Portal: Removed dependency to Messaging.h Change 3359060 on 2017/03/22 by Max.Preussner Messaging: Modernization pass - added missing includes & forward declarations - include what you use - deprecated shared pointer typedefs - replaced some delegates with callback interfaces - documentation fixes Change 3359189 on 2017/03/22 by Max.Preussner Automation: Modernization pass - include what you use - removed molothic header - documentation fixes #upgradenotes: IAutomationWorkerModule.h is now in the module's public root directory Change 3359718 on 2017/03/22 by Max.Preussner Messaging: Moved common helper classes into MessagingCommon module #upgradenotes: If you use the common helper classes, replace "Messaging" with "MessagingCommon" in your Build.cs files and remove the "Helpers/" subdirectory from your include statements (unless you actually include header files from "Messaging", in which case you need to keep "Messaging" and add "MessagingCommon"). Change 3359793 on 2017/03/23 by Max.Preussner TargetDeviceServices: Modernization pass - include what you use - removed boilerplate header - deprecated selected shared pointer typedefs - reorganized files - documentation fixes Change 3361028 on 2017/03/23 by Max.Preussner DeviceManager: Modernization pass - include what you use - reduced shared pointer typedef usage - documentation fixes Change 3361197 on 2017/03/23 by Max.Preussner Messaging: Waking up message router thread on shutdown Change 3361246 on 2017/03/23 by Max.Preussner AutomationWindow: Removed boilerplate header #upgradenotes: Replace includes of AutomationWindow.h with IAutomationWindowModule.h Change 3361428 on 2017/03/23 by Max.Preussner AutomationController: Removed boilerplate header #upgradenotes: Instead of AutomationController.h, include the individual interface headers that you actually use. Remove the "Interfaces/" subdirectory from existing interface inclusions. Change 3363206 on 2017/03/24 by Max.Preussner ProfileLauncher: Modernization pass - include what you use (selected files) - reduced shared pointer typedef usages - removed dead code - cleaned up file organization - documentation fixes Change 3363290 on 2017/03/24 by Max.Preussner LauncherServices: Removed boilerplate header #upgradenotes: Instead of including LauncherServices.h, include the ILauncherXXX.h files that you actually use. Remove the "Interfaces/" subdirectory from existing ILauncherXXX.h includes Change 3363305 on 2017/03/24 by Max.Preussner LauncherCheck: Removed boilerplate header #upgradenotes: Include ILauncherCheckModule.h instead of LauncherCheck.h. Remove "Interfaces/" subdirectory from existing ILauncherCheckModule.h inclusions Change 3363708 on 2017/03/24 by Max.Preussner ImageWrapper: Removed boilerplate header #upgradenotes: Instead of including ImageWrapper.h, include the actual IImageWrapperXXX.h files that you use. Remove the "Interfaces/" subdirectory from existing IImageWrapperXXX.h includes Change 3363966 on 2017/03/24 by Max.Preussner ImageWrapper: Modernization pass - include what you use - reorganized internal files - documentation fixes Change 3364579 on 2017/03/24 by Max.Preussner ImageWrapper: Deprecated shared pointer typedef and removed usages #upgradenotes: Please use TSharedPtr<IImageWrapper> instead of IImageWrapperPtr Change 3364582 on 2017/03/24 by Max.Preussner NetworkFileSystem: Removed monolithic boilerplate header #upgradenotes: Instead of including NetworkFileServer.h, include the INetworkFileXXX.h headers that you actually use. Remove the "Interfaces/" subdirectory from existing INetworkFileXXX.h includes Change 3381440 on 2017/04/05 by Max.Preussner Oculus: Removed illegal pragmas Change 3391731 on 2017/04/12 by Max.Preussner ImgMedia: Added support for BMP, JPG and PNG image sequences Change 3401146 on 2017/04/19 by Max.Preussner Core: Cleanup pass for FTimespan usages; updated documentation When initializing time span values from single components, consider using the FromHours, FromMinutes, FromSeconds, Zero, MinValue and related methods instead of calling the overloaded constructors as they will make your code easier to read and understand. Change 3401504 on 2017/04/20 by Max.Preussner MCP: Fixed incorrect FTimespan usage of GetMilliseconds instead of GetTotalMilliseconds Change 3401833 on 2017/04/20 by Max.Preussner Core: Various improvements to FTimespan - added proper serialization - updated documentation - access fractions as milli-, micro- or nanoseconds - removed the following string formatters as they were not useful: %D %H %M %S %F - updated documentation #upgradenotes: The %D string formatter (previously total number of days) is now the zero-padded days component of the time span. Time spans are now always exported and stringified with a leading plus or minus sign. #jira UE-43990 #jira UE-44163 Change 3437543 on 2017/05/12 by Max.Preussner PS4Media: Added audio error codes conversion Change 3446564 on 2017/05/18 by Max.Preussner Networking: Fixed nullpointer crash if socket initialization fails Change 3459978 on 2017/05/25 by Max.Preussner ImgMedia: Renamed frame cache to frame loader Change 3463311 on 2017/05/26 by Max.Preussner Core: Added iterators & predicate based methods to LRU Cache Change 3464452 on 2017/05/29 by Max.Preussner ImgMedia: Added video sample output Change 3464468 on 2017/05/29 by Max.Preussner Media: Added separate cache visualization for loaded and cached samples Change 3464592 on 2017/05/29 by Max.Preussner Core: Added TLruCache::FindAndTouch Change 3464607 on 2017/05/29 by Max.Preussner Core: Added TRange::Inclusive / ::Exclusive Change 3464608 on 2017/05/29 by Max.Preussner Media: Fixed incorrect upper bound in support play rates of various players Change 3466732 on 2017/05/30 by Max.Preussner ImgMedia: Added image compression type to info string Change 3466871 on 2017/05/31 by Max.Preussner WmfMedia: Fixed session capabilities not showing up; added initialization logging Change 3467785 on 2017/05/31 by Max.Preussner MfMedia: Fixed sample stride calculated from media input instead of output Change 3467963 on 2017/05/31 by Max.Preussner WmfMedia: Reordered media sub-type string conversion to fix some tracks being reported incorrectly Change 3468110 on 2017/05/31 by Max.Preussner WmfMedia: Added MPEG-2 media sub types to utils Change 3468516 on 2017/05/31 by Max.Preussner AndroidMedia: Allow mediaplayer audio to be disable on Android (UE-45570) Change 3468554 on 2017/05/31 by Max.Preussner MediaAssets: Added AutoClear option to automatically clear media texture when media is unloaded Change 3468627 on 2017/05/31 by Max.Preussner ImgMedia: Allowing for auto-selection of EXR decoder thread count Change 3468648 on 2017/05/31 by Max.Preussner ImgMedia: Reorganized OpenExrWrapper files Change 3471789 on 2017/06/02 by Max.Preussner WmfMedia: Fixed potential concurrency issue in session state management Change 3472918 on 2017/06/03 by Max.Preussner Core: Allowing zero sized LRU cache; added default constructor Change 3472919 on 2017/06/03 by Max.Preussner Media: Added pre-Slate tick stage; renamed some functions; continued to implement sample caching Change 3473704 on 2017/06/05 by Max.Preussner AndroidMedia: Added settings class Change 3474407 on 2017/06/05 by Max.Preussner AndroidMedia: Implemented video sample processing Change 3474934 on 2017/06/05 by Max.Preussner ImgMedia: Fixed crash due to deleting loader work items twice (UE-45705) #jira UE-45705 Change 3476925 on 2017/06/06 by Max.Preussner Media: Added return values to media view interface; documentation fixes Change 3477158 on 2017/06/06 by Max.Preussner SwitchMedia: Implemented sample pooling Change 3477201 on 2017/06/07 by Max.Preussner PS4Media: Implemented video sample pooling Change 3481470 on 2017/06/08 by Max.Preussner Media: Fixed time stamps not set in recycled texture samples Change 3481472 on 2017/06/08 by Max.Preussner MediaAssets: Fixed no video samples fetched while player is in buffering state Change 3481473 on 2017/06/08 by Max.Preussner MediaUtils: Added default constructor to MediaSampleQueue Change 3481584 on 2017/06/08 by Max.Preussner MediaUtils: Paused state is considered forward for sample lookup as this is the common case. Change 3481588 on 2017/06/08 by Max.Preussner PS4Media: Redesigned the PS4 media player to support async file loading & track switching Change 3481627 on 2017/06/08 by Max.Preussner PS4Media: Opening media sources in thread pool if not precaching Change 3481666 on 2017/06/08 by Max.Preussner ImgMedia: Fixed SequencePath property file picker always opening default path Change 3481669 on 2017/06/08 by Max.Preussner ImgMedia: Fixed crash when quering cache state of empty image sequence Change 3481685 on 2017/06/08 by Max.Preussner ImgMedia: Fixed EXR reader failing to play slow loading sequences (UE-45719) #jira UE-45719 Change 3483623 on 2017/06/10 by Max.Preussner Media: Added getters for 360 view settings; added support for relative view updates Change 3483624 on 2017/06/10 by Max.Preussner Media: Added Blueprint support for 360 videos Change 3483626 on 2017/06/10 by Max.Preussner MediaPlayerEditor: Added 360 video mouse controls; broke out viewport widget into separate class. Change 3483627 on 2017/06/10 by Max.Preussner Core: Using system start time instead of current time for renamed log file names Change 3483630 on 2017/06/10 by Max.Preussner Core: Grouping log files by log name and processing each group separately when deleting old log files Change 3483816 on 2017/06/10 by Max.Preussner WmfMedia: Detecting audio device availability to prevent lockup of audio tracks Change 3483939 on 2017/06/11 by Max.Preussner AvfMedia: Finished Media Framework 3.0 upgrade - overhauled track switching - removed render thread flushes - reduced nesting - code cleanup pass Change 3483940 on 2017/06/11 by Max.Preussner Media: Consistent track switching behavior across platforms Change 3484172 on 2017/06/11 by Max.Preussner MediaPlayerEditor: Removed obsolete asset type actions Change 3484180 on 2017/06/11 by Max.Preussner MediaPlayerEditor: Fixed media player info overlays not visible during mouse capture Change 3484248 on 2017/06/11 by Max.Preussner MediaAssets: Media players now always have a playlist Change 3484249 on 2017/06/11 by Max.Preussner MediaPlayerEditor: Added UI controls to Playlist tab Change 3484250 on 2017/06/11 by Max.Preussner Media: Implemented overlay sample caching Change 3484252 on 2017/06/11 by Max.Preussner WmfMedia: Enabled support for .smi and .sami subtitle files Change 3485433 on 2017/06/12 by Max.Preussner ImgMedia: Enabled plug-in on all platforms; enabled EXR only on platforms that support it Change 3485720 on 2017/06/12 by Max.Preussner MediaPlayerEditor: Added ability to save playlists Change 3485828 on 2017/06/12 by Max.Preussner AvfMedia: Thread-safe ticking of video sampler; ticking audio processing on high frequency thread Change 3485926 on 2017/06/12 by Max.Preussner MediaUtils: Draining all unconsumed samples at the end of a frame Change 3486043 on 2017/06/12 by Max.Preussner Media: Consistent behavior for playlist navigation (UE-45964) #jira UE-45964 Change 3486104 on 2017/06/12 by Max.Preussner MediaPlayerEditor: Implemented simple overlay text positioning Change 3486145 on 2017/06/12 by Max.Preussner AndroidMediaPlayer: Moved video sample handling into render thread Change 3486147 on 2017/06/12 by Max.Preussner MediaPlayerEditor: Moved overlay texts into separate layer Change 3486188 on 2017/06/12 by Max.Preussner Media: Enabling media factory modules in Editor for all players Change 3486223 on 2017/06/12 by Max.Preussner Media: Defaulting players to select first audio and video tracks by default Change 3486473 on 2017/06/13 by Max.Preussner Media: Buffering is no longer a media player state, but handled separately (for players that can buffer while playing) Change 3486475 on 2017/06/13 by Max.Preussner MediaPlayerEditor: Showing busy bar when buffering or preparing Change 3487237 on 2017/06/13 by Max.Preussner AndroidMedia: Fixed video sample not getting processed on render thread Change 3487507 on 2017/06/13 by Michael.Trepka AvfMedia - small cleanup of the code for passing video frame rate to the video sampler Change 3487719 on 2017/06/13 by Michael.Trepka Disable shared PCH in OpenExrWrapper to solve a problem with bUseRTTI mismatch between the module and the PCH Change 3487842 on 2017/06/13 by Max.Preussner AndroidMedia: Fixed texture swizzle disabled on non-Engine builds Change 3488006 on 2017/06/13 by Michael.Trepka AvfMedia - Moved some logic from FAvfMediaPlayer::TickTickable() to FAvfMediaTracks::ProcessAudio() to make it thread safe, plus fixed a bug with the player not setting the current status to Stopped after opening a file Change 3488308 on 2017/06/13 by Chris.Babcock AndroidMedia: Fixed flicker issue #jira UE-45736 Change 3488335 on 2017/06/13 by Max.Preussner MediaAssets: Made UFileMediaSource::GetFullPath public Change 3488338 on 2017/06/13 by Max.Preussner MediaPlayerEditor: Fixed "Show file in Explorer" not working for file media sources Change 3488339 on 2017/06/13 by Max.Preussner MediaPlayerEditor: Showing a throbber when buffering player Change 3488768 on 2017/06/14 by Max.Preussner Core: Inlined FTimespan static functions hange 3490203 on 2017/06/14 by Max.Preussner Core: Force inlined TComPtr operators Change 3494083 on 2017/06/15 by Chris.Babcock AndroidMedia: Fix playlist looping (send PlaybackEndReached event) #jira UE-46086 Change 3497017 on 2017/06/16 by Max.Preussner MediaAssets: Playlists now auto advance with PlayOnOpen off Change 3497075 on 2017/06/17 by Chris.Babcock MediaPlayer Sampler node and external texture support for Android MediaPlayer - enable with USE_EXTERNALTEXTURE in AndroidMediaPlayer.cpp (disabled in this CL) - supports MediaSample node in material editor with scale/bias handled if above flag enabled - fixed looping problems, including eventual crashes - track switching fixed (lockups and missing video) - corrected resource leaks and crash switching maps #jira UE-46055 #jira UE-45744 #jira UE-46086 Change 3497163 on 2017/06/17 by Max.Preussner MediaUtils: Processing media events immediately if on game thread Change 3497170 on 2017/06/17 by Max.Preussner Media: All Media Framework interfaces are pure virtual Change 3498603 on 2017/06/19 by Ben.Marsh UBT: Prevent plugins which list modules multiple times from adding them twice. Change 3500870 on 2017/06/20 by Max.Preussner WmfMedia: Rewrote WMF state machine; now with track switching #jira UE-20209 #jira UE-35385 #jira UE-38337 #jira UE-45676 Change 3502181 on 2017/06/20 by Chris.Babcock MediaSampler node updates - fixed issue with ExternalTexture singleton for DLL compatiblity - now works for all players (registers texture samples with ExternalTexture by player GUID) - enabled OES in AndroidMediaPlayer now that materials can universally use the MediaSampler Change 3503182 on 2017/06/21 by Max.Preussner Media: Refactored status flags into an enum; exposed connecting status Change 3503724 on 2017/06/21 by Chris.Babcock Improvement in MediaPlayer Sampler node - RGB, R, G, B, A output pins like normal texture sampler - allow preview in material editor - fix OES detection for Android Change 3509088 on 2017/06/26 by Max.Preussner MediaAssets: Added AddFile and AddUrl to UMediaPlaylist Change 3510256 on 2017/06/26 by Max.Preussner WmfMedia: Fixed play rate not set to zero when end reached Change 3510273 on 2017/06/26 by Max.Preussner MediaPlayerEditor: Removed obsolete Slate culling rectangle code Change 3510413 on 2017/06/26 by Max.Preussner MediaPlayerEditor: Showing frame rate if available Change 3510533 on 2017/06/26 by Max.Preussner MediaUtils: Preventing media cache filling up when scrubbing Change 3510859 on 2017/06/26 by Max.Preussner PS4Media: Fixed track switching crashes (UE-45960) #jira UE-45960 Change 3514173 on 2017/06/28 by Max.Preussner WmfMedia: Optimized player capabilities check Change 3514174 on 2017/06/28 by Max.Preussner WmfMedia: Moved media source resolver code into utility class Change 3514714 on 2017/06/28 by Max.Preussner Core: Added TComPointer.IsValid; code cleanup pass Change 3517912 on 2017/06/30 by Max.Preussner MediaUtils: Added GetVideoAspectRatio to player facade Change 3524957 on 2017/07/06 by Max.Preussner ImgMedia: Decoding image frames only when video track is selected Change 3525252 on 2017/07/06 by Max.Preussner ImgMedia: Async image sequence initialization Change 3525266 on 2017/07/06 by Max.Preussner ImgMedia: Enabled reverse playback Change 3525722 on 2017/07/06 by Max.Preussner WmfMedia: Workaround for occasional WMF internal deadlock in IMFRateSupport Change 3525800 on 2017/07/07 by Max.Preussner WmfMedia: Fixed another WMF deadlock issue & some rate change glitches; improved logging. Change 3525801 on 2017/07/07 by Max.Preussner MediaPlayerEditor: Made scrubbing more responsive Change 3526500 on 2017/07/07 by Max.Preussner WmfMedia: Using NULL for Windows pointers Change 3527323 on 2017/07/07 by Max.Preussner WmfMedia: Added support for audio and video capture media sources Change 3530197 on 2017/07/10 by Max.Preussner WmfMedia: Added utility functions for enumerating audio and video capture devices Change 3533465 on 2017/07/12 by Max.Preussner Media: Added media capture device support API & implementation for WMF Change 3533469 on 2017/07/12 by Max.Preussner MediaPlayerEditor: Added source selection menu w/ capture device menu to navigation bar Change 3533540 on 2017/07/12 by Max.Preussner MediaAssets: Blueprint support for media capture device discovery Change 3533574 on 2017/07/12 by Max.Preussner WmfMedia: Using cached supported play rates; more strict pausing support check Change 3533924 on 2017/07/12 by Max.Preussner WmfMedia: Added global LowLatency setting (UEVR-859) Note that this setting is only supported when compiling for Windows 8 or newer. Change 3534027 on 2017/07/12 by Max.Preussner WmfMedia: Compile time support for low latency session attribute on < Windows8 #jira UEVR-859 Change 3538744 on 2017/07/14 by Max.Preussner MediaUtils: Renamed FDefaultMediaTimeSource to FAppMediaTimeSource Change 3542818 on 2017/07/18 by Max.Preussner WmfMedia: Fixed race condition on session shutdown Change 3543082 on 2017/07/18 by Max.Preussner WmfMedia: Fixed track selection in media that doesn't support seeking Change 3543092 on 2017/07/18 by Max.Preussner Media: Implemented media track format API Enables multiple formats per media track. By default, the first usable format is selected. This feature is currently only implemented for WmfMedia. All other players assume a single format per track. Change 3543794 on 2017/07/19 by Max.Preussner WmfMedia: Added string conversion for null GUIDs Change 3543796 on 2017/07/19 by Max.Preussner MfMedia: Copied GUID string conversion updates from WmfMedia Change 3543797 on 2017/07/19 by Max.Preussner WmfMedia: Preventing duplicate track formats in capture devices with legacy DirectX support Change 3544390 on 2017/07/19 by Max.Preussner Media: Allowing INDEX_NONE as 'current selection' index in track format related functions Change 3545368 on 2017/07/19 by Max.Preussner WmfMedia: Fixed session error with some media sources when attempting to seek to current position without ever starting Change 3545388 on 2017/07/19 by Max.Preussner MediaAssets: Fixed RGB input sources rendered upside down Change 3545430 on 2017/07/19 by Max.Preussner MediaAssets: Fixed incorrect sRGB conversion on BMP inputs Change 3547362 on 2017/07/20 by Max.Preussner Core: Added IsGraph and IsPrint to TCHAR utilities Change 3547376 on 2017/07/20 by Max.Preussner WmfMedia: Better log messages for non-standard video types (UE-47533) #jira UE-47533 Change 3547404 on 2017/07/20 by Max.Preussner QAGame: Enabled PlayOnOpen and Looping on MediaPlayerSwitch BP (UE-47542) #jira UE-47542 Change 3547466 on 2017/07/20 by Max.Preussner WmfMedia: Fixed edge case for detecting whether pause is available Change 3548742 on 2017/07/21 by Max.Preussner Media: Added API for changing the input frame rate Change 3548743 on 2017/07/21 by Max.Preussner WmfMedia: Implemented ability to change input frame rate Change 3554411 on 2017/07/25 by Max.Preussner AudioMixer: Broke out SynthComponent initialization code; added bIsUISound property Change 3554818 on 2017/07/25 by Max.Preussner Media: Added per track-type cache queries Change 3557284 on 2017/07/26 by Max.Preussner WmfMedia: Added buffer size check in texture sample as well Change 3560530 on 2017/07/27 by Max.Preussner WmfMedia: Made COM object destructors private and added assertions Change 3560580 on 2017/07/27 by Max.Preussner MediaUtils: Added method for querying number of objects in pool Change 3562572 on 2017/07/28 by Max.Preussner WmfMedia: Properly handling topology status errors when opening media Change 3576710 on 2017/08/08 by Chris.Babcock bug fixes for mediaplayer - rare cases in Android media tracks - make FMediaCaptureDevice members available in blueprints Change 3577736 on 2017/08/08 by Chris.Babcock Extend ExternalTexture to support 2x3 transform (scale/rotation + offset) Change 3578831 on 2017/08/09 by Max.Preussner MediaAssets: Made media sound component BP spawnable Change 3579210 on 2017/08/09 by Max.Preussner UdpMessaging: Not showing warning message if tunnel settings left empty to use defaults Change 3579547 on 2017/08/09 by Chris.Babcock Better support for Android external texture detection Change 3579567 on 2017/08/09 by Chris.Babcock Android camera plugin #jira UEMOB-215 Change 3580035 on 2017/08/10 by Andrew.Rodham Media Texture: External textures are now fully supported and enforced when attempting to sample external texture types in materials. - Textures can now dynamically provide an external texture GUID at runtime, which is queried by the uniform expression. Statically defined GUIDs remain supported. - Added necessary ExternalTexture(Parameter) methods to the material compiler and HLSL translator - Made UTexture::GetMaterialType const-correct #tests Test map that contains TextureObject, TextureObjectParameter, TextureSample and TextureSampleParameter nodes with media textures works on both a Nexus 10 (non-image-external), and a Pixel (image-external), and on desktop PC. Change 3581552 on 2017/08/10 by Chris.Babcock Use bilinear sampling instead of point for external texture (Android media and camera) Change 3581628 on 2017/08/10 by Max.Preussner Core: Fixed FTimespan import/export/copypaste (UE-43990) #jira UE-43990 #jira UE-44163 Change 3581909 on 2017/08/11 by Andrew.Rodham Media: Only cache material proxy pointers if they have been initialized (and thus, will be removed from the cache on release) - This prevents destroyed proxies from remaining in the texture registry #jira UE-48307 Change 3582451 on 2017/08/11 by Max.Preussner AudioMixer: Fixed initialization order of synth components This ensures that the Synth is initialized before OnRegister in the super class initializes and activates the AudioComponents. Previously, the AudioComponent would fail to activate, because Synth was nullptr. #jira UE-48055 Change 3582453 on 2017/08/11 by Max.Preussner MediaAssets: Enabling ticking in media sound component (UE-48055) #jira UE-48055 Change 3583101 on 2017/08/11 by Chris.Babcock Android camera improvements - return correct capture device type (webcamfront/rear) - remove seek (not supported) - support track formats - better framerate selection Change 3590109 on 2017/08/16 by Chris.Babcock Move external texture coordinate update to improve accuracy and save a uniform in final shader Change 3590530 on 2017/08/16 by Max.Preussner MediaAssets: Changed capture device enumeration BP function signatures to allow filter bit masks #jira UE-48166 Change 3590547 on 2017/08/16 by Max.Preussner MediaPlayerEditor: Ticking sound component directly Change 3590628 on 2017/08/16 by Max.Preussner Switch: Fixed media decoder asserting when attempting to pause without having started Change 3591816 on 2017/08/16 by Aaron.McLeran #jira UE-48470 Disabling async processing for procedural sound waves on mac. Change 3592266 on 2017/08/16 by Max.Preussner Media: Replaced media cache with the new sample processing pipeline; continued to implement MfMedia This change fixes stuttering issues with audio and video. However, proper pipeline flushing is not fully implemented yet, so the playback will break after the first playthrough, which might result in freeze frames or out of memory assertions depending on the platform. This will be addressed in an upcoming change. #jira UE-48474 #jira UE-45677 Change 3592355 on 2017/08/17 by Max.Preussner MediaUtils: Added sample sink collection to remove code duplication Change 3592739 on 2017/08/17 by Max.Preussner ImgMedia: Fetching only one video sample per frame Change 3592741 on 2017/08/17 by Max.Preussner MediaUtils: Better sample fetching when paused Change 3592761 on 2017/08/17 by Max.Preussner MediaUtils: Fixed overflow detection in sample sinks Change 3592762 on 2017/08/17 by Max.Preussner ImgMedia: Sending end reached event when looping Change 3592885 on 2017/08/17 by Max.Preussner ImgMedia: Fixed reverse play Change 3592887 on 2017/08/17 by Max.Preussner MediaUtils: Better sample range calculation for audio samples Change 3593010 on 2017/08/17 by Max.Preussner ImgMedia: Fixed async loading of non-EXR image sequences Change 3593193 on 2017/08/17 by Max.Preussner AndroidMedia: Fixed typo Change 3593230 on 2017/08/17 by Max.Preussner Media: Implemented flushing for player sample queues Change 3593346 on 2017/08/17 by Max.Preussner Media: Proper sample processing for reverse playback Change 3593482 on 2017/08/17 by Max.Preussner Switch: Fixed sample range check for reverse playback Change 3594428 on 2017/08/17 by Max.Preussner PS4Media: Fixed video not playing/crashing #jira UE-48547 #jira UE-48549 Change 3595404 on 2017/08/17 by Max.Preussner MediaAssets: Not requesting audio samples if not playing #jira UE-48557 Change 3595624 on 2017/08/17 by Max.Preussner PS4Media: Fixed no looping after track switching #jira UE-46524 #jira UE-48557 Change 3595704 on 2017/08/17 by Max.Preussner MediaUtils: Improved sample queue flushing Eventually this needs to be event-driven. #jira UE-48557 Change 3595706 on 2017/08/17 by Max.Preussner PS4Media: Flushing queues when track switching #jira UE-48557 Change 3595909 on 2017/08/17 by Max.Preussner Matinee: Fix Matinee redirect missing as UClass has been GC'ed (GitHub PR #3382) https://github.com/EpicGames/UnrealEngine/pull/3382 #jira UE-42906 #rn Fix Matinee redirect missing as UClass has been GC'ed (GitHub PR #3382) Change 3597480 on 2017/08/18 by Max.Preussner ImgMediaPlayer: Fixed presentation time calculation for very large delta times Change 3597669 on 2017/08/18 by Max.Preussner ImgMedia: Setting player stopped instead of paused when end reached Change 3597709 on 2017/08/18 by Max.Preussner SwitchMedia: Fixed audio sample duration calculation Change 3598479 on 2017/08/18 by Max.Preussner ImgMedia: Ensuring that first/last frame is played when starting playback forward/reverse; improved state checking; user logging Change 3598629 on 2017/08/18 by Max.Preussner MediaUtils: Properly handling pending flushes when peeking sample queues Change 3598633 on 2017/08/18 by Max.Preussner WmfMedia: Fixed occasional WMF deadlock when scrubbing Change 3598653 on 2017/08/18 by Max.Preussner MediaUtils: Fixed audio resampling in reverse playback Change 3598659 on 2017/08/18 by Max.Preussner MediaPlayerEditor: Creating sound output only if audio device available Change 3598688 on 2017/08/18 by Max.Preussner MediaUtils: Flushing sample queues on direction change regardless of paused state Change 3599444 on 2017/08/20 by Max.Preussner WmfMedia: Added missing check for rate control when quering supported rates Change 3603661 on 2017/08/22 by Max.Preussner WmfMedia: Fixed NV12 output Change 3604345 on 2017/08/23 by Max.Preussner MediaUtils: Added subtitle samples to media sample collection; fixed documentation Change 3604987 on 2017/08/23 by Max.Preussner PS4Media: Setting correct track format types Change 3605117 on 2017/08/23 by Joe.Barnes Fix issue where presentation time was being treated as milliseconds instead of microseconds. Change 3605128 on 2017/08/23 by Joe.Barnes Fix potential issue calculating total (looped) play time after seek or reset. Track last video presentation time Change 3605139 on 2017/08/23 by Joe.Barnes Support audio type DType_Setup. Fix issue with procedural sounds popping. Consume more samples if necessary. #jira ue-48544 Change 3605197 on 2017/08/23 by Max.Preussner Media: Fixed track display name formatting (UE-48767) #jira UE-48767 Change 3605817 on 2017/08/23 by Max.Chen Auto set sampler type on drop on actor. #jira UE-48769 Change 3605999 on 2017/08/23 by Max.Preussner MfMedia: Restarting source reader when switching tracks #jira UE-48766 Change 3606416 on 2017/08/23 by Max.Preussner PS4Media: Various player improvements #jira UE-48586 Change 3607656 on 2017/08/24 by Max.Preussner WmfMedia: Improved logging for Seek and SetRate Change 3607855 on 2017/08/24 by Max.Preussner MfMedia: Better verbose logging; validating seeks; reduced nesting; fixed track switching\ #jira UE-48766 Change 3608029 on 2017/08/24 by Max.Preussner PS4Media: Fixed streaming media not playing; improved result checks & logging #jira UE-48610 Change 3608473 on 2017/08/24 by Max.Preussner MfMedia: Fixed audio sample duration calculation #jira UE-48756 Change 3609316 on 2017/08/24 by Chris.Babcock Provide external texture RotationScale and Offset from sample Change 3610067 on 2017/08/25 by Richard.Wallis Mac: Editor locks up when Track switching and Mac: Media Audio continues to play after closing player. - Fix for creating extra OS AV media playback objects so audio playback not stopping due to over retained objects. - Trying to access OS AV Media Playback object (esp. the currentTime value) across mutliple threads at once seems to cause deadlock in the Apple libraries - moved location of currentTime acess point to Media Ticker - this sets the current time and is then just returned in the getter when on game main. - Trying to playback audio via OS media playback and through the engine at the same time when enabling the selected audio track. Engine version via sample buffers via AVAssetReaderTrackOutput doesn't seem to be working as intended with the new audio frame work audio sinks - so reverting to OS AV media playback for Mac at the moment until better fix for this can be put in. #jira UE-48590, UE-48604 Change 3610267 on 2017/08/25 by Max.Preussner PS4Media: Added missing track selection validation #jira UE-48765 Change 3610399 on 2017/08/25 by Max.Preussner PS4Media: Fixed infinite player re-initialization loop if track selection failed Change 3610809 on 2017/08/25 by Chris.Babcock Fixes for Android media player and camera player - buffer samples copy proper bytecount - realloc sets new buffer ptr - refcount of Java buffers fixed Change 3610953 on 2017/08/25 by Chris.Babcock Fix audio disable before play on Android media player Change 3611405 on 2017/08/25 by Max.Preussner WmfMedia: Resetting supported rates if RateSupport unavailable Change 3611406 on 2017/08/25 by Max.Preussner MfMedia: Resetting supported rates if RateSupport unavailable Change 3611453 on 2017/08/25 by Chris.Babcock Android external texture extension updates for compatibility Change 3611719 on 2017/08/26 by Max.Preussner Media: Added media event for completed seek operations; flushing sinks on seek Change 3611764 on 2017/08/26 by Max.Preussner AvfMedia: Setting player to preparing state prior to initializing tracks asynchronously Change 3611802 on 2017/08/26 by Max.Preussner Media: Exposed error state in media player Change 3611803 on 2017/08/26 by Max.Preussner MediaPlayerEditor: Showing error state in UI Change 3611887 on 2017/08/26 by Max.Preussner MediaUtils: Corrected media sample sink overflow check Change 3611892 on 2017/08/27 by Max.Preussner WmfMedia: Leaving session in error state after error Change 3611929 on 2017/08/27 by Max.Preussner MediaPlayerEditor: Fixed sound stopping on looping Change 3611930 on 2017/08/27 by Max.Preussner MfMedia: Rewrote async sample processing to fix various playback issues Change 3611942 on 2017/08/27 by Max.Preussner Media: Sending suspension event when playback ended Change 3611957 on 2017/08/27 by Max.Preussner UnrealEd: Allowed transient assets to be resaved to disk Change 3611981 on 2017/08/27 by Max.Preussner PS4Media: Rewrote sample processing to fix various playback issues #jira UE-48596 #jira UE-48793 Change 3612035 on 2017/08/27 by Max.Preussner UnrealEd: Picking standard default names when resaving transient packages Change 3612045 on 2017/08/27 by Max.Preussner Media: Fixed playlists not getting saved correctly from Editor (UE-35382) #jira UE-35382 Change 3612212 on 2017/08/28 by Richard.Wallis Fix for Multitrack Video samples continue to Play on Open after Play on Open is toggled off. Current Rate was not getting reset back to 0.0 on media close. #jira UE-47602 Change 3613531 on 2017/08/28 by Max.Preussner MediaAssets: Fixed external texture related crash on shutdown (UE-48918) Also no longer creating clock sink for media player CDO #jira UE-48918 Change 3613677 on 2017/08/28 by Andrew.Porter Fixed crash at exit in Mac editor caused by double release of AVPlayerItem object #jira UE-48937 Change 3615917 on 2017/08/29 by Max.Preussner MfMedia: Added compile options for DXVA and falling back to synchronous sample reading [CL 3617655 by Max Chen in Main branch]
2017-08-30 09:37:09 -04:00
/** Global engine loop object. This is needed so wxWindows can access it. */
extern FEngineLoop GEngineLoop;