threefive 3.0.81__tar.gz → 3.0.83__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. {threefive-3.0.81 → threefive-3.0.83}/PKG-INFO +32 -6
  2. {threefive-3.0.81 → threefive-3.0.83}/README.md +31 -5
  3. {threefive-3.0.81 → threefive-3.0.83}/pyproject.toml +1 -1
  4. {threefive-3.0.81 → threefive-3.0.83}/threefive/__init__.py +1 -2
  5. {threefive-3.0.81 → threefive-3.0.83}/threefive/cli.py +2 -4
  6. {threefive-3.0.81 → threefive-3.0.83}/threefive/encode.py +1 -1
  7. {threefive-3.0.81 → threefive-3.0.83}/threefive/gums.py +3 -2
  8. {threefive-3.0.81 → threefive-3.0.83}/threefive/hls.py +1 -1
  9. {threefive-3.0.81 → threefive-3.0.83}/threefive/new_reader.py +3 -5
  10. {threefive-3.0.81 → threefive-3.0.83}/threefive/segment.py +2 -2
  11. {threefive-3.0.81 → threefive-3.0.83}/threefive/sixfix.py +5 -6
  12. {threefive-3.0.81 → threefive-3.0.83}/threefive/stuff.py +1 -1
  13. {threefive-3.0.81 → threefive-3.0.83}/threefive/superkabuki.py +1 -3
  14. {threefive-3.0.81 → threefive-3.0.83}/threefive/upids.py +1 -1
  15. {threefive-3.0.81 → threefive-3.0.83}/threefive/version.py +1 -1
  16. {threefive-3.0.81 → threefive-3.0.83}/threefive.egg-info/PKG-INFO +32 -6
  17. {threefive-3.0.81 → threefive-3.0.83}/LICENSE +0 -0
  18. {threefive-3.0.81 → threefive-3.0.83}/setup.cfg +0 -0
  19. {threefive-3.0.81 → threefive-3.0.83}/threefive/aac.py +0 -0
  20. {threefive-3.0.81 → threefive-3.0.83}/threefive/base.py +0 -0
  21. {threefive-3.0.81 → threefive-3.0.83}/threefive/bitn.py +0 -0
  22. {threefive-3.0.81 → threefive-3.0.83}/threefive/bump.py +0 -0
  23. {threefive-3.0.81 → threefive-3.0.83}/threefive/commands.py +0 -0
  24. {threefive-3.0.81 → threefive-3.0.83}/threefive/crc.py +0 -0
  25. {threefive-3.0.81 → threefive-3.0.83}/threefive/crctable.py +0 -0
  26. {threefive-3.0.81 → threefive-3.0.83}/threefive/cue.py +0 -0
  27. {threefive-3.0.81 → threefive-3.0.83}/threefive/descriptors.py +0 -0
  28. {threefive-3.0.81 → threefive-3.0.83}/threefive/hlsprofile.py +0 -0
  29. {threefive-3.0.81 → threefive-3.0.83}/threefive/hlstags.py +0 -0
  30. {threefive-3.0.81 → threefive-3.0.83}/threefive/iframes.py +0 -0
  31. {threefive-3.0.81 → threefive-3.0.83}/threefive/packetdata.py +0 -0
  32. {threefive-3.0.81 → threefive-3.0.83}/threefive/pmt.py +0 -0
  33. {threefive-3.0.81 → threefive-3.0.83}/threefive/section.py +0 -0
  34. {threefive-3.0.81 → threefive-3.0.83}/threefive/segmentation.py +0 -0
  35. {threefive-3.0.81 → threefive-3.0.83}/threefive/speedo.py +0 -0
  36. {threefive-3.0.81 → threefive-3.0.83}/threefive/stream.py +0 -0
  37. {threefive-3.0.81 → threefive-3.0.83}/threefive/streamtypes.py +0 -0
  38. {threefive-3.0.81 → threefive-3.0.83}/threefive/throttle.py +0 -0
  39. {threefive-3.0.81 → threefive-3.0.83}/threefive/udp.py +0 -0
  40. {threefive-3.0.81 → threefive-3.0.83}/threefive/uxp.py +0 -0
  41. {threefive-3.0.81 → threefive-3.0.83}/threefive/xml.py +0 -0
  42. {threefive-3.0.81 → threefive-3.0.83}/threefive.egg-info/SOURCES.txt +0 -0
  43. {threefive-3.0.81 → threefive-3.0.83}/threefive.egg-info/dependency_links.txt +0 -0
  44. {threefive-3.0.81 → threefive-3.0.83}/threefive.egg-info/entry_points.txt +0 -0
  45. {threefive-3.0.81 → threefive-3.0.83}/threefive.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: threefive
