2
- Fixed the "testReplicator" demo application code to actually do what it claims - transmit one replica stream via UDP,
3
while writing the other replica stream to a file.
4
(We had accidentally omitted the line that transmits one replica stream via UDP.)
5
- Fixed a bug in the implementation of "StreamReplicator::deleteReplica()". (Thanks to Bruno Abreu for reporting this.)
6
- Fixed a bug in "RTSPServer" that would occur if you tried to add two different "ServerMediaSession" objects using the same
7
stream name. (Thanks to Vadim Kosarev for noting this.)
8
- Added "-DXLOCALE_NOT_USED=1" to "config.cygwin" (on the suggestion of Warren Young).
11
- Modified the "RTSPClient" implementation to be more careful about not accessing the "RTSPClient" object's state after
12
calling "handleRequestError()", in case the handler function handles the error by deleting the "RTSPClient" object itself.
13
(The "testRTSPClient" demo application does this, for example.) (Thanks to Gord Umphrey for reporting a problem,
14
and to Guy Bonneau for pointing out this as a possible cause.)
15
- Fixed a typo in the "Makefile.tail" file for the "mediaServer" directory. (Thanks to 'Nix Lo' for the report.)
16
- Removed an unneeded "typedef" from "Locale.hh"; it was causing compiler warnings. (Thanks to Barry Stump and Warren Young
20
- Added a debugging error message to various "*Sink" classes, to warn when the "numTruncatedBytes" parameter in the 'after getting'
21
function is >0. When this happens, you need to increase the "bufferSize" parameter in the appropriate "*::createNew()" call.
22
- Changed the buffer size used by the "testH264VideoToTransportStream" demo application from 10000 to 100000, because input H.264
23
NAL units are often larger than 10000 bytes.
24
- Changed the default 'buffer size' parameter in "H264VideoFileSink::createNew()" from 10000 to 100000, because input H.264
25
NAL units are often larger than 10000 bytes.
26
- Changed the signature of "AuxHandlerFunc()" (used by the "setAuxilliaryReadHandler()" hack) to pass "packetSize" by reference
27
instead of by value. (Thanks to Keary Griffin for this suggestion; he was using this mechanism to implement SRTP.)
28
- Changed the way that we disable the handling of SIGPIPE signals in "RTSPServer.cpp" (so that the server doesn't get killed
29
when clients, running on the same host, get killed). (Phillipe Clavel reported that the old method
30
- "signal(SIGPIPE, SIG_IGN);" - wasn't working properly on Mac OS X.)
33
- Made some cosmetic changes to the "live555ProxyServer" code, prior to its official announcement.
36
- Added "ProxyServerMediaSession" - a subclass of "ServerMediaSession" that can be used to create a (unicast) RTSP servers
37
that acts as a 'proxy' for another (unicast or multicast) RTSP/RTP stream.
38
- Added a new application "live555ProxyServer", and included it in a new subdirectory "proxyServer/" in the
39
"LIVE555 Streaming Media" distribution. This application - which uses the new "ProxyServerMediaSession" class - acts as
40
a unicast RTSP server 'proxy' for one or more 'back end' (unicast or multicast) RTSP streams, specified on the command line.
41
- Fixed an obscure bug in RTP/RTCP-over-TCP reading. (Thanks to Shiyong Zhang for reporting this.)
42
- Changed the definition of "Boolean" in "UsageEnvironment/include/Boolean.hh" from "unsigned" to "unsigned char",
43
to avoid an apparent conflict when compiling for Mac OS X (and also to save some space).
44
(Thanks to Barry Stump for the suggestion.)
45
- Madea a minor change to "RTPInterface" to accommodate RTSP clients that call 'startPlaying()' on a "RTPSource" object prior
46
to the handling of a RTSP "SETUP" response. (This change affected only RTP-over-TCP streams.)
47
- Changed the "RTSPClient" "fVerbosityLevel" field from "private:" to "protected:", to allow subclasses to use it in their own
49
- Made some changes to "GroupsockHelper.cpp" that were allegedly needed for compilation for 'Android'.
50
- Made a minor change to "NetCommon.h" that allegedly improves/fixes compilation for some version of Windoze.
51
- Removed the "MP3HTTPSource" class; it was old code that shouldn't be used.
54
- Made some changes to "H264VideoRTPSink" and "T140TextRTPSink" to correct some minor bugs.
55
- Improved the way that "H264VideoStreamDIscreteFramer" detects and reports NAL units that erroneously begin with
57
- Fixed a bug in the way in which the "ServerMediaSession" reference count is updated by "RTSPServer::RTSPClientSession" objects.
58
(Thanks to Daniel Liu for reporting this.)
59
- Modified the "MultiFramedRTPSource" code to optimize the case when the 'packet reordering threshold' has been set to 0.
60
(Doing this is not recommended, however, unless you're only going to be on networks where packet reordering is extremely
62
- Added a new member function "reassignInputSource()" to "FramedFilter", to allow a filter's input source to be changed.
63
- Changed some comments in "testRTSPClient.cpp" to make it clearer that if you (for whatever reason) choose to reclaim the
64
"UsageEnvironment" and "TaskScheduler" objects, then you can do so only *outside* the event loop (e.g., in "main()", after
65
"doEventLoop()" has returned).
68
- Fixed a bug in the way that "MPEG1or2DemuxedServerMediaSubsession" creates "AC3AudioStreamFramer" objects.
69
This was causing errors in the way that AC3 audio tracks in VOB files were being streamed by "testOnDemandRTSPServer".
70
(Thanks to "Rustam" for reporting this issue.)
71
- Corrected a potentially misleading error message in "RTSPClient". (Thanks to Sebastien Escudier for reporting this.)
74
- Fixed a bug in the "RTSPServer" implementation that could prevent it from properly handling 'pipelined' requests
75
(such as "SETUP" requests) from a single client.
76
- Updated the "RTSPClient" code to (when "verbosityLevel" > 0) output a warning message when the server 'skips over' one of our
77
earlier requests. If this happens, it indicates a bug in the server (perhaps a bug in the way that the server handles
78
pipelined requests - such as the bug that we just fixed in our own server here).
79
- Fixed a bug in the "RTSPClient" code that prevented it from properly handling 'pipelined' responses from a single server.
80
- Fixed a bug in the Matroska file parsing code that could cause an infinite loop when streaming from a multi-track file.
81
- Updated the "RTSPServer" code to no longer attempt to seek, or set the scale of, a subsession within a multi-subsession
82
stream. (Instead, these operations can be done only on the 'aggregate' session.)
83
- Added a new member function "addFilter()" to "MediaSubsession". This allows RTP receivers to add a filter (such as a 'framer')
84
in front of the subsession's "readSource()", changing "readSource()" to be this new filter.
85
- Fixed a minor bug in "ServerMediaSession" that was causing it to generate incomplete default 'info' and 'description' strings
87
- Fixed a minor bug in "T140TextRTPSink": Make sure that the 'idle timer' (for delivering empty frames downstream) gets turned
88
off when the input source closes.
89
- Fixed the testing of the "mpeg4Mode" parameter to the "MPEG4GenericRTPSink" constructor, to make it case-insensitive.
90
- Added new versions of "H264VideoRTPSink::createNew()" that (optionally) take SPS and PPS NAL units
91
(either in raw binary form, or as a 'sprop-parameter-string') as parameters. This is useful if you know this information in
92
advance, rather than having to get it from the input 'framer' object.
93
- Added a new version of "H264VideoStreamFramer::setSPSandPPS()" that takes a 'sprop-parameter-string'
94
(instead of the raw binary NAL units) as parameter.
95
- Added a new version of "MPEG4ESVideoRTPSink::createNew()" that takes stream configuration information as a parameter. This is
96
useful if you know this information in advance, and don't want to rely upon the sink getting this from the input 'framer' object.
97
- Added a member function "MPEG4VideoStreamFramer::setConfigInfo()" that can be used to (optionally) set stream configuration
98
information, without requiring the framer to read it from the input source.
99
- Added a new version of "VorbisAudioRTPSink::createNew()" that takes a Base-64-encoded 'configuration' string - rather than
100
raw configuration headers - as parameter.
101
- Added a minor hack to "MediaSubsession" to allow ADU-ized MP3 frames to optionally be received 'as is',
102
instead of always converting them back to MP3 frames for delivery.
103
- Added a new member function "ServerMediaSession::numSubsessions()" to return the number of "ServerMediaSubsessions" that have
104
been added to the "ServerMediaSession".
105
- Changed the signature of "base64Decode()" to make its string argument "char const*" instead of "char*" (for extra type safety).
2
108
- We no longer define RTSPCLIENT_SYNCHRONOUS_INTERFACE by default. Consequently, the old, now-deprecated 'synchronous' "RTSPClient"
3
109
interface will no longer be available, by default. If you still want this, however, you can get it by "#define"ing