1 Cubemap 1.5.1, 2023-12-17
3 * Use systemd.pc to place systemd system units.
4 Patch by Chris Hofstaedtler.
7 Cubemap 1.5.0, 2023-12-09
9 * Support input from pipes (subprocesses).
11 With a program that can output Metacube on stdout, such as a suitably
12 patched FFmpeg binary, this gives Cubemap transcoding/remuxing capabilities.
14 Of course, one cannot upgrade such a binary by SIGHUP-ing it, but it will
15 survive a Cubemap reload/restart.
17 * Add a LD_PRELOAD-able library to force Metacube output from FFmpeg.
19 This hooks just the right amount of functions to add Metacube output
20 to arbitrary FFmpeg programs, but is obviously very brittle.
21 (Native FFmpeg support would be better, but a patch did not
22 go through when I tried a while back.) It is only lightly tested.
23 Documentation in the README and cubemap.config.sample.
28 Cubemap 1.4.3, 2019-11-17
30 * Keep the HLS backlog even if the stream header changes. Useful
31 for streaming fMP4 across backend restarts, at least given a
32 reasonable client (not all can play or even seek across
38 Cubemap 1.4.2, 2018-12-21
40 * Fix an issue with backlogs larger then 2 GB.
43 Cubemap 1.4.1, 2018-09-12
45 * Fix some 32-bit compilation issues.
48 Cubemap 1.4.0, 2018-09-01
50 * NOTE: Cubemap now requires a C++11 compiler. Also, live upgrades
51 from Cubemap before version 1.2.0 is no longer supported (upgrade
52 through 1.3.2 first if this is a problem for you).
54 * Support for TLS 1.2, through the tlse library (a lightly patched
55 version is included) and kTLS. This requires Linux >= 4.17.
57 * Support for fMP4 (HLS), including generating playlists on-the-fly.
58 This requires an input Metacube stream generated by Nageru >= 1.7.2.
59 See cubemap.config.sample for an example.
61 * Fix an issue that would cause problems with UDP inputs on reload
62 (unless their source encoding was explicitly marked as raw).
65 Cubemap 1.3.2, 2017-05-24
67 * Fix a bug where streams with paths exactly seven characters long
68 (e.g. “/abc.ts”) would get broken buffering behavior, as they would
69 start at the start of the backlog, not the end as they should.
70 This caused massively increased latency and/or problems playing back
74 Cubemap 1.3.1, 2016-07-23
76 * Support Metacube timestamp blocks. This allows Metacube producers
77 to add timestamps at arbitrary places between blocks, which,
78 provided that the system clocks on both sides are in sync, allows
79 Cubemap to produce a latency measure. If the latency is very high
80 (and/or keeps going up), you will know that the network has problems
81 keeping up with transporting the stream, even in the absence of
84 At the time of release, only Nageru adds timestamp blocks;
88 Cubemap 1.3.0, 2016-07-14
90 * Add an option for raw (non-Metacube) inputs over HTTP
91 (src_encoding=raw). Only really useful for TS.
93 * If a HTTP input fails multiple times, silence it in the error log
94 for the next minute. This reduces the amount of logging for a
95 permanently dead input stream by a lot, although of course,
96 such streams should generally just be removed from the
97 configuration altogether.
100 Cubemap 1.2.2, 2016-04-02
102 * Fix literal IPv6 address parsing in URLs.
104 * Fix a bug (introduced in 1.2.0) where access.log would have monotonic
105 timestamps (typically time since boot) instead of real time.
107 * Increase the Metacube block size warning limit from 1MB to 10MB, as MP4
108 muxing can legitimately create huge blocks.
111 Cubemap 1.2.1, 2015-08-30
113 * Use libsystemd to inform systemd accurately about when the service is up
114 and running. Note that this means Cubemap now also depends on libsystemd.
116 * Add a simple HTTP endpoint that returns a very short string (gen204),
119 * Document config options better in cubemap.config.sample.
122 Cubemap 1.2.0, 2015-07-24
124 * Add support for server-side prebuffering (force_prebuffering=NNN
125 on a stream to prebuffer that amount of bytes), where Cubemap doesn't
126 send any data before it knows it can send a certain number of
127 bytes without waiting for more from the input (either through
128 giving out old data, waiting for new data, or a combination).
130 This is useful when using jwPlayer or <video> in browsers, where
131 the client typically does not wait to fill up its buffer before it
132 starts playing, and thus will stay perenially in a low-buffer state.
133 Effectively it is forcing a certain amount of buffering on the client.
135 * Log the client's Referer: and User-Agent: header in the stats file and
138 * Time out clients that go more than 60 seconds without sending a request;
139 they could hang in that state for days and months before.
142 Cubemap 1.1.2, 2014-07-07
144 * Remove some leftover debug code that would cause compile errors.
147 Cubemap 1.1.1, 2014-07-06
149 * Fix parsing of IPv6 SSM URLs. Also add an example to the
152 * Change the default backlog size to 10 MB.
155 Cubemap 1.1.0, 2014-04-30
157 * Multicast support, both for sending and receiving;
158 both IPv4 and IPv6, both ASM and SSM.
160 * Drop support for fwmark, since it is obsolete with sch_fq
163 * Many smaller bugfixes.
166 Cubemap 1.0.4, 2014-03-23
168 * Fix a segfault on reload that was introduced in 1.0.2.
170 * Remove the Metacube VLC patch, as it is now upstream.
172 * Always compile with large file support, which works around
173 a blocking issue with 32-bit x86.
176 Cubemap 1.0.3, 2014-02-06
178 * Fix a compilation error with newer glibc.
181 Cubemap 1.0.2, 2014-02-04
183 * Support SO_MAX_PACING_RATE (Linux 3.13 and above).
185 * Add a listen statement to listen only on specific IP addresses,
186 in addition to the port statement.
188 * Update the VLC Metacube patch to apply to current VLC git.
190 * Fix a crash bug on reload.
192 * Be more consistent about handling streams that have no data yet.
193 In particular, this could show itself as erratic behavior when
194 sending Metacube streams on to other Cubemap instances.
197 Cubemap 1.0.1, 2013-09-19
201 * Fix an issue where Cubemap could be slow when /tmp was slow
202 (ie., not on SSD and not on tmpfs), due to high mutex contention.
204 * Fix compilation on 32-bit systems.
206 * Various packaging fixes and a systemd service unit, contributed
209 * Use the new deleted-by-default temporary files if available
210 (Linux 3.11 and above).
213 Cubemap 1.0.0, 2013-08-24