Helge Norberg [Tue, 8 Oct 2013 09:37:26 +0000 (11:37 +0200)]
Flash producer
- globally serialize initialization and destruction of flash players, to avoid race conditions in flash.
- changed so that the flash buffer is filled with flash player generated content at initialization instead of empty frames.
OSC
- merged OSC improvements #152 made by Robert Nagy up until commit https://github.com/ronag/Server/commit/bae86d21f1569b4b7ac1e08c024d62f389efa57e
- enclosed multiple OSC messages in the same UDP packet inside an OSC bundle to comply with OSC spec
- ensured that UDP packets are not too big (causing fragmentation, and errors on OSC receiving side)
- removed use of Microsoft Agents library which seemed to be the cause of running out of memory after a while. Now everything is done synchronously instead (without support for multiple targets, just a single target (parent) for now).
CG commands that expects an already running flash template no longer starts a flash player with a template host just to say "no template running on layer". Now only CG ADD and CG INFO creates a flash_producer/flash player if one is not already running on the video layer.
Huge performance impact detected with chroma key support (even though not in use for a layer) in image shader. Straight alpha output support also adds a small overhead (even when not in use), so just like with blend-modes it is now conditionally compiled in the shader, and turned on in the configuration file.
New <mixer /> element added to configuration for turning on mixer features that not everybody would want to pay for (performance-wise). blend-modes also moved into this element:
* Created custom decklink allocator for reducing memory footprint.
* Made sure that more threads have the unstructured exception handler installed (avoids crashing the entire process in case of access violations), and thread naming for more threads.
* Ensure that if an exception occurs while rendering the diagnostic window, the window is closed instead of it stopping to respond to window events.
Helge Norberg [Thu, 15 Aug 2013 15:40:57 +0000 (17:40 +0200)]
#155
Fixed problem where SFML stops calling SoundStream::OnGetData when too few samples are returned. This problem seems to have started after the change to static linking against SFML. The current solution is to collect the samples of more frames (3) before returning sample data. This unfortunately adds a 2 frame delay on system audio, but solves the choppyness.
Helge Norberg [Thu, 27 Jun 2013 15:52:36 +0000 (17:52 +0200)]
Corrected line lengths (should always be under 80 characters), inconsistent amount of newlines between sections and removed trailing whitespace from CHANGES.txt and README.txt
Helge Norberg [Tue, 25 Jun 2013 13:55:46 +0000 (15:55 +0200)]
Added new decklink consumer implementation which does not use scheduled playback but uses DisplayVideoFrameSync() and sleeps until frame has been shown using the timing information returned by GetHardwareReferenceClock(). This seems to reduce the latency (although not as much as I would have hoped) and provide for more deterministic synchronization between multiple instances (for example a Decklink Quad with one device used for fill and another for key).
Helge Norberg [Tue, 18 Jun 2013 12:26:43 +0000 (14:26 +0200)]
Experimental support for synchronizing output of multiple consumers. For example using a Decklink Quad with one consumer for fill and one for key. Place the consumer elements in casparcg.config within a <synchronizing /> element. For example:
Helge Norberg [Tue, 11 Jun 2013 14:31:55 +0000 (16:31 +0200)]
Experimental support for switching output between premultiplied / straight alpha
Use
MIXER 1 STRAIGHT_ALPHA_OUTPUT 1
to turn on straight alpha output on channel 1 or configure it in casparcg.config under the <straight-alpha-output /> element for the channel
Helge Norberg [Tue, 4 Jun 2013 15:26:44 +0000 (17:26 +0200)]
straighten alpha before applying contrast-saturation-brightness when contrast is less than 1 and remultiply afterwards to prevent rgb values from rising above alpha value for each pixel.
cambell [Fri, 31 May 2013 02:01:53 +0000 (09:01 +0700)]
Rebase parameters branch on current master.
* Change parameters const& to const parameters& for coding style.
* Update thumbnail producer to use parameters class.
* Update some methods to use params.get(...) rather than get_params.
Helge Norberg [Wed, 29 May 2013 07:53:25 +0000 (09:53 +0200)]
Fixed problem in audio_mixer where a default constructed channel_layout was used. Also fixed so that default constructed channel_layout and mix_config instances doesn't have uninitialized members
Helge Norberg [Mon, 27 May 2013 18:23:42 +0000 (20:23 +0200)]
Modified OSC support so that whenever an AMCP connection is established an OSC client is started against the AMCP client ip using a default udp port configurable in casparcg.config. The OSC client will follow the lifycycle of the AMCP connection. A <osc><predefined-clients></predefined-clients></osc> element is provided to setup persistent OSC clients just as today.