forked from tsduck/tsduck
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG.txt
1478 lines (1182 loc) · 69.1 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.39-3876
[IMP] Improvements on existing commands and plugins:
* In plugin "dvb" with DVB-S2 modulation, the default PLS mode is now GOLD
instead of ROOT. The GOLD mode is the one which is defined by ETSI EN 302
307-1. The PLS mode COMBO has been removed. This mode does not officially
exist.
* In "tsscan", the option --delivery-system can be specified more than once
to scan networks with more than one system, e.g. DVB-T and DVB-T2.
* In a XML file which describes a tuner emulator, the following attributes
can now be specified per channel: polarization, modulation, symbol_rate,
and FEC_inner.
* In "tsscan" and plugin "nitscan", when scanning a DVB-C network, the DVB-C
Annex A, B, or C, which was used to scan the TS carrying the NIT is
propagated to scanned TS (issue #1518). With the plugin "nitscan", this
is effective only if the input plugin is "dvb".
* In "tspcap" and plugin "pcap", explore all nested levels of VLAN to get
inner IPv4 packets (issue #1529).
* New options in existing commands and plugins:
- Option --udp-format in "tstables" and plugin "tables" to send tables
in JSON or XML format through UDP (previously, it was binary only).
- Option --ip-udp in "tsdump", with all usual UDP reception options.
- Option --vlan-id in "tspcap" and input plugin "pcap".
[BUG] Bug fixes:
* In "tstabcomp", when an input file name was specified but no output file
name (e.g. "tstabcomp file.xml"), the output was sent to the standard
output instead of the default output file name (e.g. "file.bin").
* Fixed issue #1519: incorrect value of program_splice_flag in SCTE 35
splice information tables.
* Fixed issue #1520: assertion failure in "tscmp" in rare cases.
-------------------------------------------------------------------------------
VERSION 3.38-3794
[IMP] Improvements on existing commands and plugins:
* The documentation has been reorganized and is now built from asciidoc
format. The user guide is now installed in HTML format. A new developer's
guide is also available in HTML format and installed with the development
environment. The PDF versions are available online.
* New options in existing commands and plugins:
- Option --pid in plugin "eitinject".
- Option --joint-termination in plugin "tables".
- Options --json-buffer-size, --json-interval, --json-line, --json-tcp,
--json-tcp-keep --json-udp, --json-udp-local, --json-udp-ttl to input
plugin "dvb".
[BUG] Bug fixes:
* In plugin "eitinject", fixed duplicated events when an event was reloaded
with same id but different content.
-------------------------------------------------------------------------------
VERSION 3.37-3656
[NEW] New commands and plugins:
* Added "tsfuzz" and plugin "fuzz": introduce random corruptions in transport
streams. Can be used to run fuzzing attacks on receivers or TSDuck itself.
[IMP] Improvements on existing commands and plugins:
* Standard crypto operations (AES, DES, SHA) are now delegated to a system
library, OpenSSL on Unix, BCrypt on Windows. Previously, TSDuck included
old code from LibTomCrypt. Using a system-provided library increases the
probability to take advantage of accelerated instruction on the current
platform.
* TSDuck is now supported on 64-bit RISC-V, 64-bit PowerPC, and IBM s390x
(big endian). On s390x, use clang (gcc has a code generation bug).
* New options in existing commands and plugins:
- Options --meta-sections, --time-stamp in plugin "splicemonitor".
- Option --meta-sections in "tstables", plugin "tables".
- Option --clear-period in plugin "scrambler".
- Option --plp0-tsrate in output plugin "dektec".
- Option --input-timestamp in plugin "pcrextract".
- Option --ignore-rist-timestamps in input plugin "rist".
[BUG] Bug fixes:
* Fixed issue #1389: Because of a recent regression, the plugin "mpe" crashed
when analyzing its command line options.
* PR #1397: In plugin "eitinject", events still running were discarded from
EIT schedule when they started in a previous segment.
* Fixed issue #1398: A corrupted sync byte in a TS packet caused "tsp" to
loop forever.
* Fixed issue #1400: A corrupted PES packet crashed plugin "teletext".
* Fixed issue #1401: A corrupted PES packet crashed plugin "pes".
* Fixed issues #1405 and #1407: A corrupted HEVC sequence caused memory
allocation failures in various tools and plugins ("analyze", "pes", etc.)
* Fixed issue #1416: Using plugin `pcrcopy` without `--reference-label`,
when label 0 was set by prevous plugins, the reference PID could be
incorrectly switched.
-------------------------------------------------------------------------------
VERSION 3.36-3527
[NEW] New commands and plugins:
* Added output plugin "http", acting as a server.
[IMP] Improvements on existing commands and plugins:
* TSDuck now requires C++17. Building TSDuck consequently requires at least
GCC 11, LLVM / clang 5 or Visual Studio 2017 15.8.
* Improved the precision of plugin "regulate" when based on bitrate.
* Improved the measurement precision in plugin "bitrate_monitor".
* Renamed FlexMux-related descriptors and fields as M4Mux to comply with
ISO/IEC 13818-1 9th edition.
* Added support for many new descriptors (contribution from Paul Higgs).
* In "tsanalyze" and plugin "analyze", the LCN and hidden flag of services
are now reported in all formats, text, normalized, JSON.
* New options in existing commands and plugins:
- Options --json-line, --summary in plugin "bitrate_monitor".
- Option --buffer-size in output and packet processing plugins "ip"
(already existed in input plugin "ip" but was missing in the two others).
- Option --random in plugin "pcredit".
- Options --actual-pf, --actual-schedule, --other-pf, --other-schedule,
--no-actual-pf, --no-actual-schedule, --other-pf, --other-schedule in
command in "set" command of "tseit".
- Options --actual-pf, --actual-schedule, --other-pf, --other-schedule in
"tspacketize", "tstabcomp", plugins "inject", "eitinject".
- Option --flush-last-unbounded-pes in plugin "pes".
- Option --http to input plugin "pcap'.
- Option --output-tcp-stream to "tspcap".
- Options --compressed, --headers in input plugins "http" and "hls".
- Option --nostdcpp in "tsconfig".
- Option --t2mi-file in plugin "t2mi".
[BUG] Bug fixes:
* In "srt" plugins, in --listener mode, after a first caller successfully
connects, any other attempt to connect is properly rejected. Previously,
due to an artefact in the SRT library, the second caller appeared to be
connected but the packets were dropped. The third and next callers were
properly rejected.
* Fixed issue #996: Restarting plugin "tables" failed with JSON output.
* Fixed issue #1293: In plugin "zap", the options --subtitles-pid and
--audio-pid were broken and no longer selected the specified PID's.
* In "fork" packet processing plugin, in option --buffered-packets, the
value zero (no buffering at all) was not allowed.
* Fixed issue #1321: In input plugin "dektec", read what is available in the
input FIFO only, instead of trying to fill the complete buffer.
* Fixed issue #1334: Incorrect service type names in JSON report of
"tsanalyze" and plugin "analyze".
* Fixed issue #1340: Restarting plugin "tables" with option --psi-si failed
with to collect PMT's again.
* Fixed issue #1369: Incorrect display in rare cases of HEVC sequence
parameter set.
* Fixed issue #1377: Incorrect display of stream types (PMT) in the context
of HDMV streams (BluRay disks).
* Fixed issue #1383: plugin "history" always failed with input plugin "ip"
because it was not possible to determine the initial bitrate.
-------------------------------------------------------------------------------
VERSION 3.35-3252
[NEW] New commands and plugins:
* Added plugin "dump" to dump TS packets (similar to command "tsdump").
* Added packet processing "ip" (similar to output plugin "ip").
* Added experimental plugin "feed" to extract an encapsulated transport
stream from a feed.
[IMP] Improvements on existing commands and plugins:
* Improvements in syntax of XML patch files:
- Match elements with an attribute value being different from something.
Example: <PAT transport_stream_id="!1">
- Delete a higher-level parent on a structure match.
Example: <PMT> <component stream_type="0x06" x-node="delete(PMT)"/>
* In plugins "spliceinject", "scrambler", "descrambler", if the service
name is an empty string or "-", the first service in the PAT is used.
* New options in existing commands and plugins:
- Option --adaptation-field in "tsdump".
- Option --support in "tsversion".
- Unix: Option --disable-multicast-loop in output plugin "ip".
- Windows: Option --disable-multicast-loop in "tstabdump", input plugin
"ip", plugins "cutoff" and "mpeinject".
[BUG] Bug fixes:
* Fixed issues #1203 and #1205: On Arm64 Linux system with CPU below Armv8.2
(typical example: Raspberry Pi 4), all executables crashed with "illegal
instruction" error.
* Fixed issue #1219: On Windows, tuning to a DVB-S tuner without specifying
the modulation (QPKS by default), crashed "tsp" and "tsscan".
* Fixed issue #1227: When garbage input was interpreted as a DVB service
prominence descriptor, an infinite loop could occur.
* Fixed issue #1234: Option --linger did not work with plugins "srt".
* In "dektec" input and output plugins, several options and modes were
defined but did not support MPEG-TS format. Trying to use them resulted
in various errors from the Dektec library. All these options were removed
(tracked in issue #550).
-------------------------------------------------------------------------------
VERSION 3.34-3194
[NEW] New commands and plugins:
* Added command "tslatencymonitor" to monitor the latency between two input
sources (code contribution from Amos Cheung).
[IMP] Improvements on existing commands and plugins:
* On Arm64 platforms, Linux and macOS, improved performances on data
serialization, CRC32 for all MPEG sections, AES, SHA-1, SHA-256
(when the corresponding accelerated instructions are available).
* Using "-P tables --log", without "--output", the logged lines are reported
through the general logger of "tsp" instead of being output to stdout.
* The plugin "pes", with option --trace-packets, detects and reports invalid
PES packets (e.g. truncated).
* New options in existing commands and plugins:
- Option --no-deep-duplicate in "tstables" and plugin "tables".
- Option --accelerated in "tscrc32".
- Option --ignore-crc32 in "tstabdump".
- Option --patch-xml and --section-number in plugin "sections".
- Options --lazy-schedule-update, --synchronous-versions in plugin
"eitinject".
[BUG] Bug fixes:
* In plugin "eitinject", when a event was 64 days or more in the future,
invalid EIT schedule sections were generated. Now, these events are
discarded (an EPG can be only 64 days deep).
* Fixed issue #1191: Incorrect display of some HEVC sequence parameter
set analysis in plugin "pes".
-------------------------------------------------------------------------------
VERSION 3.33-3131
[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:
* Ported TSDuck to FreeBSD, OpenBSD, NetBSD, DragonFlyBSD.
* 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
(code contribution from Paul Higgs).
* 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".
- Option --json-line in plugin "continuity".
[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.