-
Notifications
You must be signed in to change notification settings - Fork 11
Home
Welcome to the Wiki. This is where we post our release notes for new releases, and outline our software roadmap for upcoming features.
If you're interested in learning how to use the framework, please visit our Github Page instead.
2.4.0 (issues)
This release is focuses on improvement on the documentation and fixes on missing functions on a couple of Classes, but also includes a new feature and enhancement that would improve functionality on Scene layout and streaming.
New Feature:
-
ItemLayout methods to set item z-order(#161)
- bringToFront (absolute front)
- sendToBack (absolute back)
- bringForward (front, one level)
- sendBackward (back, one level)
Enhancement:
- Start stream while suppressing pre-stream dialogs(#157)
- Outputs.startBroadcast() now accepts an optional JSON object argument to indicate a certain flag that would bypass the showing of pre-stream dialogs.
Bugfix:
- Erroneous values when dealing with multiple videoitem's properties(#153)
- HtmlSource class is missing the call function(#155)
- ScreenSource class only contains Source functions(#156)
- VideoPlaylist class is missing the SourcePlayback and IAudio functions(#164)
Documentation:
- Output and StreamInfo documentation update(#151)
- This gives more detail on how StreamInfo and Output could be used together for functionality and detail.
- Missing MaskEffect Enum in documentation(#162)
2.3.0 (issues)
This release focuses on delivering new features, improvements, and bug fixes, but is primarily aimed at making the documentation more friendly to novice developers who want to make simple plugins for their XSplit streams.
New Features:
- Added
recording-renamed
event on Channel Manager Class that provides a recording information containing the complete file path of the recording(#91)- Recording information contains file path, oldName, and newName
- Added a listener to item property change(#104)
- Allow hidden plugins to make noise(#131)
- Get GOP drops on StreamInfo Class(#133)
Improvements:
- Add a new source to any scene instead of just the current scene(#83)
- Minified build for es2015 output(#138)
- This targets those who want to use xjs as a JS module import without adding TypeScript to the build system. We already supply an xjs-es2015.js output and is now adding a minified version of this.
- Avoid overriding global callbacks(#137)
Bugfix:
- Sources-list events not firing in XSplit Broadcaster 2.9(#124)
- Handle special case for transparent/no color for utility Color class and get/setBorderColor(#141)
- Same toString and toTransitionKey returns for RE3 (non-stinger) transition objects from Transition.getSceneTransitions(#146)
- Some source interface classes don’t follow special process for source method(#149)
2.2.0 (issues)
This release is focused on the addition of Remote xjs to the framework. The goal here is to allow developers to easily develop HTML pages that can perform XSplit method calls remotely.
New Feature:
- Added Remote Class that works as middleware for communication for a remote and proxy xjs(#121)
- Rework on some of the internals to handle calls from a remote to a proxy and vice versa
- Differentiation of Remote, Proxy and Local mode
- Serializing of xjs calls to be sent through the network to an XSplit extension configured to be a proxy
This feature is still in its BETA phase and there might still be instances/methods that may not be handled properly. For more information and tutorial on how to use this, please check our API and Remote xjs tutorial page.
Improvement:
- Allow browser sources to render up to 60fps(#129)
- For additional information on how to set browser fps to 60, please check the Tutorial
Bugfix:
- Fix streamTime unit is not in microsecond(#130)
- Fix getBandwidthUsage not returning any value(#134)
Minor patch update to handle a minor issue on handling local recording.
2.1.0 (issues)
This release is mainly focused on adding the ability to Start and Stop Stream through the framework and the ability to pause or unpause a Local Recording.
Features and Improvement:
- Added Output class that handles Start/Stop stream and Pause/Unpause local recording.
- Updated the class name of Channel into StreamInfo to properly represent the Class as a means to get details about the stream.
- Added the StreamInfo.getBandwidth that shows the average current bandwidth usage of the stream.
- Add Extension.getId, allowing extensions to get it’s Id that could be used for getting the available Output list.
- Add audio, video and output encoded values in StreamInfo class passed by stream-end event of ChannelManager.
Bufix and other Changes:
- Fix App.getFrameTime typo error on code to be similar with the documentation. (#127)
- Fix mono mix value defaults to 0 when setting the value of mic/speaker. (#126)
- Stats for Channel passed on ChannelManager Class for stream-end events now contain more information such as audio, video and output encoded values. (#114)
2.0.0 (issues)
This release reflects the changes to XSplit 2.9, which introduces linked property and and contains breaking changes from xjs 1.4.1. Also, 2.0 encourages manipulating
Notable Changes:
- Handling of VideoItems Linked to the same Source (#119). Items identified as linked are multiple items that are tied up to a single Source.
- Undeprecate Source and rework on Source/Item property handling (#111).
- Items are rendered from Source.
- Source properties(value, custom name, etc...) should now be rendered through sources.
- Item properties(position, crop, etc...) should be rendered through each item.
- Global Source is now separate from Keep Loaded in Memory (XSplit 2.9 change). In line with this, the concept of global source has be replaced with Linked items.
New Features / Improvement: Major:
- Name and Custom name are now source properties, reflecting the changes to XSplit 2.9 (#119).
- Undeprecate Scene methods searchSourcesById, searchScenesBySourceId, searchSourcesByName, filterSources and filterScenesBySources. These methods were also update to handle the changes on Source and Item.
Minor:
- Added Source#getAllSources method to get all unique Source from every scene
- Added Item.getSource method to allow items to get their source.
- Item.duplicate now has optional parameters ({linked?:boolean, scene?:Scene}) to allow the creating duplicates of an item to other scenes. Setting the duplicate as linked would make them to be tied up to a single source.
- Allow unlinking of items to a source through Item.unlink. Note that once an item is unlinked, there’s still no method to reverse the process.
- Added Playback-related methods for VideoPlaylist to allow the use of all playback functions (duration, playback position, etc...) for the current active video. (#120)
Bugfix and Other changes:
- Bugfix Having XJS framework on an HTML and an iframe within it may cause wrong videoitem properties to be returned.(#112)
- Always ensure dropped frames, encoded frames and stream time parameters for stream-end event to be number type
- Replace non-existent Scene.getId with getting static value of _id for setActiveScene
- Reject when scene is not in scene pool for getById, instead of returning undefined
- Reject when non-integer number is used for setActiveScene
- Exclude Intel realsense from camera listing
- Consider preset's defpos in assigning position to gamesource autoDetect
- Consider preset's defpos in assigning position to VideoPlaylist object to be added
- Check for presence of file parameter in static getVideoDuration method of IO class as it may result to unresolved calls
- Reject toXML method of VideoPlaylist class when no file is added
- Convert RGB and BGR to uppercase for Color util class, as parseInt base 16 to lowercase
- Check for all coordinates and not only left when converting Color object to coordinate string
- Reject getVideoDuration and openFileDialog methods of IO class when called in source
- Resolve videoDuration as a number, not as a string
- Emit scene index based in 1 instead of 0 on scene-delete and scene-add events
- Add unbind (‘off’) method to event emitter class
- Ensure that subscription to EventManager is done only once
- Throws errors when window classes are called not from their respective environments
- Include scene-load in list of supported events for SourcePluginWindow
Deprecated methods:
- Environment.isSourceConfig use Environment.isSourceProps
- Scene.getByIdAsync use Scene.getById