-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG.txt
1238 lines (986 loc) · 57.7 KB
/
CHANGELOG.txt
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
TSDUCK CHANGE LOG AND RELEASE NOTES
-------------------------------------------------------------------------------
VERSION 3.33-3127
[NEW] New commands and plugins:
* Added command "tscrc32" to manually compute CRC32 as used in MPEG sections.
* Added command "tstestecmg" to create an artificial load on an ECMG.
[IMP] Improvements on existing commands and plugins:
* New options in existing commands and plugins:
- The packet processing plugin "file" now supports all options of the
output plugin "file".
- Option --max-files in output and packet processing plugin "file".
- Option --set-label on plugin 'svresync".
- Options --custom-tag, --live-extra-segments, --slice-only in output
plugin "hls".
- Options --log-message-count, --synchronous-log, --timed-log to "tsecmg".
- Option --cumulative in plugin "analyze".
[BUG] Bug fixes:
* When an invalid / truncated section had a very large declared length,
intermediate valid sections were ignored.
-------------------------------------------------------------------------------
VERSION 3.32-2973
[NEW] New commands and plugins:
* Added command "tsvatek" and output plugin "vatek" to handle modulators
based on VATek chips.
[IMP] Improvements on existing commands and plugins:
* In "mpeinject" plugin, it is now possible to multiplex several input UDP
stream into one single output MPE PID.
* Added support for VVC, EVC, LCEVC, AVS3 and other new codecs descriptors.
* New options in existing commands and plugins:
- Options --alt-group-id, --alt-language, --alt-name, --alt-type in input
plugin "hls".
- Options --merge, --attributes-merge, --sort, --uncomment in "tsxml".
- Options --sort-languages, --sort-pids in plugin "pmt".
- Options --eit-actual, --eit-other, --eit-pf, --eit-schedule in
"tspacketize", "tstabcomp", plugin "inject".
[BUG] Bug fixes:
* Fixed issue #1070: In the plugin "scrambler", do not fail at startup if
the bitrate is not immediately known. Simply wait for the bitrate to be
known before scheduling crypto-periods and ECM's.
-------------------------------------------------------------------------------
VERSION 3.31-2754
[IMP] Improvements on existing commands and plugins:
* In "dektec" output plugin, option "--input-modulation" now handles DVB-T2.
* Added environment variable TSPLUGINS_STACK_SIZE to specify non-default
stack size for "tsp" plugin threads.
* In plugin "sections", the options --tid-remove, --tid-ext-remove,
--etid-remove, --version-remove were renamed without -remove suffix to
highlight the fact that they can be used to remove or keep sections.
* The plugin "bitrate_monitor" now reports the net bitrate (without null
packets) in addition to the global bitrate.
* New options in existing commands and plugins:
- Options --no-bitrate, --align-first-segment in output plugin "hls".
- Options --json-udp, --json-tcp, --json-buffer-size, --json-tcp-keep,
--json-udp-local, --json-udp-ttl to "tsanalyze", "tscmp", "tsdektec",
"tsxml", plugins "analyze", "splicemonitor".
- Options --section-content, --section-mask in "tstables", plugins
"sections", "tables".
- Option --keep in plugin "sections".
- Option --udp-end-wait in "tsemmg".
- Option --invalid-versions in "tstables" and plugin "tables".
- Options --byte-offset, --packet-offset in "tsdump".
- Options --search-reorder, --min-reorder in "tscmp".
- Option --rs204 in output plugin "ip".
[BUG] Bug fixes:
* Fixed issue #959: In the plugin "merge", the merged EIT PID was not
correctly rebuilt when the merged stream contained EIT's.
* Fixed issue #991: In TS analysis, when an audio, subtitles or teletext PID
had multiple languages, only the first one was reported in the analysis.
* Fixed issue #1010: The input plugins "http" and "hls" left obsolete cookies
files in /tmp on Linux and macOS.
* In "tscmp" with option "--subset", failed to report the last hole when
it extended up to the end of the primary file.
-------------------------------------------------------------------------------
VERSION 3.30-2709
[IMP] Improvements on existing commands and plugins:
* The bitrate evaluation has been modified in the plugin "analyze". When
there is no hardware-based ("dvb", "dektec") or clock-based ("ip")
evaluation of the bitrate, all bitrate computations are based on the
average bitrate, all over the capture, based on PCR's. Previously, the
base was the current "tsp" bitrate, ie. a PCR-based evaluation from the
last part of the stream only.
* New options in existing commands and plugins:
- Option --event in output plugin "hls".
- Option --extract-tcp-stream in "tspcap".
- Options --carrier-only and --roll-off in output plugin "dektec".
- Option --periodic-command in plugin "bitrate_monitor".
- Option --final-wait in "tsp".
- Option --user-agent in input plugins "hls", "http".
- Option --json-line in input and output plugins "srt".
- Option --select-commands in plugin "splicemonitor".
[BUG] Bug fixes:
* Fixed bash completion incorrect behavior after plugin option (-I, -P, -O).
* Fixed spurious new lines on standard output in plugin "splicemonitor" with
options --display-commands and --json.
* Fixed issue #906: In output plugin "hls", live playlists were marked as
event playlist.
* In "tsscan", the handling of --min-strength was broken.
* Fixed a segmentation fault crash in various plugins ("svremove", "sdt",
"nit", etc). The crash occured when a table which is transparently passed
in a modified PID changes its version. For instance, if the SDT Actual
needs to be modified, all SDT Other in the same PID are transparently
passed. If one of these SDT Other changed its version, "tsp" crashed.
* Fixed issue #939: On Windows, opening TS files with non-ASCII name failed.
* Fixed issue #945: In plugin "rmorphan", the predefined ISDB or ATSC PID's
were considered as orphan, even with --isdb or --atsc options.
* Fixed issue #948: Fixed truncated HTTP transfers when the server sends
very small chunks of data (observed with Python http.server, not seen
on usual production servers such as Apache or IIS).
* Fixed issue #950: Extraction of T2MI streams failed in case of duplicate
packets or packets without payload in the outer transport stream.
-------------------------------------------------------------------------------
VERSION 3.29-2647
[NEW] New commands and plugins:
* Added command "tseit" (test EIT manipulation scripts).
[IMP] Improvements on existing commands and plugins:
* All bitrate computations are now implemented using 64-bit floating-point
values. Previously, a fixed-point representation was used. The strict
accuracy was better but integer overflows in intermediate computations
occurred from time to time, leading to incorrect evaluations.
* On Unix (using libcurl), when an SSL/TLS connection fails with a CA
certificate issue, retry with an updated list of CA certificates from
https://curl.se/ca/cacert.pem. Transient issues have been noticed with
Let's Encrypt CA around the certification renewal periods. The updated
list is saved in $HOME/.tscacert.pem and is updated at most once a day.
* In commands "tsp" and "tsswitch", the alternative syntax "--input"
(for "-I"), "--processor" (for "-P") and "--output" (for "-O") are no
longer accepted. They were rarely used and created confusion with
potential equivalent options in plugins.
* Bash completion support has been added for all TSDuck commands and
plugins (plugin names, command and plugin options, enumeration values).
* New options in existing commands and plugins:
- Options --section-number, --negate-section-number, --invalid-sections,
--only-invalid-sections in "tstables" and plugin "tables".
- Options --bufferapi, --final-statistics and --statistics-interval in
plugin "srt". Option --messageapi is now enabled by default.
- Options --json and --json-line in plugin "splicemonitor".
- Option --event-user-data in "tsswitch".
- Options --dvb-simulcrypt and --no-pager in "tspcap".
- Options --emmg-client-id, --emmg-data-id, --first-date, --first-packet,
--first-timestamp, --last-date, --last-packet, --last-timestamp,
--tcp-emmg-mux, --udp-emmg-mux in "pcap" input plugin.
- Option --no-replicate-duplicated in "tsfixcc" and plugin "continuity".
[BUG] Bug fixes:
* Fixed incorrect EIT Schedule regeneration on event change in plugin
"eitinject".
-------------------------------------------------------------------------------
VERSION 3.28-2548
[NEW] New commands and plugins:
* Added command "tspcap", a simple tool to analyze pcap files (Wireshark).
* Added plugin "pcredit" (edit PCR, PTS and DTS values in various ways).
* Added input and output plugin "rist" (Reliable Internet Stream Transport).
* On macOS, all shared objects, including plugins, are now named '.dylib',
the standard macOS naming, instead of '.so', a Linux naming.
[IMP] Improvements on existing commands and plugins:
* New options in existing commands and plugins:
- Option --install-dvb-firmware in "tsconfig".
- Option --local-interface in plugin "srt" (input and output).
- Options --abnt, --atsc, --isdb in "tsscan".
[BUG] Bug fixes:
* Fixed issue #791: In plugin "merge", the PCR were not correcty adjusted
when the input PCR had a discontinuity in the future.
* Fixed issue #830: Incorrect formatting of HEVC HRD parameters.
* Fixed issue #830: Incorrect handling of PES packets with 1 or 2 bytes in
last TS packet.
* Fixed issue #840: In "tsscan", the --lnb and --satellite-number parameters
were not correctly passed when scanning each transport.
* Fixed issue #841: In "tsscan", when generating channel files, the
frequency was incorrectly set to zero on satellite networks.
* In "tsp", the global default options for plugins (--atsc, --isdb, etc)
were not correctly passed to plugins "tables" and "psi".
* Fixed issue #856: The plugin "psi" with JSON output failed when restarted.
* Fixed issue #861: On Linux and macOS, when plugins start and stop processes
(typically "tsswitch" with several "fork" plugins), file descriptors were
not properly segmented between processes, resulting in plugins failing to
stop.
* With "--initial-input-packets N --add-start-stuffing N", tsp could not
start as long as at least one packet was received from the input plugin.
* Fixed issue #871: In plugin "eitgenerator", the version number of the EIT
sections were not correctly updated on section content change.
-------------------------------------------------------------------------------
VERSION 3.27-2434
[NEW] New commands and plugins:
* Added command "tsfclean" (cleanup TS files).
* Added plugin "pcrcopy" (copy and synchronize PCR from one PID to another).
* Added plugin "svresync" (resynchronize the clock of a service based on
another service).
* Added plugin "pidshift" (shift selected PID's forward inside the TS).
* Added plugin "eitinject" (generate and inject EIT's inside the TS).
[IMP] Improvements on existing commands and plugins:
* Added support for Dektec Ethernet devices (eg. DTA-2162).
* The plugin "zap" can now select more than one service.
* New options in existing commands and plugins:
- Option --max-output-packets in "tsp".
- Option --force-local-multicast-outgoing in output plugin "ip".
- Options --fifo-size, --preload-fifo in input plugin "dektec".
- Option --wait-detach in output plugin "dektec".
- Option --io-standard and all TS-over-IP options in input and output
plugins "dektec".
- Options --enforce-burst, --packet-burst in output plugin "srt".
- Options --audio, --codec, --ecm, --emm, --intra-frame, --psi-si,
--service, --subtitles, --video in plugin "filter".
- Options --restart and --restart-interval in plugin "merge".
- Option --system-synchronous in plugin "timeref".
- Options --no-repeat, --payload-and, --payload-or, --payload-xor in packet
processing plugin "craft".
- Option --multiple-files in plugin "pes".
- Options --apdu and --continue-on-error in "tssmartcard".
[BUG] Bug fixes:
* Fixed issue #764: SCTE 35 splice information tables were not correctly
deserialized when the command length field was the legacy value 0xFFF.
* Fixed issue #771: Multi-standard ASI Dektec devices surch as DTA-2174B
did not work properly.
* Fixed a rare issue where tsp with option --add-input-stuffing silently
terminated after some long random time.
* Fixed issue #811: In plugin "merge", the options --drop and --pass were
not correctly handled when they had one single value (not a range).
-------------------------------------------------------------------------------
VERSION 3.26-2344
[NEW] New commands and plugins:
* Added input and output plugins "memory" (direct application interaction).
* Added input plugin "pcap" (Wireshark capture files).
[IMP] Improvements on existing commands and plugins:
* Resource monitoring of "tsp" and "tsswitch" (option --monitor) is now
configurable using XML files and alarm commands can be triggered on
CPU or memory misbehavior.
* When the environment variable TSDUCK_NO_USER_CONFIG is defined to some
non-empty value, the user's configuration file is not loaded.
* Bitrates are now handled, entered and computed with one decimal digit.
The increased precision was required by some modulations.
* New options in existing commands and plugins:
- Option --event-code in plugins "mpe", "psi" and "tables".
- Options --min-bitrate and --min-inter-packet in plugin "spliceinject".
- Option --java and --python in "tsconfig".
- Options --alarm-command, --max-pre-roll-time, --max-repetition,
--min-pre-roll-time, --min-repetition value and --no-adjustment
to plugin "splicemonitor".
- Options --event-command, --event-udp, --event-ttl and --event-local-address
to "tsswitch".
- Options --max-size and --max-duration in output plugin "file".
- Options --multiple and --restart-delay in output plugin "srt".
- Options --caller and --listener in "srt" input and output plugins.
The address:port parameter and the --rendezvous options are now legacy.
- Option --ignore-leap-seconds in "tsanalyze", "tsdate", "tsp", "tspsi",
"tstabcomp", "tstabdump", "tstables" and plugins "analyze", "psi",
"tables".
[BUG] Bug fixes:
* In the display of SCTE 35 splice information tables, the UTC times in the
splice_schedule() commands were incorrectly displayed.
-------------------------------------------------------------------------------
VERSION 3.25-2236
[NEW] New commands and plugins:
* Added plugin "splicemonitor" (monitor SCTE-35 splice commands).
* Added input and output plugins "memory" for C++/Java/Python developers.
* Java bindings have been added for high-level functions of the TSDuck
library. All "tsp" features are now available from Java.
[IMP] Improvements on existing commands and plugins:
* Everywhere an input XML file name is expected, it is possible to specify
an "inline XML content" directly. The string is recognized as an inline
XML content and not a file name when it starts with "<?xml".
* In most utilities or plugins where XML files can be read or written, it is
possible to specify an automated XML-to-JSON conversion and read or write
JSON input or output.
* Everywhere XML or JSON output can be produced, it is possible to log
the XML or JSON data on one line using options --log-xml-line (or
--xml-line) and --json-line. Java or Python applications which intercept
messages from a TSProcessor can more easily grab the complete output data.
* HEVC video attributes are now extracted and reported.
* DVB-T/T2 and ISDB-T are no longer enumeration values ("6-MHz", "8-MHz",
etc). They are arbitrary values in Hz. The previous values in command
line are still accepted for compatibility.
* In plugin "bitrate_monitor", the alarm command receives more parameters.
* The plugin "reduce" can now reduce the bitrate using PCR and VBR.
* The command "tstabcomp" can use the standard input and output for XML or
binary section files.
* New options in existing commands and plugins:
- Option --save-es in plugin "pes".
- Option --extended-info in "tslsdvb" (--verbose no longer displays the
extremely verbose graph, use --extended-info for this).
- Option --usa in "tsanalyze", "tsdate", "tsp", "tspsi", "tsscan",
"tstabcomp", "tstabdump", "tstables", "tsterinfo" and plugins "dvb",
"analyze", "psi", "tables".
- Option --abnt in "tsanalyze", "tsdate", "tsp", "tspsi", "tstabcomp",
"tstabdump", "tstables" and plugins "analyze", "psi", "tables".
- Options --fixed-proportion, --input-bitrate, --packet-window, --pcr-based,
--reference-pcr-pid, --target-bitrate, --time-window in plugin "reduce".
- Option --json-line in "tsanalyze", "tscmp", "tsdektec" and plugin
"analyze".
- Options --log-xml-line and --log-hexa-line to "tstables" and plugin
"tables".
- Options --log-xml-line, --strict-xml, --text-output, --xml-output to
"tspsi" and plugin "psi".
- Options --json, --json-line, --from-json and --x2j-* to "tsxml".
- Options --json-output, --log-json-line, --rewrite-json and --x2j-* to
"tstables" and plugin "tables".
- Options --json-output, --log-json-line and --x2j-* to "tspsi" and plugin
"psi".
- Options --json, --from-json and --x2j-* to "tstabcomp".
- Option --json to "tspacketize".
- Option --default-pds to "tsanalyze", "tsscan" and plugin "analyze".
- Option --log-hexa-line to plugin "mpe".
[BUG] Bug fixes:
* The global "tsp" options --default-pds and --hf-band-region were not
correctly passed to the plugins.
* Fixed issue #719: The option --default-pds was not correctly used in
"tsscan" when looking for logical channel numbers in streams with invalid
signalization (missing private data specifier descriptor).
-------------------------------------------------------------------------------
VERSION 3.24-2106
[NEW] New commands and plugins:
* Added plugin "stats" (report various statistics on PID's and labels).
* Added command "tsxml" to test the validation and patches of XML files.
* For developers who use the TSDuck library on Linux and macOS, the new
command "tsconfig" generates the various build options for the applications
depending on the current operating system.
* Python bindings have been added for high-level functions of the TSDuck
library. All "tsp" features are now available from Python.
[IMP] Improvements on existing commands and plugins:
* In all commands and plugins which produce "normalized" output, a JSON output
format has been added. The traditional "normalized" format was designed for
use with grep & sed and dates back from a time where JSON did not exist.
* In all commands and plugins which define the option --format (file format),
the new value "RS204" designates TS files containing 204-byte packets with
trailing Reed-Solomon code.
* In plugin "pcrextract", the default CSV separator is now "," instead of ";".
* Added "default.time" to configuration file (see option --time-reference).
* General improvement of ISDB support for Brazil and the Philippines:
- Default character set, time reference and HF bands.
* New options in existing commands and plugins:
- Option --log-plugin-index in "tsp".
- Option --subtitles-pid in plugin "zap".
- Option --json in "tscmp" and "tsdektec".
- Options --json and --deterministic in "tsanalyze" and plugin "analyze".
- Options --save-pes, --intra-image, --h26x-default-format in plugin "pes".
- Options --intra-close and --max-extra-duration to output plugin "hls".
- Options --bitrate, --acceleration-threshold, --incremental-pcr-restamp,
--no-smoothing, --pcr-reset-backwards in plugin "merge".
- Options --atsc, --isdb, --japan to "tsdate".
- Options --brazil, --philippines and --time-reference in "tsanalyze",
"tsdate", "tsp", "tspsi", "tstabcomp", "tstabdump", "tstables" and
plugins "analyze", "psi", "tables".
- Options --and, --tid-ext-remove, --version-remove, --reverse-etid in
plugin "sections".
- Options --add-start-stuffing and --add-stop-stuffing in plugin "file".
- Option --patch-xml to plugins "bat", "cat", "nit", "pat", "pmt", "sdt".
[BUG] Bug fixes:
* Fixed issue #646: Several commands and plugins crashed in case of invalid
PES packets when the specified PES length was not zero but lower than the
PES header size.
* Fixed issue #651: When fixing the PCR's in the "merge" plugin, there was a
slow drift on merged PCR values after several hours.
* Fixed issue #653: When serializing NIT, SDT and BAT, the maximum size of
of a section was 4096 bytes as for all private sections (non-MPEG) but DVB
specifies that these three specific tables shall not exceed 1024 bytes per
section.
* Fixed issue #664: Due to a probably long-standing regression, the command
"tsterinfo" was no longer able to guess modulation parameters from bitrates.
* Fixed issue in "tsp": When Ctr-C was in the startup phase (before the first
packets were received), "tsp" hanged.
-------------------------------------------------------------------------------
VERSION 3.23-1964
[IMP] Improvements on existing commands and plugins:
* At most once a day, the "tsp" command interrogates GitHub in the background
to check the availability of a new release of TSDuck. Define the environment
variable TSDUCK_NO_VERSION_CHECK do disable this.
* With commands and plugins which access the Internet such as the "http"
plugin, the environment variables "http_proxy" and "https_proxy" are now
used on Windows also.
[BUG] Bug fixes:
* Fixed issue #632: When the input plugin "http" was used with --ignore-errors
and either --infinite or --repeat, restarting the plugin from "tspcontrol"
entered an infinite loop.
* Fixed issue #633: In version 3.22, a regression was introduced which crashed
the plugin "fork" in the packet processor version ("-P fork").
-------------------------------------------------------------------------------
VERSION 3.22-1924
[NEW] New commands and plugins:
* On Linux and macOS, the installation of TSDuck files are no longer all
inside /usr/bin. Shared libraries are in /usr/lib, plugins are in
/usr/lib/tsduck, configuration files are in /usr/share/tsduck. On macOS,
/usr/local is used instead of /usr. On some 64-bit Linux distros,
/usr/lib64 is used instead of /usr/lib.
[IMP] Improvements on existing commands and plugins:
* The "tsp" command now keeps track of input time-stamps for each packet
and propagate the information to all plugins (see improvement in plugin
"pcrverify").
* Most commands reading TS files can read M2TS files as well.
* New options in existing commands and plugins:
- Option --format in "tsanalyze", "tsbitrate", "tscmp", "tsdate", "tsdump",
"tspsi", "tstables", plugins "file", "fork" (input, output and packet
processor) and plugins "merge", "mux".
- Options --input-format and --output-format in "tsstuff".
- Options --input-synchronous and --jitter-unreal in plugin "pcrverify".
- Option --timestamp-priority in input plugins "ip" and "srt".
- Option --size-of-packet in "tsftrunc".
- Options --eit-normalization, --eit-base-date and --pack-and-flush in
"tspacketize", "tstabcomp" and plugin "inject".
- Option --pack-sections in plugin "mpeinject".
[BUG] Bug fixes:
* Fixed issue #587: Due to an intermediate integer overflow, the report PCR
jitters were sometimes completely incorrect.
* Sections of some DVB, ATSC and ARIB tables, when serialized, were limited
to 1024 bytes instead of 4096. Only MPEG-defined PSI sections should be
limited to 1024 bytes.
* Fixed issue #619: "tsecmg" failed to process an ECM request with crypto-
period numbers wrapping over 0xFFFF (eg. CP = 0xFFFF and 0x0000).
-------------------------------------------------------------------------------
VERSION 3.21-1811
[NEW] New commands and plugins:
* Added command "tscharset" to perform manual string encoding and decoding
using various DVB and ARIB character sets.
[IMP] Improvements on existing commands and plugins:
* LNB's for satellite reception are now preconfigured from an XML file.
Polarization-controlled LNB's are now supported. Added "default.lnb"
in global configuration file.
* General improvement of Japanese TV support:
- Japanese character sets as defined in ARIB STD-B24.
- Partial ISDB signalization, as defined in ARIB STD-B10.
- Option --japan triggers suitable defaults for Japanese TV.
* New options in existing commands and plugins:
- Option --initial-input-packets in "tsp".
- Options --reopen-on-error, --max-retry and --retry-interval in
output plugin "file".
- Option --stream-id in "tsscan" and plugins "dvb", "filter".
- Option --japan in "tsanalyze", "tspsi", "tstabcomp", "tstabdump",
"tstables", "tsterinfo" and plugins "analyze", "psi", "tables", "dvb".
- Options --default-charset, --europe and --japan to "tspacketize",
"tsscan" and plugins "aes", "clear", "descrambler", "inject", "nitscan",
"pmt", "rmsplice", "scrambler", "sdt", "spliceinject", "svremove",
"svrename", "teletext", "zap".
- Option --drop-to-maintain-preload in output plugin "dektec".
- Option --nit-scan in "tsscan" (UHF-band scan is no longer the default,
exactly one of --nit-scan, --uhf-band, --vhf-band shall be specified).
[BUG] Bug fixes:
* Fixed issue #515: In some cases, when multi-section long tables were
injected, after some time, sections were not always inserted in the
increasing order of section numbers.
-------------------------------------------------------------------------------
VERSION 3.20-1686
[NEW] New commands and plugins:
* Added command "tspcontrol" to send control commands to a running "tsp".
* Added input and output plugins "srt" for Secure Reliable Transport
(code contribution from Anthony Delannoy). This plugin is not compiled
on all platforms (subject to availability of libsrt).
* For developers, the features of "tsp" and "tsswitch" are now easily
accessible from the TSDuck library. See classes ts::TSProcessor and
ts::InputSwitcher.
[IMP] Improvements on existing commands and plugins:
* Added option --control-port to "tsp" and other related --control options
for use with the new command "tspcontrol".
* Added option --eit-date-only to plugin "timeref".
* Option --buffer-size-mb of "tsp" now accepts decimal values (eg. "0.5").
* Added options --local-time-offset, --next-change, --next-time-offset,
--only-country name and --only-region to plugin "timeref".
* The command "tsdump" now displays the splice countdown when there is one.
* Added options --has-splice-countdown, --splice-countdown,
--min-splice-countdown and --max-splice-countdown to plugin "filter".
* Added option --label-close to output plugin "hls".
* Added option --ignore-absent to plugin "zap".
[BUG] Bug fixes:
* In input plugin "hls", when the sub-playlists or media segments had
relative URI's with absolute file path, the sub-playlists or segments
were not correctly loaded.
* On Unix systems (Linux, macOS), the option --append was not correctly
handled in plugin "file". The file was rewritten from the beginning.
* In plugin "pes", when a NALunit contained more than one SEI message,
only the first one was reported.
* In plugin "spliceinject", the non-immediate time_signal() commands were
immediately injected. Now, they are processed the same way as non-immediate
splice_insert() commands.
* In command "tsp", when the number of initial null packets (--add-start-
stuffing) was larger than half the global buffer, the command terminated
before having read the input (an end of file was incorrectly assumed).
-------------------------------------------------------------------------------
VERSION 3.19-1516
[NEW] New commands and plugins:
* Added plugin "timeshift" (delay packet transmission).
[IMP] Improvements on existing commands and plugins:
* Added option --receive-timeout to "tsp".
* Added options --aes-cbc, --aes-ctr, --iv, --ctr-counter-bits,
--output-cw-file to plugins "scrambler" and "descrambler".
* Added option --swap-cw to plugin "descrambler".
* Added default CAS selection options --default-cas-id, --conax, --irdeto,
--mediaguard, --nagravision, --nds, --safeaccess, --viaccess, --widevine
to "tspsi", "tstabdump", "tstables" and plugins "psi", "tables".
* Added option --extensions to "tsversion" and "tstabcomp".
* Complete ATSC signalization, as defined in A/65, is now supported.
* NorDig-private descriptors are supported.
* Added option --power-mode to "tsdektec" and output plugin "dektec".
* Added options --build-service-list-descriptors and --default-service-type
to plugin "nit".
* Added options --start and --stop to plugin "trigger".
* Added option --local-port to plugins "ip" (output) and "mpe".
* Service id or name is now optional in plugin "svrename". When omitted, the
default service is the first one in the PAT.
* On Linux, multi-standard tuners are now supported (for instance tuners
which support DVB-T and DVB-C). The options --delivery-system is used
to select the appropriate type. Multi-standard tuners are not supported
on Windows.
[BUG] Bug fixes:
* In plugin "hides", the bandwidth was incorrectly set to 5 MHz when 6 MHz
was requested.
* In plugin "continuity", packets were incorrectly detected as duplicate
when they had the same continuity counter but distinct content.
* Fixed HEVC_video_descriptor to latest version of ISO 13818-1 standard.
-------------------------------------------------------------------------------
VERSION 3.18-1360
[NEW] New commands and plugins:
* Added plugin "craft" as input to build specifically crafted packets and as
packet processor to similarly alter packets in transit.
* Added plugin "trigger" which executes actions on selected labeled TS
packets.
* Added plugin "cutoff" which sets labels on TS packets upon reception of
UDP messages.
* Added plugin "psimerge" which merges PSI/SI from mixed streams.
[IMP] Improvements on existing commands and plugins:
* Added option --only-label to all packet processing plugins. There is a
new possibility to mark individual packets with a label which can be
reused in other plugins.
* Added options --label, --set-label, --reset-label, --set-permanent-label,
--reset-permanent-label, --nullified, --input-stuffing, --every, --interval
to plugin "filter".
* Added option --atsc to commands "tsanalyze", "tstables", "tspsi",
"tstabdump", "tstabcomp" and plugins "analyze", "tables", "psi".
* Added option --pes-offset to plugin "encap" (synchronous PES mode).
* Added options --add-registration and --add-pid-registration to plugin
"pmt". The option --add-programinfo-id is now deprecated.
* Added option --eit to plugin "timeref".
* Added option --tag to plugin "count".
* Added options --single, --set-label and --reset-label to plugins "remap"
and "duplicate".
* Added options --terminate, --joint-termination, --set-label and
--reset-label to plugin "merge".
* Added options --set-label and --reset-label to plugin "mux".
* Added options --set-label-below, --set-label-normal, --set-label-above,
--set-label-go-below, --set-label-go-normal, --set-label-go-above to
plugin "bitrate_monitor".
* Added RTP support for output plugin "ip": added options --rtp,
--payload-type, --pcr-pid, --ssrc-identifier and --start-sequence-number.
* Added options --interleave, --label-base and --first-terminate to input
plugin "file".
* Added option --min-ms-interval to plugin "pcradjust".
* Added options --preload-fifo, --maintain-preload, --preload-fifo-delay and
--preload-fifo-percentage in output plugin "dektec".
[BUG] Bug fixes:
* Fixed an issue while reading XML files: leading and trailing spaces were
removed by default inside all text nodes.
* Fixed input plugin "dektec": with satellite receivers, the LNB was not
properly enabled.
* In input plugin "hls", the cookies which were returned by a playlist were
not passed to the next playlist or segment download.
* In plugin "regulate" with option --pcr-synchronous, the stream was passed
unregulated after 26.5 hours (a complete PCR cycle).
-------------------------------------------------------------------------------
VERSION 3.17-1189
[IMP] Improvements on existing commands and plugins:
* In commands "tsanalyze", "tsdump", "tspsi", "tstabdump", "tstables", the
display is now sent through a pager application (less/more) when the output
device is a terminal. Added option --no-pager to disable this.
* In the input plugin "hls", after loading a master playlist, if the selected
media playlist is not found, try next one, etc.
* Added option --evaluate-pcr-offset to plugin "pcrextract".
* Added option --dvb-cissa to plugins "scrambler" and "descrambler".
* Added options --pid and --tag to plugin "bitrate_monitor". The plugin can
now also monitor the bitrate of the complete TS and can detect zero bitrate
on the transport stream.
* Added option --start-media-sequence to output plugin "hls".
* Added option --pack-and-flush to "tstabcomp".
* In various analysis commands and plugins, ATSC signalization is now known.
* General list of improvements regarding tuners and scanning:
- Added region-specific UHF/VHF frequency layouts in various commands and
plugins. Added option --hf-band-region to plugins "dvb", "dektec" and
commands "tsterinfo", "tsscan". Added option --default-region to command
"tsterinfo".
- The command "tsscan" can now perform VHF band scanning: added option
--vhf-band. Offsets are no longer used by default: added option
--use-offsets.
- In plugin "dvb" and command "tsscan": Added --guard-interval values
"1/128", "19/128", "19/256". Added --transmission-mode values "1K",
"2K-interleaved", "4K-interleaved", "16K", "32K". Added --modulation
values "16-APSK", "32-APSK" (DVB-S2). The option --channel-transponder
now accepts ATSC channel ids (major.minor).
- The old "zap" format which was inherited from some Linux scanning tools
is no longer supported by TSDuck. Instead, a more generic and portable
XML format is used. See the user's guide for more details. Impact:
. In plugin "dvb" and command "tsscan": Added option --tuning-file,
removed options --tune and --zap-config-file.
. In plugin "nitscan" and command "tsscan", added options --save-channels
and --update-channels.
[BUG] Bug fixes:
* Fixed support for ATSC tuners on Windows.
* In plugin "scrambler", fixed a crypto-period issue with option --cw-file
and more than one CW.
* Now accept to demux probably incorrect section muxing when a TS packet is
such that 1) PUSI is set, 2) start of payload before the pointer field is
unused (do not contain a valid section) and 3) starts with FF. This is a
probably incorrect muxing which has been found on at least one satellite
transponder.
* Fixed bitrate computation based on PCR's. Null packets uselessly reset the
bitrate computation and introduced a small bias. New computed values can be
slightly different but more accurate.
* Fixed various discrepancies in adjustment of continuity counters.
* The option --default-charset was not always correctly used when compiling
tables from XML.
-------------------------------------------------------------------------------
VERSION 3.16-1108
[NEW] New commands and plugins:
* Added input plugin "hls" to receive HTTP Live Streaming (HLS).
* Added output plugin "hls" to generate HLS media segments and playlists.
* Added plugin "pcradjust" to adjust PCR's according to a constant bitrate.
[IMP] Improvements on existing commands and plugins:
* In all commands and plugins, when an option takes an integer value and can
be present several times, it is now possible to specify ranges of values
(e.g. "--pid 0-3" instead of "--pid 0 --pid 1 --pid 2 --pid 3").
* Added option --pack to plugin "encap".
* Added options --log, --log-size, --no-headers and --pid to "tsdump".
* Added option --fill-eit to "tstables" and plugin "tables".
* Added options for Dektec demodulators in input plugin "dektec".
* In plugin "rmsplice", immediate splice events are no longer ignored.
* Added PES encapsulation mode in plugin "encap" (added option --pes-mode,
added optional value in option --pack).
* Added option --threshold4 in plugin "limit". The packet selection strategy
was changed.
* Added option --enforce-burst in output plugin "ip".
* Implement guidelines from ETSI TR 101 211 when compiling EIT's.
* In XML descriptions of NIT and BAT, it is now possible to specify a
preferred section index for each TS.
[BUG] Bug fixes:
* In plugin "http", the option --receive-timeout was ignored.
* In "tsanalyze" and plugin "analyze", section analysis was missing on some
PID's (including EIT's).
* On Linux with BusyBox environment, the --help options (and other paged
commands) no longer fail due to unsupported option for less.
* The order of combining diacritical characters was incorrectly handled in
DVB tables with the default character set.
* In plugin "scrambler" with option --cw-file, there was a crash at the end
of the first crypto-period. This was a regression.
-------------------------------------------------------------------------------
VERSION 3.15-1007
[NEW] New commands and plugins:
* Added command "tsswitch", a TS input switcher with remote control.
* Added command "tsgenecm", generate one ECM using any DVB SimulCrypt ECMG.
* Added plugin "limit" to limit the global TS bitrate.
* Added plugin "duplicate" to duplicate one or more PID's.
* Added plugins "encap" and "decap" to encapsulate and decapsulate PID's
into one single tunnel PID.
[IMP] Improvements on existing commands and plugins:
* The plugin "fork" can now be used as input and output plugin as well. When
used as an input plugin (new), it reads packets from the command output.
* Added option --ignore-errors to "tsbitrate" and plugin "pcrbitrate".
* Added option --receive-timeout to "tstabdump" and plugins "dektec" (input),
"ip" (input), "mpeinject".
* Added options --udp-size, --min-udp-size, --max-udp-size, --net-size,
--min-net-size, --max-net-size to plugin "mpe".
* Added option --network-id to plugin "nitscan".
* Added option --strict-xml to "tstabcomp", "tstables" and plugin "tables".
* Added option --max-packets to "tsdump".
* The command "tsdump" can now accept multiple input files.
* Added demodulator support in the input plugin "dektec" (e.g. DTA-2137).
* Added options --audio-pid and --eit to plugin "zap".
* Added option --sei-type to plugin "pes".
* Added option --event-id to plugin "rmsplice".
* Added the per-user configuration file $HOME/.tsduck to specify default or
alternate options to various commands.
[BUG] Bug fixes:
* In XML documents which were generated by TSDuck, some characters were not
properly escaped.
* In "tsp", in case of output error, when a plugin was slowing down the
playout speed (such as "regulate"), the command was slow to terminate.
-------------------------------------------------------------------------------
VERSION 3.14-894
[NEW] New commands and plugins:
* Added plugin "sections".
* Optional rebuild without teletext support (without plugin "teletext").
[IMP] Improvements on existing commands and plugins:
* Added option --remove-stream-type to plugin "pmt".
* Added options --network-name, --network-id and --nit-other to plugin "nit".
* Added option --provider to plugin "svrename".
* Added options --include-next and --exclude-current to commands "tstables"
and "tspsi" and to plugins "tables" and "psi".
* Added options --rewrite-binary and --rewrite-xml to command "tstables" and
plugin "tables".
* Added keywork "system" to option --start in plugin "timeref".
* Added option --transparent to plugin "merge".
* Added options --other, --ts-id, --original-network-id to plugin "sdt".
* Added options --create, --create-after, --bitrate, --inter-packet to
plugins "pat", "pmt", "bat", "sdt", "nit".
* Added option --wide-display to command "tsanalyze" and plugin "analyze".
* Added option --min-interval to command "tsstuff".
* Added option --scte35 to plugin "pcrextract".
* In plugin "inject", when all input files have specific repetition rates,
it is no longer required to provide a bitrate for the PID. It is computed
from the size and repetition rate of all sections.
* Some performance improvement by removing processing which are used in debug
or verbose mode only (options --debug and --verbose).
[BUG] Bug fixes:
* In plugin "merge", merging CAT's from two streams was incorrect
(incorrect PID conflict detection and endless code loop).
* On Windows, "tslsdvb" and "tshides" could crash when using a HiDes
UT-100A (combined received / modulator).
-------------------------------------------------------------------------------
VERSION 3.13-833
[NEW] New commands and plugins:
* Added input plugin "http" to receive a transport stream using a URL.
* Added support for HiDes UT-100C modulator device using utility "tshides"
and output plugin "hides". Be sure to install the right device drivers
from https://tsduck.io/download/hides/
[IMP] Improvements on existing commands and plugins:
* With plugins "svremove", "svrename" and "tsrename", the removal or renaming
now also apply to EIT's. The new option --ignore-eit can be used to prevent
this.
* The plugin "regulate" can now also use the PCR from the TS to regulate the
transmission. Previously, the regulation was done on bitrate only. Added
options are --pcr-synchronous, --pid-pcr and --wait-min.
* The input plugin "ip" and the plugin "mpeinject" now accept the syntax
'source-ip@multicast-ip:port' for source-specific multicast (SSM). As a
side effect, the command "tstabdump" also accepts this syntax when
receiving PSI/SI tables.
* Added option --tos to output plugin "ip".
[BUG] Bug fixes:
* Bug fix: Option --cleanup-private-descriptors in plugins "bat", "cat",
"nit", "pmt" and "sdt" failed to cleanup contiguous private descriptors.
-------------------------------------------------------------------------------
VERSION 3.12-778
[NEW] New commands and plugins:
* Added plugin "merge" which merges two transport streams.
* On Windows, portable packages are now built for users without admin
privilege.
[IMP] Improvements on existing commands and plugins:
* Added option --realtime to "tsp". This option selects appropriate default
options when operating on real-time streamings. The "default defaults"
remain appropriate for offline processing, such as working on transport
streams files. This option is also automatically set by some plugins which
are designed for real-time streaming ("dvb", "ip", dektec", "play",
"regulate", "mpeinject").
* The option --reuse-port is now on by default on all commands and plugins
which use it. A new option --no-reuse-port has been added everywhere to
disable the option explicitly (although probably never used).
* Added options --log-protocol and --log-data to "tsecmg", "tsemmg" and
plugins "scrambler", "datainject".
* Added options --udp and --unregulated to plugin "datainject".
* Many more descriptors are supported. See the user's guide.
* In "tsemmg", sending UDP data to a broadcast address was not allowed. Now
it is possible to send data to a local broadcast address. Using routed
broadcast remains not possible (because this is usually not a good thing
to route broadcast).
[BUG] Bug fixes:
* If an XML representation of a splice information table contained a
splice_insert command, the <break_duration> structure was rejected when the
event was marked as immediate.
* In "tsemmg", the TCP disconnection of the MUX was not detected in a timely
fashion when data was injected using UDP.
* In "tsecmg", the option --max-comp-time was ignored.
* Regression fix: In plugin "datainject", the section mode was no longer
handled correctly since version 3.10.
-------------------------------------------------------------------------------
VERSION 3.11-715
[NEW] New commands and plugins:
* Added utility "tsemmg", an EMMG simulator for MUX integration testing.
* Added plugin "spliceinject" to inject SCTE 35 splice information in real
time.
[IMP] Improvements on existing commands and plugins:
* Added options --sync-layout, --dump-datagram, --dump-udp, --dump-max and
--skip to plugin "mpe".
* Added option --buffer-size in plugin "datainject". The plugin is now able
to receive data using UDP, as defined in the DVB SimulCrypt protocol.
* SCTE 35 splice information tables can now be created from XML format.
[BUG] Bug fixes:
* In "tstables" and plugin "tables", when options --xml and --max-tables
were both specified, the XML structure was not properly closed.
* Application Information Tables (AIT) were not correctly serialized.
* In rare cases, time conversions could produce incorrect results when the
time value was in the middle of the "non-existing hour", during the
spring switch of daylight saving time. In practice, the problem occured on
Linux when handling the "next change time" of a TOT and the system local
time was UTC.
-------------------------------------------------------------------------------
VERSION 3.10-672
[NEW] New commands and plugins:
* Added utility "tsecmg", a DVB SimulCrypt-compliant ECMG stub to test system
integration. The plugin "descrambler" has been enhanced to decode the
'fake' ECM's which are generated by "tsecmg".
[IMP] Improvements on existing commands and plugins:
* The utility "tstabdump" can now dump sections and files which are sent over
UDP/IP by "tstables" or the plugin "tables". Command line options were
added to specify UDP parameters (same UDP reception options as input plugin
"ip").
* Added options --fix and --pid to plugin "continuity".
* Added option --after-packets to plugin "filter".
* Added options --default-interface to input plugin "ip" and plugin
"mpeinject".
* Added options --inter-time, --max-insert-count, --min-pts, --max-pts and
--pts-pid to plugin "mux".
* Added option --milli-seconds to plugin "history".
* Input plugin "file" can now read more than one file. Input files are
concatenated as input stream.
* Added option --fifo-size to output plugin "dektec".
* Added option --atis-idsa to plugins "scrambler" and "descrambler" (perform
ATIS-IDSA scrambling instead of DVB-CSA2).
* Added option --integer to tsversion (useful to check a version in a script).
[BUG] Bug fixes:
* Incorrect behaviour on Linux and macOS when receiving multicast with
plugins "ip" and "mpeinject" and a --local-interface was specified.
* The command "tsanalyze" and a few plugins could crash when a video PID
contained corrupted AVC/H.264 video (or incorrect video data which looked
like H.264).
* Plugin "analyze" with option --interval incorrectly used the TS clock to
produce the analysis files instead of the wall clock time.
* Plugin "history": Detection of scrambling transitions: Now ignore packets
without payload or with short payloads (less than 8 bytes). These packets
are normally left clear in a scrambled PID. Considering them as clear
packets used to report spurious scrambled-to-clear transitions, immediately
followed by clear-to-scrambled transistions.
-------------------------------------------------------------------------------
VERSION 3.9-619