Major Fixes and Changes

Added Settings in Studio UI

You can now edit broadcast settings, input settings, and composition settings from Studio.

Added Support for Unreal 4.27

The Genvid MILE SDK now officially supports Unreal 4.27.

Minor Changes and Other Fixes

  • [sdk] Added support for submitting no game data by providing a nullptr address and a size of zero.

  • [sdk] Fixed an issue where you can’t reuse a timed-out time slot.

  • [sdk] Fixed an issue where passing an invalid source name would lead to a crash.

  • [sdk] Fixed an issue where no audio and/or video is sent when configured at 60 FPS.

  • [sdk] Fixed an issue where the SDK sender would crash when the composeD service reconnects.

  • [sdk] Fixed an issue where the sample would not restart when stopped outside of the Cluster UI screen.

  • [web-sdk] Fixed an issue where timers are not clearing up when using the web SDK inside Node.js.

  • [web-sdk] Added automatic web-player reload when a new broadcast is created.

  • [unity plugin] Fixed an issue where the audio/video desync at 60 FPS.

  • [toolbox] Added the method render_template to genvid.toolbox.BastionAPI.

  • [toolbox] Added the command render-template to genvid-bastion that renders a template in the context of the bastion-api.

  • [toolbox] Deprecated ConsulTemplateTool from the ancestors of the SDK Python class.

  • [toolbox] Improved the genvid-sdk and genvid-bastion commands by doing most of the template rendering on the context of the cluster-api and/or bastion-api when it applies. This change should be transparent.

  • [toolbox] Removed unused dependencies and some restrictions on the version requirements which were causing conflicts while installing genvid-toolbox.

  • [toolbox] Fixed an issue where some Python dependencies required the compilation of some packages. The Genvid MILE SDK now defaults to using the binary versions of packages when they exist.

  • [toolbox] Added the genvid-sdk render-template command to interface with the cluster-api /template_renderer API.

  • [toolbox] Improved the genvid-sdk render-template command by adding the ability to interpret the rendered template as a configuration file.

  • [toolbox] Deprecated the method do_consul_template from ClusterAPI in favor of the command render_template.

  • [toolbox] Deprecated the command consul-template from genvid-sdk in favor of the command render-template.

  • [toolbox] Deprecated ConfigTool in supported classes.

  • [toolbox] Improved genvid-sdk setup for the local cluster by setting the initial content of the Consul K/V store through loading the content of the {ROOTDIR}/local-services/init folder.

  • [toolbox] Deprecated ProjectTool from genvid.toolbox. See the upgrade notes for more information.

  • [toolbox] Added the GENVID_BASTION_ID and GENVID_CLUSTER_ID environment variables to the template-rendering functions of bastion-api and cluster-api, where appropriate.

  • [toolbox] Removed as_bitrate from ClusterAPI and moved it to ClusterTool as a class method.

  • [toolbox] Improved dependency handling by removing azure-cli from the toolbox and using a global package instead. See the upgrade notes for more information.

  • [toolbox] Improved Azure integration by using a standalone installation of the Azure CLI.

  • [toolbox] Improved genvid-toolbox dependencies by replacing jsonpath_rw_ext with custom code.

  • [toolbox] Removed spur from the genvid-toolbox dependencies, making it optional. The package was only used in deprecated classes.

  • [toolbox] Fixed a typo in the vault_load_roles documentation.

  • [toolbox] Improved genvid-toolbox by making the AWS support optional. It is still installed by default. See the upgrade notes for more information.

  • [toolbox] Removed chardet from the genvid-toolbox package dependencies.

  • [toolbox] Added a note about the dropped dependencies for azure-cli, including a warning about the possible error message when upgrading.

  • [toolbox] Upgraded hvac to >=0.10.6 for the genvid-toolbox.

  • [toolbox] Fixed the local consul requiring firewall permission by forcing the binding of the Gossip protocol to localhost by default.

  • [gvencode] Fixed an issue where the composition information is not sent to the web client when the second source is started.

  • [gvencode] Fixed an issue where the Audio and Video streams would de-sync over time.

  • [gvencode] Fixed an issue where the audio and video streams would experience gradual de-sync upon reconnection.

  • [gvencode] Fixed an issue where decoding would stop working when receiving an invalid packet.

  • [bastion-api] Added the /v1/bastion/global/template_renderer API to bastion-api.

  • [studio] Removed the Interpolator dropdown menu for Studio Transition. The Interpolator now defaults to Linear.

  • [ingest] Fixed an issue where the video is lost when composeD stops.

  • [ingest] Fixed an issue where composeD doesn’t know when the OBS stream stops.

  • [ingest] Fixed an issue where the data stream would not be sent after restarting rtmp feed to ingest.

  • [ingest] Fixed an issue where ingest desyncs and disconnects during a long stream in 1080p.

  • [ue4-sample] Fixed an issue causing the Cube Sample brightness to be too high.

  • [unity-sample] Fixed an issue where audio fails to play when running at 60 FPS.

  • [loadtester] Fixed an issue where the Load Tester tool utilizes too much CPU after running for a long time.

  • [cluster-api] Improved the /template_renderer API by adding the GENVID_TEMPLATE_SANDBOX_PATH environment variable, which points to the copy destination of the sources.

  • [cluster-api] Improved the /template_renderer API by adding a content field to render the template directly.

  • [cluster-api] Deprecated /consultemplate from the Cluster API in favor of /template_renderer.

  • [cluster-api, bastion-api] Added GENVID_TEMPLATE_TIMEOUT to account for the time allowed for a template to render. The default is 2 seconds. It applies to all rendering calls, including configuration and job templates.

  • [consul] Fixed an issue where services can’t start when the number of concurrent connections from a single IP reaches the default maximum value.