Skip to content

Releases: superkabuki/threefive_is_scte35

Three zero seventy-one

03 Feb 04:07
7707814

Choose a tag to compare

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

19 May 17:45
c064671

Choose a tag to compare

  • 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

01 May 19:34
10a2898

Choose a tag to compare

Release v3.0.45

Ultra Xml Parser (Supreme)

Full Changelog: v3.0.43...v3.0.45

Three zero forty-three

24 Apr 02:49
c313c46

Choose a tag to compare

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

19 Apr 08:20
9d1115d

Choose a tag to compare

  • 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

19 Apr 02:57
cbc8246

Choose a tag to compare

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

New Contributors

Full Changelog: v3.0.35...v3.0.37

Three zero thirty-five

03 Apr 23:00
bb11069

Choose a tag to compare

Release v3.0.35

  • Upgraded HLS parsing
  • Improved HLS SCTE-35 OAT tag handling.
  • Speed up for SCTE-35 MPEGTS parsing.
  • New SCTE-35 format auto-detection.
  • Fixed double SCTE-35 decoding bug in Cue class.
  • Added Stream.proxy() example code
  • Added AacParser example code
  • Added HLSParser example code
  • Added DTMF Descriptor example code
  • Changed Segmentation Descriptor sub segment handling to be optional.
  • Changed SpliceInfoSection Tier to not be fixed
  • Fixed SpliceInfoSection Encoding bug.

Full Changelog: v3.0.33...v3.0.35

Jordache-2

Three zero thirty-three

15 Mar 22:02
0d9bd34

Choose a tag to compare

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

15 Mar 01:55
59005c6

Choose a tag to compare

If it was broke, it's fixed.
Check the change log below.

Full Changelog: v3.0.29...v3.0.31

Three zero twenty-nine

14 Mar 11:44
42a6a87

Choose a tag to compare

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