Cubemap 1.5.2, 2024-08-11

  * Fix compatibility with FFmpeg 7.0.


Cubemap 1.5.1, 2023-12-17

  * Use systemd.pc to place systemd system units.
    Patch by Chris Hofstaedtler.


Cubemap 1.5.0, 2023-12-09

  * Support input from pipes (subprocesses).

    With a program that can output Metacube on stdout, such as a suitably
    patched FFmpeg binary, this gives Cubemap transcoding/remuxing capabilities.

    Of course, one cannot upgrade such a binary by SIGHUP-ing it, but it will
    survive a Cubemap reload/restart.

  * Add a LD_PRELOAD-able library to force Metacube output from FFmpeg.

    This hooks just the right amount of functions to add Metacube output
    to arbitrary FFmpeg programs, but is obviously very brittle.
    (Native FFmpeg support would be better, but a patch did not
    go through when I tried a while back.) It is only lightly tested.
    Documentation in the README and cubemap.config.sample.

  * Various bugfixes.


Cubemap 1.4.3, 2019-11-17

  * Keep the HLS backlog even if the stream header changes. Useful
    for streaming fMP4 across backend restarts, at least given a
    reasonable client (not all can play or even seek across
    discontinuities).

  * Various bugfixes.


Cubemap 1.4.2, 2018-12-21

  * Fix an issue with backlogs larger then 2 GB.


Cubemap 1.4.1, 2018-09-12

  * Fix some 32-bit compilation issues.


Cubemap 1.4.0, 2018-09-01

  * NOTE: Cubemap now requires a C++11 compiler. Also, live upgrades
    from Cubemap before version 1.2.0 is no longer supported (upgrade
    through 1.3.2 first if this is a problem for you).

  * Support for TLS 1.2, through the tlse library (a lightly patched
    version is included) and kTLS. This requires Linux >= 4.17.

  * Support for fMP4 (HLS), including generating playlists on-the-fly.
    This requires an input Metacube stream generated by Nageru >= 1.7.2.
    See cubemap.config.sample for an example.

  * Fix an issue that would cause problems with UDP inputs on reload
    (unless their source encoding was explicitly marked as raw).


Cubemap 1.3.2, 2017-05-24

  * Fix a bug where streams with paths exactly seven characters long
    (e.g. “/abc.ts”) would get broken buffering behavior, as they would
    start at the start of the backlog, not the end as they should.
    This caused massively increased latency and/or problems playing back
    the streams properly.


Cubemap 1.3.1, 2016-07-23

  * Support Metacube timestamp blocks. This allows Metacube producers
    to add timestamps at arbitrary places between blocks, which,
    provided that the system clocks on both sides are in sync, allows
    Cubemap to produce a latency measure. If the latency is very high
    (and/or keeps going up), you will know that the network has problems
    keeping up with transporting the stream, even in the absence of
    other error messages.

    At the time of release, only Nageru adds timestamp blocks;
    VLC does not.


Cubemap 1.3.0, 2016-07-14

  * Add an option for raw (non-Metacube) inputs over HTTP
    (src_encoding=raw). Only really useful for TS.

  * If a HTTP input fails multiple times, silence it in the error log
    for the next minute. This reduces the amount of logging for a
    permanently dead input stream by a lot, although of course,
    such streams should generally just be removed from the
    configuration altogether.


Cubemap 1.2.2, 2016-04-02

  * Fix literal IPv6 address parsing in URLs.

  * Fix a bug (introduced in 1.2.0) where access.log would have monotonic
    timestamps (typically time since boot) instead of real time.

  * Increase the Metacube block size warning limit from 1MB to 10MB, as MP4
    muxing can legitimately create huge blocks.


Cubemap 1.2.1, 2015-08-30

  * Use libsystemd to inform systemd accurately about when the service is up
    and running. Note that this means Cubemap now also depends on libsystemd.

  * Add a simple HTTP endpoint that returns a very short string (gen204),
    for timing purposes.

  * Document config options better in cubemap.config.sample.
 

Cubemap 1.2.0, 2015-07-24

  * Add support for server-side prebuffering (force_prebuffering=NNN
    on a stream to prebuffer that amount of bytes), where Cubemap doesn't
    send any data before it knows it can send a certain number of
    bytes without waiting for more from the input (either through
    giving out old data, waiting for new data, or a combination).

    This is useful when using jwPlayer or <video> in browsers, where
    the client typically does not wait to fill up its buffer before it
    starts playing, and thus will stay perenially in a low-buffer state.
    Effectively it is forcing a certain amount of buffering on the client.

  * Log the client's Referer: and User-Agent: header in the stats file and
    access log.

  * Time out clients that go more than 60 seconds without sending a request;
    they could hang in that state for days and months before.


Cubemap 1.1.2, 2014-07-07

  * Remove some leftover debug code that would cause compile errors.


Cubemap 1.1.1, 2014-07-06

  * Fix parsing of IPv6 SSM URLs. Also add an example to the
    configuration file.

  * Change the default backlog size to 10 MB.


Cubemap 1.1.0, 2014-04-30

  * Multicast support, both for sending and receiving;
    both IPv4 and IPv6, both ASM and SSM.

  * Drop support for fwmark, since it is obsolete with sch_fq
    around.

  * Many smaller bugfixes.


Cubemap 1.0.4, 2014-03-23

  * Fix a segfault on reload that was introduced in 1.0.2.

  * Remove the Metacube VLC patch, as it is now upstream.

  * Always compile with large file support, which works around
    a blocking issue with 32-bit x86.


Cubemap 1.0.3, 2014-02-06

  * Fix a compilation error with newer glibc.


Cubemap 1.0.2, 2014-02-04

 * Support SO_MAX_PACING_RATE (Linux 3.13 and above).

 * Add a listen statement to listen only on specific IP addresses,
   in addition to the port statement.

 * Update the VLC Metacube patch to apply to current VLC git.

 * Fix a crash bug on reload.

 * Be more consistent about handling streams that have no data yet.
   In particular, this could show itself as erratic behavior when
   sending Metacube streams on to other Cubemap instances.


Cubemap 1.0.1, 2013-09-19

 * Added NEWS file.

 * Fix an issue where Cubemap could be slow when /tmp was slow
   (ie., not on SSD and not on tmpfs), due to high mutex contention.

 * Fix compilation on 32-bit systems.

 * Various packaging fixes and a systemd service unit, contributed
   by Philipp Kern.

 * Use the new deleted-by-default temporary files if available
   (Linux 3.11 and above).


Cubemap 1.0.0, 2013-08-24

 * Initial release.
