forked from j0r1/EMIPLIB
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
234 lines (216 loc) · 11 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
EMIPLIB ChangeLog
Version 1.2.1, January 2017
* Bugfix release for Qt5 output
Version 1.2.0, December 2016
* Added support for the Opus audio codec.
* Added MIPOutputMessageQueue, MIPOutputMessageQueueSimple,
MIPOutputMessageQueueWithState and MIPOutputMessageQueueWithStateSimple
which perform functions that many components need.
* Fixed small bug in MIPRTPDecoder: used 'timestampUnit' instead
of 'timestamp' when calling the SSRCInfo constructor.
* Added possibility to use a fixed jitter buffering time to
MIPRTPDecoder, instead of the dynamic one used by default.
* Small adjustment in MIPVideoMixer: rounding when calculating
frame number.
* Added MIPRTPJPEGDecoder class, to interpret JPEG data in an RTP
packets as a JPEG encoded frame (see RFC 2435)
* Added a field to MIPMediaMessage to store the receive time if
available. It's up to the MIPRTPPacketDecoder to set this, since
this class creates the MIPMediaMessage instance.
* Added a virtual function onNewMediaMessage to MIPRTPDecoder
which gets called when a new MIPMediaMessage is obtained from
the MIPRTPPacketDecoder class.
* Added soundvolume.cpp example.
* C++11 is required now.
* Update of various components which use libavcodec, so that the
current API is used.
* Removed the Qt3 component and added Qt5 output
* Added a simple PulseAudio component (using the simple API, which
does introduce quite some delay)
* Changed the audio session and various examples, so that PortAudio
is used instead of OSS if possible (OSS is no longer used on Linux
and PortAudio can use various systems)
* To obtain the current time, now alwas JRTPLIB's RTPTime::CurrentTime
is used (was already the case for Win32). This should avoid clock
jumps.
Version 1.1.1, November 2011
* Fixed a bug in the CMake configuration: was unable to handle
path names with spaces.
* In an MS-Windows environment you can now choose to build a
DLL instead of a static library. This should make it easier
to comply with the LGPL when working on that platform.
Version 1.1.0, July 2011
* Switched to CMake build system.
* Bugfix in MIPAVCodecFrameConverter. Forgot to copy media info.
* Added MIPYUV420FileInput.
* Added MIPYUV420FrameCutter.
* Changed MIPRTPL16Encoder and MIPRTPL16Decoder, to make it possible
to use a sampling rate different from 44100 Hz.
* Added SILK based encoding/decoding components, and corresponding
RTP encoding/decoding components.
* Made adjustments for newer jthread & jrtplib versions.
* Fixed bug in PortAudio input/output component.
* Made it possible to specify a specific device in the WinMM input
and output components.
Version 1.0.0, July 2010
* Fixed bugs in MIPComponentChain. The feedback chain building
procedure had to be adjusted slightly to handle the case in
which multiple feedback chains go through the same component.
Also, the procedure needed to start from the ordered list of
connections, not the input list.
* Added MIPAudioTrackOutput and MIPAudioRecorderInput for Android
platform.
* Removed libavcodec code from MIPDirectShowCapture. Component now
generates either YUV420P or YUYV422 data, which can be converted
using a MIPAVCodecFrameConverter instance. Corresponding changes
were made to MIPVideoSession.
* MIPAVCodecDecoder was modified so that the user can choose to
ignore data before the first keyframe.
* Created components MIPRTPH263Encoder and MIPRTPH263Decoder which
cause H.263 video to be encapsulated correctly in RTP packets.
* Added MIPRTPPacketGrouper utility. When data (a single video
frame for example) has to be split over multiple RTP packets,
this class can help group these packets so that they can be
recombined again.
* Added MIPComponentAlias, which basically allows you to refer
to the same component using a different pointer. See documentation
for an example of its usage.
* MIPRTPPacketDecoder interface (and implementation in derived
classes) changed somewhat. When data (like a video frame) is split
over several RTP packets, it is possible that a single packet
signals the completion of more than one frame. Interface was
changed to support this, and corresponding changes to MIPRTPDecoder
were made.
* Old, non standard, video encapsulation in RTP code now also supports
video frames that are larger than a maximum packet size (i.e. data
will be split over multiple RTP packets when necessary). Support
for sending raw YUV420P frames was added as well.
* MIPVideoSession was modified to allow the user to choose between
several video encodings/compressions. The session can also be
initialized for output only, no video is captured in that case.
Version 0.17.0, August 2009
* Added a virtual function to the WAV file input components which gets
called when the last block of the file has been read. This allows
you to stop the chain at that point.
* Added some methods to MIPAudioMixer to allow you to ignore the
audio from particular sources.
* Added methods to MIPAudioMixer to set the internal timer to a
specific value.
* Added support for echo cancellation using the Speex routines.
* Modified MIPAudioMixer so that the setExtraDelay method also works
if the timing information in the messages is not used.
* Changed U-Law and A-Law decoding to a table-lookup method. This also
fixes a bug in the A-Law decoding as was reported by João Pedro Motondon
* Support for newer ffmpeg API.
* Video4Linux2 based input component was added.
* Added a libavcodec based video frame converter.
* Added a component to decompress JPEG encoded video frames using the
TinyJPEG library.
Version 0.16.1, February 2008
* Fixed a bug in MIPInterChainTimer. Forgot to initialize a variable,
causing the timing to fail.
Version 0.16.0, December 2007
* Modified the MIPWinMMOutput component slightly. The changes should
help avoid running out of buffers.
* Fixed some compilation issues on WinCE in the lpccodec.cpp file.
* Added L16 RTP payload types.
* Improved support for user defined RTPSession instances in
MIPAudioSession and MIPVideoSession.
* Added support for soundcard input/output using PortAudio.
* Added MIPStreamBuffer, a class which can be used to safely pass
data between threads.
* Added MIPInterChainTimer, which allows the timing of one chain to
depend on another chain.
* Modified MIPAudioSession to use a MIPInterChainTimer component
if possible. This should improve audio quality.
Version 0.15.0, August 2007:
* Changed the MIPMessage filtering somewhat. The previous implementation
did not create the desired behaviour.
* Added A-law compression/decompression. Thanks to Jim Heising
([email protected]) for contributing the code.
* Fixed bug in MIPWAVReader (8-bit samples were interpreted wrong)
* In MIPAudioSession, other sampling intervals than the defaults can now
be used.
* In MIPAudioSession, you can now select between a number of compression
types.
* Added MIPAudioFilter, with which you can remove certain frequencies from
audio data.
* Added GSM 06.10 compression/decompression.
* Added LPC compression/decompression.
* Added an OpenAL output component.
Version 0.14.0, February 2007:
* Added MIPWAVWriter and MIPWAVOutput. They allow simple sound recording
in case libsndfile isn't available.
* Fixed bug in MIPRTPSpeexDecoder which caused problems when different
sources used different Speex compression modes.
Version 0.13.0, August 2006:
* Modified the MIPRTPDecoder component. Now, the timestamp unit returned
by a MIPRTPPacketDecoder instance can be stored in the corresponding
RTPSourceData instance.
* Added a simple 3D audio implementation which only takes distance into
account.
* Added the possibility to start audio threads with high priority in
Win32 and WinCE implementations.
* Fixed the lack of a 'm_init=false' statement in the destroy function
of MIPAudioSession and MIPVideoSession.
* If a MIPRTPSynchronizer is used in a MIPRTPDecoder, it is now only used
every two seconds. In between, a cached synchronization offset is used.
* Added memory tracking debug code and thread debug code.
Version 0.12.0, July 2006:
* Added MIPResample template function.
* Added SDL audio output component.
* Changed the transmission system. Now, a specific RTP decoder can be
linked to one or more payload types.
* Changed the RTP Speex encoder and decoder so that they no longer
use the 'info' byte transmitted in the previous versions. RTP packets
will now only contain Speex data.
* Added a MIPSpeexUtil class which can be used to detect the way a Speex
frame was encoded (narrow band, wide band or ultra wide band).
* Added U-law encoder/decoder and PCMU RTP encoder/decoder.
* The DirectShow input component should now work better. Thanks to Andrea
Fontana ([email protected]) for supplying the patches.
* Made it possible to change the connections in a chain while it is
running.
* Some parameters in the Speex encoder were not used. Thanks to
Peter De Cleyn ([email protected]) for pointing this out.
Version 0.11.0, April 2006:
* Adjusted the audio session component to make it possible to select
a specific Speex encoding mode (narrow band, wide band, ultra wide
band)
* Created a template function to resample audio. Calculations can
now be done completely using integers.
* Modified the MIPSamplingRateConverter to allow 16 bit signed samples
too.
* In MIPAudioSession and MIPVideoSession, an RTP BYE packet is sent
when the session is stopped.
* A MIPSamplingRateConverter object was added to the MIPAudioSession
class. Otherwise, a Speex packet corresponding to a different
sampling rate would cause the output chain to stop.
* Added a JACK audio output component.
* Added a JACK audio input component.
* Added checks in the configure script for OSS and Video4Linux.
* Removed background thread from the ESD output component.
* Added pkg-config files.
Version 0.10.0, March 2006:
* Fixed bug in MIPAudioSession. In the GNU/Linux version, when the same
OSS device was used for both input and output, there were some problems.
* Added ESD audio output component.
* Added 16 bit signed and unsigned raw audio messages using native byte
order.
* Modified the MIPSampleEncoder component. Now, an int32_t is used as an
intermediate format instead of a float. This should speed things up on
devices without FPU.
* The MIPWAVReader can now also read samples as int16_t values (instead
of only float values)
* The MIPWAVInput component can now also produce samples as 16 bit (native
byte order) audio messages.
* Added Audio File Library audio input component.
* The DirectShow webcam input component now allows the selection of a
specific device (in case more than one is available).
* The audio mixer and Speex components can now also use integer samples
instead of floating point samples only.
* Added a post-build batch file for the MS-Windows version which copies
all the header files to an 'include' subdirectory.
Version 0.9.0, January 2006:
* Initial release