Enabled TCP keep alive on TCP connections to clients. This might help in discovering that a client has ungracefully disconnected. In that case the OSC subscription will also end, causing the server not to try to send OSC packages to a client that is down. This fix relates a little bit to #313, but is more from the server's point of view.
No more use for retry_task in decklink_consumer now since audio and video are completed in the same callback. std::packaged_task is simpler to use now.
Use ScheduledFrameCompleted callback for audio scheduling in addition to video scheduling instead of using the audio callback. This is completely legal according to Blackmagic and simplifies the code a lot. This could also fix #440, #114 and #329 because one more audio frame is scheduled in relation to video instead of one more of both (as indicated by the old mail from Blackmagic about prerolling).
Removed a parameter from the "data retrieve" documentation. [data:string] is never used as the second parameter, and probably copied over from "data store" by mistake
Created workaround for time scale bug in Decklink 10.7 driver causing CasparCG to be useless. Blackmagic has been alerted about the problem and will fix it.
Helge Norberg [Sat, 14 May 2016 22:22:27 +0000 (00:22 +0200)]
[image_scroll_producer]:
* Fixed bug in calculation of duration to speed translation.
* Added support for modifying speed with CALL with easing support.
* Added support for an absolute end time so that the duration is calculated based on when PLAY is called for shows when an exact end time is important.
#430 Fixed bug where it was assumed that all Decklink devices implements the IDeckLinkKeyer interface. Affected models are for example Decklink Mini Monitor and Decklink Duo/Quad 2 (when a device is configured to only use one connector).
Helge Norberg [Mon, 7 Mar 2016 17:55:03 +0000 (18:55 +0100)]
Created frame rate conversion producer wrapping another producer. Uses frame blending when input frame rate is not same, double or half of output frame/field rate. Deinterlaced input is required.
Helge Norberg [Mon, 8 Feb 2016 17:37:28 +0000 (18:37 +0100)]
Made decklink < 10.2 work while at the same time providing compatibility with newer versions (Even those completely missing the backwards compatibility with IDeckLinkConfiguration_v10_2)
Helge Norberg [Tue, 19 Jan 2016 12:56:03 +0000 (13:56 +0100)]
Changed meaning of frame variable in scene to a continously animating variable. The previous meaning was renamed to timeline_frame and will pause when the timeline is paused. This allows animations to continue even though the timeline is not moving.
Helge Norberg [Fri, 8 Jan 2016 15:32:26 +0000 (16:32 +0100)]
Only memcpy on Linux if the decklink card will attempt DMA directly from BGRA buffer to card. This only happens on cards with hardware support for BGRA, otherwise the driver will convert it to an YCbCr buffer before transfering to card, in which case it is an unnecessary extra copy.
Helge Norberg [Tue, 5 Jan 2016 22:02:47 +0000 (23:02 +0100)]
On Linux Decklink cannot DMA transfer from memory returned by glMapBuffer. Thanks Nick from Blackmagic for spotting this. As a workaround we will memcpy to ordinarily allocated memory before scheduling frame.
Helge Norberg [Tue, 22 Dec 2015 23:25:43 +0000 (00:25 +0100)]
Created demo scene (rope.scene and media assets) demonstrating a small part of what is possible with the scene producer. Use screen consumer for mouse interaction.
* support for cornerpinning in psd-producer via vector-masks
* support for rotation and non-uniform scaling of dynamic text-layers in psd-producer
* support for per layer blend modes in psd-producer
Helge Norberg [Fri, 4 Dec 2015 15:42:52 +0000 (16:42 +0100)]
Log expected user errors at info instead of error to not pollute the logs with errors. For example a CG STOP on a layer where no cg producer is running.