X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=CHANGELOG;h=43477bb5d84eaef5d3fcb18d636fe81ce549091e;hb=0a26b5381ff64b6cb1eb5754ddcdf2e21adb7662;hp=65e6626261f7238777c346953f43e2b5e3d90bdd;hpb=a471b48c19cf74cb51bc497c06b5bfe59ce32948;p=casparcg diff --git a/CHANGELOG b/CHANGELOG index 65e662626..43477bb5d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,14 +1,182 @@ -CasparCG 2.1.0 (w.r.t 2.0 Stable) -================================= +C H A N G E S + +CasparCG 2.1.0 Next (w.r.t 2.1.0 Beta 1) +======================================== + +General +------- + + o Fail early with clear error message if configured paths are not + creatable/writable. + o Added backwards compatibility (with deprecation warning) for using + thumbnails-path instead of thumbnail-path in casparcg.config. + o Suppress the logging of full path names in stack traces so that only the + relative path within the source tree is visible. + o General stability improvements. + o Native thread id is now logged in Linux as well. Finally they are mappable + against INFO THREADS, ps and top. + o Created automatically generated build number, so that it is easier to see + whether a build is newer or older than an other. + o Changed configuration element mipmapping_default_on to mipmapping-default-on + for consistency with the rest of the configuration (Jesper Stærkær). + o Handle stdin EOF as EXIT. + o Added support for RESTART in Linux startup script run.sh. + o Copy casparcg_auto_restart.bat into Windows releases. + o Fixed bug with thumbnail generation when there are .-files in the media + folder. + o Removed CMake platform specification in Linux build script + (Krzysztof Pyrkosz). + o Build script for building FFmpeg for Linux now part of the repository. + Contributions during development (not w.r.t 2.1.0 Beta 1): + + Fix ffmpeg build dependencies on clean Ubuntu desktop amd64 14.04.3 or + higher (Walter Sonius). + o Added support for video modes 2160p5000, 2160p5994 and 2160p6000 + (Antonio Ruano Cuesta). + +Consumers +--------- + + o FFmpeg consumer: + + Fixed long overdue bug where HD material was always recorded using the + BT.601 color matrix instead of the BT.709 color matrix. RGB codecs like + qtrle was never affected but all the YCbCr based codecs were. + + Fixed bug in parsing of paths containing -. + + Fixed bugs where previously effective arguments like -pix_fmt were + ignored. + + Fixed bug where interlaced channels where not recorded correctly for + some codecs. + o DeckLink consumer: + + Rewrote the frame hand-off between send() and ScheduledFrameCompleted() in + a way that hopefully resolves all dead-lock scenarios previously possible. + o Bluefish consumer: + + Largely rewritten against newest SDK Driver 5.11.0.47 (Satchit Nambiar and + James Wise sponsored by Bluefish444): + + Added support for Epoch Neutron and Supernova CG. All current Epoch + cards are now supported. + + Added support for for multiple SDI channels per card. 1 to 4 channels + per Bluefish444 card depending on model and firmware. + + Added support for single SDI output, complementing existing external key + output support. + + Added support for internal key using the Bluefish444 hardware keyer. + o Screen consumer: + + Fixed full screen mode. + +Producers +--------- + + o FFmpeg producer: + + Increased the max number of frames that audio/video can be badly + interleaved with (Dimitry Ishenko). + + Fixed bug where decoders sometimes requires more than one video packet to + decode the first frame. + + Added support for IN and OUT parameters (Dimitry Ishenko). + + Added DV/HDV video device support under Linux (Walter Sonius). + + Remove unused flags variable in queued_seek (Dimitry Ishenko). + + Now recognizes .ts files without probing contents (Ovidijus Striaukas). + o Destroy producer proxy: + + Created workaround for bug in FFmpeg where every new thread used to + cleanup caused handles to leak (not sure why). Reduced the effect by using + only one thread for all producer destructions. + o Framerate producer: + + Fixed bug when INFO was used on a not yet playing framerate producer. + o HTML producer: + + Fixed bug where only URL:s with . in them where recognized. + o Image producer: + + Added LENGTH parameter to allow for queueing with LOADBG AUTO. + + Fixed inconsistency in what file extensions are supported vs listed in + CLS/CINF. + o Layer producer: + + Fixed serious bug where a circular reference of layer producers caused a + stack overflow and server crash. + + Can now route from layer on a channel with an incompatible framerate. + o Channel producer: + + Can now route from channel with an incompatible framerate. + + Deinterlaces interlaced content from source channel. + o Scene producer: + + Added abs(), floor(), to_lower(), to_upper() and length() functions to the + expression language. + + Created XML Schema for the *.scene XML format. Allows for IDE-like auto- + completion, API documentation and validation. + + Added possibility to specify the width and height of a layer instead of + letting the producer on the layer decide. + + Added global variables scene_width, scene_height and fps. + + Made it possible to use expressions in keyframe values. + + Fixed serious bug where uninitialized values were used. + + Created more example scenes. + + Can now forward CALL, CG PLAY, CG STOP, CG NEXT and CG INVOKE to the + producer on a layer. + o CG proxy wrapper producer: + + New in 2.1.0. + + Allows all CG producers to be used as an ordinary producer inside a layer + in a scene. + + Allows the Scene producer to know what variables are available in a + template. + o Color producer: + + Now has support for gradients. + o PSD producer: + + Added support for centered and right justified text. + +Mixer +----- + + o Fixed bug in the contrast/saturation/brightness code where the wrong luma + coefficients was used. + o Rewrote the chroma key code to support variable hue, instead of fixed green + or blue. Threshold setting was removed in favour of separate hue width, + minimum saturation and minimum brightness constraints. Also a much more + effective spill suppression method was implemented. + o Fixed bug where glReadPixels() was done from the last drawn to texture + instead of always from the target texture. This means that for example a + MIXER KEYER layer without a layer above to key, as well as a separate alpha + file with MIXER OPACITY 0 now works as expected. + o Fixed bug where already drawn GL_QUADS were not composited against, causing + for example italic texts to be rendered incorrectly in the text_producer. + +AMCP +---- + + o INFO PATHS now adds all the path elements even if they are using the default + values. + o MIXER CHROMA syntax deprecated (still supported) in favour of the more + advanced syntax required by the rewritten chroma key code. + o Added special command REQ that can be prepended before any command to + identify the response with a client specified request id, allowing a client + to know exactly what asynchronous response matched a specific request. + o Added support for listing contents of a specific directory for CLS, TLS, + DATA LIST and THUMBNAIL LIST. + o Fixed bug where CINF only returned the first match. + + + +CasparCG 2.1.0 Beta 1 (w.r.t 2.0.7 Stable) +========================================== General ------- o 64 bit! + o Linux support! + + Moved to CMake build system for better platform independence. + + Contributions before build system switch (not w.r.t 2.0.7 Stable): + + gitrev.bat adaptions for 2.1 (Thomas Kaltz III). + + Thanks to our already heavy use of the pimpl idiom, abstracting platform + specifics was easily done by having different versions of the .cpp files + included in the build depending on target platform. No #ifdef necessary, + except for in header only platform specific code. + + Flash, Bluefish and NewTek modules are not ported to the Linux build. + + Contributions during development (not w.r.t 2.0.7 Stable): + + Fixed compilation problems in Linux build (Dimitry Ishenko). + + Fixed compilation problem in GCC 5 (Krzysztof Pyrkosz). + + Fixed thumbnail image saving on Linux (Krzysztof Pyrkosz). + + Fixed compilation problem in PSD module (Krzysztof Pyrkosz). 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. + CPU mixer and GPU mixer (previously the usage of the GPU was mandatory) + exists. + Flattened folder structure for easier inclusion of header files. + + Many classes renamed to better describe the abstractions they provide. + + Sink parameters usually taken by value and moved into place instead of + taken by const reference as previously done. + 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 @@ -17,29 +185,657 @@ General 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) + + Complete AMCP command refactoring. + + On-line help system that forces the developer to document AMCP commands, + producer syntaxes and consumer syntaxes making the documentation coupled + to the code, which is great. + + Added missing help for VERSION command (Jesper Stærkær). + + Upgraded Windows build to target Visual Studio 2015 making it possible to + use the C++11 features also supported by GCC 4.8 which is targeted on + Linux. + + Fixed compilation problems in Visual Studio 2015 Update 1 + (Roman Tarasov) + + Created abstraction of the different forms of templates (flash, html, psd + and scene). Each module registers itself as a CG producer provides. All CG + commands transparently works with all of them. + + Audio mixer now uses double samples instead of float samples to fully + accommodate all int32 samples. + + Reduced coupling between core and modules (and modules and modules): + + Modules can register system info providers to contribute to INFO SYSTEM. + + XML configuration factories for adding support for new consumer elements + in casparcg.config. + + Server startup hooks can be registered (used by HTML producer to fork + its sub process). + + Version providers can contribute content to the VERSION command. + o Refactored multichannel audio support to use FFmpeg's PAN filter and + simplified the configuration a lot. + o Upgraded most third party libraries we depend on. + o Some unit tests have been created. + o Renamed README.txt to README, CHANGES.txt to CHANGELOG and LICENSE.txt to + LICENSE + o Created README.md for github front page in addition to README which is + distributed with builds. + o README file updates (Jonas Hummelstrand). + o Created BUILDING file describing how to build the server on Windows and + Linux. + o Diagnostics: + + Now also sent over OSC. + + Diag window is now scrollable and without squeezing of graphs. + + Contextual information such as video channel and video layer now included + in graphs. + o Logging: + + Implemented a TCP server, simply sending every log line to each connected + client. Default port is 3250. + + Changed default log level to info and moved debug statements that are + interesting in a production system to info. + + Try to not log full stack traces when user error is the cause. Stacktraces + should ideally only be logged when a system error or a programming error + has occurred. + + More contextual information about an error added to exceptions. An example + of this is that XML configuration errors now cause the XPath of the error + is logged. + + Improved the readability of the log format. + + Added optional calltrace.log for logging method calls. Allows for trace + logging to be enabled while calltracing is disabled etc. + +OSC +--- + + o Improved message formatting performance. + o Added possibility to disable sending OSC to connected AMCP clients. + o Fixed inconsistent element name predefined_client to predefined-client in + casparcg.config (Krzysztof Pyrkosz). + +Consumers +--------- + + o System audio consumer: + + Pushes data to openal instead of being callbacked by SFML when data is + needed. + + Added possibility to specify the expected delay in the sound card. Might + help get better consumer synchronization. + o Screen consumer: + + Added mouse interaction support, usable by the producers running on the + video channel. + o FFmpeg consumer: + + Replaced by Streaming Consumer after it was adapted to support everything + that FFmpeg Consumer did. + + Added support for recording all audio channels into separate mono audio + streams. + + Now sends recording progress via OSC. + o SyncTo consumer: + + New in 2.1.0. + + Allows the pace of a channel to follow another channel. This is useful for + virtual "precomp" channels without a DeckLink consumer to pace it. + o DeckLink consumer: + + Added workaround for timescale bug found in Decklink SDK 10.7. + + Now ScheduledFrameCompleted is no longer only used for video scheduling + but for audio as well, simplifying the code a lot. + o iVGA consumer: + + No longer provides sync to the video channel. + + Supports NewTek NDI out of the box just by upgrading the + Processing.AirSend library. + +Producers +--------- + + o Scene producer: + + New in 2.1.0. + + Utilizes CasparCG concepts such as producers, mixer transforms and uses + them in a nested way to form infinite number of sub layers. Think movie + clip in Flash. + + A scene consists of variables, layers, timelines and marks (intro and + outro for example). + + Mostly for use by other producers but comes with a XML based producer that + is a registered CG producer and shows up in TLS. + + Enables frame accurate compositions and animations. + + Has a powerful variable binding system (think expressions in After Effects + or JavaFX Bindings). + o PSD producer: + + New in 2.1.0. + + Parses PSD files and sets up a scene for the Scene producer to display. + + Text layers based on CG parameters. + + Supports Photoshop timeline. + + Uses Photoshop comment key-frames to describe where intro and outro (CG + PLAY and CG STOP) should be in the timeline. + + Shows up as regular templates in TLS. + o Text producer: + + New in 2.1.0. + + Renders text using FreeType library. + + Is used by the PSD producer for dynamic text layers. + o Image scroll producer: + + Speed can be changed while running using a CALL. The speed change can be + tweened. + + 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. + o Image producer: + + Fixed bug where too large (OpenGL limit) images were accepted, causing + problems during thumbnail generation. + o Framerate producer: + + New in 2.1.0. + + Wraps a producer with one framerate and converts it to another. It is not + usable on its own but is utilized in the FFmpeg producer and the DeckLink + consumer. + + Supports different interpolation algorithms. Currently a no-op + drop-and-repeat mode and a two different frame blending modes. + + It also supports changing the speed on demand with tweening support. + o FFmpeg producer: + + Supports decoding all audio streams from a clip. Useful with .mxf files + which usually have separate mono streams for every audio channel. + + No longer do framerate conversion (half or double), but delegates that + task to the Framerate producer. + + Added support for v4l2 devices. + + Added relative and "from end" seeking (Dimitry Ishenko). + + Contributions during development (not w.r.t 2.0.7 Stable): + + Fixed 100% CPU problem on clip EOF (Peter Keuter, Robert Nagy). + + Constrained SEEK within the length of a clip (Dimitry Ishenko). + + Fixed a regular expression (Dimitry Ishenko). + o DeckLink producer: + + No longer do framerate conversion (half or double), but delegates that + task to the Framerate producer. + o Route producer: + + Added possibility to delay frames routed from a layer or a channel. + o HTML Producer: + + Disabled web security in HTML Producer (Robert Nagy). + + Reimplemented requestAnimationFrame handling in Javascript instead of C++. + + Implemented cancelAnimationFrame. + + Increased animation smoothness in HTML Producer with interlaced video + modes. + + Added remote debugging support. + + Added mouse interaction support by utilizing the Screen consumer's new + interaction support. + o Flash Producer: + + Contributions during development (not w.r.t 2.0.7 Stable): + + Workaround for flickering with high CPU usage and CPU accelerator + (Robert Nagy) + +AMCP +---- + + o TLS has a new column for "template type" for clients that want to + differentiate between html and flash for example. + o SET CHANNEL_LAYOUT added to be able to change the audio channel layout of a + video channel at runtime. + o HELP command added for accessing the new on-line help system. + o FLS added to list the fonts usable by the Text producer. + o LOCK command added for controlling/gaining exclusive access to a video + channel. + o LOG CATEGORY command added to enable/disable the new log categories. + o SWAP command now optionally supports swapping the transforms as well as the + layers. + o VERSION command can now provide CEF version. + + + +CasparCG Server 2.0.7 Stable (as compared to CasparCG Server 2.0.7 Beta 2) +========================================================================== + +General +------- + + o Added support for using a different configuration file at startup than the + default casparcg.config by simply adding the name of the file to use as the + first command line argument to casparcg.exe. + o Upgraded FFmpeg to latest stable. + o Created build script. + o Fixed bug where both layer_producer and channel_producer display:s and + empty/late first frame when the producer is called before the consumer in + the other end has received the first frame. + o Added rudimentary support for audio for layer_producer and channel_producer. + o Upgraded DeckLink SDK to 10.1.4, bringing new 2K and 4K DCI video modes. New + template hosts also available for those modes. + o General bug fixes (mostly memory and resource leaks, some serious). + o Updated Boost to version 1.57 + o Frontend no longer maintained and therefore not included in the release. + +Mixer +----- + + o Added support for rotation. + o Added support for changing the anchor point around which fill_translation, + fill_scale and rotation will be done from. + o Added support for perspective correct corner pinning. + o Added support for mipmapped textures with anisotropic filtering for + increased downscaling quality. Whether to enable by default can be + configured in casparcg.config. + o Added support for cropping a layer. Not the same as clipping. + +AMCP +---- + + o Added RESUME command to complement PAUSE. (Peter Keuter) + o To support the new mixer features the following commands has been added: + + + MIXER ANCHOR -- will return or modify the anchor point for a layer + (default is 0 0 for backwards compatibility). Example: + MIXER 1-10 ANCHOR 0.5 0.5 + ...for changing the anchor to the middle of the layer + (a MIXER 1-10 FILL 0.5 0.5 1 1 will be necessary to place the layer at the + same place on screen as it was before). + + + MIXER ROTATION -- will return or modify the angle of which a layer is + rotated by (clockwise degrees) around the point specified by ANCHOR. + + + MIXER PERSPECTIVE -- will return or modify the corners of the perspective + transformation of a layer. One X Y pair for each corner (order upper left, + upper right, lower right and lower left). Example: + MIXER 1-10 PERSPECTIVE 0.4 0.4 0.6 0.4 1 1 0 1 + + + MIXER MIPMAP -- will return or modify whether to enable mipmapping of + textures produced on a layer. Only frames produced after a change will be + affected. So for example image_producer will not be affected while the + image is displayed. + + + MIXER CROP -- will return or modify how textures on a layer will be + cropped. One X Y pair each for the upper left corner and for the lower + right corner. + + o Added INFO QUEUES command for debugging AMCP command queues. Useful for + debugging command queue overflows, where a command is deadlocked. Hopefully + always accessible via console, even though the TCP command queue may be + full. + o Added GL command: + - GL INFO prints information about device buffers and host buffers. + - GL GC garbage collects pooled but unused GL resources. + o Added INFO THREADS command listing the known threads and their descriptive + names. Can be matched against the thread id column of log entries. + +Consumers +--------- + + o Removed blocking_decklink_consumer. It was more like an experiment at best + and its usefulness was questionable. + o Added a 10 second time-out for consumer sends, to detect/recover from + blocked consumers. + o Some consumers which are usually added and removed during playout (for + example ffmpeg_consumer, streaming_consumer and channel_consumer) no longer + affect the presentation time on other consumers. Previously a lag on the SDI + output could be seen when adding such consumers. + +HTML producer +------------- + + o No longer tries to play all files with a . in their name. + (Georgi Chorbadzhiyski) + o Reimplemented using CEF3 instead of Berkelium, which enables use of WebGL + and more. CEF3 is actively maintained, which Berkelium is not. (Robert Nagy) + o Implements a custom version of window.requestAnimationFrame which will + follow the pace of the channel, for perfectly smooth animations. + o No longer manually interlaces frames, to allow for mixer fill transforms + without artifacts. + o Now uses CEF3 event loop to avoid 100% CPU core usage. + + + +CasparCG Server 2.0.7 Beta 2 (as compared to CasparCG Server 2.0.7 Beta 1) +========================================================================== + +General +------- + + o Added sending of OSC messages for channel_grid channel in addition to + regular channels. + +Producers +--------- + + o FFmpeg: Reports correct nb_frames() when using SEEK (Thomas Kaltz III) + o Flash: Fixed bug where CG PLAY, CG INVOKE did not work. + +Consumers +--------- + + o channel_consumer: Added support for more than one channel_consumer per + channel. + o decklink_consumer: Added support for a single instance of the consumer to + manage a separate key output for use with DeckLink Duo/Quad cards: + + + 1 + 2 + external_separate_device + + + ...in the configuration will enable the feature. The value of + defaults to the value of + 1. + o synchronizing_consumer: Removed in favour of a single decklink_consumer + managing both fill and key device. + o streaming_consumer: A new implementation of ffmpeg_consumer with added + support for streaming and other PTS dependent protocols. Examples: + + + udp://localhost:5004 + -vcodec libx264 -tune zerolatency -preset ultrafast -crf 25 -format mpegts -vf scale=240:180 + + + ...in configuration or: + + ADD 1 STREAM udp://localhost:5004 -vcodec libx264 -tune zerolatency -preset ultrafast -crf 25 -format mpegts -vf scale=240:180 + + ...via AMCP. (Robert Nagy sponsored by Ericsson Broadcasting Services) + o newtek_ivga_consumer: Added support for iVGA consumer to not provide channel + sync even though connected. Useful for iVGA clients that downloads as fast + as possible instead of in frame-rate pace, like Wirecast. To enable: + + + false + + + ...in config to not provide channel sync when connected. The default is + true. + +AMCP +---- + + o Added support in ADD and REMOVE for a placeholder which + will resolve to the connected AMCP client's IPV4 address. + o Fixed bug where AMCP commands split into multiple TCP packets where not + correctly parsed (http://casparcg.com/forum/viewtopic.php?f=3&t=2480) + + + +CasparCG Server 2.0.7 Beta 1 (as compared to 2.0.6 Stable) +========================================================== + +General +------- + o FFmpeg: Upgraded to master and adapted CasparCG to FFmpeg API changes + (Robert Nagy sponsored by SVT) + o FFmpeg: Fixed problem with frame count calculation (Thomas Kaltz III) + o Fixed broken CG UPDATE. + +Producers +--------- + + o New HTML producer has been created (Robert Nagy sponsored by Flemish Radio + and Television Broadcasting Organization, VRT) + + + +CasparCG Server 2.0.6 Stable (as compared to 2.0.4 Stable) +========================================================== + +General +------- + o iVGA: Allow for the server to work without Processing.AirSend.x86.dll to + prevent a possible GPL violation. It is available as a separate optional + download. + o iVGA: Only provide sync to channel while connected, to prevent channel + ticking too fast. + o FFmpeg: Fixed bug during deinterlace-bob-reinterlace where output fields + were offset by one field in relation to input fields. + o FFmpeg: Fixed bug in ffmpeg_consumer where an access violation occurred + during destruction. + o FFmpeg: Improved seeking. (Robert Nagy and Thomas Kaltz III) + o Frontend: Only writes elements to casparcg.config which overrides a default + value to keep the file as compact as possible. + o System audio: Patched sfml-audio to work better with oal-consumer and + therefore removed PortAudio as the system audio implementation and went back + to oal. + o Flash: Changed so that the initial buffer fill of frames is rendered at a + frame-duration pace instead of as fast as possible. Otherwise time based + animations render incorrectly. During buffer recovery, a higher paced + rendering takes place, but still not as fast as possible, which can cause + animations to be somewhat incorrectly rendered. This is the only way though + if we want the buffer to be able to recover after depletion. + o Fixed race condition during server shutdown. + o OSC: outgoing audio levels from the audio mixer for each audio channel is + now transmitted (pFS and dBFS). (Thomas Kaltz III) + o Stage: Fixed bug where tweened transforms were only ticked when a + corresponding layer existed. + o Screen consumer: Added borderless option and correct handling of name + option. (Thomas Kaltz III) + o AMCP: CLS now reports duration and framerate for MOVIE files were + information is possible to extract. (Robert Nagy) + o Version bump to keep up with CasparCG Client version. + + + +CasparCG Server 2.0.4 Stable (as compared to 2.0.4 Beta 1) +========================================================== + +General +------- + o Can now open media with file names that only consist of digits. + (Cambell Prince) + o Miscellaneous stability and performance improvements. + +Video mixer +----------- + o Conditional compilation of chroma key support and straight alpha output + support in shader (just like with blend-modes) because of performance impact + even when not in use on a layer or on a channel. New 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. + o Fixed bug where MIXER LEVELS interpreted arguments in the wrong order, so + that gamma was interpreted as max_input and vice versa. + +Consumers +--------- + o Added support for NewTek iVGA, which enables the use of CasparCG Server + fill+key output(s) as input source(s) to a NewTek TriCaster without + requiring video card(s) in the CasparCG Server machine, or taking up inputs + in the TriCaster. element in config enables iVGA on a + channel. (Robert Nagy sponsored by NewTek) + o DeckLink: Created custom decklink allocator to reduce the memory footprint. + o Replaced usage of SFML for with PortAudio, because of + problems with SFML since change to static linkage. Also PortAudio seems to + give lower latency. + +Producers +--------- + o FFmpeg: Added support for arbitrary FFmpeg options/parameters + in ffmpeg_producer. (Cambell Prince) + o Flash: Flash Player 11.8 now tested and fully supported. + o Flash: No longer starts a Flash Player to service CG commands that mean + nothing without an already running Flash Player. + o Flash: globally serialize initialization and destruction of Flash Players, + to avoid race conditions in Flash. + o Flash: changed so that the Flash buffer is filled with Flash Player + generated content at initialization instead of empty frames. + +OSC +--- + o Performance improvements. (Robert Nagy sponsored by Boffins Technologies) + o Never sends old values to OSC receivers. Collects the latest value of each + path logged since last UDP send, and sends the new UDP packet (to each + subscribing OSC receiver) with the values collected. (Robert Nagy sponsored + by Boffins Technologies) + o Batches as many OSC messages as possible in an OSC bundle to reduce the + number of UDP packets sent. Breakup into separate packages if necessary to + avoid fragmentation. (Robert Nagy sponsored by Boffins Technologies) + o Removed usage of Microsoft Agents library (Server ran out of memory after a + while) in favour of direct synchronous invocations. + + + +CasparCG Server 2.0.4 Beta 1 (as compared to 2.0.3 Stable) +========================================================== + +General +------- + o Front-end GUI for simplified configuration and easy access to common tasks. + (Thomas Kaltz III and Jeff Lafforgue) + o Added support for video and images file thumbnail generation. By default the + media directory is scanned every 5 seconds for new/modified/removed files + and thumbnails are generated/regenerated/removed accordingly. + o Support for new video modes: 1556p2398, 1556p2400, 1556p2500, 2160p2398, + 2160p2400, 2160p2500, 2160p2997 and 2160p3000. + o Experimental ATI graphics card support by using static linking against SFML + instead of dynamic. Should improve ATI GPU support, but needs testing. + o Added support for playback and pass-through of up to 16 audio channels. See + http://casparcg.com/forum/viewtopic.php?f=3&t=1453 for more information. + o Optimizations in AMCP protocol implementations for large incoming messages, + for example base64 encoded PNG images. + o Logging output now includes milliseconds and has modified format: + YYYY-MM-DD hh:mm:ss.zzz + o Improved audio playback with 720p5994 and 720p6000 channels. + o An attempt to improve output synchronization of consumers has been made. Use + for example: + + + + + 1 + true + + + 2 + true + + + + + ...to instruct the server to keep both DeckLink consumers in sync with each + other. Consider this experimental, so don't wrap everything in + unless synchronization of consumer outputs is needed. For + synchronization to be effective all synchronized cards must have genlock + reference signal connected. + o Transfer of source code and issue tracker to github. (Thomas Kaltz III) + +Layer +----- + o Fixed a problem where the first frame was not always shown on LOAD. + (Robert Nagy) + +Stage +----- + + o Support for layer consumers for listening to frames coming out of producers. + (Cambell Prince) + +Audio mixer +----------- + o Added support for a master volume mixer setting for each channel. + +Video mixer +----------- + o Added support for chroma keying. (Cambell Prince) + o Fixed bug where MIXER CONTRAST set to < 1 can cause transparency issues. + o Experimental support for straight alpha output. + +Consumers +--------- + o Avoid that the FFmpeg consumer blocks the channel output when it can't keep + up with the frame rate (drops frames instead). + o Added support for to create a separate key and fill file when recording with + the FFmpeg consumer. Add the SEPARATE_KEY parameter to the FFmpeg consumer + parameter list. The key file will get the _A file name suffix to be picked + up by the separated_producer when doing playback. + o The Image consumer now writes to the media folder instead of the data + folder. + o Fixed bug in DeckLink consumer where we submit too few audio samples to the + driver when the video format has a frame rate > 50. + o Added another experimental DeckLink consumer implementation where scheduled + playback is not used, but a similar approach as in the bluefish consumer + where we wait for a frame to be displayed and then display the next frame. + It is configured via a consumer element. The benefits of + this consumer is lower latency and more deterministic synchronization + between multiple instances (should not need to be wrapped in a + element when separated key/fill is used). + +Producers +--------- + o Added support for playing .swf files using the Flash producer. (Robert Nagy) + o Image producer premultiplies PNG images with their alpha. + o Image producer can load a PNG image encoded as base64 via: + PLAY 1-0 [PNG_BASE64] + o FFmpeg producer can now use a directshow input filters: + PLAY 1-10 "dshow://video=Some Camera" + (Cambell Prince, Julian Waller and Robert Nagy) + o New layer producer which directs the output of a layer to another layer via + a layer consumer. (Cambell Prince) + +AMCP +---- + o The master volume feature is controlled via the MASTERVOLUME MIXER + parameter. Example: MIXER 1 MASTERVOLUME 0.5 + o THUMBNAIL LIST/RETRIEVE/GENERATE/GENERATE_ALL command was added to support + the thumbnail feature. + o ADD 1 FILE output.mov SEPARATE_KEY activates the separate key feature of the + FFmpeg consumer creating an additional output_a.mov containing only the key. + o Added KILL command for shutting down the server without console access. + o Added RESTART command for shutting down the server in the same way as KILL + except that the return code from CasparCG Server is 5 instead of 0, which + can be used by parent process to take other actions. The + 'casparcg_auto_restart.bat' script restarts the server if the return code is + 5. + o DATA RETRIEVE now returns linefeeds encoded as an actual linefeed (the + single character 0x0a) instead of the previous two characters: + \ followed by n. + o MIXER CHROMA command added to control the chroma keying. Example: + MIXER 1-1 CHROMA GREEN|BLUE 0.10 0.04 + (Cambell Prince) + o Fixed bug where MIXER FILL overrides any previous MIXER CLIP on the same + layer. The bug-fix also has the side effect of supporting negative scale on + MIXER FILL, causing the image to be flipped. + o MIXER STRAIGHT_ALPHA_OUTPUT added to control whether to output straight + alpha or not. + o Added INFO DELAY and INFO - DELAY commands for showing some + delay measurements. + o PLAY 1-1 2-10 creates a layer producer on 1-1 redirecting the output of + 2-10. (Cambell Prince) OSC --- + o Support for sending OSC messages over UDP to either a predefined set of + clients (servers in the OSC sense) or dynamically to the ip addresses of the + currently connected AMCP clients. + (Robert Nagy sponsored by Boffins Technologies) + o /channel/[1-9]/stage/layer/[0-9] + + always /paused [paused or not] + + color producer /color [color string] + + ffmpeg producer /profiler/time [render time] [frame duration] + + ffmpeg producer /file/time [elapsed seconds] [total seconds] + + ffmpeg producer /file/frame [frame] [total frames] + + ffmpeg producer /file/fps [fps] + + ffmpeg producer /file/path [file path] + + ffmpeg producer /loop [looping or not] + + during transitions /transition/frame [current frame] [total frames] + + during transitions /transition/type [transition type] + + flash producer /host/path [filename] + + flash producer /host/width [width] + + flash producer /host/height [height] + + flash producer /host/fps [fps] + + flash producer /buffer [buffered] [buffer size] + + image producer /file/path [file path] + + + +CasparCG Server 2.0.3 Stable (as compared to 2.0.3 Alpha) +========================================================= + +Stage +----- + + o Fixed dead-lock that can occur with multiple mixer tweens. (Robert Nagy) + +AMCP +---- + + o DATA STORE now supports creating folders of path specified if they does not + exist. (Jeff Lafforgue) + o DATA REMOVE command was added. (Jeff Lafforgue) + - 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. + +CasparCG Server 2.0.3 Alpha (as compared to 2.0 Stable) +======================================================= + +General +------- + + 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) CLK --- @@ -55,15 +851,14 @@ 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. + + no longer provides sync to the video channel. o Screen consumer: + Support for multiple screen consumers on the same channel - + No longer spin-waits for vsync + + 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. + o DeckLink consumer now logs whether a reference signal is detected or not. Producers --------- @@ -73,21 +868,17 @@ Producers 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 + previous equivalent of SPEED -1. Movements are done with sub-pixel + 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) -================================== +CasparCG Server 2.0 Stable (as compared to Beta 3) +================================================== General ------- @@ -98,13 +889,15 @@ Consumers --------- o File Consumer - + Changed semantics to more closely follow ffmpeg (see forums). + + 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) -================================== + + +CasparCG Server 2.0 Beta 3 (as compared to Beta 1) +================================================== Formats ------- @@ -121,13 +914,13 @@ 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. + + 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 + o DeckLink Consumer + Low latency enabled by default. + Added graphs for driver buffers. o Screen Consumer @@ -139,8 +932,8 @@ Consumers Producers --------- - o Decklink Producer - + Improved color quality be avoiding uneccessary conversion to BGRA. + o DeckLink Producer + + Improved color quality be avoiding unnecessary 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 @@ -152,14 +945,14 @@ Producers + Improved auto-transcode accuracy. + Improved seeking accuracy. + Fixed bug with looping and LENGTH. - + Updated to newer ffmpeg version. + + 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. + + Release Flash Player when empty. + + Use native resolution TemplateHost. + + TemplateHosts are now chosen automatically if not configured. The + TemplateHost with the corresponding video-mode name is now chosen. + Use square pixel dimensions. AMCP @@ -203,13 +996,10 @@ Diagnostics previously. o Diagnostics window is now closable. -Configuration -------------- - o Simplified. -CasparCG 2.0 Beta 1 (w.r.t Alpha) -================================= +CasparCG Server 2.0 Beta 1 (as compared to Alpha) +================================================= o Blending Modes (needs to be explicitly enabled) + overlay @@ -217,7 +1007,7 @@ CasparCG 2.0 Beta 1 (w.r.t Alpha) + multiply + and many more. o Added additive keyer in addition to linear keyer. - o Image adjustements + o Image adjustments + saturation + brightness + contrast @@ -226,26 +1016,26 @@ CasparCG 2.0 Beta 1 (w.r.t Alpha) + min output-level + max output-level + gamma - o Support for ffmpeg-filters such as (ee http://ffmpeg.org/libavfilter.html) + 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 + o DeckLink-Consumer uses external-key by default. + o DeckLink-Consumer has 24 bit embedded-audio support. + o DeckLink-Producer has 24 bit embedded-audio support. + o LOADBG with AUTO feature which automatically plays 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 MIX transition works 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 + 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) @@ -254,41 +1044,43 @@ CasparCG 2.0 Beta 1 (w.r.t Alpha) + doubling (25p -> 50p) + halfing (50p -> 25p) + field-order swap (upper <-> lower) - o Screen consumer now automatically deinterlaces when receiveing interlaced + o Screen consumer now automatically deinterlaces when receiving 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 + o Added Image-Scroll-Producer. + o Key-only has now near zero performance overhead. + o Reduced memory requirements. + o Removed "warm up lag" which occurred 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 Added support for 2* DeckLink cards in Full HD. 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. + o More than 2 DeckLink cards might be possible but have not yet been tested. + -CasparCG 2.0 Alpha (w.r.t 1.8) -============================== + +CasparCG Server 2.0 Alpha (as compared to 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 Mayor refactoring for improved readability and maintainability. + o Some work towards platform-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. + o DeckLink + + Support for multiple DeckLink cards. Core ---- @@ -312,71 +1104,71 @@ Mixer o Animated tween transforms. o Image-Mixer - + Fully GPU accelerated (all features listed below are done on the gpu), + + Fully GPU accelerated (all features listed below are done on the GPU), + Layer composition. - + Colorspaces (rgba, bgra, argb, yuv, yuva, yuv-hd, yuva-hd). + + Color spaces (rgba, bgra, argb, yuv, yuva, yuv-hd, yuva-hd). + Interlacing. - + Per-layer image-transforms: + + Per-layer image transforms: + Opacity + Gain + Scaling + Clipping + Translation - o Audio-Mixer - + Per-layer and per-sample audio-transforms: + o Audio Mixer + + Per-layer and per-sample audio transforms: + Gain - + Fully internal audio-mixing. Single output-video_channel. + + Fully internal audio mixing. Single output video_channel. Consumers --------- - o Decklink-Consumer + o DeckLink Consumer + Embedded audio. + HD support. + Hardware clock. - o Bluefish-Consumer + o Bluefish Consumer + Drivers are loaded on-demand (server now runs on computers without - installed bluefish-drivers). - + Embedded-audio. + installed Bluefish drivers). + + Embedded audio. + Allocated frames are no longer leaked. Producers --------- - o Decklink-Producer + o Decklink Producer + Embedded audio. + HD support. - o Color-Producer + o Color Producer + GPU accelerated. - o FFMPEG-Producer + 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 + + Color space transform are moved to GPU. + o Transition Producer + + Fully interlaced transition (previously 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). + o Flash Producer + + DirectDraw access (slightly improved performance). + Improved time-sync. Smoother animations and proper interlacing. - o Image-Producer - + Support for various imageformats through FreeImage library. + o Image Producer + + Support for various image formats 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 Separate log file for every run of the server. o Error logging provides full exception details, instead of only printing that - an error has occured. + an error has occurred. 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 + o Registry configuration (replaced by XML Configuration). + o TGA Producer (replaced by Image Producer). + o TGA Scroll Producer