1.12.0

Major changes in this version

Major improvements in our UIs

We made many improvements in our UIs. Among them, you will find that you can now find the same jobs and logs API in the Bastion API service. Along with showing the services running in the Bastion Environment, you can now add your own jobs.

We also added a new Configuration section in the Cluster API, which lets you directly edit your configuration keys without resorting to the command line or Consul-UI.

Finally, our Studio can now save and restore dashboards you create so they can used by others.

New Genvid Unity Package

We now provide a binary version of our plugin and include it in our Genvid Unity Package. This package includes all the plugins, libraries, and scripts necessary for integrating Genvid into your game and includes Unity Editor tools to help your development with Genvid.

New UE4 Genvid Module

This version is more faithful to the current Genvid SDK design and sets the stage for future features in the SDK. It is backward-compatible with the previous version but all old classes are now deprecated.

See the upgrade notes for more information.

Minor changes and other fixes

Genvid Streaming API and Services

  • Added new streaming settings:
    • Extra delay in the settings screen for the standalone player.
    • Composition monitor resolution and bitrates (audio and video).
  • Clean up audio device names in the SDK log.
  • Fixed a potential lock-condition when closing a stream that could stop the streaming.
  • Fixed the SDK Health Check missing its deadline once in a while, creating a false warning.
  • Validate a video-source resource before using it. This applies to both the video.source.idxgiswapchain and video.source.id3d11texture2d. This also fixes a resource leak when there was an error.
  • Added an overload to SubmitGameData in the C# wrapper, which allows sending byte array instead of a String.
  • Added package.json to the commonjs and node distribution for easier integration with NPM.
  • Fixed a memory leak using the standalone player with Google Chrome.
  • The audio mixer in composition can now handle missing audio frames.
  • Fixed a desynchronization happening when audio and video streams get destroyed and recreated.
  • Studio now restores initial values to video mixer when restarted.
  • Fixed using a number value in the key of a mapping schema in Events. Previously, such usage would be seen as invalid and result in disconnecting the viewer websocket.
  • Ensure that our internal connections answer all connections but refuse them if busy. This prevents filling up the connections queue, resulting in false positives in the health check of the service, as well as a denial of the connection when it should be available.
  • Fixed a disconnection in the Ingest sample which was disconnecting the streamer after 10 seconds.
  • Correctly applies the digital delay to the source, without compensating for the missing frames.
  • Fixed a regression where the video dissolve and fade-in/fade-out transition were applied in reverse.
  • Fixed an audio/video offset happening during long broadcast session.

Genvid Toolbox API and UI

  • Added two new parameters for genvid-bastion install command:
    • --loadconfig or -l to update the job and logs configuration in the bastion.
    • --update-global-tfvars or -u to update the global settings with their default values.
  • Fixed the edit dialog-names in Cluster-UI.
  • Fixed a bug where the start/stop buttons in Cluster-UI were not active during a state refresh.
  • We now wait for the services to start correctly during a genvid-bastion install before setting the global variables. This fixes a bug where the global variables were overridden if the services were slow to start.
  • Always unseal the vault on services start. Fixes a condition where the genvid-bastion install command wasn’t able to restart the services correctly because the vault was sealed.
  • Upgraded py-docker dependency package from 2.0 to 3.1. This could break some scripts that are using the genvid.toolbox.DockerTool class. See the list of breaking changes.
  • Compressed our Docker images, reducing the upload time to the servers. You can take advantage of this by using the compress parameter of the genvid.toolbox.DockerTool.update_image call and updating your template accordingly.
  • Fixed the additional / in the ClusterAPI.get_base_url(). This caused some POST methods to not be applied correctly on the server.
  • The Bastion-API is now run with a static port by default, pointing to 8092. You can change this value by using the GENVID_BASTION_BINDING_PORT environment variable.
  • Show a warning in Bastion-UI and Cluster-UI if the data is modified on the server before saving.
  • Added a new start-all and stop-all REST API to start/stop all the jobs marked with the autostart flag. The scripts and the plugins now use this API consistently.
  • Updated the AMI to TightVNC 2.8.8. This fixes a bug in the installer, allowing us to set the initial password during our generation of the image.

Samples and Engine Plugins

Common
  • All websites now use compressed Docker images for the cloud environment. We simplified and updated the templates accordingly.
Tutorial
  • Removed unused jade node package in the web server code.
Unreal Engine 4
  • Fixed a video-stream freeze in the plugin during the map loading.
  • Forced Typescript to version 2.5.2 in both sample websites.
  • Modified the update Nomad template with a different parameter for the AWS3 sync to upload the game when the timestamp is changed instead of the file size.
Unity
  • Fixed a timing issue during the video destroy-stream process in the prefabs.
  • Minor fix in the documentation related to a command not available anymore.
  • Dump Unity Editor log file after unity build.
  • Fixed a compatibility issue with an older supported version of Unity (5.6) related to the CommandBuffer placed on the camera which caused the screen to be gray when changing scene or camera.
  • Added proper validation of parameters for the Python script load- operation.
  • Changed scene 2 to use the same color and sound for cubes/spheres based on their order.
  • Added warnings hinting about having to use D3D11 if the video stream failed to initialize.
  • Added additional validation for our events in case an object is null.
  • Fixed an issue where an event callback could cause a crash when stuck on an error inside the C Sharp script.