3
- Version: 3.0.81
3
+ Version: 3.0.83
4
4
  Summary: threefive is The #1 SCTE-35 Decoder and Encoder on the Planet.
5
5
  Author-email: AdrianofDoom <spam@iodisco.com>
6
6
  License-Expression: Sleepycat
@@ -18,7 +18,10 @@ License-File: LICENSE
18
18
  Dynamic: license-file
19
19
 
20
20
  ### It is now official, phase three of threefive's global domination has begun. Behold [threefive.js](https://github.com/keithah/threefive.js)
21
- _(ominous music plays in the background)_
21
+ _threefive has been ported to Javascript, C#, and Go._
22
+
23
+
24
+
22
25
 
23
26
  # [ threefive ]
24
27
 
@@ -43,6 +46,28 @@ _(ominous music plays in the background)_
43
46
 
44
47
  ___
45
48
 
49
+ # Tip of the week.
50
+ ## Q. How do I get a list of all the SCTE-35 cues in a stream?
51
+ ## A. Like this
52
+ ```py3
53
+ from threefive import Stream
54
+
55
+ strm=Stream('some_video.ts')
56
+ list_o_cues=[]
57
+ for cue in strm.decode_next(): # Stream.decode_next is a generator
58
+ list_o_cues.append(cue) # these will be threefive.Cue instances
59
+
60
+ # then you can do stuff like
61
+
62
+ for cue in list_o_cues:
63
+
64
+ print(cue.xml())
65
+
66
+ print(cue.command)
67
+
68
+ cue.show()
69
+ ```
70
+ * I have always felt that if you use a library, you shouldn't have to write a lot of code.
46
71
 
47
72
 
48
73
  ### [ News ]
@@ -54,14 +79,13 @@ ___
54
79
  * I have been __trying to setup threefive on readthedocs__,it's not going very well, but I'm working on it.
55
80
  ___
56
81
 
57
- ## [ Latest version is v3.0.81 ]
82
+ ## [ Latest version is v3.0.83 ]
58
83
 
