summaryrefslogtreecommitdiff
path: root/HISTORY
blob: b4288fe4e31386a32f81fb2942089b497a70e0dc (plain)
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
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
VDR Plugin 'dxr3' Revision History
----------------------------------

2002-08-04: Version 0.0.1

- Initial revision.

2002-11-10: Version 0.1.0

- Rewritten Audio/Video-sync engine
- Changed OSD colors (but still limited to four colors)

2002-11-12: Version 0.1.1

- Changed Makefile (needed for vdr 1.1.15)
- The plugin should now work smoother under heavy system load (e.g. network traffic)

2002-12-23: Version 0.1.2
- Compiles now with gcc3.2.
- Fixed unsigned / signed bug in output thread (dxr3outputthread.c) which led
to sporadic resync (still frame and jump of about 1s).
- OSD is now as colorful as vdr with DVB-s
- OSD rescaling for channels with a lower horizontal resolution

2002-12-29: Version 0.1.3
- SPU write is now protected with a mutex by using the Dxr3AbstractionDevice.
- Fixed horizontal size detection.
- Added usleep call during still picture to reduce cpu load.
- Removed calls to WaitForSysClock in dxr3outputthread.c which led to problems
during replay on some systems (Thanks to Atte Manninen for reporting this).
- Did some minor changes to dxr3outputthread.c which hopefully will increase
reliability.
- Changed osd scale rule. Scaling now only happens if the horizontal size is
smaller than 700.

2003-01-05: Version 0.1.4
- Small bugfix in dxr3demuxdevice.c

2003-02-19: Version 0.1.5
- Support for MP3 plugin.
- Support for radio channels. Requested by Richard P. (???) who send me a
  sample code ... thanks.
- Some fixes to get along with corrupt pes data (which should actually be
  solved in a lower layer). Thanks to Teemu Rantanen.
- Changed sync buffer size during replay to reduce "jumps" in cutted streams.
  Thanks to Atte Manninen for the idea.
- Support for still frame handling. Now it is possible to move the editing
  marks with visible corresponding i-frames. Unfortunately this doesn't seem to
  work with finish dvb streams.
- Some tuning to reduce cpu load during replay.

2003-02-25: Version 0.1.6
- Added black frames between channel switches (which solves the frozen picture 
  'problem' when using the mp3-plugin, too).
- Increased thread priority of output threads which improves live stream
  quality on my system (K6II 350).

2003-03-23: Version 0.1.7
- Added unix domain server interface to close and reopen dxr3 devices without
  stopping vdr (see dxr3_ux_client.pl script on how to use this).
  Requested by Atte Manninen.
  Thanks to Atte Manninen and Teemu Rantanen for testing and fixing some problems.
- Added support for external player mode.
- Some cosmetic changes.
- Some changes to reduce cpu load.
- Added workaround handling for osd crash (driver patch necessary; patch with
  em8300_patch.diff).
  Thanks to Teemu Rantanen and Malcolm Caldwell for testing this.
- Added buffered output for mp3-plugin audio data. This seems to improve audio
  quality significantly.
- Reduced count of audio errors (wrong data rate).
- Changed channel switch behavior (to remove audio disturbances => channel switching
  is a little bit slower now).
- Added exception handling for defect pes streams.
- Added more checks by introducing a new pes parsing class.
- Fixed buffer overrun problem. Because of the missing pll control a buffer overrun
  happens after staying for a long time on the same channel. In older version
  the output stopped after a buffer overrun. Now the buffer will be cleared and
  the output will continue after about a second.
- New buffer handling in PlayVideo.

2003-03-23: Version 0.1.7a
- Bugfix in A/V-engine for audio output with less dropouts

