From 535366b90c170691842311a3898a3d83d744ef75 Mon Sep 17 00:00:00 2001 From: Christophe Besson Date: Thu, 24 Sep 2026 02:32:59 +0200 Subject: refactor(node): move video streaming out of webrtc_server StreamingMixin in transport/webrtc/apps/streaming.py: stream credit, handover, the transcode slots and _stream_video_inner, moved unchanged. Co-Authored-By: Claude Opus 5.5 --- packages/meshbay-node/tests/test_stream_audio_track_selection.py | 3 ++- packages/meshbay-node/tests/test_stream_audio_transcode.py | 3 ++- packages/meshbay-node/tests/test_stream_capacity.py | 7 ++----- packages/meshbay-node/tests/test_stream_capacity_config.py | 7 ++----- packages/meshbay-node/tests/test_stream_seek_audio_alignment.py | 2 +- .../meshbay-node/tests/test_stream_seek_reports_the_keyframe.py | 6 ++---- packages/meshbay-node/tests/test_stream_subtitle_tracks.py | 3 ++- packages/meshbay-node/tests/test_stream_video_transcode.py | 3 ++- 8 files changed, 15 insertions(+), 19 deletions(-) (limited to 'packages/meshbay-node/tests') diff --git a/packages/meshbay-node/tests/test_stream_audio_track_selection.py b/packages/meshbay-node/tests/test_stream_audio_track_selection.py index b9e2105..f17592b 100644 --- a/packages/meshbay-node/tests/test_stream_audio_track_selection.py +++ b/packages/meshbay-node/tests/test_stream_audio_track_selection.py @@ -26,7 +26,8 @@ from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey from meshbay_common.crypto import generate_gek from meshbay_common.webcrypto import chunk_key_aes, decrypt_chunk_aes from meshbay_node.indexer.group_index import GroupIndex -from meshbay_node.transport.webrtc_server import WebRTCPeerSession, _probe_video +from meshbay_node.media_probe import probe_video as _probe_video +from meshbay_node.transport.webrtc_server import WebRTCPeerSession from conftest import needs_subprocess, one_root diff --git a/packages/meshbay-node/tests/test_stream_audio_transcode.py b/packages/meshbay-node/tests/test_stream_audio_transcode.py index 6c9bde7..8411d25 100644 --- a/packages/meshbay-node/tests/test_stream_audio_transcode.py +++ b/packages/meshbay-node/tests/test_stream_audio_transcode.py @@ -25,7 +25,8 @@ from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey from meshbay_common.crypto import generate_gek from meshbay_common.webcrypto import chunk_key_aes, decrypt_chunk_aes from meshbay_node.indexer.group_index import GroupIndex -from meshbay_node.transport.webrtc_server import WebRTCPeerSession, _probe_video +from meshbay_node.media_probe import probe_video as _probe_video +from meshbay_node.transport.webrtc_server import WebRTCPeerSession from conftest import needs_subprocess, one_root diff --git a/packages/meshbay-node/tests/test_stream_capacity.py b/packages/meshbay-node/tests/test_stream_capacity.py index 7ce6bf6..aecee6f 100644 --- a/packages/meshbay-node/tests/test_stream_capacity.py +++ b/packages/meshbay-node/tests/test_stream_capacity.py @@ -17,11 +17,8 @@ find. import asyncio import pytest -from meshbay_node.transport.webrtc_server import ( - MAX_CONCURRENT_TRANSCODES, - WebRTCPeerSession, - WebRTCTransport, -) +from meshbay_node.transport.webrtc.apps.streaming import MAX_CONCURRENT_TRANSCODES +from meshbay_node.transport.webrtc_server import WebRTCPeerSession, WebRTCTransport def _pool(transport) -> asyncio.Semaphore: diff --git a/packages/meshbay-node/tests/test_stream_capacity_config.py b/packages/meshbay-node/tests/test_stream_capacity_config.py index c788ba6..5514712 100644 --- a/packages/meshbay-node/tests/test_stream_capacity_config.py +++ b/packages/meshbay-node/tests/test_stream_capacity_config.py @@ -25,11 +25,8 @@ from pathlib import Path import pytest from meshbay_node.config import load_config from meshbay_node.roots import RootSet -from meshbay_node.transport.webrtc_server import ( - MAX_CONCURRENT_TRANSCODES, - WebRTCPeerSession, - WebRTCTransport, -) +from meshbay_node.transport.webrtc.apps.streaming import MAX_CONCURRENT_TRANSCODES +from meshbay_node.transport.webrtc_server import WebRTCPeerSession, WebRTCTransport def _cfg(tmp_path: Path, body: str): diff --git a/packages/meshbay-node/tests/test_stream_seek_audio_alignment.py b/packages/meshbay-node/tests/test_stream_seek_audio_alignment.py index 5d78c00..3a10464 100644 --- a/packages/meshbay-node/tests/test_stream_seek_audio_alignment.py +++ b/packages/meshbay-node/tests/test_stream_seek_audio_alignment.py @@ -222,7 +222,7 @@ async def test_a_transcoded_video_keeps_accurate_seeking(tmp_path): session, file_id = _session(tmp_path, clip, gek) # Force the re-encode branch the way a browser-incompatible source would. session._ctx["transcode_incompatible_video"] = True - import meshbay_node.transport.webrtc_server as ws + import meshbay_node.transport.webrtc.apps.streaming as ws real = ws.BROWSER_INCOMPATIBLE_VIDEO_CODECS ws.BROWSER_INCOMPATIBLE_VIDEO_CODECS = frozenset({"h264"}) try: diff --git a/packages/meshbay-node/tests/test_stream_seek_reports_the_keyframe.py b/packages/meshbay-node/tests/test_stream_seek_reports_the_keyframe.py index c575572..af6ea71 100644 --- a/packages/meshbay-node/tests/test_stream_seek_reports_the_keyframe.py +++ b/packages/meshbay-node/tests/test_stream_seek_reports_the_keyframe.py @@ -38,10 +38,8 @@ from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey from meshbay_common.crypto import generate_gek from meshbay_common.webcrypto import chunk_key_aes, decrypt_chunk_aes from meshbay_node.indexer.group_index import GroupIndex -from meshbay_node.transport.webrtc_server import ( - WebRTCPeerSession, - _seek_lands_at, -) +from meshbay_node.transport.webrtc.media_tools import _seek_lands_at +from meshbay_node.transport.webrtc_server import WebRTCPeerSession from conftest import needs_subprocess, one_root diff --git a/packages/meshbay-node/tests/test_stream_subtitle_tracks.py b/packages/meshbay-node/tests/test_stream_subtitle_tracks.py index 32b503b..fc93dc9 100644 --- a/packages/meshbay-node/tests/test_stream_subtitle_tracks.py +++ b/packages/meshbay-node/tests/test_stream_subtitle_tracks.py @@ -37,8 +37,9 @@ from meshbay_common.crypto import generate_gek from meshbay_common.webcrypto import chunk_key_aes, decrypt_chunk_aes from meshbay_node.indexer.group_index import GroupIndex from meshbay_node.media_probe import TEXT_SUBTITLE_CODECS +from meshbay_node.media_probe import probe_video as _probe_video from meshbay_node.transport.webrtc.media_tools import _subtitle_timeout_for -from meshbay_node.transport.webrtc_server import WebRTCPeerSession, _probe_video +from meshbay_node.transport.webrtc_server import WebRTCPeerSession from conftest import needs_subprocess, one_root diff --git a/packages/meshbay-node/tests/test_stream_video_transcode.py b/packages/meshbay-node/tests/test_stream_video_transcode.py index b60d546..87e4130 100644 --- a/packages/meshbay-node/tests/test_stream_video_transcode.py +++ b/packages/meshbay-node/tests/test_stream_video_transcode.py @@ -36,7 +36,8 @@ from meshbay_common.crypto import generate_gek from meshbay_common.webcrypto import chunk_key_aes, decrypt_chunk_aes from meshbay_node import hwaccel from meshbay_node.indexer.group_index import GroupIndex -from meshbay_node.transport.webrtc_server import WebRTCPeerSession, _probe_video +from meshbay_node.media_probe import probe_video as _probe_video +from meshbay_node.transport.webrtc_server import WebRTCPeerSession from conftest import needs_subprocess, one_root -- cgit v1.2.3