Skip to content

Commit cc03552

Browse files
authored
Don't add automatically ffmpeg audio transcoding (#24)
1 parent 470ec70 commit cc03552

File tree

2 files changed

+47
-14
lines changed

2 files changed

+47
-14
lines changed

go2rtc_client/rest.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -119,20 +119,20 @@ def __init__(self, client: _BaseClient) -> None:
119119
self._client = client
120120

121121
@handle_error
122-
async def list(self) -> dict[str, Stream]:
123-
"""List streams registered with the server."""
124-
resp = await self._client.request("GET", self.PATH)
125-
return _GET_STREAMS_DECODER.decode(await resp.json())
126-
127-
@handle_error
128-
async def add(self, name: str, source: str) -> None:
122+
async def add(self, name: str, sources: str | list[str]) -> None:
129123
"""Add a stream to the server."""
130124
await self._client.request(
131125
"PUT",
132126
self.PATH,
133-
params={"name": name, "src": [source, f"ffmpeg:{name}#audio=opus"]},
127+
params={"name": name, "src": sources},
134128
)
135129

130+
@handle_error
131+
async def list(self) -> dict[str, Stream]:
132+
"""List streams registered with the server."""
133+
resp = await self._client.request("GET", self.PATH)
134+
return _GET_STREAMS_DECODER.decode(await resp.json())
135+
136136
@handle_error
137137
async def probe(
138138
self, stream_name: str, *, audio: str | None = None, video: str | None = None

tests/test_rest.py

Lines changed: 39 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,29 +67,62 @@ async def test_streams_get(
6767
assert resp == snapshot
6868

6969

70-
async def test_streams_add(
70+
async def test_streams_add_list(
7171
responses: aioresponses,
7272
rest_client: Go2RtcRestClient,
7373
) -> None:
7474
"""Test add stream."""
7575
url = f"{URL}{_StreamClient.PATH}"
76+
camera = "camera.12mp_fluent"
7677
params = {
77-
"name": "camera.12mp_fluent",
78+
"name": camera,
7879
"src": [
7980
"rtsp://test:test@192.168.10.105:554/Preview_06_sub",
80-
"ffmpeg:camera.12mp_fluent#audio=opus",
81+
f"ffmpeg:{camera}#audio=opus",
8182
],
8283
}
8384
responses.put(
8485
url
85-
+ "?name=camera.12mp_fluent"
86-
+ "&src=ffmpeg%253Acamera.12mp_fluent%2523audio%253Dopus"
86+
+ f"?name={camera}"
87+
+ f"&src=ffmpeg%253A{camera}%2523audio%253Dopus"
8788
+ "&src=rtsp%253A%252F%252Ftest%253Atest%2540192.168.10.105%253A554%252F"
8889
+ "Preview_06_sub",
8990
status=200,
9091
)
9192
await rest_client.streams.add(
92-
"camera.12mp_fluent", "rtsp://test:test@192.168.10.105:554/Preview_06_sub"
93+
camera,
94+
[
95+
"rtsp://test:test@192.168.10.105:554/Preview_06_sub",
96+
f"ffmpeg:{camera}#audio=opus",
97+
],
98+
)
99+
100+
responses.assert_called_once_with(
101+
url, method=METH_PUT, params=params, timeout=ClientTimeout(total=10)
102+
)
103+
104+
105+
async def test_streams_add_str(
106+
responses: aioresponses,
107+
rest_client: Go2RtcRestClient,
108+
) -> None:
109+
"""Test add stream."""
110+
url = f"{URL}{_StreamClient.PATH}"
111+
camera = "camera.12mp_fluent"
112+
params = {
113+
"name": camera,
114+
"src": "rtsp://test:test@192.168.10.105:554/Preview_06_sub",
115+
}
116+
responses.put(
117+
url
118+
+ f"?name={camera}"
119+
+ "&src=rtsp%253A%252F%252Ftest%253Atest%2540192.168.10.105%253A554%252F"
120+
+ "Preview_06_sub",
121+
status=200,
122+
)
123+
await rest_client.streams.add(
124+
camera,
125+
"rtsp://test:test@192.168.10.105:554/Preview_06_sub",
93126
)
94127

95128
responses.assert_called_once_with(

0 commit comments

Comments
 (0)