Releases: superkabuki/threefive_is_scte35
Three zero seventy-one
Release v3.0.71
-
All ansi color codes striped when output is not a tty.
-
threefive.Cue.xmlbin() now returns a threefive.xml.Node instance like threefive.Cue.xml().
-
threefive.Stream has a new method threefive.Stream.rt(func=show_cue) that parses SCTE-35 and proxies the stream to stdout at realtime speed.
-
Cli tool new features
- New bump keyword to adjust SCTE-35 PTS. Supports positive and negative adjustments.
- New rt keyword parses SCTE-35, writes a SCTE-35 sidecar file, and outputs the MPEGTS stream to stdout at realtime speed.
- threefive mcast now throttles Multicast output to realtime speed.
- threefive packets and threefive pts now works with SRT.
Full Changelog: v3.0.49...v3.0.71
Three zero forty-nine
- I don't know where to start.
- Everything is working.
- this is the fastest threefive ever, it is stupid fast with pypy3.
- Stream.show() is 94 times faster.
- Sixfix and SuperKabuki SCTE-35 packet injection are 2 times faster.
- Xml is working very well.
- Decodes 10 SCTE-35 formats
- Encodes 8 SCTE-35 formats.
- Cyclomatic Complexity Score: 2.018
Full Changelog: v3.0.45...v3.0.49
Three zero forty-five
Three zero forty-three
threefive3 is ready.
Q.
Why the release?
A.
Mostly because I made a mistake with the xml method in the Cue class.
I intended it to return a node instance, but instead I had it return just the xml.
Everything else returns a node instance from their xml() method,
Cue should too..
v3.0.43 fixes Cue.xml() to return a Node instance.
I also added more autodetection of SCTE-35 Formats to the Cue class,
no other SCTE-35 software can do even half of these.
Base64,
Bytes,
Dicts,
MPEGTS SCTE-35 packets,
Hex (literal and string),
Integers (literal, bytestring,and string),
JSON(strings and bytestrings),
XML(string and bytestring)
XML+Binary(string and bytestring)
I brought in the PMT module,that really cleans SixFix and SuperKabuki up a lot.
SuperKabuki is now a subclass of SixFix instead of the Stream class, that gets rid of a lot
of redundant code.
The Super Kabuki MPEGTS SCTE-35 Packet Injection Engine is working really really well.
I've tested the SuperKabuki output with ffmpeg and tsduck and everything works.
It's working perfectly for me, so I want to get it out there and see if y'all break it. :)
Full Changelog: v3.0.39...v3.0.43
Three zero thirty-nine
- found a bug when parsing certain types of TimeSignal xml nodes, there's was a trailing ">" was in the name, it's fixed.
Full Changelog: v3.0.37...v3.0.39
Three zero thirty-seven
Release v3.0.37
- threefive3.Cue now has next level auto-detection, it auto-detects and decodes Base64, Bytes, Dicts, Hex (literals, strings, and byte strings),__ Ints__ ( literals, strings and byte strings), JSON (strings and bunless you really know what you're doing, yte strings), XML (strings and byte strings), and XML+Binary (strings and byte strings). Nothing else can even do half of that.
- XML is back and way better, thanks to the Ultra Xml Parser Supreme.
- The Sub Segment vars in Segmentation Descriptors are completely optional and auto-detected. They are used if present, ignored if not.
- sixfix can now generate multi-packet PMT tables when converting FFmpeg bin-data stream types back to SCTE-35. 35 streams.
- Added several helper functions , isshex(data), isjson(data), isxml(data) to threefive3.stuff
- Added an all inclusive set of errors named threefive3.stuff.ERR for try/except clauses.
- Adjusted HLS parsing to associate the OATCLS SCTE-35 tags with the appropriate CUE HLS SCTE-35 tag.
- Cyclomatic Complexity score for threefive3 v3.0.37 : 2.045378151260504
What's Changed
- pylint 9.94 cyclomatic complexity score 1.823 by @superkabuki in #3
New Contributors
- @superkabuki made their first contribution in #3
Full Changelog: v3.0.35...v3.0.37
Three zero thirty-five
Release v3.0.35
UpgradedHLS parsingImprovedHLS SCTE-35 OAT tag handling.Speed upfor SCTE-35 MPEGTS parsing.NewSCTE-35 format auto-detection.Fixeddouble SCTE-35 decoding bug in Cue class.AddedStream.proxy() example codeAddedAacParser example codeAddedHLSParser example codeAddedDTMF Descriptor example codeChangedSegmentation Descriptor sub segment handling to be optional.ChangedSpliceInfoSection Tier to not be fixedFixedSpliceInfoSection Encoding bug.
Full Changelog: v3.0.33...v3.0.35
Three zero thirty-three
I had to fix a nasty bug in bitn that only shows up in certain conditions.
here's an example:
decoding the base64 string
from threefive3 import Cue
b64 = '/DAWAAAAAAAAAP/wBQb+z26yLwAAXeqFJg=='
cue =Cue(b64)cue.bites is:
b'\xfc0\x16\x00\x00\x00\x00\x00\x00\x00\xff\xf0\x05\x06\xfe\xcfn\xb2/\x00\x00]\xea\x85&'if you re-encode it,
cue.encode()cue.bites becomes
b'\xfc0\x16\x00\x00\x00\x00\x00\x00\xff\xf0\x05\x06\xfe\xcfn\xb2/\x00\x00]\xea\x85&'everything is off by 1 byte. \x00'
I see this bug when have a Cue with no descriptors.
The bug is fixed in v3.0.33 this release.
Full Changelog: v3.0.31...v3.0.33
Three zero thirty-one
If it was broke, it's fixed.
Check the change log below.
Full Changelog: v3.0.29...v3.0.31
Three zero twenty-nine
Full Changelog: https://github.com/superkabuki/threefive3/commits/v3.0.29
-
Dropped xml in favor of xml+binary
- (xml takes 700+ lines of code, xml+binary takes 20 lines of code and works in DASH the same way)
-
pylint cleanup
-
Speedup for Stream class
-
Parse at least two copies of the PMT for each PMT PID
-
Stream.proxy() now writes 5 times faster.
-
Added mcast option to cli for multicast streaming