59
- * threefive cyclomatic complexity score is 1.9337094499294782 _( that's better than the Python standard library)_ .
84
+ * __v3.0.83__ is to fix a bug 3.0.81 related to AES decryption..
85
+ * threefive cyclomatic complexity score is 1.9337094499294782 _( that's better than the Python standard library)_ .
60
86
  * __threefive now has NO External Dependencies__
61
87
  * SRT and AES support is now optional
62
88
  * __threefive is fully python v3.14 compliant__
63
- * I fixed everything they broke/changed between v3.09 and 3.14.
64
- * 0 deprecation warnings.
65
89
  * __No more setup tools!__ threefive now uses a __toml file and a Makefile__ to generate packages,
66
90
  * I'm just trying to fit in with the cool python kids.
67
91
  * __fix__ for addressable tv Upids
@@ -76,6 +100,8 @@ ___
76
100
 
77
101
  # [__[Examples]__](https://github.com/superkabuki/threefive/tree/main/examples)
78
102
 
103
+
104
+
79
105
  # [ Documentation ]
80
106
 
81
107
  * __use threefive on the web__
@@ -1,5 +1,8 @@
1
1
  ### It is now official, phase three of threefive's global domination has begun. Behold [threefive.js](https://github.com/keithah/threefive.js)
2
- _(ominous music plays in the background)_
2
+ _threefive has been ported to Javascript, C#, and Go._
3
+
4
+
5
+
3
6
 
4
7
  # [ threefive ]
5
8
 
@@ -24,6 +27,28 @@ _(ominous music plays in the background)_
24
27
 
25
28
  ___
26
29
 
30
+ # Tip of the week.
31
+ ## Q. How do I get a list of all the SCTE-35 cues in a stream?
32
+ ## A. Like this
33
+ ```py3
34
+ from threefive import Stream
35
+
36
+ strm=Stream('some_video.ts')
37
+ list_o_cues=[]
38
+ for cue in strm.decode_next(): # Stream.decode_next is a generator
39
+ list_o_cues.append(cue) # these will be threefive.Cue instances
40
+
41
+ # then you can do stuff like
42
+
43
+ for cue in list_o_cues:
44
+
45
+ print(cue.xml())
46
+
47
+ print(cue.command)
48
+
49
+ cue.show()
50
+ ```
51
+ * I have always felt that if you use a library, you shouldn't have to write a lot of code.
27
52
 
28
53
 
29
54
  ### [ News ]
@@ -35,14 +60,13 @@ ___
35
60
  * I have been __trying to setup threefive on readthedocs__,it's not going very well, but I'm working on it.
36
61
  ___
37
62
 
38
- ## [ Latest version is v3.0.81 ]
63
+ ## [ Latest version is v3.0.83 ]
39
64
 
40
- * threefive cyclomatic complexity score is 1.9337094499294782 _( that's better than the Python standard library)_ .
65
+ * __v3.0.83__ is to fix a bug 3.0.81 related to AES decryption..
66
+ * threefive cyclomatic complexity score is 1.9337094499294782 _( that's better than the Python standard library)_ .
41
67
  * __threefive now has NO External Dependencies__
42
68
  * SRT and AES support is now optional
43
69
  * __threefive is fully python v3.14 compliant__
44
- * I fixed everything they broke/changed between v3.09 and 3.14.
45
- * 0 deprecation warnings.
46
70
  * __No more setup tools!__ threefive now uses a __toml file and a Makefile__ to generate packages,
47
71
  * I'm just trying to fit in with the cool python kids.
48
72
  * __fix__ for addressable tv Upids
@@ -57,6 +81,8 @@ ___
57
81
 
58
82
  # [__[Examples]__](https://github.com/superkabuki/threefive/tree/main/examples)
59
83
 
84
+
85
+
60
86
  # [ Documentation ]
61
87
 
62
88
  * __use threefive on the web__
@@ -1,7 +1,7 @@
1
1
 
2
2
  [project]
3
3
  name = "threefive"
4
- version = "3.0.81"
4
+ version = "3.0.83"
5
5
  authors = [
6
6
  { name="AdrianofDoom", email="spam@iodisco.com" },
7
7
  ]
@@ -3,8 +3,7 @@ threefive.__init__.py
3
3
  """
4
4
 
5
5
  from .version import version
6
-
7
- __version__ = version
6
+ __version__= version
8
7
 
9
8
  from .base import SCTE35Base
10
9
  from .cue import Cue
@@ -20,11 +20,11 @@ from .iframes import IFramer
20
20
  from .new_reader import reader
21
21
  from .cue import Cue
22
22
  from .stream import Stream
23
- from .stuff import print2, red
23
+ from .stuff import print2, red
24
24
  from .stuff import ERR
25
25
  from .version import version
26
26
 
27
- # import cProfile
27
+ #import cProfile
28
28
  # from sideways import cli as sidecli
29
29
 
30
30
  write2 = False
@@ -240,7 +240,6 @@ def sidecar_chk(this):
240
240
  strm = Stream(this)
241
241
  strm.decode(func=mk_sidecar)
242
242
 
243
-
244
243
  def speedo_chk(this):
245
244
  """
246
245
  speedo_chk displays parse speed for mpegts streams
@@ -248,7 +247,6 @@ def speedo_chk(this):
248
247
  strm = Stream(this)
249
248
  strm.speed()
250
249
 
251
-
252
250
  mpegts_map = {
253
251
  "packets": packet_chk,
254
252
  "proxy": proxy_chk,
@@ -7,7 +7,7 @@ threefive.encode has helper functions for Cue encoding.
7
7
 
8
8
  from .commands import SpliceNull, SpliceInsert, TimeSignal
9
9
  from .cue import Cue
10
- from .stuff import pif
10
+ from.stuff import pif
11
11
 
12
12
 
13
13
  def mk_splice_null():
@@ -69,7 +69,7 @@ class GumS:
69
69
  self.socked.sendto(dgram, self.dest_grp)
70
70
  throttle.throttle(packets[-1])
71
71
  speedo.plus(len(dgram))
72
- flush = b"\xff" * 1316
72
+ flush=b'\xff' * 1316
73
73
  self.socked.sendto(flush, self.dest_grp)
74
74
 
75
75
  speedo.end()
@@ -104,7 +104,7 @@ def parse_args():
104
104
  parse_args parse command line args
105
105
  """
106
106
 
107
- parser = argparse.ArgumentParser(epilog="gums is part of threefive.\n\n")
107
+ parser = argparse.ArgumentParser( epilog="gums is part of threefive.\n\n")
108
108
 
109
109
  parser.add_argument(
110
110
  "-i",
@@ -116,6 +116,7 @@ def parse_args():
116
116
  """,
117
117
  )
118
118
 
119
+
119
120
  parser.add_argument(
120
121
  "-a",
121
122
  "--addr",
@@ -782,7 +782,7 @@ class HlsParser:
782
782
 
783
783
 
784
784
  def _chk_help():
785
- for h in ["help", "-h", "--help"]:
785
+ for h in ['help','-h', '--help']:
786
786
  if h in sys.argv:
787
787
  print(HELPME)
788
788
  sys.exit()
@@ -7,13 +7,11 @@ Home of the reader function
7
7
  import socket
8
8
  import sys
9
9
  import urllib.request
10
-
11
10
  try:
12
11
  from srtfu import SRTfu, SRTO_TRANSTYPE, SRT_LIVE, SRTO_RCVSYN, SRTO_RCVBUF
13
-
14
- HAS_SRT = True
12
+ HAS_SRT=True
15
13
  except ImportError:
16
- HAS_SRT = False
14
+ HAS_SRT=False
17
15
  from .udp import udp_receiver, mcast_ttl
18
16
  from .stuff import blue, ERR, pif, print2
19
17
 
@@ -41,7 +39,7 @@ def try_srt(url, headers={}):
41
39
  if HAS_SRT:
42
40
  return _do_srt(uri, headers=headers)
43
41
  else:
44
- print2("pip install srtfu to add SRT support")
42
+ print2('pip install srtfu to add SRT support')
45
43
  return False
46
44
 
47
45
 
@@ -9,9 +9,9 @@ from .stuff import print2
9
9
 
10
10
  AES = True
11
11
  try:
12
- import pyaesfu
12
+ import pyaes
13
13
  except ImportError:
14
- print2("pip install pyaes for AES support")
14
+ print2('pip install pyaes for AES support')
15
15
  AES = False
16
16
 
17
17
 
@@ -12,7 +12,7 @@ from .pmt import PMT
12
12
 
13
13
  fixme = []
14
14
 
15
- HELPME = """
15
+ HELPME="""
16
16
  scte35fix checks MPEGTS for SCTE-35 Streams
17
17
  that have been change to bin data (type 0x06)
18
18
  and changes them back to SCTE-35 (type 0x86) streams.
@@ -41,14 +41,13 @@ HELPME = """
41
41
  scte35fix is part of threefive.
42
42
  """
43
43
 
44
-
45
44
  def passed(cue):
46
45
  """
47
46
  passed is a function passed to decode
48
47
  used to pull pids from streams containing SCTE-35
49
48
  so that we don't convert non-SCTE-35 0x06 streams.
50
49
  """
51
- globals()["fixme"].append(cue.packet_data.pid)
50
+ globals()['fixme'].append(cue.packet_data.pid)
52
51
  return cue
53
52
 
54
53
 
@@ -59,7 +58,7 @@ class PreFix(Stream):
59
58
 
60
59
  def decode(self, func=passed):
61
60
  super().decode(func=passed)
62
- tofix = list(set(globals()["fixme"]))
61
+ tofix = list(set(globals()['fixme']))
63
62
  if tofix:
64
63
  print("fixing these pids", tofix)
65
64
  return tofix
@@ -215,7 +214,7 @@ def sixfix(arg):
215
214
  sixfix converts 0x6 bin data mpegts streams
216
215
  that contain SCTE-35 data to stream type 0x86
217
216
  """
218
- globals()["fixme"] = []
217
+ globals()['fixme'] = []
219
218
  s1 = PreFix(arg)
220
219
  print2(f"reading {arg}")
221
220
  sixed = s1.decode(func=passed)
@@ -231,7 +230,7 @@ def sixfix(arg):
231
230
 
232
231
 
233
232
  def _chk_help():
234
- for h in ["help", "-h", "--help"]:
233
+ for h in ['help','-h', '--help']:
235
234
  if h in sys.argv:
236
235
  print(HELPME)
237
236
  sys.exit()
@@ -20,7 +20,7 @@ ERR = (
20
20
  KeyError,
21
21
  )
22
22
 
23
- BLUE = "\033[7m" # \033[44m"
23
+ BLUE = "\033[7m"#\033[44m"
24
24
  RED = "\033[107m\033[41m"
25
25
  RESET = " \033[0m"
26
26
 
@@ -53,9 +53,7 @@ class SuperKabuki(SixFix):
53
53
  """
54
54
  _parse_args parse command line args
55
55
  """
56
- parser = argparse.ArgumentParser(
57
- epilog="scte35inject is part of threefive.\n\n"
58
- )
56
+ parser = argparse.ArgumentParser(epilog="scte35inject is part of threefive.\n\n")
59
57
  parser.add_argument(
60
58
  "-i",
61
59
  "--input",
@@ -338,7 +338,7 @@ class Mpu(Upid):
338
338
  def _decode_adfr(self):
339
339
  """
340
340
  decode_adfr handles Addressabkle TV MPU Upids
341
-
341
+
342
342
  """
343
343
  data = bytes.fromhex(self.upid_value["private_data"][2:])
344
344
  self.upid_value["version"] = data[0]
@@ -5,6 +5,6 @@ from the cli tool run: threefive version
5
5
 
6
6
  MAJOR = 3
7
7
  MINOR = 0
8
- MINI = 81
8
+ MINI = 83
9
9
 
10
10
  version = f"{MAJOR}.{MINOR}.{MINI}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: threefive
3
- Version: 3.0.81
3
+ Version: 3.0.83
4
4
  Summary: threefive is The #1 SCTE-35 Decoder and Encoder on the Planet.
5
5
  Author-email: AdrianofDoom <spam@iodisco.com>
6
6
  License-Expression: Sleepycat
@@ -18,7 +18,10 @@ License-File: LICENSE
18
18
  Dynamic: license-file
19
19
 
20
20
  ### It is now official, phase three of threefive's global domination has begun. Behold [threefive.js](https://github.com/keithah/threefive.js)
21
- _(ominous music plays in the background)_
21
+ _threefive has been ported to Javascript, C#, and Go._
22
+
23
+
24
+
22
25
 
23
26
  # [ threefive ]
24
27
 
@@ -43,6 +46,28 @@ _(ominous music plays in the background)_
43
46
 
44
47
  ___
45
48
 
49
+ # Tip of the week.
50
+ ## Q. How do I get a list of all the SCTE-35 cues in a stream?
51
+ ## A. Like this
52
+ ```py3
53
+ from threefive import Stream
54
+
55
+ strm=Stream('some_video.ts')
56
+ list_o_cues=[]
57
+ for cue in strm.decode_next(): # Stream.decode_next is a generator
58
+ list_o_cues.append(cue) # these will be threefive.Cue instances
59
+
60
+ # then you can do stuff like
61
+
62
+ for cue in list_o_cues:
63
+
64
+ print(cue.xml())
65
+
66
+ print(cue.command)
67
+
68
+ cue.show()
69
+ ```
70
+ * I have always felt that if you use a library, you shouldn't have to write a lot of code.
46
71
 
47
72
 
48
73
  ### [ News ]
@@ -54,14 +79,13 @@ ___
54
79
  * I have been __trying to setup threefive on readthedocs__,it's not going very well, but I'm working on it.
55
80
  ___
56
81
 
57
- ## [ Latest version is v3.0.81 ]
82
+ ## [ Latest version is v3.0.83 ]
58
83
 
59
- * threefive cyclomatic complexity score is 1.9337094499294782 _( that's better than the Python standard library)_ .
84
+ * __v3.0.83__ is to fix a bug 3.0.81 related to AES decryption..
85
+ * threefive cyclomatic complexity score is 1.9337094499294782 _( that's better than the Python standard library)_ .
60
86
  * __threefive now has NO External Dependencies__
61
87
  * SRT and AES support is now optional
62
88
  * __threefive is fully python v3.14 compliant__
63
- * I fixed everything they broke/changed between v3.09 and 3.14.
64
- * 0 deprecation warnings.
65
89
  * __No more setup tools!__ threefive now uses a __toml file and a Makefile__ to generate packages,
66
90
  * I'm just trying to fit in with the cool python kids.
67
91
  * __fix__ for addressable tv Upids
@@ -76,6 +100,8 @@ ___
76
100
 
77
101
  # [__[Examples]__](https://github.com/superkabuki/threefive/tree/main/examples)
78
102
 
103
+
104
+
79
105
  # [ Documentation ]
80
106
 
81
107
  * __use threefive on the web__
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes