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