SplitCam development report for the period from May 25, 2022 to November 18, 2022
During the last 6 months our development team added over 20 new features to SplitCam. Over 80 existing features were enhanced or updated. And more than 150 issues and bugs were resolved.
The most pleasant bottom line of our intense work is that those users who switched to SplitCam as their streaming tool love it so much that don't want to return to OBS Studio or any other tool because those are either overcomplicated or lack some useful functionality. This is also the result of good work of our support team. We try our best to be most responsive and friendly. SplitCam team welcomes users' suggestions and requirements and quickly fixes found issues.
SplitCam is at least on par with any existing streaming tool and overcomes many of them in features and usability. We will continue to work hard to deliver even better product in future releases which would add more cool useful functionality while remaining as user friendly as possible. We have a big list of enhancements waiting to be implemented.
New features
New layer position type: floating. Layer moves inside the scene without user intervention. Floating layer can be used to add DMCA protection to streams.
Added body detect for floating layers. Before this change floating layers tried to keep away from faces only. Now they also try not to overlap with person's body.
Sub-pixel drawing of floating layer. Floating layers are now moving very smoothly regardless of scene FPS and resolution.
Added multiple faces detection when Avoid Face option is selected in floating layer settings.
Added Avoid Face option in floating layers.
Added new setting to video file recording: max recording time. Using this setting you can limit the length of recorded video file to the set value.
Added emoji support and inserting to text source. Emojis are quite popular so we decided it to be a good thing to add support for them to SplitCam's text layers. You can insert emoji into text with a standard Windows keyboard shortcut, or by clicking a button on the text control bar.
Added new floating type: Random popup. Layer hides and appears in random places.
Restore scene layout when scene resolution changes. When you spent so much time on laying out your video sources on the scene you don't want to lose your work when changing canvas resolution. So now SplitCa does its best to preserve scene layout whenever user changes canvas resolution.
Added Pause Settings panel to SplitCam Settings dialog. Not all of our users knew that they can customize the paused scene look with a few useful settings by clicking the wrench icon above the paused scene. So we added a separate tab to the SplitCam settings dialog just for this task.
New audio source type: Application Audio. User can now capture audio from any other running Windows application.
On SplitCam exit reset driver image to default for all supported resolutions.
Show empty image in virtual camera when splitcam is not running. When SplitCam is not running we want SplitCam's virtual camera to show some default image instead of the last frame of a streamed video.
Mark enabled effects and tabs within the Effects dialog. In the Effects dialog it's hard to tell which effects are currently active and which are not. So we added visual marks to easily see which of them are currently active.
New video effect: Hair Color. Requires very powerful CPU and GPU.
Other new features
Added SplitCam projects proprietary file extension. Automatically rename existing xml projects by giving them the new extension. Open SplitCam projects from Windows Explorer with double-click.
Added control bar to IP-Camera layer and added reload button.
Added browser resolution and FPS selection in the Add Web Browser dialog. Viewport of the web browser layer can now be set to any one of standard resolutions depending on whether you want more space or do you want larger page elements.
Ensure 60 fps in streams and recordings. Before this change SplitCam was correctly rendering 60 fps videos and webcam captured streams on screen but it failed to do so when streaming to remote servers. Now this task is solved and the streamed video is smooth as expected to be at 60 fps.
Force Windows to use high performance GPU for SplitCam. Microsoft in attempt to reduce battery usage in notebook computers limits the use of GPU for all applications. This causes major issues in producing high quality streams since SplitCam requirements for system resources is pretty high. System can be manually configured to give SplitCam the most powerful GPU but not all our users are capable of doing this. We found a way, actually a multi-part way, to save users from manually configuring their Windows systems.
Added detect to video sources. Floating layers now work not only with webcam streams but also with videos sources.
Changed algorithms and updated realization in managing scene layout with the mouse.
Remove the limitation of adding the same web-camera to the scene only once. Now user can add any webcam any number of times to the same scene.
Give visual feedback when mouse hovers selected clickable UI elements.
New implementation of context menus.
Enable scrolling in the Add Game and Capture Window dialog.
Enable scrolling in the Open Cloud Project dialog.
New implementation of Application selection dialog.
Added browser update event.
Move layers using keyboard arrow keys. Select a layer and move it on the scene using arrow keys on the keyboard. This option can be enabled or disabled in the Settings dialog.
New method for capturing webcam video.
New realization of Show FPS option for layers.
Select next/previous layer by hitting TAB/Shift-TAB keyboard key.
Fit selected layer to canvas and remove any cropping by hitting the Enter keyboard key.
Delete selected layer by hitting Del or Backspace keyboard key.
Run SplitCam after installation. Long awaited function is finally here!
Added unhandled exception handling with stack trace logged to file. Helps to find the cause of the problem on users' computers.
Added human readable processor name to log file.
Added program session days counter to log file. Sometimes program sessions last a few days.
Added the option to reset SplitCam Cloud password.
Two different implementations for Skin Smoother effect depending on availability of high performance GPU.
Added encryption of project files stored in the cloud.
Updates
Fit stream bitrate statistics into the button.
Tooltips show/hide methods reworked to take less system resources and work more reliably.
Tooltips support added to dialog boxes.
Simplified realization of audio/video synchronization in streams.
Update ingest servers from Splitcam server if locally cached file doesn't exist.
Ingest and restream servers updated.
Reduce CPU usage during recording.
Changed video recording params to get a better picture quality on most computers.
Prevent Pause Settings dialog from closing when color picker palette is shown.
Dim layer name when the layer is locked or hidden.
The first mouse click on an unselected browser layer selects it but doesn't generate a click in the browser itself.
Make Text and Timer layers non-pannable.
Browser library version updated to CEF v105.
Decrease the minimal size of Timer layer.
Hide Scene Pause Settings dialog when it looses focus.
Disable Add Existing Scene menu command when only one scene exists.
Save current URL of the Web-browser layer on exit.
Enable properties for the App Audio source.
Allow App Audio source to be added to two or more independent scenes.
Reduce the font size of edit controls.
Vertically align text in edit controls.
Exclude SplitCam and already added items from the list when adding Application Audio Source.
When duplicating a scene also duplicate Application Audio Source.
Optimized options: start minimized, minimize to system tray, start with Windows.
Optimized processing of layer events: position and text change.
Decrease the lowest speed of floating layers. Make floating layers speed FPS and resolution independent.
If cloud user nick name is not set, then use alternative title when popping up cloud context menu.
Added STREAM title to statistics button. Changed font and size of statistics buttons in the mini window to accommodate whole strings without truncation.
Only check for program update once every 24 hour independent of previous check result.
Only update ingest and restream servers once every 24 hour independent of previous update result.
Don't load cloud projects on program start up to speed up SplitCam starting time.
Changed method of detecting available GPUs.
Show first frame of a video file when it is added to scene in paused state.
Optimized processing of Chroma Key video effect.
Tidy up the Pause settings dialog
Limit the max value of blur setting in the scene pause params.
Changed colors of resource panel values.
Process Enter and Esc keys when focus is on a checkbox.
Change Scene Pause notification icon color from yellow to blue.
Update layers view if part of the main window is hidden off the screen when the layers are changed.
Tidy up layer properties panels: text, timer and webcam.
Tidy up the previews in the Add a webcam dialog.
Iris effect updated for better quality.
More reliable work when capturing NDI sources.
Disable Cloud Open hamburger menu command when user is not logged in.
Updated code for scene thumbnails generation.
Special treatment for text selection frame when managing layers.
Bongocam servers updated.
Optimized processing of all effects to reduce processor load.
Lips Size effect updated with better quality.
Enlarge Eyes effect automatically selects GPU or CPU processing power to lower system resources impact.
Enlarge Eyes effect updated for better quality.
Driver resize algorithms optimized for faster processing.
Size layer proportionally when it is being added as a first layer on the scene.
Highlight color of tabs changed in the Effects dialog.
Disable keyboard input in web browser mode.
Optimized Skin Smoother effect.
Stop the streaming session when the last stream is deactivated in the stream list dialog.
Increase the wait time for new input data from 500 ms to 1000 ms. In case of timeout waiting for new input data treat it as an error and restart stream.
Minor update of Hair Color effect.
Minor update of Chroma Key effect.
Correctly draw FPS within layer's boundaries when several layers are present on the canvas.
Added ability to turn on or off the Skin Smoother effect from the layers Active Effects panel.
Remove separator from the cloud user context menu in the title bar.
Grayout the "Cloud->Open..." command during streaming session.
Large update of Skin Smoother effect: much better quality with less processor load.
Allow editing stream settings during streaming session but warn that the changes will be applied only after restarting the stream.
Save the fastest found ingest server for the duration of SplitCam session.
Skin Smoother effect optimization.
Open a project in the running instance of SplitCam by clicking the project file in Windows Explorer.
Updated SplitCam Cloud UI dialogs.
Lower stream log output to fatal errors only.
Fixed ALL CAPS characters in web browser layer.
Fixed error with entering international characters in web browser layer.
New unified method of enumerating available GPUs.
Changed method of detecting GPU in UI.
Set focus to email edit box when login window is activated.
Make Skin Smoother effect work on computers without GPU.
Pick up plain text password from registry left from previous versions of SplitCam.
Disable multiple same errors and warnings when decoding MJPEG webcam images and in case of failed video effects.
Changed project encrypting from not using password to default password.
Change file path in main window title bar in case the cloud project is loaded in SplitCam.
Skin Smoother effect uses parameters stored in local.cfg file.
Don't show Driver Properties menu item for webcams that don't support it.
Change plain text password to its hash value.
Changed the way of comparing names of excluded webcams.
Don't show Jasmin webcam in the Add Webcam dialog: this webcam causes unpredictable errors.
Fixed turn video file recording on or off by pressing Ctrl-R hotkey.
Fixes
Add Video dialog is not opening.
The mike doesn't work after program restart.
Fixed program crash during IP cam thumbnail generation.
Critical errors in cloud projects management.
Updated Statistics diagram. Fixed displaying total sent bytes.
Fixed stream image flickering when scene contains Scene Source.
Fixed bug with hiding a layer when it is paused.
Don't select another layer when trying to resize or change corner radius of partly covered layer.
Fixed: Edit control in text layer looks incorrect when editing text.
Fixed incorrect presentation of edit controls in the Layer Properties dialog.
Fixed bug with Scene Source name after renaming the scene.
Delete Scene Source when the referenced scene is deleted.
Make effects work correctly with Scene Source layer.
Address program crash when switching videos in a Play List.
Fixed: When duplicating a scene the App Audio source is not working.
Show effects info for media layers only (don't show the effects info for audio layers).
Fixed: Clicking non-command item in context menu causes a command execution.
Fixed: When a second audio source is added the scrolling position in the audio list is incorrect.
When Scene layer is deleted also delete associated audio track.
Allow more than one instance of the same Scene layer.
Fixed: On program start up the sound volume is not restored correctly.
Fixed: When Edit control is disabled its layout and drawing is incorrect.
Fixed processing Enter key in the select dialogs.
Fixed transition effect not working on scenes with active scene source.
Fixed incorrect active scene index after reordering scenes.
Fixed incorrect work of multiple floating layers.
Fixed incorrect processing of some web-browser mouse events.
Fixed freezing web browser UI.
Fixed incorrect coordinates of mouse click events when layer is cropped or zoomed.
Updated layer transparency effect: minor bug fixes.
Prevent false detection of faces.
Freezing UI addressed in face detection method.
Prevent dead locks when detecting iris, landmarks and face.
Prevent flickering in video driver clients.
Fixed: Background Blur and Aura effects cannot be disabled from the layer's Effects panel.
Clear layer selection when clicked empty space on the scene.
Fixed: Broken layer selection on the scene after rearranging media source items.
Fixed: webcam stops working after scene transition effect.
Fixed: image source produces high CPU load when paused.
Address flickering and spontaneous disappearance of Colors button and Resources panel.
Fixed crash in face detector when exiting splitcam
Fixed bug adding a new source to a scene in paused state.
Correctly redraw scene controls after the main app window is resized.
Reduce flickering when resizing the main application window.
Prevent layer from moving a tiny bit when it is selected for the first time.
Optimize memory management: when an effect is disabled, memory is freed.
Preserve settings of togglable effects when the effect is disabled in the quick access panel.
Fixed: Hitting Esq key when combobox is in focus closes dialog.
Display correct symbol of 'degree' when drawing current layer rotation angle.
Fixed resizing newly added layer.
Fixed: pause button works incorrectly in the Slide Show source.
Restored pausing video by pressing Spacebar on the selected layer.
Fix: not all canvas effects visually reflect their current state.
Fixed initial PDF layer zoom state and the size.
Addressed crashes in x86 version.
Fixed: Can't select overlapping layers using mouse on the canvas.
Make SplitCam overcame the 2GB memory limitation in x86 version.
Fixed crash of x86 version on program startup.
Fixed low FPS error after adding a webcam.
Fixed: FPS drops down after deleting first scene.
Fixed crash of x86 version on program startup.
Fixed low FPS error after adding a webcam.
Fixed: can't load PDF documents when they have non-ASCII characters in the path name.
Fixed crash when deleting webcam.
Fixed Speed Test privacy request.
Fixed: can't write to a video file - file error occurs.
Correctly set the initial layer size when adding a new capture source.
Fixed bug with timer, it did not work for more than one minute.
Fixed clearing the recommended URL function.
Fixed memory leak in Layer realization code.
Fix bug with webcam preview context.
Fixed unintialized vars in face detections class.
Fix layer switching on pressing TAB key when text layer is selected for the first time after program startup.
Addressed the memory leak problem in DShow webcam capture.
Correctly select next layer on pressing tab when text layer is selected.
Stop showing cropped parts of all layers when the Ctrl key is pressed.
Fix error when opening encrypted cloud project.
Prevent errors at the beginning and at the end of a streaming session.
Disable dbghlp.dll errors in log file related to finding source code.
Fixed program crash on start up when no last project file is saved to the registry.
Fixed crash when a frame is read from a video file when the file source is already deleted.
Fixed Flip Effect for layers.
Fixed: Create local.cfg if it doesn't exist yet.
Fixed loading last open project file when the last project was the SplitCam's default.xml.
Fixed bug with cropped out parts shown without pressing the Ctrl key.
Fixed: When canvas effects are changed in the effects dialog they are not updated in the quick adjust window.
Update layer's Fx icon when Skin Smoother effect is changed in the Quick Adjust dialog.
Fixed: The Quick Adjust icon wasn't updated when switching scenes.
Fixed: Webcam dialog hanging when closing webcam previews.
Fixed: Random program crashes when showfps local config parameter is set to true.
Cloud project name must not contain special characters.
Prevent loading local default.xml from cloud server on program startup.
Fixed webcam loading error when switching scenes.
Update UI when working with cloud projects.
Fixed slow webcam adding and black screen after adding a webcam.
Fixed error in file encryptor when key container doesn't exist.
Fixed: Webcam driver properties dialog was opening only once a session.
Added exception catcher and error output to log file when video file cannot be opened. Previously program crashed there.
Correctly initialize face detection libraries on systems without GPU.
Miscellaneous
Remove obsolete code of GDI Plus window capture realization.
Enable browser logging to cef-debug.log. To enable logging set the environment variable CEFLOGGING to 'verbose', 'info', 'warning', or 'error'.
(AMD) Force High Performance GPU usage for SplitCam. Requires driver v.13.35 or higher.
(NVIDIA) Force High Performance GPU usage for SplitCam. Requires driver v.302 or higher.
Make sure the frame buffer is contiguous in CWebcamCapture::OnReadSample().
Optimize copying of video frame in CMMFLayer::sendFrame().
Try to reinitialize webcam in case of a hardware error. It helps to prevent frozen webcam image. Also added handling of some special media source capture flags: error state and skipped frames.
Fixed playback of video files (E_AGAIN when decoding a video packet).
Preserve 'cloud signed in' flag when loading cloud user credentials from the Windows registry.
Added IsSystemGpuCodeChanged to check adapter logic.
Added utility functions to vcapture namespace to get a list of GPUs, check if a GPU is available, and check if GPU configuration has changed since last Splitcam session.
Changed the method of detecting if GPU is actually present on the system.
Changed saving and loading cloud login info to standardized implementation.
When loading saved cloud passwords from the windows registry treat passwords of length other than 32 symbols as plain text passwords.
Added file encryption and decryption functions: utility::encryptFile() and utility::decryptFile()