reactor-runtime 3.2.1__tar.gz → 3.2.2__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 (98) hide show
  1. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/PKG-INFO +2 -2
  2. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/pyproject.toml +2 -2
  3. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/pyproject.toml.orig +2 -2
  4. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/core/values.py +12 -9
  5. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/transport/webrtc/peer.py +5 -6
  6. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/LICENSE +0 -0
  7. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/NOTICE +0 -0
  8. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/README.md +0 -0
  9. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/__init__.py +0 -0
  10. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/codes.py +0 -0
  11. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/core/__init__.py +0 -0
  12. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/core/fields.py +0 -0
  13. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/core/model.py +0 -0
  14. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/core/naming.py +0 -0
  15. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/core/service.py +0 -0
  16. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/core/session.py +0 -0
  17. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/core/transport.py +0 -0
  18. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/core/typespec.py +0 -0
  19. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/event_stream.py +0 -0
  20. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/http/__init__.py +0 -0
  21. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/http/events.py +0 -0
  22. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/http/routes.py +0 -0
  23. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/http/server.py +0 -0
  24. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/http/spec.py +0 -0
  25. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/interface/__init__.py +0 -0
  26. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/interface/client.py +0 -0
  27. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/interface/events/__init__.py +0 -0
  28. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/interface/events/decorators.py +0 -0
  29. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/interface/events/errors.py +0 -0
  30. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/interface/events/messages.py +0 -0
  31. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/interface/internal/__init__.py +0 -0
  32. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/interface/internal/bridge.py +0 -0
  33. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/interface/internal/input_buffer.py +0 -0
  34. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/interface/internal/reactor_core.py +0 -0
  35. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/interface/model/__init__.py +0 -0
  36. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/interface/model/contract.py +0 -0
  37. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/interface/model/reactor_model.py +0 -0
  38. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/interface/model/schema.py +0 -0
  39. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/interface/pipeline/__init__.py +0 -0
  40. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/interface/pipeline/idle.py +0 -0
  41. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/interface/pipeline/input_state.py +0 -0
  42. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/interface/pipeline/reactor_pipeline.py +0 -0
  43. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/interface/tracks/__init__.py +0 -0
  44. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/interface/tracks/descriptors.py +0 -0
  45. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/interface/tracks/input.py +0 -0
  46. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/interface/tracks/output.py +0 -0
  47. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/log.py +0 -0
  48. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/manifest.py +0 -0
  49. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/message_gateway.py +0 -0
  50. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/metrics.py +0 -0
  51. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/paths.py +0 -0
  52. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/protocol/__init__.py +0 -0
  53. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/protocol/base.py +0 -0
  54. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/protocol/common.py +0 -0
  55. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/protocol/v0/__init__.py +0 -0
  56. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/protocol/v0/codec.py +0 -0
  57. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/protocol/v1/__init__.py +0 -0
  58. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/protocol/v1/codec.py +0 -0
  59. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/py.typed +0 -0
  60. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/recording/__init__.py +0 -0
  61. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/recording/chunk_encoder.py +0 -0
  62. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/recording/markers.py +0 -0
  63. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/recording/recorder.py +0 -0
  64. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/runner/__init__.py +0 -0
  65. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/runner/connection_manager.py +0 -0
  66. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/runner/offer_epochs.py +0 -0
  67. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/runner/runner.py +0 -0
  68. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/runner/state_machine.py +0 -0
  69. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/schema.py +0 -0
  70. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/serve.py +0 -0
  71. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/service.py +0 -0
  72. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/transport/__init__.py +0 -0
  73. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/transport/acceptor.py +0 -0
  74. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/transport/router.py +0 -0
  75. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/transport/webrtc/__init__.py +0 -0
  76. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/transport/webrtc/acceptor.py +0 -0
  77. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/transport/webrtc/config.py +0 -0
  78. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/transport/webrtc/connection.py +0 -0
  79. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/transport/webrtc/frames.py +0 -0
  80. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/transport/webrtc/pacer.py +0 -0
  81. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/transport/webrtc/router.py +0 -0
  82. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/transport/webrtc/sdp.py +0 -0
  83. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/transport/webrtc/signaling.py +0 -0
  84. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/transport/webrtc/stats.py +0 -0
  85. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/transport/webrtc/version.py +0 -0
  86. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_runtime/upload_store.py +0 -0
  87. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_wire/v1/common_pb2.py +0 -0
  88. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_wire/v1/common_pb2.pyi +0 -0
  89. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_wire/v1/control_pb2.py +0 -0
  90. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_wire/v1/control_pb2.pyi +0 -0
  91. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_wire/v1/data_pb2.py +0 -0
  92. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_wire/v1/data_pb2.pyi +0 -0
  93. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_wire/v1/model_pb2.py +0 -0
  94. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_wire/v1/model_pb2.pyi +0 -0
  95. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_wire/v1/platform_pb2.py +0 -0
  96. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_wire/v1/platform_pb2.pyi +0 -0
  97. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_wire/v1/track_pb2.py +0 -0
  98. {reactor_runtime-3.2.1 → reactor_runtime-3.2.2}/src/reactor_wire/v1/track_pb2.pyi +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: reactor-runtime
3
- Version: 3.2.1
3
+ Version: 3.2.2
4
4
  Summary: A Python framework for building real-time, interactive video models
