From 59cf0b846d69175543e7e57c8add91229559fc9f Mon Sep 17 00:00:00 2001 From: Goffi Date: Sat, 8 Nov 2025 22:21:23 +0100 Subject: [PATCH] cli (call), frontends(tools/webrtc_models): Add source for stdin: If data is piped in with `auto` source, a new `SourcesStdin` is used. --- libervia/cli/cmd_call.py | 6 +++++- libervia/frontends/tools/webrtc_models.py | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/libervia/cli/cmd_call.py b/libervia/cli/cmd_call.py index 4142e4eb..af2c4d62 100644 --- a/libervia/cli/cmd_call.py +++ b/libervia/cli/cmd_call.py @@ -22,13 +22,15 @@ from functools import partial import importlib import logging from typing import Any +import sys +import select from libervia.backend.core.i18n import _ from libervia.backend.tools.common import data_format from libervia.cli.constants import Const as C from libervia.frontends.tools import jid -from libervia.frontends.tools.webrtc_models import CallData, SourcesPipeline +from libervia.frontends.tools.webrtc_models import CallData, SourcesPipeline, SourcesStdin from . import base @@ -96,6 +98,8 @@ class Common(base.CommandBase): from libervia.frontends.tools.webrtc_models import SourcesTest kwargs["sources_data"] = SourcesTest() + elif self.args.sources == "auto" and not sys.stdin.isatty(): + kwargs["sources_data"] = SourcesStdin() return kwargs async def start(self): diff --git a/libervia/frontends/tools/webrtc_models.py b/libervia/frontends/tools/webrtc_models.py index b5731600..fe0880fe 100644 --- a/libervia/frontends/tools/webrtc_models.py +++ b/libervia/frontends/tools/webrtc_models.py @@ -87,6 +87,10 @@ class SourcesPipeline(SourcesData): audio_properties: dict = Field(default_factory=lambda: {}) +class SourcesStdin(SourcesData): + """Sources from stdin with automatic format detection.""" + + class SinksData(BaseModel): """Data for Sinks"""