CasparCG 2.1.0 (w.r.t 2.0 Stable) ================================= General ------- o 64 bit! o Major code refactoring: + Mixer abstraction so different implementations can be created. Currently CPU mixer and GPU mixer (previously the usage of the GPU was ) exists. + Flattened folder structure for easier inclusion of header files. + Old Windows specific AsyncEventServer class has been replaced by platform independent implementation based on Boost.Asio. + Pimpl classes are now stack allocated with internal shared_ptr to implementation, instead of both handle and body being dynamically allocated. This means that objects are now often passed by value instead of via safe_ptr/shared_ptr, because they are internally reference counted. + Protocol strategies are now easier to implement correctly, because of separation of state between different client connections. + Much more... o Data files are now stored in UTF-8 with BOM. Latin1 files are still supported for backwards compatibility o Commands written in UTF-8 to log file but only ascii characters to console. o Added supported video formats: + 720p2398 (not supported by decklink) + 720p2400 (not supported by decklink) + 1080p5994 + 1080p6000 + 720p30 (not supported by decklink) + 720p29.976 (not supported by decklink) OSC --- o Technical information about the current state of the server is published via the OSC protocol via different subjects. o Examples of information published: + Different performance metrics. + Producer names + Producer specific information + Consumer names. + Consumer specific information. CLK --- o CLK protocol implementation can now serve more than one connection at a time safely. o Added timeline support to the CLK protocol. o Refactored parts of the CLK parser implementation. Consumers --------- o Consumers on same channel now invoked asynchronously to allow for proper sync of multiple consumers. o System audio consumer: + No longer provides sync to caspar. + Pushes data to openal instead of being callbacked by SFML when data is needed. o Screen consumer: + Support for multiple screen consumers on the same channel + No longer spin-waits for vsync + Now deinterlaces to two separate frames so for example 50i will no longer be converted to 25p but instead to 50p for smooth playback of interlaced content. Producers --------- o Image scroll producer: + Field-rate motion instead of frame-rate motion with interlaced video formats. This can be overridden by giving the PROGRESSIVE parameter. + SPEED parameter now defines pixels per frame/field instead of half pixels per frame. The scrolling direction is also reversed so SPEED 0.5 is the previous equivalent of SPEED -1. Movements are done with subpixel accuracy + Fixed incorrect starting position of image. + Rounding error fixes to allow for more exact scrolling. + Added support for motion blur via a new BLUR parameter + Added PREMULTIPLY parameter to support images stored with straight alpha. AMCP ---- o DATA STORE now supports creating folders of path specified if they does not exist. o DATA REMOVE command was added. CasparCG 2.0 Stable (w.r.t Beta 3) ================================== General ------- o Misc stability and performance fixes. Consumers --------- o File Consumer + Changed semantics to more closely follow ffmpeg (see forums). + Added options, -r, -acodec, -s, -pix_fmt, -f and more. o Screen Consumer + Added vsync support. CasparCG 2.0 Beta 3 (w.r.t Beta 1) ================================== Formats ------- o ProRes Support + Both encoding and decoding. o NTSC Support + Updated audio-pipeline for native NTSC support. Previous implementation did not fully support NTSC audio and could cause incorrect behaviour or even crashes. Consumers --------- o File Consumer added + See updated wiki or ask in forum for more information. + Should support anything ffmpeg supports. However, we will work mainly with DNXHD, PRORES and H264. - Key-only is not supported. o Bluefish Consumer + 24 bit audio support. - Embedded-audio does not work with Epoch cards. o Decklink Consumer + Low latency enabled by default. + Added graphs for driver buffers. o Screen Consumer + Changed screen consumer square PAL to the more common wide-square PAL. + Can now be closed. + Fixed interpolation artifacts when running non-square video-modes. + Automatically deinterlace interlaced input. Producers --------- o Decklink Producer + Improved color quality be avoiding uneccessary conversion to BGRA. o FFMPEG Producer + Fixed missing alpha for (RGB)A formats when deinterlacing. + Updated buffering to work better with files with long audio/video interleaving. + Seekable while running and after reaching EOF. CALL 1-1 SEEK 200. + Enable/disable/query looping while running. CALL 1-1 LOOP 1. + Fixed bug with duration calculation. + Fixed bug with fps calculation. + Improved auto-transcode accuracy. + Improved seeking accuracy. + Fixed bug with looping and LENGTH. + Updated to newer ffmpeg version. + Fixed incorrect scaling of NTSC DV files. + Optimized color conversion when using YADIF filters. o Flash Producer + Release flash-player when empty. + Use native resolution template-host. + Template-hosts are now choosen automatically if not configured. The template-host with the corresponding video-mode name is now chosen. + Use square pixel dimensions. AMCP ---- o When possible, commands will no longer wait for rendering pipeline. This reduces command execution latencies, especially when sending a lot of commands in a short timespan. o Fixed CINF command. o ADD/REMOVE no longer require subindex, e.g. "ADD 1 SCREEN" / "REMOVE 1 SCREEN" instead of "ADD 1-1 SCREEN" / ... o PARAM is renamed to CALL. o STATUS command is replaced by INFO. o INFO command has been extended: + INFO (lists channels). + INFO 1 (channel info). + INFO 1-1 (layer info). + INFO 1-1 F (foreground producer info). + INFO 1-1 B (background producer info). + INFO TEMPLATE mytemplate (template meta-data info, e.g. field names). o CG INFO command has been extended. + CG INFO 1 (template-host information, e.g. what layers are occupied). Mixer ----- o Fixed alpha with blend modes. o Automatically deinterlace for MIXER FILL commands. Channel ------- o SET MODE now reverts back to old video-mode on failure. Diagnostics ----------- o Improved graphs and added more status information. o Print configuration into log at startup. o Use the same log file for the entire day, instead of one per startup as previously. o Diagnostics window is now closable. Configuration ------------- o Simplified. CasparCG 2.0 Beta 1 (w.r.t Alpha) ================================= o Blending Modes (needs to be explicitly enabled) + overlay + screen + multiply + and many more. o Added additive keyer in addition to linear keyer. o Image adjustements + saturation + brightness + contrast + min input-level + max input-level + min output-level + max output-level + gamma o Support for ffmpeg-filters such as (ee http://ffmpeg.org/libavfilter.html) + yadif deinterlacer (optimized in CasparCG for full multi-core support) + de-noising + dithering + box blur + and many more o 32-bit SSE optimized audio pipeline. o Decklink-Consumer uses external-key by default. o Decklink-Consumer has 32 bit embedded-audio support. o Decklink-Producer has 32 bit embedded-audio support. o LOADBG with AUTO feature which automatically playes queued clip when foreground clip has ended. o STATUS command for layers. o LOG LEVEL command for log filtering. o MIX transitation work with transparent clips. o Freeze on last frame. o Producer buffering is now configurable. o Consumer buffering is now configurable. o Now possible to configure template-hosts for different video-modes. o Added auto transcoder for ffmpeg-producer which automatically transcodes input video into compatible video format for the channel. + interlacing (50p -> 50i) + deinterlacing (50i -> 25p) + bob-deinterlacing (50i -> 50p) + bob-deinterlacing and reinterlacing (w1xh150i -> w2xh250i) + doubling (25p -> 50p) + halfing (50p -> 25p) + field-order swap (upper <-> lower) o Screen consumer now automatically deinterlaces when receiveing interlaced content. o Optimized renderer. o Renderer can now be run asynchronously with producer by using a producer-buffer size greater than 0. o Improved error and crash recovery. o Improved logging. o Added Image-Scroll-Producer o Key-only has now near zery performance overhead. o Reduced memory requirements o Removed "warm up lag" which occured when playing the first media clip after the server has started. o Added read-back fence for OpenGL device for improved multi-channel performance. o Memory support increased from standard 2 GB to 4 GB on 64 bit Win 7 OS. o Added support for 2* Decklink cards in FullHD. o Misc bugs fixes and performance improvements. o Color producer now support some color codes in addition to color codes, e.g. EMPTY, BLACK, RED etc... o Alpha value in color codes is now optional. o More than 2 Decklink cards might be possible but have not yet been tested. CasparCG 2.0 Alpha (w.r.t 1.8) ============================== General ------- o Mayor refactoring for improved readability and mainainability. o Some work towards platorm-independence. Currently the greatest challenge for full platform-independence is flash-producer. o Misc improved scalability. o XML-configuration. o Decklink + Support for multiple decklink-cards. Core ---- o Multiple producers per video_channel. o Multiple consumers per video_channel. o Swap producers between layers and channels during run-time. o Support for upper-field and lower-field interlacing. o Add and remove consumers during run-time. o Preliminary support for NTSC. AMCP ---- o Query flash and template-host version. o Recursive media-folder listing. o Misc changes. Mixer ----- o Animated tween transforms. o Image-Mixer + Fully GPU accelerated (all features listed below are done on the gpu), + Layer composition. + Colorspaces (rgba, bgra, argb, yuv, yuva, yuv-hd, yuva-hd). + Interlacing. + Per-layer image-transforms: + Opacity + Gain + Scaling + Clipping + Translation o Audio-Mixer + Per-layer and per-sample audio-transforms: + Gain + Fully internal audio-mixing. Single output-video_channel. Consumers --------- o Decklink-Consumer + Embedded audio. + HD support. + Hardware clock. o Bluefish-Consumer + Drivers are loaded on-demand (server now runs on computers without installed bluefish-drivers). + Embedded-audio. + Allocated frames are no longer leaked. Producers --------- o Decklink-Producer + Embedded audio. + HD support. o Color-Producer + GPU accelerated. o FFMPEG-Producer + Asynchronous file IO. + Parallel decoding of audio and video. + Colorspace transform are moved to gpu. o Transition-Producer + Fully interlaced transition (previsously only progressive, even when running in interlaced mode). + Per-sample mixing between source and destination clips. + Tween transitions. o Flash-Producer + DirectDraw access (sligthly improved performance). + Improved time-sync. Smoother animations and proper interlacing. o Image-Producer + Support for various imageformats through FreeImage library. Diagnostics ----------- o Graphs for monitoring performance and events. o Misc logging improvements. o Seperate log-file for every run of the server. o Error logging provides full exception details, instead of only printing that an error has occured. o Console with real-time logging output. o Console with AMCP input. Removed ------- o Registry-configuration (replaced by XML-Configuration). o TGA-Producer (replaced by Image-Producer). o TGA-Scroll-Producer