summaryrefslogtreecommitdiff
path: root/CONTRIBUTORS
blob: 98a23c5487b205cf96801e340205e565e8f0e6a8 (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
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
Tons of suggestions, bugreports, patches and other contributions have been
provided by the people on the 'linux-dvb' and 'vdr' mailing lists.
Special thanks go to the following individuals (if your name is missing here,
please send an email to kls@cadsoft.de):

Carsten Koch <Carsten.Koch@icem.de>
 for adding LIRC support
 for making the 'Recordings' menu be listed alphabetically
 for implementing the 'Summary' feature
 for adding the 'epg2timers' tool (see Tools/epg2timers)
 for his idea of using multiple disks (and for testing this feature)
 for implementing the 'new recording' indicator
 for suggesting that the "Back" button in replay mode should bring up the "Recordings" menu
 for fixing the watchdog timer if the program hangs in OSD activities
 for his support in keeping the Premiere World channels up to date in 'channels.conf'

Plamen Ganev <pganev@com-it.net>
 for fixing the frequency offset for Hotbird channels
 for adding the 'xtvrc2vdr' tool (see Tools/xtvrc2vdr)
 for adding the 'dvbrc2vdr' tool (see Tools/dvbrc2vdr)
 for implementing "channel grouping"

Heino Goldenstein <heino.goldenstein@microplex.de>
 for modifying scrolling through lists to make it page up and down

Guido Fiala <gfiala@s.netic.de>
 for implementing slow forward/back
 for implementing the SVDRP command 'HITK'
 for implementing image grabbing
 for implementing overlay capabilities (see his 'kvdr' tool at http://www.s.netic.de/gfiala)
 (overlay capabilities have been removed again in VDR 0.98, since kvdr version 0.4
 now does these things itself)
 for making the replay progress display avoid unnecessary code execution
 for reporting a problem with slow reaction on SVDRP input

Robert Schneider <Robert.Schneider@de.ibm.com>
 for implementing EIT support for displaying the current/next info
 for extending EIT support to implement a complete EPG

Niels de Carpentier <niels@casema.net>
 for adding a workaround for a driver timing problem in cDvbApi::Cmd()

Martin Hammerschmid <martin@hammerschmid.com>
 for suggesting to display the direct channel select input on the OSD
 for suggesting to use the "Blue" button in the main menu to resume replay
 for implementing pege up/down with the "Left" and "Right" keys
 for detecting a deadlock when switching channels via Schedule/Now|Next/Switch
 for adding a missing #include to ringbuffer.c
 for adding a missing 'public' keyword in device.h
 for pointing out a bug in displaying the group separators in the channel display
 for reporting a problem with a missing initialization of 'number' in cChannel
 for implementing a "resume ID" which allows several users to each have their own
 resume.vdr files
 for adding a call to cStatus::MsgOsdCurrentItem() to cMenuEditItem::SetValue()

Bastian Guse <bastian@nocopy.de>
 for writing the FORMATS entry for timers.conf

Matthias Schniedermeyer <ms@citd.de>
 for implementing the 'MarkInstantRecord' setup option
 for his "schnitt" tools
 for his "master-timer" tool
 for helping to debug the "move to last position in list" bug
 for suggesting the SVDRP command CLRE
 for reporting a bug in handling one-shot timers that were already recording
 and had their start time changed into the future
 for suggesting to give the timer status a bit that is set when that timer
 is currently recording

Miha Setina <mihasetina@softhome.net>
 for translating OSD texts to the Slovenian language

Alberto Carraro <bertocar@tin.it>
 for translating OSD texts to the Italian language

Deti Fliegl <deti@fliegl.de>
 for implementing the 'CurrentChannel' setup parameter
 for fixing setting the OSD size in the 'Confirm' interface call
 for fixing handling improper buffer lengths in the EIT parser

Dave Chapman <dave@dchapman.com>
 for implementing support for the teletext PID
 for his great support in switching to the NAPI
 for implementing DVB-T support

Hans-Peter Raschke <Hans-Peter.Raschke@Wintermann-DatenService.de>
 for his support in adapting VDR to DVB-C
 for adding the 'statdvb2vdr' tool (see Tools/statdvb2vdr)
 for reporting that the CA descriptors need to be sent to the CAM in the 'program'
 or 'ES level' sections to make SkyCrypt CAMs work

Peter Hofmann <software@pxh.de>
 for his support in adapting VDR to DVB-C

Axel Gruber <axel@agm.de>
 for his support in keeping the Premiere World channels up to date in 'channels.conf'
 for helping to debug support for Viaccess CAMs
 for reporting a problem in case none of the devices provides an OSD

Arnold Niessen <niessen@iae.nl> <arnold.niessen@philips.com>
 for translating OSD texts to the Dutch language

Jürgen Sauer <jojo@automatix.de>
 for implementing the -t option to set the controlling terminal

Benjamin Reichardt <reichard@math.uni-goettingen.de>
 for his help in debugging the transition to the new API

Henning Holtschneider <hh@holtschneider.com>
 for patching 'runvdr' to check whether the driver is already loaded
 for reporting a bug in parsing group separators in channels.conf
 for pointing out a possible hangup when reading a broken epg.data file

Paulo Lopes <pmml@netvita.pt>
 for translating OSD texts to the Portugese language

Markus Lang <pretender@gaze.de> and Ulrich Röder <dynamite@efr-net.de>
 for making DiSEqC support configurable

Markus Lang <pretender@gaze.de>
 for some initial code for grouping the Setup menu into several sub-menus

Jean-Claude Repetto <jc@repetto.org>
 for translating OSD texts to the French language

Andre Valentin <av2000@topmail.de>
 for increasing the key name buffer size for LIRC

Jørgen Tvedt <pjtvedt@online.no>
 for translating OSD texts to the Norwegian language

Stefan Huelswitt <huels@iname.com>
 for fixing the repeat function with LIRC
 for making the position of the channel display configurable
 for making the width and height of the OSD configurable
 for implementing the "Jump" function in replay mode
 for implementing "Multi Speed Mode"
 for implementing backtracing for fast forward/rewind
 for implementing the replay mode display
 for fixing a crash when replaying with DEBUG_OSD=1
 for fixing a crash when selecting the "Jump" function directly after setting
 an editing mark
 for reporting a possible endless loop in shifting recordings between DVB cards
 for making it no longer setting PIDs 0x1FFF, which apparently fixes problems
 with CAMs and AC3 sound only working the first time
 for making the main loop take an active video cutting process into account when
 doing shutdown or housekeeping
 for making the cList template class avoid ambiguities in case one defines a "list of
 lists"
 for suggesting to make the cPlugin::Start() function return a boolean value that
 indicates if the plugin will not be able to perform its task
 for suggesting to add the cPlugin::Housekeeping() function
 for suggesting to add 'insert' capabilities to cList
 for suggesting to make 'package' target in the plugin's Makefile produce a package that
 expands to a directory with just the plugin name and version number
 for suggesting to make the config directory available to plugins
 for suggesting to add an error message if the directory specified in the '-L'
 option can't be accessed
 for implementing several replay modes to allow players that play only audio
 for improving cCondVar::Wait() and implementing cCondVar::TimedWait()
 for reporting a bug when entering an integer value outside the limit
 for adding play mode pmAudioOnlyBlack
 for helping to fix starting a recording of the current channel with only one DVB card
 for making cStatus::MsgChannelSwitch() only be called if a channel is actually going to
 be switched or has actually been switched successfully
 for adding a missing StripAudioPackets() to cDvbPlayer::Action()
 for improving skipping channels that are (currently) not available
 for fixing checking the Ca() status of a cDevice
 for helping to fix switching audio tracks in 'Transfer Mode' on the primary DVB device
 for fixing handling 'Transfer Mode' on single device systems when recording an
 encrypted channel
 for reporting a problem with timers when channel IDs have a 'source' that is 0
 for reporting a new/delete malloc/free mismatch in ringbuffer.c
 for reporting a crash in case the index file can't be accessed any more during replay
 for adapting VDR to 'libdtv' version 0.0.5
 for reporting a bug in handling of Ca parameters with values <= MAXDEVICES, which
 don't indicate an actual encrypted channel
 for implementing setting the "broken link" flag for GOPs at the beginning of a new
 video sequence, which avoids artefacts when cutting
 for suggesting to add VDRVERSNUM to config.h
 for fixing a memory leak in cNonBlockingFileReader
 for fixing an uninitialized variable in cDisplayChannel
 for fixing a possible access of invalid file handles in cSIProcessor::Action()
 for fixing extracting the ES data in cDvbDevice::StillPicture()
 for changing thread handling to make it work with NPTL ("Native Posix Thread Library")
 for creating mutexes with PTHREAD_MUTEX_ERRORCHECK_NP, which made the 'lockingTid'
 stuff obsolete
 for suggesting to move the declaration of cMenuText to VDR/menu.h to make it
 available to plugins, and to add a SetText() function
 for reporting a bug in setting the title in the replay display of the "Classic VDR"
 skin in case a shorter title is set after a longer one
 for fixing handling of pmAudioOnlyBlack
 for pointing out possible race conditions in handling childTid in cThread
 for fixing a possible race condition in cDevice::Action() and cTSBuffer::Action()
 for reporting several memory leaks that were introduced through the use of cString
 for adding MPEG1 replay capability to cPesAssembler
 for fixing handling symbolic links in cRecordings::ScanVideoDir()
 for reporting a memory leak in tComponent
 for fixing a memory leak in cDvbPlayer
 for pointing out that recordings with empty episode names were not listed correctly
 in the LSTR command
 for fixing a memory leak in the SVDRP command LSTE

Ulrich Röder <roeder@efr-net.de>
 for pointing out that there are channels that have a symbol rate higher than 27500
 for his support in keeping the Premiere World channels up to date in 'channels.conf'

Mel Schächner <schaechner@yahoo.com>
 for his support in keeping the Premiere World channels up to date in 'channels.conf'

Andreas Schultz <aschultz@warp10.net>
 for adding support for replaying DVDs (much of this was derived from
 dvdplayer-0.5 by Matjaz Thaler <matjaz.thaler@guest.arnes.si>)
 for adding PTS to the converted PCM audio when replaying a DVD
 for fixing a crash in case there is no 'epg.data' at program start
 for fixing a bug in the EPG bugfix mechanism if the extended description is shorter
 than 3 characters
 for adding direct access to the index data of cPalette (needed for displaying SPUs)
 for pointing out a possible race condition in the cDvbPlayer
 for making the use of malloc/free and new/delete consistent
 for adding cDevice::NewOsd() to allow a derived cDevice class to implement its own
 OSD capabilities
 for implementing an SPU decoder
 for fixing opening /dev/video in cDvbDevice::GrabImage() in case of NEWSTRUCT driver
 for reporting a problem with plugin Makefiles and the NEWSTRUCT driver
 for pointing out some unnecessary #includes in eit.c and a problem with
 cMenuRecordings::Del(), which caused warnings with gcc-3.2
 for suggesting a Make.config file
 for making EIT filtering use masks to reduce the number of filters
 for suggesting to remove the Mute() call from cDvbDevice::StillPicture()
 for suggesting to separate the startup of a plugin into an "early" and a "late" phase
 for changing C++ style comments in libdtv into C style to avoid warnings in gcc 3.x
 for implementing the TerrestrialDeliverySystemDescriptor in libdtv
 for fixing setting the locking pid after a timed wait
 for changing thread handling to make it work with NPTL ("Native Posix Thread Library")
 for his 'autopid' patch which was helpful when implementing automatic
 channel data gathering

Aaron Holtzman
 for writing 'ac3dec'

Wolfgang Henselmann-Weiss <Wolfgang_Henselmann@betaresearch.de>
 for fixing calculating the timeout value in cFile::FileReady()

Uwe Scheffler <linux_dvb@uni.de>
 for his help in keeping 'channels.conf.cable' and 'channels.conf.terr' up to date
 for helping to test new DVB-T handling
 for reporting a bug in switching the video format in the Setup/DVB menu

Matjaz Thaler <matjaz.thaler@guest.arnes.si>
 for improving AC3 decoding when replaying DVDs
 for translating OSD texts to the Slovenian language

Artur Skawina <skawina@geocities.com>
 for improving the font file generation in the Makefile
 for pointing out a problem with the ERR macro defined by ncurses.h

Werner Fink <werner@suse.de>
 for making I/O more robust by handling EINTR
 for fixing closing all unused file descriptors when opening a pipe
 for helping to debug leftover 'zombie' processes when closing a pipe
 for making the Dolby Digital thread start only if the recording actually
 contains Dolby Digital data
 for improving thread locking in the ring buffer to avoid possible race conditions
 under heavy load
 for improving keyboard detection
 for adding some missing cAudio handling calls
 for replacing the 'for' loops in StripAudioPackets() with memset() calls
 for modifying handling of audio packets in cDvbPlayer for better sync with external
 AC3 replay
 for changing thread handling to make it work with NPTL ("Native Posix Thread Library")
 for suggesting to replace usleep() calls with a pthread_cond_timedwait() based wait
 for suggesting to add more checks and polling when getting frontend events
 for setting the VPID before the APID in live mode to avoid unnecessary
 overhead in the firmware
 for a patch that was used as a base for implementing a modified PES packet
 handling in order to play AC3 audio over full featured DVB cards
 for pointing out an error in masking SubStreamType in cDevice::PlayPesPacket()
 for pointing out that the "pre 1.3.19" compatibility mode for old Dolby Digital
 recordings can be triggered in the default branch
 for pointing out that pesAssembler->Reset() needs to be called between subsequent
 Transfer Modes
 for suggestions that led to the addition of the 'Id' parameter to cAudio::Play().
 for pointing out that MAXDPIDS needs to be to 16 (8xAC3 + 8xDTS)
 for reporting a problem with ensuring there is a current audio track in case there
 is only one track
 for enabling a device to detach all receivers for a given PID

Rolf Hakenes <hakenes@hippomi.de>
 for providing 'libdtv' and adapting the EIT mechanisms to it

Andreas Vitting <Andreas@huji.de>
 for providing code that closes all unused file descriptors in the child
 process of a pipe (used in cPipe)

Matthias Weingart <matthias@pentax.boerde.de>
 for fixing handling of the volume, mute and power keys when menus are active
 for fixing the repeat function when using the LIRC remote control

Andreas Share <a.share@t-online.de>
 for his support in keeping the Premiere World channels up to date in 'channels.conf'
 for pointing out that section filters should only be set if the device actually has
 a lock

Simon Bauschulte <SemiSchwabe@Brutzel.de>
 for his support in keeping the Premiere World channels up to date in 'channels.conf'

Andy Grobb <Charly98@01019freenet.de>
 for completing storing the current audio volume in the setup.conf file
 for fixing the EPG display in case Setup.ShowInfoOnChSwitch is set to "no"
 for reporting a bug in handling min/max borders when entering integer values

Thomas Heiligenmann <thomas@heiligenmann.de>
 for implementing the SVDRP commands LSTR and DELR
 for adding MPEG1 handling to cDvbDevice::StillPicture()
 for extending the SVDRP command LSTE to allow limiting the listed data to a given
 channel, the present or following events, or events at a given time

Norbert Schmidt <nschmidt-nrw@t-online.de>
 for filling in some missing teletext PIDs

Thilo Wunderlich <wunderlich@speedway.org>
 for his help in keeping 'channels.conf' up to date
 for reporting a problem with accessing the epg.data file before it is fully written

Stephan Schreiber <stephan@sschreiber.de>
 for his support in keeping the Premiere World channels up to date in 'channels.conf.cable'

Lauri Pesonen <lauri.pesonen@firsthop.com>
 for avoiding linking in 'libncurses' if compiling without DEBUG_OSD=1 and
 REMOTE=KBD

Sergei Haller <Sergei.Haller@math.uni-giessen.de>
 for fixing the LastActivity timestamp after a shutdown prompt
 for fixing the "Low disk space!" message
 for adding the TPID to Hessen-3 in 'channels.conf'
 for suggesting that the EPG scan should skip channels with their 'Ca' parameter
 explicitly set to an other DVB card
 for implementing enhanced string editing with upper-/lowercase, insert/overwrite
 and delete

Andreas Gebel <andreas@xcapenet.de>
 for his help in keeping 'channels.conf' up to date

Davide Achilli <davide@objsystem.it>
 for pointing out a bug in error handling while establishing an SVDRP connection

Michael Paar <mpaar@uumail.de>
 for enabling recording of radio channels

Hannu Savolainen <hannu@opensound.com>
 for translating OSD texts to the Finnish language

Jürgen Schmidt <ju@ct.heise.de>
 for fixing a problem with 'in_addr_t' on systems with glibc < 2.2.
 for suggesting to optionally allow logging to LOG_LOCALn (n=0..7)

Uwe Freese <mail@uwe-freese.de>
 for suggesting to automatically close an empty recordings page after deleting
 an entry

Rainer Zocholl <vdrcontrib@zocki.toppoint.de>
 for suggesting a confirmation prompt when the user presses the "Power" button
 and there is an upcoming timer event
 for reporting a bug in skipping the next hit of a repeating timer
 for reporting a problem with staying off the end of an ongoing recording while
 replaying in time shift mode
 for suggesting that VDR should stop if one of the configuration files can't be
 read correctly at program startup
 for reporting a possible race condition in generating the DVB device names
 for pointing out that non-threadsafe functions should be replaced with their
 threadsafe versions
 for pointing out a threadsafe and overflow problem with time_ms()

Oleg Assovski <assen@bitcom.msk.ru>
 for adding EPG scanning for another 4 days

Adrian Stabiszewski <as@nitegate.de>
 for fixing the SVDRP GRAB command in case the video device can't be opened

Bernd Schweikert <bernd.schweikert@dit-gmbh.de>
 for adding 'Ca' code 201 for 'Cryptoworks, GOD-DIGITAL' to 'ca.conf'

Mirko Günther <mi.guenther@ib-helms.de>
 for suggesting the -m command line option
 for suggesting the SVDRP command VOLU
 for reporting a bug in keeping track of the current channel number when moving
 channels in the "Channels" menu
 for reporting a bug in toggling channels with the '0' key

Achim Lange <Achim_Lange@t-online.de>
 for replacing 'killproc' with 'killall' in 'runvdr' to make it work on Debian
 for reporting a bug in switching back the replay mode display in time shift mode
 for his help in keeping 'channels.conf.cable' and 'channels.conf' up to date

Klaus Wolf <klaus@wolfsoft.de>
 for reporting a bug in restoring the CICAM values for a fourth DVB card

Bernd Zierath <b.zierath@ebv.com>
 for helping to debug scrolling the "Channels" menu in case the cursor ends up on
 a group separator

Truls Slevigen <truls@slevigen.no>
 for translating OSD texts to the Norwegian language

Ruben Nunez Francisco <ruben.nunez@tang-it.com>
 for implementing FreeDiskSpaceMB() without external 'df' command
 for translating OSD texts to the Spanish language

Mirko Dölle <mdoelle@linux-user.de>
 for reporting a bug when a timer records over midnight of a day that had a
 change in Daylight Saving Time
 for suggesting to avoid the external 'find' command to scan the video directory
 for reporting a problem with inconsistent channel and timer lists
 for making the "Play" key in live viewing mode resume a previous replay session

Michael Rakowski <mrak@gmx.de>
 for translating OSD texts to the Polish language

Michael Moster <dvb@juelich-gmbh.de>
 for initally reporting the problem with wrong EPG data in the Schedules menu
 (somehow I had misplaced his message...)

Tobias Kerner <tobschle@gmx.de>
 for helping to debug a problem with wrong EPG data in the Schedules menu

Dirk Wiebel <dirk@wiebel.de>
 for reporting a bug in the editing process in case a previously edited file
 with the same name was manually deleted on a system with more than one video
 directory

Gerald Raaf <graaf@attglobal.net>
 for helping to fix the still picture workaround in case the progress display
 is active
 for his support in keeping the Premiere World channels up to date in 'channels.conf'
 for reporting a problem in device handling in the CICAM menu in case a VDR
 instance was started with a specific device using the -D option

Andreas Roedl <flood@flood-net.de>
 for adding some DVB-T channels for Berlin (Germany) to channels.conf.terr

Jean Martin <mac_j_fr@hotmail.com>
 for pointing out a problem with OSD color palette handling on "big endian" systems

Steffen Koch <Steffen.Koch@koch-enterprises.de>
 for reporting a crash when selecting the "Jump" function directly after setting
 an editing mark

Matthias Hilbig <hilbig@upb.de>
 for fixing some missing ',' in i18n.c

Simon Dean <linux-dvb@sickhack.com>
 for reporting a problem with '.' at the end of a directory name in case of VFAT=1
 (Windows can't handle these)

Dimitrios Dimitrakos <mail@dimitrios.de>
 for translating OSD texts to the Greek language
 for fixing handling the LOG_LOCALn parameters in the -l option
 for providing the iso8859-7 fonts

Marcus Kuba <marcus@kuba4u.de>
 for reporting a bug in the unit of the "SVDRP timeout" setup parameter

Ulrich Petri <ulope@gmx.de>
 for his help in debugging a crash on systems with disks that have a block size
 larger than 1MB

Oliver Lorei <oliverlorei@cityweb.de>
 for his support in keeping the Premiere World channels up to date in 'channels.conf.cable'

Andreas Böttger <fboettger@t-online.de>
 for reporting a bug in skipping forward in time shift mode near the end of the recording
 for fixing setting system time to avoid time jumps in case of faulty data

Onno Kreuzinger <ok@solutas.net>
 for reporting leftover references to the file FORMATS in MANUAL and svdrp.c

Rudi Hofer (Rudi.Hofer@cadsoft.de)
 for his help in keeping 'channels.conf' up to date

Gregoire Favre <greg@ulima.unil.ch>
 for fixing some function headers to make them compile with gcc 3.x
 for reporting a bug in taking an active SVDRP connection into account when doing shutdown
 for translating OSD texts to the French language
 for suggesting to initiate an "emergency exit" if there are UPT errors during a
 recording

Sven Grothklags <sven@uni-paderborn.de>
 for fixing the cutting mechanism to make it re-sync in case a frame is larger
 than the buffer
 for implementing the CableDeliverySystemDescriptor in libdtv

Tomas Prybil <tomas.prybil@copper.se>
 for translating OSD texts to the Swedish language

Matthias Fechner <matthiasfechner@web.de>
 for pointing out a bug in parsing 'E' records in epg2html.pl

Paul Lacatus <paul@campina.iiruc.ro>
 for translating OSD texts to the Romanian language

Istvan Koenigsberger <istvnko@hotmail.com> and Guido Josten <guido.josten@t-online.de>
 for translating OSD texts to the Hungarian language

Christian Rienecker <C.Rienecker@gmx.net>
 for making the VFAT handling more tolerant for users who forget to turn it on

Joerg Riechardt <J.Riechardt@gmx.de>
 for filling in some missing teletext PIDs

Holger Wächtler <holger@convergence.de>
 for some valuable advice during adapting to the NEWSTRUCT driver

Jürgen Zimmermann <jnzimmer@informatik.uni-kl.de>
 for adding some missing #includes to files in libdtv for gcc 3.2

Helmut Auer <vdr@helmutauer.de>
 for reporting a superfluous error message in cLockFile
 for suggesting to make the "Zap timeout" a setup variable
 for fixing a frequency/transponder handling mixup when setting the time from the
 DVB data stream
 for implementing a default cRemote::Initialize()
 for suggesting to increase the default value for 'Min. user inactivity' to 300 minutes

Jeremy Hall <jhall@UU.NET>
 for fixing an incomplete initialization of the filter parameters in eit.c

Oliver Endriss <o.endriss@gmx.de>
 for fixing a missing Flush() call in the remote control learning procedure
 for helping to test and debug the new channel source and DiSEqC handling
 for reporting a bug when pressing the "Blue" button in the main menu without
 having displayed it
 for helping to debug a crash when closing down with remote control plugins
 for adding some satellites to 'sources.conf'
 for reporting a bug in learning remote control keys in case there is more than
 one remote control
 for reporting a crash when learning the keys of several remote controls and
 pressing buttons of those that have already been learned
 for making the remote control learn procedure accept key presses only from the
 current remote control
 for reporting a bug in the EPG scanner, which broke 'Transfer Mode' as soon as
 it kicked in
 for providing examples for 'diseqc.conf'
 for improving deleting stale lock files
 for fixing high CPU load in 'Transfer Mode'
 for making the "Left" and "Right" buttons set the cursor to the first or last
 list item even if the list consist only of a single page, like, for instance,
 the Main menu
 for reporting a bug in setting the PCR-PID in case it is equal to one of the other
 PIDs
 for reporting a problem with cPlugin::Start() being called after trying to learn
 the remote control keys
 for reporting a bug in reading 'epg.data' for channels with non-zero RID
 for fixing I/O handling in case an explicit controlling terminal is given
 for fixing displaying still pictures, now using the driver's VIDEO_STILLPICTURE call
 directly
 for reporting and helping to debug dropping out of replay mode while viewing a
 recording that is still going on
 for fixing checking for VIDEO_STREAM_S in cRemux::SetBrokenLink()
 for suggesting to add 'repeat' function keys '7' and '9'
 for fixing handling rc key learning in case cRemote::Initialize() returns 'false'
 for suggesting to change the default "Lifetime" to 99
 for pointing out that the LNB power needs to be explicitly turned on at startup,
 because newer drivers don't do this any more
 for adding a missing cStatus::MsgOsdClear() to cDisplayChannel::~cDisplayChannel()
 for reporting that the "Classic VDR" skin wrongly displayed unused color buttons
 for reporting some missing cStatus::MsgOsdTextItem() calls
 for reporting a missing "Editing process finished" message with skins
 for adding a sample setup for 'DisiCon-4 Single Cable Network' to 'diseqc.conf'
 for reporting a problem with the name of the remote control for which the keys are
 being learned overwriting the date/time in the 'classic' skin
 for making cDvbOsd check available OSD memory at runtime
 for making cEIT::cEIT() drop EPG events that have a zero start time or duration
 for reporting an unnecessary OSD draw operation caused by the audio track description
 display in the ST:TNG skin's channel display

Reinhard Walter Buchner <rw.buchner@freenet.de>
 for adding some satellites to 'sources.conf'
 for his help in testing tuning with "Motor-DiSEqC"
 for his help in debugging CAM support
 for reporting a problem with recording FTA channels on the CAM device in case
 the CAM is not connected to the primary device

Lauri Tischler <lauri.tischler@efore.fi>
 for helping to test and debug the new channel source and DiSEqC handling
 for reporting a faulty parameter initialization in menu.c
 for reporting a problem in case the original current channel becomes
 unavailable due to a recording on a different transponder
 for reporting a compiler warning about virtual cConfig::Load() functions
 for reporting a warning about character comparison in libsi/si.c

Andy Carter <fruit@ukgateway.net>
 for helping to test new DVB-T handling
 for his help in keeping 'channels.conf.terr' up to date

Robert Schiele <rschiele@uni-mannheim.de>
 for his help in keeping 'channels.conf.cable' up to date
 for reporting some faulty default parameter initializations
 for suggesting to only set the Makefile variables CXX and CXXFLAGS if they are not
 yet defined
 for fixing a problem with user defined CFLAGS in libdtv/libvdr/Makefile

Gerhard Steiner <steiner@mail.austria.com>
 for suggesting that the SVDRP command PUTE shall trigger an immediate write of
 the 'epg.data' file
 for suggesting the new configuration file 'reccmds.conf' to define commands that
 shall be executed from the "Recordings" menu
 for suggesting to interpret the character '|' in the description texts of EPG
 records as a newline character
 for reporting a bug in displaying messages in the status line in case they exceed
 the OSD width
 for fixing resume file handling in case the resume.vdr file can't be written
 for reporting a problem with newly created timers in case they are not confirmed
 with "Ok"
 for reporting an occasional "Broken pipe" error in SVDRP connections
 for reporting that some cable channels don't mark short channel names according
 to the standard

Jaakko Hyvätti <jaakko@hyvatti.iki.fi>
 for translating OSD texts to the Finnish language
 for adding a check if there is a connection to the keyboard
 for fixing recording overlapping timers on the same channel in case
 DO_REC_AND_PLAY_ON_PRIMARY_DEVICE and/or DO_MULTIPLE_RECORDINGS is not defined
 for fixing the minimum lifespan of deleted recordings
 for suggesting to improve channel switching in case of numerical input by switching
 as soon as the channel is unique
 for implementing an "EPG linger time"

Dennis Noordsij <dennis.noordsij@wiral.com>
 for reporting a small glitch when switching channels

Steffen Barszus <st_barszus@gmx.de>
 for reporting a bug in switching audio tracks in 'Transfer Mode' on the primary DVB device
 for making the program use the values of VIDEODIR and PLUGINDIR defined in Makefile
 or Makefile.config as defaults
 for helping to debug a crash when using the --terminal option without having access
 to the given terminal

Peter Seyringer <e9425234@student.tuwien.ac.at>
 for reporting a bug in saving the polarization parameter of channels that have a
 number in the 'source' parameter

Stefan Schluenss <dxr3_osd@schluenss.de>
 for reporting a bug where PID handles were not closed correctly

Régis Bossut <rbossut@auchan.com>
 for pointing out that with some providers the channels can only be distinguished
 through the RID

Andreas Kool <akool@akool.de>
 for his help in keeping 'channels.conf.cable' up to date
 for fixing the TS to PES repacker so that it works with MPEG1 streams
 for reporting a problem with empty values in setup.conf
 for fixing detecting the /dev/videoN devices for GRAB in case there are others
 before the DVB devices
 for fixing a possible NULL pointer access in cEITScanner::Process()
 for pointing out that 'vdr --version' failed on an UTF-8 system

Guy Roussin <guy.roussin@teledetection.fr>
 for suggesting not to display channel group delimiters without text
 for reporting a bug in handling channels in the "Channels" menu in case there are
 ':@nnn' group separators without names
 for suggesting to clear the channel info display when entering numeric keys to
 switch channels

Georg Hitsch <georg@hitsch.at>
 for his help in keeping 'channels.conf' up to date

Clemens Kirchgatterer <clemens@thf.ath.cx>
 for suggesting to change source directory name for plugins from 'SRC' to 'src'
 for reporting a problem with user defined CFLAGS in libdtv/libvdr/Makefile

Emil Naepflein <Emil.Naepflein@philosys.de>
 for suggesting to take an active SVDRP connection into account when doing shutdown or
 housekeeping
 for fixing selecting the device, because sometimes an FTA recording terminated a
 CA recording
 for suggesting to never delete edited recordings automatically if the disk runs full
 for making volume control more linear

Gerald Berwolf <genka@genka.de>
 for suggesting to deactivate some templates in tools.h in case some plugin needs to
 use the STL

Thomas Sailer <sailer@scs.ch>
 for pointing out how to set the terminal parameters to read from the keyboard

Sven Goethel <sgoethel@jausoft.com>
 for making switching audio channels work without stopping/restarting the DMX
 for fixing initializing the highlight area in cDvbSpuDecoder
 for suggesting to add cDevice::GetSTC()
 for making some changes to the SPU decoder interface

Jan Rieger <jan@ricomp.de>
 for suggestions and testing raw keyboard input
 for suggesting to make cOsdMenu::Display() virtual, which allows plugins to do some
 additional processing after calling the base class function

Walter Stroebel <walter.stroebel@lifeline.nl>
 for introducing "Doxygen" to document the VDR source code

Paul Gohn <pgohn@nexgo.de>
 for adding 'Hrvatska radiotelevizija' and 'RTV Slovenija' to ca.conf

Teemu Rantanen <tvr@iki.fi>
 for increased the maximum possible packet size in remux.c to avoid corrupted streams
 with broadcasters that send extremely large PES packets
 for adding TS error checking to remux.c
 for pinpointing a problem with excessive memmove() calls in 'Transfer Mode'
 for fixing faulty calculation of section length in eit.c
 for reporting a problem in calculation of channel ids for tv stations that use
 the undefined NID value 0
 for adding EPG preferred languages
 for reporting and helping to debug resetting the EPG data versions after changing
 the preferred languages

Jan Ekholm <chakie@infa.abo.fi>
 for adding/improving some Swedish language OSD texts
 for reporting a compiler warning in g++ 3.2.3 regarding cReplayControl::Show()
 for reporting and helping to debug a problem in frequency handling when setting
 the CA descriptors in cDvbTuner::Action()
 for suggesting to add the year to recording dates in LSTR

Marcel Wiesweg <marcel.wiesweg@gmx.de>
 for pointing out a problem with high CPU load during replay
 for reporting broken support for raw OSDs of plugins
 for reporting a problem with cReceivers that want to receive from PIDs that are
 currently not transmitting
 for fixing volume display in case a plugin has its own OSD open
 for providing 'libsi' and adapting the EIT mechanisms to it
 for fixing testing for matching section filters in case they are turned off
 for adding 'libsi' include files to the 'include' directory, so that plugins can
 use them
 for his help in fixing some issues with gcc 3.4
 for fixing a memory leak in NIT processing
 for adding a few missing initializations
 for adding play mode pmVideoOnly
 for fixing a possible crash with inconsistent SI data
 for pointing out a problem with the cChannel copy constructor
 for fixing cDvbTuner to avoid lockups on NPTL systems

Torsten Herz <torsten.herz@web.de>
 for fixing a possible deadlock when using the "Blue" button in the "Schedules" menu
 to switch to an other channel
 for reporting a wrong EPG bugfix code number for the MAX_USEFUL_SUBTITLE_LENGTH fix
 for fixing a bug in resetting OSD color palettes
 for adding missing 'const' to some cChannel member functions
 for fixing handling Priority -1 in cDvbDevice::ProvidesChannel()
 for fixing processing EPG data in case there is no title

Steffen Becker <stbecker@rbg.informatik.tu-darmstadt.de>
 for reporting a problem with CPU load peaks (in the EPG scanner)

Florian Bartels <Florian.Bartels@envisage.de>
 for reporting a faulty behaviour of the "Mute" key in case the channel display
 is visible

Sascha Volkenandt <sascha@akv-soft.de>
 for helping to fix a faulty behaviour of the "Mute" key in case the channel display
 is visible
 for making the 'epg.data' file being read after all plugins have been started
 for reporting a problem with cReceivers that use a ring buffer and didn't immediately
 return from their Receive() function if the buffer runs full
 for reporting a crash in case there is no DVB hardware present
 for his support in debugging the the "Unknown picture type error"
 for reporting a crash when switching the skin and having selected a non-default
 theme that is not available for the newly selected skin
 for suggesting to map the color name "None" to #00000000 when processing XPM data
 for suggesting to also reset the palette in cBitmap::DrawBitmap() if the entire
 bitmap area is covered
 for reporting a bug in cBitmap::DrawPixel(), which messed with other bitmaps'
 palettes in case the pixel coordinates were outside this bitmap
 for suggesting to allow drawing "transparent" texts
 for suggesting to ignore unused "none" color entries in XPM files written by
 some broken graphics tools
 for fixing a memory leak in theme description handling
 for pointing out a "near miss" condition in cCondVar
 for reporting a bug in cChannel::SetName() in case only the ShortName or Provider
 has changed
 for fixing a possible recursion in cControl::Shutdown()
 for reporting that the "Audio" menu is not displayed with the "Green" button from
 the "Main" menu in case there is only one audio track
 for reporting a problem when starting replay of a recording that has no Dolby
 Digital audio after switching to a channel that has DD and selecting the DD audio
 track
 for reporting a bug in timeout handling in cRwLock::Lock()
 for pointing out that the SVDRP command DELR deleted recordings that are currently
 being written to by a timer

Malcolm Caldwell <malcolm.caldwell@ntu.edu.au>
 for modifying LOF handling to allow for C-band reception
 for reporting a crash in creating a new timer in case there is no device in the
 system that can actually receive any channel

Ludwig Nussel <ludwig.nussel@web.de>
 for making the LIRC thread avoid high CPU load in case the connection to LIRC gets lost
 for fixing handling repeat function with LIRC
 for reporting a problem with the LIRC remote control trying to learn keys even if it
 couldn't connect to the LIRC daemon
 for making the plugin library directory configurable via Make.config
 for reporting a problem on systems that have UTF-8 enabled
 for pointing out a flaw in the the description of cRingBufferLinear
 for reporting a bug in cRingBufferLinear::Get() in case the buffer wraps around
 for adding some checks when canceling a thread and removing the usleep() in
 cThread::Start()
 for removing the LOCK_THREAD from the LIRC thread
 for making the Makefile patch friendlier

Thomas Koch <tom@harhar.net>
 for his support in keeping the Premiere World channels up to date in 'channels.conf'
 for implementing the SVDRP command STAT

Stefan Hußfeldt <vdr@marvin.on-luebeck.de>
 for his help in keeping 'channels.conf.cable' up to date
 for adding 'channels.conf.terr' entries for Lübeck

Christoph Friederich <christoph.friederich@gmx.de>
 for reporting a bug in deleting the last recording in the "Recordings" menu, which
 started pausing live video

Andreas Brachold <vdr04@deltab.de>
 for his support in keeping 'channels.conf.terr' up to date
 for fixing 'newplugin' and libsi/Makefile to use the compiler defined in $(CXX)
 for generating file dependencies
 for suggesting that the 'plugins-clean' target of the Makefile should only delete
 the actual plugin library files from this version of VDR
 for making files and directories created with rights according to the shell's
 umask settings
 for reporting that there are empty info.vdr files created if there is no EPG
 info available

Manuel Hartl <icecep@gmx.net>
 for suggesting to extend the logging info when starting/stopping timers

Benjamin Harling <benjamin.harling@web.de>
 for suggesting to add a note regarding non-VDR files in the /videoX directories to
 INSTALL

Christian Jacobsen <christian.jacobsen@stageholding.de>
 for making the LIRC interface skip keys that come in too fast
 for reporting a problem in handling the '-E' options in version 1.3.18
 for reporting a problem in case a station defines all 32 audio PIDs
 for suggestions and experiments regarding the buffer reserve in cTransfer
 for reporting a problem with 'summary.vdr' files with more than two empty lines

Andreas Mair <Andreas.Mair@linogate.com>
 for reporting a short display of the main menu if a plugin displays its own OSD and
 is started through a user defined key macro

Olivier Jacques <jacquesolivier@hotmail.com>)
 for translating OSD texts to the French language
 for implementing the setup option "OSD/Channel info time"

Kai Moeller <moeller.ki@gmx.de>
 for reporting a double call to MainMenuAction() of a plugin if invoked via a hotkey

Carsten Siebholz <c.siebholz@t-online.de>
 for adding cStatus::OsdItem() to provide the entire list of menu items to a plugin

Wolfgang Goeller <wgoeller@heraklit.ch>
 for reporting a bug in keeping live video active in case the primary device doesn't
 have an MPEG decoder

Jonan Santiago <jonan-lists-vdr@callisia.com>
 for fixing handling EPG data where the "extended event descriptor" comes before the
 "short event" or a "time shifted event"
 for adding support for circular polarization

Juri Haberland <juri@koschikode.com>
 for his help in keeping 'channels.conf.terr' up to date

Alfred Zastrow <vdr@zastrow4u.de>
 for suggesting to implement separate PausePriority and PauseLifetime parameters for
 the recordings created when pausing live video
 for reporting two warnings when compiling with gcc 3.3.1
 for reporting a bug in handling menu status messages when the list contents is scrolled
 for reporting that without the usleep() call in cDvbPlayer::Action() VDR runs on NPTL
 systems

Matthias Raus <matthias-raus@web.de>
 for reporting a problem with starting the editing process if no marks have been set

Marc Rovira Vall <tm05462@salleURL.edu>, Ramon Roca <ramon.roca@xcombo.com> and Jordi Vilà <jvila@tinet.org>
 for translating OSD texts to the Catalanian language

Lars Bläser <LBlaeser@hofheim.de>
 for reporting a bug in EPG bugfix statistics which made log entires for undefined
 channels

Niko Tarnanen <niko.tarnanen@hut.fi>
 for translating OSD texts to the Finnish language

Rolf Ahrenberg <rahrenbe@cc.hut.fi>
 for translating OSD texts to the Finnish language
 for fixing internationalization of the text for "Setup/DVB/Audio language(s)"
 for making pressing the Power button not stop Transfer Mode or replay immediately
 for making EPG events without a title display "No title" instead of "(null)"
 for changing the title of the recording info menu

Ralf Klueber <ralf.klueber@vodafone.com>
 for reporting a bug in cutting a recording if there is only a single editing mark
 for reporting a bug in handling a channels.conf that contains a ":@nnn" line as
 its last entry

Hermann Gausterer <mrq1@gmx.net>
 for suggesting to switch to the recording channel in case the current channel
 becomes unavailable

Peter Bieringer <pb@bieringer.de>
 for reporting a problem with duplicate recordings with the same file name

Alexander Damhuis <ad@phonedation.de>
 for reporting problems when deleting a timer that is currently recording

Antonio Ospite <ospite@studenti.unina.it>
 for translating OSD texts to the Italian language

Karim Afifi <karim.afifi@free.fr>
 for reporting a problem with breaking off replay in case the user presses "Play"
 or "Pause" too soon after going into "Pause live video" mode

Jon Burgess <mplayer@jburgess.uklinux.net>
 for pointing out a problem with NPTL ("Native Posix Thread Library")
 for changing thread handling to make it work with NPTL ("Native Posix Thread Library")
 for fixing a memory leak in thread handling when using NPTL

Thomas Schmidt <thomas.schmidt@in.stud.tu-ilmenau.de>
 for reporting a crash when canceling a newly created timer
 for making 'diseqc.conf' a required file only if Setup.DiSEqC is activated

Michael Walle <michael.walle@web.de>
 for reporting a bug in channel switching after Left/Right has been pressed

Thomas Keil <tk@commedia-group.com>
 for suggesting to change the behaviour of the '0' key in normal viewing mode so
 that a channel only qualifies as "previous" if it has been selected for at least
 3 seconds
 for reporting a bug in handling the color buttons in the "Edit channel" menu
 for adding a note about the config files of plugins to INSTALL

Kenneth Aafløy <ke-aa@frisurf.no>
 for fixing checking CA capabilities with the dvb-kernel driver

Ernst Fürst <ernstfuerst@swissonline.ch>
 for reporting a crash in case a VFAT file system is used without compiling VDR
 with VFAT=1

Reinhard Nissl <rnissl@gmx.de>
 for reporting a name clash because of function crc32() in libdtv/libsi/si_parser.c
 when using other libraries that also implement a function by that name
 for reporting a bug in handling ':' characters in channel names when reading
 channels.conf
 for adding cDevice::Flush() to make sure that all data in the video card's buffers
 has been processed
 for reporting a bug in checking the last area for misalignment in cOsd::CanHandleAreas()
 for suggesting to make sure the OSD reports oeWrongAlignment errors before any
 oeAreasOverlap error
 for reporting a a crash in the time search mechanism
 for taking the complete size of available data into account when deciding whether
 to clear the transfer buffer to avoid overflows
 for reporting a high CPU load in still picture mode after removing the usleep()
 call from cDvbPlayer::Action()
 for reporting a race condition in starting a thread
 for implementing cDolbyRepacker for better handling of Dolby Digital PES packets
 for extending some buffer sizes to allow handling HDTV streams
 for adding substream handling to cDolbyRepacker
 for modifying cDolbyRepacker to make sure PES packets don't exceed the requested length
 for fixing a possible freeze in pause mode in case a device's PlayPesPacket()
 function permanently returns 0
 for fixing a typo in detecting UTF-8
 for fixing handling fragments of less than 4 byte in cPesAssembler
 for some rearrangements in cDvbPlayer::Action() to avoid lockups on NPTL systems
 for implementing cVideoRepacker in remux.c to make sure every PES packet contains
 only data from one frame
 for fixing the call to Channels.Unlock() in cEITScanner::Process()
 for making cDvbPlayer::Goto() append a Sequence End Code to get the image shown
 immediately with softdevices
 for fixing cDvbSpuBitmap::putPixel()
 for implementing cAudioRepacker in remux.c
 for modifying handling of audio packets for radio channels in remux.c
 for suggesting to always use stream id 0xE0 for the video stream, to avoid problems
 with post processing tools that choke on different ids
 for fixing cDvbPlayer::SkipFrames() to properly handle radio recordings

Richard Robson <richard_robson@beeb.net>
 for reporting freezing replay if a timer starts while in Transfer Mode from the
 device used by the timer, and the timer needs a different transponder

Manfred Schmidt-Voigt <manfred.schmidt-voigt@mannitec.de>
 for reporting a problem with runnign out of disk space while cutting in case
 there are still deleted recordings to remove

Javier Marcet <lists@marcet.info>
 for reporting a problem when starting a recording on the primary device if there
 is a replay session active

Peter Waechtler <pwaechtler@mac.com>
 for adding channels for DVB-T Hannover (Germany) to channels.cont.terr

Robert Bartl <robert@bartl.priv.at>
 for reporting a hangup in SVDRP when the client disappears without sending QUIT

Sebastian Frei <sebastian@schnapsleichen.de>
 for his support in keeping 'channels.conf' up-to-date.

Rene Bartsch <ml@bartschnet.de>
 for reporting a bug in setting the primary device in case none of the devices
 provides an MPEG decoder

Christoph Hermanns <christoph.hermanns@gmx.de>
 for reporting a bug in handling the "Red" button in the "Schedules" menu in case
 there are no events listed for a particular channel

Oskar Signell <oskar@signell.net>
 for pointing out a problem with setting an editing mark while in "Pause" mode,
 where replay was not immediately positioned to the marked frame
 for making single shot timers and events show the day of week

Dirk Essl <de@floydworld.de>
 for reporting a wrong URL to the 'Doxygen' tool in INSTALL

Hans Dingemans <hans.dingemans@tacticalops.nl>
 for translating OSD texts to the Dutch language

Alexander Wetzel <alexander.wetzel@web.de>
 for suggesting to let VDR start up even if 'keymacros.conf' references a plugin
 that is currently not loaded

Marco Franceschetti <ordaz@quipo.it>
 for updating 'ca.conf'

Jens Groth <Jens_Groth@t-online.de>
 for reporting a an outdated driver version number in INSTALL

Andreas Trauer <vdr@trauers.homelinux.net>
 for fixing missing channel info after an incomplete channel group switch
 for removing the unused 0x73 (TOT) filter in eit.c

Markus Hardt <markus.hardt@gmx.net>
 for his help in keeping 'channels.conf.terr' up to date

Thomas Rausch <Thomas.Rausch@gmx.de>
 for making VDR try to get a timer's channel without RID when loading 'timers.conf'

Thomas v. Keller <v.keller@neckarufer.de>
 for reporting a crash in case the CAM connection fails while a CAM menu
 is being presented

Richard Scobie <r.scobie@clear.net.nz>
 for adding Asia-Pacific satellites to 'sources.conf'

Luke Jenkins <a@xmission.com>
 for adding North American satellites to 'sources.conf'

Dirk Mueller <dmuell@gmx.net>
 for fixing getting the list of recordings in case VDR is started from a directory
 where it doesn't have access to

Emil Petersky <petersky@isr.uni-stuttgart.de>
 for adding "Slovak Link" and "Czech Link" to 'ca.conf'

Alessio Sangalli <alesan@manoweb.com>
 for providing the iso8859-1 small font

Pedro Miguel Sequeira de Justo Teixeira <pedro.miguel.teixeira@bigfoot.com>
 for reporting a problem with crc32 in SI handling on 64bit systems
 for reporting an alignment problem in CAM access on 64bit systems

Antonino Sergi <voyaser@tiscalinet.it>
 for adding 'StreamType' setting to CAM communication

Martin Holst <holstm@gmx.de>
 for reporting a lockup in 1.3.0 when the EPG scanner kicks in

Robert Huitl <vdr@huitl.de>
 for fixing 'su' call in 'runvdr' to make it work on systems that require the
 user name to appear before the command option

Vyacheslav Dikonov <sdiconov@mail.ru>
 for translating OSD texts to the Russian language

Stephan Epstein <s.epstein@vinzenz.com>
 for reporting a wrong 'delta' value in the call to the shutdown script

Christian Tramnitz <maillist@tramnitz.com>
 for pointing out a problem with wrong parameter settings when scanning NITs
 for terrestrial transponders
 for his support in debugging a problem in setting the source type for newly
 detected terrestrial transponders

Jens Rosenboom <me@jayr.de>
 for fixing the SVDRP command 'STAT DISK' to avoid a 'division by 0' in case
 the disk is full

Andreas Regel <andreas.regel@gmx.de>
 for fixing handling bitmap indexes for 256 color mode
 for reporting a bug in removing the "scanning recordings..." message in case the
 video directory is empty
 for pointing out a missing call to cStatus::MsgOsdtatusMessage(NULL) in
 cSkins::Message()
 for reporting a problem in handling Transfer Mode for radio channels
 for reporting a problem with messages when a cOsdObject uses the raw OSD
 for implementing palette replace mode in the OSD bitmaps

Thomas Bergwinkl <Thomas.Bergwinkl@t-online.de>
 for fixing the validity check for channel IDs, because some providers use TIDs
 with value 0
 for pointing out that transponder handling didn't work with satellites that provide
 two transponders on the same frequency, with different polarization

Stéphane Esté-Gracias <sestegra@free.fr>
 for fixing a typo in libsi/si.h
 for fixing some descriptor handling in 'libsi'
 for pointing out a problem with "itemized" texts in EPG data
 for pointing out a problem with taking the Sid into account when detecting version
 changes in processing the PMT

Marc Hoppe <MarcHoppe@gmx.de>
 for fixing handling the current menu item

Michael Pennewiß <M.Pennewiss@ARD-Digital.de>
 for pointing out that an empty EPG event means there is currently no running event

Marcus Mönnig <minibbjd@gmx.de>
 for adding some 3-letter language codes

Pekka Virtanen <pekka.virtanen@sci.fi>
 for adding language code handling to the subtitling descriptor in 'libsi'
 for adding missing NULL checks when accessing sectionHandler in device.c

John Kennedy <rkennedy@ix.netcom.com>
 for publishing "A Fast Bresenham Algorithm For Drawing Ellipses" (found at
 http://homepage.smc.edu/kennedy_john/BELIPSE.PDF)

Drazen Dupor <drazen.dupor@dupor.com>
 for translating OSD texts to the Croatian language

Prakash K. Cheemplavam <PrakashKC@gmx.de>
 for fixing some issues with gcc 3.4
 for some minor code cleanups

Miko Wohlgemuth <weak@chello.at>
 for reporting a problem with the OSD alignment in the SPU decoder

Michal Dobrzynski <michal_dobrzynski@mac.com>
 for reporting a freezing picture when a recording starts on a system that always
 uses 'Transfer Mode'

Wayne Keer <syphir@syphir.sytes.net>
 for reporting a bug in handling descriptor loops in 'libsi', which had sometimes
 caused invalid CA ids to be added to the channel definitions
 for pointing out a problem with the initialization of aPid1 and aPid2 in
 cDvbDevice::cDvbDevice() in case a patch references them
 for suggesting to make the "Channel not available!" message and mtInfo instead of
 mtError
 for reporting an unused variable from cTimer::GetWDayFromMDay()
 for reporting a spelling error in 'canceling'
 for adding some 'mkdir -p' to the Makefile's 'install' target
 for reporting some missing braces in remux.c

Marco Schlüßler <marco@lordzodiac.de>
 for fixing handling colors in cDvbSpuPalette::yuv2rgb()
 for fixing setting lnb voltage if the frontend is not DVB-S
 for fixing missing audio after replaying a DVD
 for pointing out that it is unnecessary to add section filters to the list of
 filters if they can't be opened
 for fixing handling error case '-1' when polling section filters
 for suggesting to avoiding flashing effects in the OSD of full featured DVB cards
 by explicitly clearing the OSD windows before opening them
 for fixing a possible NULL pointer assignment in cMenuText::SetText()
 for doing some testing regarding buffer performance and giving me some hints that
 finally lead to finding out that the basic problem causing buffer overflows was in
 EnableGet()/EnablePut() being called too often
 for avoiding unnecessary section filter start/stops
 for pointing out that if one PID can't be added, the whole cDevice::AttachReceiver()
 should fail and all PIDs added so far should be deleted
 for fixing attaching a cPlayer to a cDevice, so that 'Operation not permited'
 errors don't occur any more
 for reporting a problem with initialization of the main program loop variables
 with older compiler versions
 for adding the 'portal name' to cChannels
 for fixing the cDvbSpuDecoder
 for fixing a short glitch when starting a recording on the primary device while
 in replay or transfer mode
 for fixing cRemux::ScanVideoPacket() to make sure it doesn't access memory beyond
 the end of the given buffer, which has caused some unjustified "unknown picture
 type errors"
 for some improvements to cPoller
 for implementing displaying mandatory subtitles in the SPU decoder
 for pointing out a problem with canceling the LIRC thread
 for a patch that implements substream handling into cDevice::PlayPesPacket()
 for pointing out that PlayPes(NULL, 0) needs to be called in cTransfer::Action()
 when clearing the transfer buffer to avoid overflows
 for adding CMD_SPU_CHG_COLCON to cDvbSpuDecoder::setTime()
 for suggesting to force a new resync after a call to cRemux::Clear()
 for suggestions that led to the addition of the 'Id' parameter to cAudio::Play().
 for removing the "Cleared/PlayPes(NULL, 0)" handling from cTransfer::Action(), since
 this is now done when attaching the player to the device
 for adding DeviceClrAvailableTracks() and DeviceSetCurrentAudioTrack() to cPlayer
 for reporting a missing 'resultSkipped = 0' in cRemux::Clear()
 for reporting a missing reset of the 'repacker' in cTS2PES::Clear()
 for avoiding unnecessary calls to SetPid() in cDvbDevice::SetAudioTrackDevice()
 for pointing out that EnsureAudioTrack() in cDevice::SetChannel() should not be
 called if a Transfer Mode is started, to avoid setting the audio PID on the primary
 device
 for fixing calling cStatus::MsgChannelSwitch() in cDevice::SetChannel()
 for increasing POLLTIMEOUTS_BEFORE_DEVICECLEAR in transfer.c to 6 to avoid problems
 with the larger buffer reserve
 for adding support for setting the video display mode
 for fixing handling transparent areas in cDvbSpuBitmap
 for fixing a bug in libsi's SubtitlingDescriptor::getLength()
 for removing scaling coordinates in letterbox mode from cDvbSpu
 for fixing a wrong inheritance in libsi's SubtitlingDescriptor::Subtitling
 for adding cPlayer::DeviceSetVideoDisplayFormat()
 for making the setup not being saved in case of a fatal error, to keep the volume
 level from being set to a wrong value
 for fixing a possible hangup when ending a replay session while cIndexFile::CatchUp()
 is waiting
 for improving resetting CAM connections
 for fixing handling EPG data for time shifted events
 for fixing detecting short channel names for "Kabel Deutschland"

Jürgen Schmitz <j.schmitz@web.de>
 for reporting a bug in displaying the current channel when switching via the SVDRP
 command CHAN

Philip Lawatsch <philip@lawatsch.at>
 for debugging a buffer overflow in eit.c

Jouni Karvo <kex@netlab.hut.fi>
 for suggesting to make the cOsd constructor 'protected'
 for fixing checking for the presence of NPTL

Olaf Henkel <olafhenkel@t-online.de>
 for reporting a problem with long event texts in the "Classic VDR" skin

Martin Dauskardt <md001@gmx.de>
 for reporting a problem with switching channels while an encrypted channel is being
 recorded

Maynard Cedric <maynard.cedric@wanadoo.fr>
 for reporting a problem in handling the color button texts in cMenuEditStrItem

Jörg Knitter <joerg.knitter@gmx.de>
 for reporting a problem in case the video partition is mounted with "iocharset=utf8"

Mike parker <vdr@msatt.freeserve.co.uk>
 for helping to test support for NVOD channels

Dick Streefland <Dick.Streefland@xs4all.nl>
 for fixing a crash in case the last line in channels.conf is a group separator and
 that group is selected in the channel display

Kimmo Tykkala <tykkala@iki.fi>
 for pointing out a problem in showing the replay mode if the OSD is currently in use

Arthur Konovalov <kasjas@hot.ee>
 for translating OSD texts to the Estonian language

Milos Kapoun <m.kapoun@cra.cz>
 for suggesting to skip code table info in SI data
 for adding missing Czech characters to fontosd-iso8859-2.c

Udo Richter <udo_richter@gmx.de>
 for refining the formula for making volume control more linear
 for fixing handling lifetime when deciding whether to delete a recording
 for reporting a problem in handling page up/down in menu lists in case there are
 several non selectable items in a row
 for fixing handling 'page down' after it was broken in version 1.3.26
 for suggesting a fix for an out-of-bounds memory access with audio language ids
 for reporting a problem with cRemux in a single thread
 for adding 'Service' functions to the plugin interface
 for reporting an unused MAINMENUENTRY in svdrpdemo.c

Sven Kreiensen <svenk@kammer.uni-hannover.de>
 for his help in keeping 'channels.conf.terr' up to date

Stefan Meyknecht <stefan@meyknecht.org>
 for a patch that fixed detecting transponder lock in cDvbTuner

Lucian Muresan <lucianm@users.sourceforge.net>
 for updating the Romanian language texts and the iso8859-2 fonts
 for making VDR actually use the iso8859-15 fonts

Mattias Grönlund <Mattias@Gronlund.net>
 for pointing out a missing cleanup at program exit in case there is a problem
 with a plugin
 for fixing possible race condition in cDevice::Action()

Uwe Hanke <uhanke@gmx.de>
 for fixing some typos in the Makefile's 'font' target

Mogens Elneff <mogens@elneff.dk>
 for translating OSD texts to the Danish language

Joachim Wilke <vdr@joachim-wilke.de>
 for reporting missing calls to cStatus::MsgOsdClear() in cSkins::Message()

Sascha Klek <sklek@gmx.de>
 for reporting a problem with the '0' key in the "Day" item of the "Timers" menu

Andreas Brugger <brougs78@gmx.net>
 for reporting a possible crash when pausing live video and the recording was
 unable to start, maybe because there was no lock on the device
 for reporting the missing Euro sign in iso8859-1
 for reporting a problem with making changes to timers through SVDRP while they
 are being edited via the menu

Dino Ravnic <dino.ravnic@fer.hr>
 for fixing some characters in the iso8859-2 font file
 for fixing some errors in the Croatian language texts
 for fixing deleting a menu item in case the next item is not selectable

Olaf Titz <olaf@bigred.inka.de>
 for fixing some typos in the Makefile's 'font' target
 for reporting a problem and some advice in fixing a possible freeze in pause mode
 in case a device's PlayPesPacket() function permanently returns 0
 for reporting excess memory consumption due to duplicate components in EPG events

Darren Salt <linux@youmustbejoking.demon.co.uk>
 for pointing out that the '-' and 'ö' characters need to be escaped in the man
 pages
 for a patch that was used to add the command line options '--lirc', '--rcu' and
 '--no-kbd'

Sean Carlos <seanc@libero.it>
 for translating OSD texts to the Italian language

Laurence Abbott <laz@club-burniston.co.uk>
 for fixing setting 'synced' in cRemux when recording radio channels

Patrick Gleichmann <patrick@feedface.com>
 for fixing the default quality value when grabbing a JPEG image
 for suggestiong a modified page scrolling behaviour
 for suggesting wrapping around in menu lists

Achim Tuffentsammer <a.tuffentsammer@web.de>
 for reporting a crash in case a plugin needs to issue an error message before the
 skin has been set up

Michael Heyse <mhk@designassembly.de>
 for his help in keeping 'channels.conf.terr' up to date

Marco Kremer <vdr.hgm.bg@gmx.net>
 for reporting a problem with playing files with PES packets longer than 2048 byte
 through the full featured DVB card

Walter Koch <koch@u32.de>
 for adding channels for DVB-T Düsseldorf and Köln (Germany) to channels.cont.terr

Rolf Groppe <rolf@groppe.de>
 for suggesting to fall back to 'stereo' when switching channels in case the user
 had switched to 'left' or 'right'

Wolfgang Rohdewald <wolfgang@rohdewald.de>
 for pointing out that primaryDevice = NULL should be done before deleting the devices
 in cDevice::Shutdown()
 for removing some unneeded code and fixing access to unallocated memory in
 cEvent::FixEpgBugs()
 for adding a missing cMutexLock to cRemote::HasKeys()
 for removing an unnecessary #include from osd.c
 for reporting a problem with with numerical input to switch channels if Up, Down,
 Channel+ or Channel- is pressed

Chad Flynt <hoochster@sofnet.com>
 for suggestions and experiments regarding the buffer reserve in cTransfer

Chris Warren <dvb@ixalon.net>
 for pointing out that the call to system("sync") in SpinUpDisk() should be
 replaced with fsync(f) to avoid problems on NPTL systems
 for fixing dropping EPG events that have a zero start time or duration, in case it's
 an NVOD event

Luca Olivetti <luca@ventoso.org>
 for making cDevice::AttachPlayer() keep the track language codes and descriptions
 in Transfer Mode

Mikko Salo <mikko.salo@ppe.inet.fi>
 for suggesting to make the setup option "DVB/Video display format" available only
 if "Video format" is set to "4:3"

Roman Krenický <free-rtk@gmx.de>
 for a patch that was used a a basis for changing a timer's day handling to full date
 for considering the "EPG linger time" when saving the EPG data to file or listing
 it via LSTE

Ville Skyttä <ville.skytta@iki.fi>
 for reporting several compiler warnings in gcc 4.0
 for including the optional user defined Make.config from the 'libsi' Makefile

Steffen Beyer <cpunk@reactor.de>
 for fixing setting the colored button help after deleting a recording in case the next
 menu entry is a directory

Daniel Thompson <daniel.thompson@st.com>
 for fixing a memory leak in tComponent

Matthias Lötzke <Matthias@Loetzke.de>
 for adding missing text internationalization for "Starting EPG scan"

Wolfgang Fritz <wolfgang.fritz@gmx.net>
 for making recordings avoid zero sized video data files

Michael Reinelt <reinelt@eunet.at>
 for reporting a problem with the EPG scan on systems that don't use DiSEqC

Johannes Stezenbach <js@linuxtv.org>
 for pointing out that the byte swap for big endian systems in cDvbOsd::Flush()
 is wrong

Paavo Hartikainen <pahartik@sci.fi>
 for verifying that the byte swap for big endian systems in cDvbOsd::Flush() was
 wrong

Georg Acher <acher@baycom.de>
 for making tChannelID::operator==() inline for better performance
 for introducing cListBase::count for better performance
 for a patch that was used to implement hash tables to speed up cSchedule::GetEvent()
 for avoiding unnecessary calls to getLength() in libsi/si.c, and avoiding the
 '& 0xff' in CRC32::crc32() of libsi/util.c
 for suggesting to reduce the priority of the section handler threads

Henrik Niehaus <henrik.niehaus@gmx.de>
 for reporting a problem with timers with a day given as MTWTF--@6, i.e. a repeating
 timer with first day not as full date, but just day of month

Martin Wache <M.Wache@gmx.net>
 for adding a sleep in cDvbPlayer::Action() in case there is no data to send to the
 device, which avoids a busy loop on very fast machines

Matthias Lenk <matthias.lenk@amd.com>
 for reporting an out-of-bounds memory access with audio language ids

Frank Krömmelbein <kroemmelbein@gmx.de>
 for adding missing storing of the MenuScrollPage parameter

Bernhard Stegmaier <bernhard.stegmaier@in.tum.de>
 for reporting a problem in cEITScanner::Process() with forced EPG scans if EPG
 scan timeout is set to 0

Klaus Heppenheimer <klaus@reel-multimedia.com>
 for reporting a race condition in cTransfer.

Thomas Günther <tom1@toms-cafe.de>
 for fixing handling the frame number display if '7' is pressed before the first
 editing mark, or '9' after the last one
 for suggesting to move cMenuEditTimer and cMenuEvent to menu.h so that plugins
 can use it

David Woodhouse <dwmw2@infradead.org>
 for his help in replacing the get/put_unaligned() macros from asm/unaligned.h with
 own inline functions to avoid problems on platforms that don't provide these

Marcus Hilbrich <s4440288@mail.inf.tu-dresden.de>
 for a bug report that lead to fixing the EPG scan, so that it doesn't use the
 primary device if that is currently in Transfer-Mode from itself

Hardy Flor <HFlor@web.de>
 for a patch that was used as a base to implement SVDRP commands for plugins
 for implementing the SVDRP command PLAY

Harald Milz <hm@seneca.muc.de>
 for his CUTR patch, which was used as a base to implement the SVDRP command EDIT