2003-04-28: Version 0.1.8
- Added support for dvd-plugin (subtitles doesn't work properly so far).
- Added setup parameter to define the dxr3-card which shall be used  by vdr
  (thanks to Tobias Haustein).
- Added setup parameter to force letter box mode (for wrong aspect ratio coded
  in pes-stream). This parameter is not saved.
- Added support for video format setup parameter (no WSS support).
- Fixed external player support (thanks to Seppo Ingalsuo).
- Added volume support (thanks to Teemu Rantanen).
- Fixed I-Frame display problem (cutting and fast forward/backwards in some streams).
  Those who have problems with fast forward/backward might want to patch
  vdr (use vdr_iframe_patch.diff / for vdr-1.1.29).
- Reduced memory consumption.
- Fixed problem with digital output setup parameter.
- Fixed wrong bit error detection.
- Changed bit error handling.

2003-04-28: Version 0.1.8a
- Second trial to fix external player support (thanks to Jarkko Santala)

2003-05-07: Version 0.1.9
- Added support for AC3 streams (based on classes of
  the AC3overDVB Patch maintained by Stefan Huelswitt).
- Added DXR3 main menu entry. It's now possible to:
    - Reset DXR3-hardware.
    - Toggle Force LetterBox.
    - Switch to Digital Output.
    - Switch to AC3 Output (when already listening to digital output).
- Added short ac3 information text on channel switch.
- Reduced analog audio disturbances.
- Fixed audio initialization problem.

2003-05-07: Version 0.2.0
- Fixed compatibility problem with vdr version 1.1.31 and higher.
- Fixed analog audio problem (spurious disturbances).
- Added first cut mpeg1 support: It works quite good with vcd plugin. As far as I know
  this doesn't work reliable together with analog plugin. Thanks to Gavin Hamill for
  testing support and investigations with analog plugin.
  No osd scaling for mpeg1 at the moment.
- Changed channel switch behavior with respect to mpeg1 support (it doesn't seem
  to be possible to switch between mpeg1 and mpeg2 without closing and reopening the
  video device).
- Improved lib sync.

2003-08-10: Version 0.2.1
- Added setup entry to switch between ntsc and pal. This setting becomes active
  after restarting vdr and reseting the dxr3 card, respectively.
- Fixed uninitialized variable m_audioMode in dxr3abstractiondevice.c. Thanks 
  to Jon Burgess.
- Fixed incorrect ioctl-problem. Thanks to Jon Burgess.
- Fixed wrong scaled osd problem when starting vdr without live stream.
- Fixed external player problem when return to dxr3 output after using ac3 output.
  Thanks to Jarkko Santala for reporting this one.
- Fixed wrong assert-call. Thanks to Andre Neumann.

2004-01-04: Version 0.2.2

- Some initialization fixes. Thanks to Jon Burgess.
- Added patch from Teemu Rantanen to emergency exit if
  the plugin is not able to recover from dxr3 driver crash.
- Fixed some osd problems (Elchi, Games, etc.).
- Changed Makefile to support vdr-1.3.0.

2004-06-22: Version 0.2.3-alpha1 (only for vdr-portal.de)

- we are using now <linux/em8300.h> instead of "em8300.h"
- updated multichannelaudio.h/c with newest AC3overDVB-Patch-Source (0.2.6)
- switched to new osd routines for vdr-1.3.7
- added dxr3singleton.h
- new interface to work with ffmpeg (chagned include to <avcodec.h>)
- added a lot of commments and cosmetic code cleanups
- using everywhere std::string - makes life nicer
- moved dxr3absdevice to dxr3interface
- rewritten some parts of dxr3interface
- added anti-glinsch-when-fast-forward-and-then-play-patch ;)
- killed DIAG and added a global logger, which is used only in
  a few functions and not in every like DIAG
- removed cDxr3StatusMonitor - i dont know why we need this
- cleaned out unneeded includes
- fixed memory leak in cDxr3Interface::UploadMicroCode:
  If uploading of the microcode failed, the allocated memory wasn't
  freed.
- If we are changing the audiooutput now the plugin will call an overworked
  AudioRepoen function, which does not shutdown the whole card.
- Things like VIDEOMODE and AUDIOMODE are now set only ONCE on plugin start!
- added check if memory in cDxr3SyncBuffer is allocated correct
- introced a 'ToDo-System'.
  in every *.c file there can be something like this at the top of the file:
  /*
	ToDo:
		- cDxr3SyncBuffer::Push: XXX This is only a workaround until a sufficient control algorithm is implemented
  */

  So it is easier to keep track of stuff, which needs more work.
- some small changes in dxr3colormanger.h/c
- some small changes in dxr3pesframe.h/c
- some small changes in spuenc.h/c
- killed spu_dump in spuenc.h/c
- renamed spuenc.h/c to dxr3interface_spu_encoder.h/c
- changed dxr3audiodecoder to support the new ffmpeg interface
- renamed dxr3absspu/dxr3absspulist to dxr3interace_spu/dxr3interace_spu_list
- volume control logarithmic instead of linear. 
  This is a more natural sounding way of controlling the 
  volume. Thanks to Jon Burgess <mplayer@jburgess.uklinux.net>
- added patch for DVD subtitles. Thanks to Stuart Daines <s.daines@ntlworld.com>
- fixed memory leak in dxr3osd.c - Thanks to Miika Pekkarinen <miipekk@ihme.org>
- added Tools namespace, which has a fixed Rgb2YCrCb function in it (dxr3tools.h)
- kicked out Cmd in dxr3osd.h/c
- added dxr3i18n.h/c
- added Portuguese language support - thanks to Paulo Lopes <pmml@netvita.pt>
- added Finnish language support - thanks to Hannu Savolainen <hannu@opensound.com>
- added Swedish language support - thanks to Tomas Prybil <tomas@prybil.se>
NOTE: I havent found time to include all of the languages, will be done in pre2
- kicked out - i hope - some unneeded usleeps
- rewrote cSPUEncoder: Now we imitate the Cmd funtion form the dvb drivers. So
  we can use now the normal osd functions form dvbosd.c :)
- added support for vdr-1.3.11
- added videomode pal 60


2004-07-29: Version 0.2.3-pre2 (now aviable on SourceForge)

- fixed audio and video problems
- works now with vdr < 1.3.7
- added YUV2Rgb int dxr3tools.h (for dxr3spudecoder)
- added some more debug infos in dxr3outputthread.c
- added const keyword in dxr3configdata.h
- added EM8300 include define in Makefile
- added debuglevels, so we can define how much we want to log
- assimilated spudecoder from vdr's dvbspu.c/h -> nice nav in dvds
- kicked out cDxr3InterfaceSpu from dxr3interface.c/h
- a little fix for cDxr3Interface::ResampleVolume
- kicked out dxr3interface_spu.c/h and dxr3interface_spu_list.c/h, because
  the new spudecoder dont need it anymore.
- added dxr3cpu.c/h to get some infos about the cpu
- added dxr3memcpy.c/h to get a little speedup - i hope
- maybe a little audiofix: lastHeader in cDxr3AudioDecoder will now set to 0
  with the constr. and not via Init()-function. So there should be now some lesser
  audio scratches.
- osd works now on every resolution (viva, viva plus,...)
- added main-menu-entry
- added in some parts some memory allocation tests
- added fix for Makefile from vdr-portal.de -> should compile on more machines :)
- added Tools::WriteInfoToOsd(...) - now some infos like "Releasing devices" are show
  now on the osd again
- fixed dxr3osd_subpicutre.c - thanks to Paavo Hartikainen <pahartik@sci.fi>


2005-??-??: Version 0.3.0-cvs

- fixed output of anamorphic video when tv aspect is configured to 16:9 in
  DVB setup menu (Seppo Ingalsuo)
- rewrote i18n support, improved Finnish translation and other bits
  (Christian Gmeiner, Ville Skyttä)
- fixed void cDxr3Interface::SetAudioDigitalPCM() (Stephan Skrodzki)
- dxr3memcpy.c/h: fix to support older compilers like gcc-2.95
  (Christian Gmeiner, Marco Schlüßler)
- dxr3memcpy.c/h: should now compile on alpha and powerpc
  (bug #1000647, Christian Gmeiner, Paavo Hartikainen)
- added many comments into source (Christian Gmeiner)
- using doxygen for docs (Christian Gmeiner)
- we get now videomode from driver and set only a new one, if the wanted
  one is different from the driver's default one (Christian Gmeiner)
- added functions to read and write registers directly with the plugin
  (Christian Gmeiner)
- added basic dolby digital interface (Christian Gmeiner)
- made path to microcode configurable in Makefile (Sascha Volkenandt)
- made log dir configurable in Makefile (Christian Gmeiner, Martin Dauskardt)
  You may also want to search and remove files called "dxr3plugin.log" as the
  old plugin wrote them into the current working directory.
- better default directories in Makefile (Christian Gmeiner, vdr-wiki.de folks)
- extended cDxr3MemcpyBench::Rdtsc(uint32_t config_flags): support for
  non-x86 archs, support for cpu's, which dont support rdtsc timing
  (Christian Gmeiner)
- logger is now thread safe (Christian Gmeiner)
- rewrote cDxr3SpuDecoder: dropped software decoder, added hardware decoder,
  so we make use of DVD-functions of the dxr3
  (Christian Gmeiner, Marco Schlüßler)
- checked Lock() and Unlock() in dxr3interface.c - hope everything is ok
  else contact me (Christian Gmeiner)
- use std:: instead of namespace std
  (bug #1044069, Christian Gmeiner, Ville Skyttä)
- renamed dxr3interface_spu_encoder.h/c to dxr3spuencoder.h/c
  (Christian Gmeiner)
- removed extra log commands in dxr3outputthread.c (Christian Gmeiner)
- fixed #includes: moved #include "dxr3osd.h" from dxr3interface.h to
  dxr3interface.c, removed not needed #includes (Christian Gmeiner)
- fixed OSD getting pink (bug #1022810, Christian Gmeiner)
- added support for VDR 1.3.13 and later (Luca Olivetti, Peter Dittmann)
- fixed checking of return falues when opening the em8300-* fifos
  (Christian Gmeiner, Ville Skyttä)
- removed explicit linking with zlib (Christian Gmeiner)
- compiles now with 3.4.x gcc's (Christian Gmeiner, Ville Skyttä)
- use $CXX for generating dependencies instead of hardcoded g++ (Ville Skyttä)
- added descriptions to audio and video output threads
  (#1112673, Ville Skyttä)
- fixed audio and video thread deletion in demux device destructor
  (#1112674, Ville Skyttä)
- made "all" the default target in Makefile (Ville Skyttä)
- assume SSE support implies MMXEXT support, this enables optimized
  memcpy routines on more systems (Ville Skyttä)
- avoid hang in pause mode with VDR >= 1.3.18 (Luca Olivetti)
- avoid high CPU usage in pause mode (Luca Olivetti, Klaus Schmidinger)
- improved GetSTC(): fixes DVB subtitles sync problems (Mikko Tuumanen)
- fix PIC and AMD64 problems in the cpuid code, kudos to ffmpeg
  (Ville Skyttä, Jon Burgess)
- eliminate some compiler warnings (Ville Skyttä)
- set aspect ratio and audio mode to unknown when releasing devices, fixes
  the setup eg. after returning from the MPlayer plugin
  (Luca Olivetti, Kimmo Vuorinen)
- avoid crashing with some corrupted streams (Jon Burgess)
- clean up dead code for old VDR versions that hasn't worked for some time
  anyway, VDR >= 1.3.8 is now required (Ville Skyttä)
- added Italian, Spanish and Catalan translations (Luca Olivetti)
- don't override OSD's {Save,Restore}Region with dummies (Luca Olivetti)