Use a TOptional in FApp, if there is not TCProvider, the frame time will be invalidated. This will change soon in another CL where we will have a "default" TC if no provider is defined but the frame time can be invalid if the TC provider is not "synchronized".
Remove FTimecode for maths in LiveLink and nDisplay, only use timecode for display.
Use FTimecode::IsDropFormatTimecodeSupported for now, to convert from FrameTime to Timecode. That will be changed in another CL when we support NDF and DF properly.
Deprecated AudioCaptureTimecodeProvider.
Generate a default TC value when no TC provided is set. By default it's enabled and the framerate is 24 fps.
Add a CVar that set the engine in DropFrame or NonDropFrame when the TC is 29.97 or 59.94.
Remove the option in sequencer to select between the 2. It's a CVar and not a project settings because other softwares that link with Core need that information.
#rb simon.therriault, andrew.grant
[CL 10730014 by Patrick Boutot in Dev-VirtualProduction branch]
#jira UE-66905
#rb patrick.boutot, simon.therriault
Fix SMediaImage compilation issue in SMediaFrameworkVideoInputDisplay.cpp. Fix case sensitive include in SMediaImage.cpp.
#rb none
#ROBOMERGE-SOURCE: CL 4947905 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)
[CL 4947906 by nicola cerone in Main branch]
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 4280523 by Patrick.Boutot
Add option in AjaCustomTimeStep to wait until the frame to be ready. Previously, the frame was there but not yet processed so it was possible that it was not ready by the time we wanted to read it. It won't work with interlaced because the 2 fields are processed at the same time. In interlaced, will get a 30fps behaviour when we actually want a 60fps.
Fix bug that didn't set and reset bIsOwned properly when it was first initialized as not owned.
Change 4280526 by Patrick.Boutot
Add accessor to get the leaf media source or output.
Change 4280624 by Patrick.Boutot
Add timecode acessor to media samples
Change 4280626 by Patrick.Boutot
Rework the timing for AJA Media Player. Previously, we took the timing of the frame. That was a bad idea because if 2 incomings video frames were coming a the same time, you would only show one. Making the buffering system useless.
That affects the Custom Time Step since it was waiting for the interrupt signal and in some behavior we would like the frame to be ready to be used by UE. Same the timecode in the MediaSample because we may not used it to stamps the frame.
Change 4283022 by Patrick.Boutot
[EditorScriptingUtilitites] Check folder names invalid characters separatly from the object's name.
#jira UE-59886, UE-62333
Change 4283112 by Patrick.Boutot
Remove MediaFrameworkUtilititesModule dependency to the Settings module at runtime.
Rename TimemanagemenetEditor module names.
Change 4283426 by JeanLuc.Corenthin
Fix crash with FBX file
#jira UE-62501
Change 4284940 by Patrick.Boutot
A widget that let you select a single permutation from a list. It groups the values into categories and removes duplicates inside that category.
Change 4285471 by Patrick.Boutot
Remove MediaFrameworkUtilititesModule dependency to the Settings module at runtime.
Change 4286925 by Patrick.Boutot
[AJA] Add support to read LTC from the reference In.
Add more detail on video format and the device.
MediaSource use the Permutations Selection widget to select his mode and device.
Remove debugging option to trigger an AJA custom time step and timecode provider.
Remove the UYVY pixel option from AJA. It's better do to the conversion on the AJA card that on the GPU.
Change the tooltip and category for some AjaMediaSource properties.
Change 4287026 by Julien.StJean
Modifed the file STimeCodeProviderTab.cpp to fix the position of a SComboButton that wasn't properly place.
Change 4287663 by Jon.Nabozny
Add timecode messages into nDisplay, and sync those between Master and Slave
Change 4287884 by Jon.Nabozny
Create a TimecodeProvider for SystemTime and introduce a notion for DefaultTimecodeProvider in Engine.
Change 4288050 by Jon.Nabozny
Rework the TimeSynchronization implementation for usability and functionality.
Change 4288283 by Jon.Nabozny
Fixed swapped MetaClass and DisplayName options on UEngine::DefaultTimecodeProviderClassName;
Change 4288352 by Jon.Nabozny
Set TimecodeProviderClassName and DefaultTimecodeProviderClassName in BaseEngine.ini
Change 4288378 by Jon.Nabozny
Fixup some issues in TimecodeSynchronizer where code was reset improperly due to multiple unshelves / resolves.
Change 4288394 by Jon.Nabozny
Add TimeSync functionality into LiveLink. Also add test cases for this. This should allow us to easily synchronize multiple LiveLink sources together, as well as synchronize those to anything else using the sync system (Relies on CL-4235417)
Change 4288899 by Patrick.Boutot
Fix initialization order of FMediaIOCorePlayerBase variables
Change 4289157 by Patrick.Boutot
Allow the user to change the source of a capture without stopping the current capture.
[AJA] AjaMediaCapture, add support for UpdateSceneViewport & UpdateRenderTarget
@made by julien.stjean
Change 4291328 by Jon.Nabozny
Report the Skeleton Guid with TimeSyncData and track sync state in LiveLinkTimeSynchronizationSource.
This prevents a crash that can happen if a source is quickly cleared and reset before the next tick of Time Synchronization.
Change 4296294 by Jon.Nabozny
Fixup errors when TimecodeProviderClassName is empty. It's valid to leave this empty.
Change 4297122 by Patrick.Boutot
Media Profile with timecode provider & custom time step
Change 4301855 by Austin.Crismore
Fix for movment scaling and virtual joystick controls. Movement scaling in for truck and dolly is locked to the world xy plane, and virtual joysticks use their own method for movement scaling now.
#jira UE-61762, UE-62187
Change 4301856 by Austin.Crismore
Virtual sequence level controller now listens to on object spawned, so that it can intercept the camera actor and disable attatching to HMD to prevent camera movement that isn't from the level sequence
#jira UE-61766
Change 4301860 by Austin.Crismore
Fix for touch scrubbing. Added default values back in. Added logic to only allow scrubbing when touch focus was off.
#jira UE-61865
Change 4302294 by Jamie.Dale
Added functions to get your the localized spoken and subtitle text from a dialogue wave
Change 4304393 by Jamie.Dale
Added support for BlueprintAssignable properties in Python
Change 4305852 by Jamie.Dale
Removed hard-dependency between EditorScriptingUtilities and PythonScriptPlugin
Backed-out changelist 4259264 and query Python availability based on whether anything is available to handle the command
#jira UE-62318
Change 4308550 by Jamie.Dale
Fixed crash when passing a null world to Python actor iterators
Change 4311867 by Homam.Bahnassi
Revit master material with exposed parameters matching the API when possible.
Change 4314428 by Francis.Hurteau
Made the usage of the bBuildDeveloperTools switch independent of the bCompileAgainstEngine switch.
Changed bBuildDeveloperTools TargetRule in UnrealBuildTool to a nullable to keep the old behavior in case where bBuildDeveloperTools wasn't explicitly set in TargetRules
Change 4315134 by Jamie.Dale
Defer editable text focus selection until mouse-up to allow the user to make an initial selection
#jira UE-58086
Change 4318615 by Johan.Duparc
EditorFactories: consistent return values after asset import.
Change 4322459 by Jamie.Dale
Made SequencerScripting an Editor plugin as it depends on PythonScriptPlugin which is an Editor plugin
This was causing issues at runtime when SequencerScripting was enabled, as it failed to load PythonScriptPlugin (which hadn't been built).
Change 4323341 by Francis.Hurteau
Implement proper message bus protocol version negociation with static nodes
Change 4323733 by Francis.Hurteau
Fix VR Pausing Sequence Scrubbing just setting playback speed to 0.0
Change 4324319 by Jamie.Dale
Exposed transactions to Blueprints
Change 4325847 by Alistair.White
Copying //Tasks/UE4/Private-PixelStreaming@4325566 to Dev-Enterprise-Minimal (//UE4/Dev-Enterprise-Minimal)
This adds the new experimental PixelStreaming plugin to allow streaming of an Unreal client's audio & video stream to a browser through the WebRTC protocol to support new uses for enterprise customers.
Change 4326282 by Simon.Tourangeau
nDisplay native present handler
Change 4326581 by Jamie.Dale
Replacing FDateTime with int64 Ticks value to workaround UE-63485
Change 4326599 by Homam.Bahnassi
Moving texture coords outside UVEdit function to allow using different UV channels.
Change 4333250 by Francis.Hurteau
Small TFuture changes:
* cleans up TFuture::Then with usage of TUniqueFunction
* added TFuture::Reset to invalidate it and remove continuation from a future shared state
Change 4333359 by Homam.Bahnassi
Support scaling and rotating UVs around arbitrary pivot
Change 4333566 by Johan.Duparc
Expose ProxyLOD functionalities to Scripting
#jira UEENT-1788
Change 4333988 by Jamie.Dale
Allow UHT to parse FText default parameter values
INVTEXT, NSLOCTEXT, LOCTABLE, and FText::GetEmpty() are supported. LOCTEXT isn't as it relies on an external macro that is known to C++ but not to UHT (NSLOCTEXT can easily be used instead).
Change 4335020 by Francis.Hurteau
Uncomment MessageBus::Send deprecation notice for 4.21
Update MessageBus Send usage to new API
Change 4335195 by JeanMichel.Dignard
Add a SetLodFromStaticMesh script utility function
#jira UEENT-1789
Change 4335231 by Anousack.Kitisa
Added functions to generate planar, cylindrical, box UV mapping.
#jira UEENT-1598
Change 4335373 by Jamie.Dale
Cleaned up some places creating empty literal texts
Change 4335458 by Jamie.Dale
Allow UHT to parse FText() as an alias of FText::GetEmpty() when processing default values
Change 4335875 by Max.Chen
Sequencer: Clear RF_Transient on pasted tracks/sections
#jira UE-63537
Change 4336497 by Johan.Duparc
ProxyLOD: Fix progress bar issue
- removed duplicated code
- removed duplicated LongTask object
#jira UEENT-1788
Change 4336723 by Jamie.Dale
Ensure that Python generated types create their CDO at the correct point
#jira UE-62895
Change 4340594 by Ben.Marsh
Fix manifest being invalidated when building two enterprise targets in a row. Fixes CIS error.
#jira UE-63644
[CL 4342443 by JeanMichel Dignard in Main branch]
#jira UE-59798
Media Output Architecture. Inspired by the FrameGrabber and worked done on Badger. Support 8bits & 10bits color. Capture the buffer as is with the correct pixel format and the corredt target size.
Move the log category to private and rename it.
Move the implementatin of the MediaIOCoreModule to private.
Made assets in the bundle visible in the content browser (different package per asset) and updated to support duplication correctly
Quick fix for MaterialDynamicInstance garbage matte parameter not going back to default value when cleared.
Added looping option on the bundle
Keyer and lens materials
Fix crash when changing MediaBundle on Actor multiple times.
Fix crash when Undoing after placing a MediaBundle and pressing Stop then Undo.
Fixed bad reference count in MediaBundle when undo/redo of MediaBundle setting changed on MediaBundleActor
Added PostEditChange after setting MaterialProperty to fix potential propagation.
Update SMediaFrameworkCapture for MediaCapture & RenderTarget.
Remove the MediaPlayer from MediaPlayerTimeShyncrhonizationSource because it's already in the MediaTexture.
Add MediaBundleTimeSynchronizationSource.
Fix for not being able to generate a Identity lens displacement map
Fixed unbounded shader parameter in lens displacementmap generation
Renamed some parameter groups to Keyer_XX
Expose 10bits format to TextureRenderTarget2D
Note that functions that use ReadPixel are still ok since The RHI do the conversion.
#rb simon.tourangeau, simon.therriault, patrick.boutot
Add SetFixedViewportSize.
The SceneViewport support the default back buffer pixel format.
#rb matt.kuhlenschmidt, simon.tourangeau, simon.therriault
#ROBOMERGE-SOURCE: CL 4151396 in //UE4/Release-4.20/...
#ROBOMERGE-BOT: RELEASE (Release-4.20 -> Release-Staging-4.20)
#ROBOMERGE-AUTHOR: patrick.boutot
[CL 4151397 by patrick boutot in Staging-4.20 branch]
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 4060527 by Anousack.Kitisa
Added support for importing FBX user properties as metadata on StaticMesh when importing FBX.
Added support for exporting StaticMesh metadata as FBX user properties when exporting StaticMesh to FBX.
#jira UESP-567
Change 4060835 by Jamie.Dale
Added assign method to Python exposed structs
This lets you assign the value of one struct instance onto another instance (rather than copy the pointer in Python). It also accepts anything that casts to the destination struct.
Change 4060838 by Jamie.Dale
Include unary operator function tooltips in doc string
Change 4060843 by Jamie.Dale
Fixed PythonizeValue including deprecated properties in the init function for a struct
Change 4060908 by Jamie.Dale
Fixed some name conflicts in generated Python glue
Change 4061065 by Jamie.Dale
Stubbed struct return values are now default constructed
Change 4061205 by David.Hibbitts
Added blueprint functions to create a message bus source, for use in projects where the Editor UI is not available or is impractical.
Added a blueprint function to get available subject names for the LiveLink Client
Added a RemoveSource method to ILiveLinkClient
Added a GetSubjectNames method to ILiveLinkClient
Fixed a crash when RequestShutdown was called on a MessageBusSource after the HeartbeatManager had already been shut down.
Change 4061421 by Patrick.Boutot
[AJA] Warn the user if he requested the key and the backbuffer is not setup properly.
#jira UE-58614
Change 4061620 by Jamie.Dale
Made the Sphinx config a template so we can inject the current engine version into it
Change 4062578 by Jamie.Dale
Optimized Python stub and doc gen file writes
- Files are now only written when they've changed.
- We now only remove files that are stale.
- No requests to generate stub and doc files are queued before the first Tick.
Change 4062634 by Jamie.Dale
No longer export FDateTime defaults to struct __init__ as they can be non-deterministic
Change 4064275 by Jamie.Dale
Added callbacks for when Python is initialized and shutdown so that external modules can hook-in appropriately
Change 4064613 by James.McNatton
Change to initialization for FVirtualCameraWaypoint and FVirtualCameraSettingsPreset to remove non-deterministic constructors and a few resulting cleanup items
Change 4064878 by Patrick.Boutot
Add timecode provider plugin to capture from the Audio jack.
Change 4064910 by Patrick.Boutot
[AJA]
Add AjaTimecodeProvider that provider the timecode from a SDI input source.
Change 4067451 by Jamie.Dale
Added command line options to enable all plugins, optionally excluding certain plugins
Change 4067489 by Simon.Tourangeau
Support for DX12 quad buffer stereo rendering
Change 4068640 by Patrick.Boutot
Add a state to CustomTimeStep. Show the state of the CustomTimeStep in "stat fps".
Change 4069147 by Patrick.Boutot
Move Mediasmith console to Engine. Renamed to TimecodeSynchronizer.
Change 4071727 by Matt.Hoffman
Initial pass at exposing Sequencer's Render to Movie functionality to Python. All settings that can be adjusted via the UI can be set from Python and renders can be invoked for both in-editor capture as well as new process capture. A basic API is provided which enables querying if a render in progress and canceling an in progress one.
#jira UESP-541
[CL 4071957 by JeanMichel Dignard in Main branch]