5
5
  Author: Reactor
6
6
  Author-email: Reactor <team@reactor.inc>
@@ -18,7 +18,7 @@ Requires-Dist: numpy>=2.1
18
18
  Requires-Dist: prometheus-client>=0.26.0
19
19
  Requires-Dist: protobuf>=7.35.1
20
20
  Requires-Dist: pyyaml>=6.0.3
21
- Requires-Dist: reactor-webrtc==0.10.0
21
+ Requires-Dist: reactor-webrtc==0.12.0
22
22
  Requires-Dist: uvicorn>=0.49.0
23
23
  Requires-Python: >=3.12
24
24
  Project-URL: Source, https://github.com/reactor-team/reactor-runtime
@@ -92,7 +92,7 @@ pythonpath = ["."]
92
92
 
93
93
  [project]
94
94
  name = "reactor-runtime"
95
- version = "3.2.1"
95
+ version = "3.2.2"
96
96
  description = "A Python framework for building real-time, interactive video models"
97
97
  readme = "README.md"
98
98
  license = "Apache-2.0"
@@ -115,7 +115,7 @@ dependencies = [
115
115
  "prometheus-client>=0.26.0",
116
116
  "protobuf>=7.35.1",
117
117
  "pyyaml>=6.0.3",
118
- "reactor-webrtc==0.10.0",
118
+ "reactor-webrtc==0.12.0",
119
119
  "uvicorn>=0.49.0",
120
120
  ]
121
121
 
@@ -20,7 +20,7 @@ version = "1.20260814.7"
20
20
 
21
21
  [project]
22
22
  name = "reactor-runtime"
23
- version = "3.2.1"
23
+ version = "3.2.2"
24
24
  description = "A Python framework for building real-time, interactive video models"
25
25
  readme = "README.md"
26
26
  license = "Apache-2.0"
@@ -41,7 +41,7 @@ dependencies = [
41
41
  "prometheus-client>=0.26.0",
42
42
  "protobuf>=7.35.1",
43
43
  "pyyaml>=6.0.3",
44
- "reactor-webrtc==0.10.0",
44
+ "reactor-webrtc==0.12.0",
45
45
  "uvicorn>=0.49.0",
46
46
  ]
47
47
 
@@ -64,15 +64,18 @@ class InputFrame:
64
64
  metadata: What the sender attached to this frame, as the bytes it sent,
65
65
  or ``None`` for a frame that carried nothing. Decoding them is the
66
66
  model's business: the transport treats them as opaque.
67
- capture_time_us: The microsecond the sender stamped this frame as it went
68
- to the wire — its capture instant for a source that sends as it
69
- captures — or ``None`` for a frame that carried no stamp. The wire
70
- value, unrounded, in the unit the sender's own SDK works in. It rides
71
- with the metadata, so a sender or a transport that carries neither
72
- leaves both unset. Unlike ``pts``, it is a reading of another
73
- machine's clock: differences between stamps from one sender are that
74
- source's own timing, while anything subtracted from a local clock is
75
- mostly the offset between two clocks that drift independently.
67
+ capture_time_us: When the sender says this frame was captured, in
68
+ microseconds, or ``None`` for a frame that carried no stamp. The value
69
+ the sender declared, unrounded — a client that stamps several tracks
70
+ from one clock reading therefore delivers that one value on all of
71
+ them, which is what makes a multi-camera capture readable as a single
72
+ moment. A sender that declares nothing has its transport read a clock
73
+ for it, so a stamped frame is the normal case. It rides with the
74
+ metadata, so a sender or a transport that carries neither leaves both
75
+ unset. Unlike ``pts``, it is a reading of another machine's clock:
76
+ differences between stamps from one sender are that source's own
77
+ timing, while anything subtracted from a local clock is mostly the
78
+ offset between two clocks that drift independently.
76
79
  """
77
80
 
78
81
  data: npt.NDArray[Any]
@@ -583,8 +583,8 @@ class WebRTCPeer:
583
583
 
584
584
  The fourth argument is the trailer the sender attached, when it was there
585
585
  to read and the receiver transform is in place to strip it. It carries the
586
- sender's own bytes and, beside them, the microsecond the sender stamped
587
- the frame at, which reaches the model as that frame's capture time.
586
+ sender's own bytes and, beside them, the capture time the sender declared
587
+ for the frame, which reaches the model as that frame's capture time.
588
588
  """
589
589
 
590
590
  def sink(
@@ -593,10 +593,9 @@ class WebRTCPeer:
593
593
  if self._stop_event.is_set():
594
594
  return
595
595
  metadata = bytes(meta.user_data) if meta is not None else b""
596
- # The trailer leaves the stamp zero when the sender set none. Zero is
597
- # not a clock reading, so it is the absence of a stamp rather than a
598
- # frame captured at the epoch.
599
- capture_us = meta.timestamp if meta is not None else 0
596
+ # Zero is the trailer's "unset", and it is not a clock reading: a frame
597
+ # captured at the epoch is not what a sender means by it.
598
+ capture_us = meta.capture_time_us if meta is not None else 0
600
599
  frame = InputFrame(
601
600
  data=bgra_to_rgb(bgra, width, height),
602
601
  # An empty trailer is a frame the sender attached nothing to.
File without changes
File without changes