libdatachannel-py 2025.1.0.dev15__tar.gz → 2025.1.0.dev17__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.
- {libdatachannel_py-2025.1.0.dev15/src/libdatachannel_py.egg-info → libdatachannel_py-2025.1.0.dev17}/PKG-INFO +1 -1
- libdatachannel_py-2025.1.0.dev17/VERSION +1 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/pypath.py +1 -3
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/pyproject.toml +8 -13
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/src/libdatachannel/codec/__init__.pyi +20 -19
- libdatachannel_py-2025.1.0.dev15/src/libdatachannel/libdatachannel_ext.cpython-313-darwin.so → libdatachannel_py-2025.1.0.dev17/src/libdatachannel/libdatachannel_ext.cpython-314-darwin.so +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/src/libdatachannel/libyuv/__init__.pyi +8 -8
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17/src/libdatachannel_py.egg-info}/PKG-INFO +1 -1
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/src/libdatachannel_py.egg-info/SOURCES.txt +1 -1
- libdatachannel_py-2025.1.0.dev15/VERSION +0 -1
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/LICENSE +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/MANIFEST.in +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/README.md +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/buildbase.py +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/run.py +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/setup.cfg +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/setup.py +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/src/libdatachannel/__init__.py +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/src/libdatachannel/codec/__init__.py +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/src/libdatachannel/libdatachannel_ext.pyi +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/src/libdatachannel/libyuv/__init__.py +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/src/libdatachannel/py.typed +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/src/libdatachannel_py.egg-info/dependency_links.txt +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/src/libdatachannel_py.egg-info/top_level.txt +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_audio_codec.py +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_candidate.py +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_configuration.py +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_description.py +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_frameinfo.py +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_h265nalunit.py +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_libyuv.py +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_mediahandler.py +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_message.py +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_nalunit.py +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_packetizationconfig.py +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_peerconnection.py +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_prop_audio_codec.py +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_reliability.py +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_rtppacketizer.py +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_video_codec.py +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_websocket.py +0 -0
- {libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_websocketserver.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2025.1.0.dev17
|
|
@@ -7,8 +7,6 @@ import sys
|
|
|
7
7
|
import sysconfig
|
|
8
8
|
from pathlib import Path
|
|
9
9
|
|
|
10
|
-
import distutils.sysconfig as du_sysconfig
|
|
11
|
-
|
|
12
10
|
|
|
13
11
|
def get_python_version() -> str:
|
|
14
12
|
"""Get version associated with the current python interpreter.
|
|
@@ -223,7 +221,7 @@ def _guess_python_library(python_version: str):
|
|
|
223
221
|
# returns an empty string on Linux, `du_sysconfig` is only used to
|
|
224
222
|
# get the value of `LIBDIR`.
|
|
225
223
|
candidate_libdirs = []
|
|
226
|
-
libdir_a =
|
|
224
|
+
libdir_a = sysconfig.get_config_var("LIBDIR")
|
|
227
225
|
assert not isinstance(libdir_a, int)
|
|
228
226
|
if libdir_a is None:
|
|
229
227
|
libdest = sysconfig.get_config_var("LIBDEST")
|
|
@@ -12,27 +12,22 @@ classifiers = [
|
|
|
12
12
|
"Programming Language :: Python :: 3.13",
|
|
13
13
|
]
|
|
14
14
|
requires-python = ">=3.13"
|
|
15
|
+
|
|
15
16
|
[project.urls]
|
|
16
17
|
Source = "https://github.com/shiguredo/libdatachannel-py"
|
|
17
18
|
Discord = "https://discord.gg/shiguredo"
|
|
18
19
|
|
|
19
20
|
[build-system]
|
|
20
|
-
requires = ["setuptools>=80.9", "wheel
|
|
21
|
+
requires = ["setuptools>=80.9", "wheel==0.45.1"]
|
|
21
22
|
build-backend = "setuptools.build_meta"
|
|
22
23
|
|
|
23
24
|
[dependency-groups]
|
|
24
|
-
dev = [
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
"numpy>=2.3",
|
|
31
|
-
"ty",
|
|
32
|
-
"hypothesis",
|
|
33
|
-
"aiohttp",
|
|
34
|
-
"pytest-aiohttp",
|
|
35
|
-
]
|
|
25
|
+
dev = ["nanobind==2.9.2"]
|
|
26
|
+
test = ["pytest", "pytest-aiohttp", "numpy", "hypothesis", "aiohttp"]
|
|
27
|
+
lint = ["ruff", "ty"]
|
|
28
|
+
|
|
29
|
+
[tool.uv]
|
|
30
|
+
default-groups = ["dev", "test", "lint"]
|
|
36
31
|
|
|
37
32
|
[tool.uv.workspace]
|
|
38
33
|
members = ["examples"]
|
|
@@ -3,7 +3,8 @@ import datetime
|
|
|
3
3
|
import enum
|
|
4
4
|
from typing import Annotated
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
import numpy
|
|
7
|
+
from numpy.typing import NDArray
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
class VideoCodecType(enum.Enum):
|
|
@@ -29,22 +30,22 @@ class VideoFrameBufferI420:
|
|
|
29
30
|
def create(arg0: int, arg1: int, /) -> VideoFrameBufferI420: ...
|
|
30
31
|
|
|
31
32
|
@property
|
|
32
|
-
def y(self) -> Annotated[
|
|
33
|
+
def y(self) -> Annotated[NDArray[numpy.uint8], dict(shape=(None, None), order='C')]: ...
|
|
33
34
|
|
|
34
35
|
@y.setter
|
|
35
|
-
def y(self, arg: Annotated[
|
|
36
|
+
def y(self, arg: Annotated[NDArray[numpy.uint8], dict(shape=(None, None), order='C')], /) -> None: ...
|
|
36
37
|
|
|
37
38
|
@property
|
|
38
|
-
def u(self) -> Annotated[
|
|
39
|
+
def u(self) -> Annotated[NDArray[numpy.uint8], dict(shape=(None, None), order='C')]: ...
|
|
39
40
|
|
|
40
41
|
@u.setter
|
|
41
|
-
def u(self, arg: Annotated[
|
|
42
|
+
def u(self, arg: Annotated[NDArray[numpy.uint8], dict(shape=(None, None), order='C')], /) -> None: ...
|
|
42
43
|
|
|
43
44
|
@property
|
|
44
|
-
def v(self) -> Annotated[
|
|
45
|
+
def v(self) -> Annotated[NDArray[numpy.uint8], dict(shape=(None, None), order='C')]: ...
|
|
45
46
|
|
|
46
47
|
@v.setter
|
|
47
|
-
def v(self, arg: Annotated[
|
|
48
|
+
def v(self, arg: Annotated[NDArray[numpy.uint8], dict(shape=(None, None), order='C')], /) -> None: ...
|
|
48
49
|
|
|
49
50
|
def width(self) -> int: ...
|
|
50
51
|
|
|
@@ -61,16 +62,16 @@ class VideoFrameBufferNV12:
|
|
|
61
62
|
def create(arg0: int, arg1: int, /) -> VideoFrameBufferNV12: ...
|
|
62
63
|
|
|
63
64
|
@property
|
|
64
|
-
def y(self) -> Annotated[
|
|
65
|
+
def y(self) -> Annotated[NDArray[numpy.uint8], dict(shape=(None, None), order='C')]: ...
|
|
65
66
|
|
|
66
67
|
@y.setter
|
|
67
|
-
def y(self, arg: Annotated[
|
|
68
|
+
def y(self, arg: Annotated[NDArray[numpy.uint8], dict(shape=(None, None), order='C')], /) -> None: ...
|
|
68
69
|
|
|
69
70
|
@property
|
|
70
|
-
def uv(self) -> Annotated[
|
|
71
|
+
def uv(self) -> Annotated[NDArray[numpy.uint8], dict(shape=(None, None), order='C')]: ...
|
|
71
72
|
|
|
72
73
|
@uv.setter
|
|
73
|
-
def uv(self, arg: Annotated[
|
|
74
|
+
def uv(self, arg: Annotated[NDArray[numpy.uint8], dict(shape=(None, None), order='C')], /) -> None: ...
|
|
74
75
|
|
|
75
76
|
def width(self) -> int: ...
|
|
76
77
|
|
|
@@ -85,10 +86,10 @@ class VideoFrameBufferBGR888:
|
|
|
85
86
|
def create(arg0: int, arg1: int, /) -> VideoFrameBufferBGR888: ...
|
|
86
87
|
|
|
87
88
|
@property
|
|
88
|
-
def bgr(self) -> Annotated[
|
|
89
|
+
def bgr(self) -> Annotated[NDArray[numpy.uint8], dict(shape=(None, None, 3), order='C')]: ...
|
|
89
90
|
|
|
90
91
|
@bgr.setter
|
|
91
|
-
def bgr(self, arg: Annotated[
|
|
92
|
+
def bgr(self, arg: Annotated[NDArray[numpy.uint8], dict(shape=(None, None, 3), order='C')], /) -> None: ...
|
|
92
93
|
|
|
93
94
|
def width(self) -> int: ...
|
|
94
95
|
|
|
@@ -161,10 +162,10 @@ class EncodedImage:
|
|
|
161
162
|
def __init__(self) -> None: ...
|
|
162
163
|
|
|
163
164
|
@property
|
|
164
|
-
def data(self) -> Annotated[
|
|
165
|
+
def data(self) -> Annotated[NDArray[numpy.uint8], dict(shape=(None,), order='C')]: ...
|
|
165
166
|
|
|
166
167
|
@data.setter
|
|
167
|
-
def data(self, arg: Annotated[
|
|
168
|
+
def data(self, arg: Annotated[NDArray[numpy.uint8], dict(shape=(None,), order='C')], /) -> None: ...
|
|
168
169
|
|
|
169
170
|
@property
|
|
170
171
|
def timestamp(self) -> datetime.timedelta: ...
|
|
@@ -263,10 +264,10 @@ class AudioFrame:
|
|
|
263
264
|
def sample_rate(self, arg: int, /) -> None: ...
|
|
264
265
|
|
|
265
266
|
@property
|
|
266
|
-
def pcm(self) -> Annotated[
|
|
267
|
+
def pcm(self) -> Annotated[NDArray[numpy.float32], dict(shape=(None, None), order='C')]: ...
|
|
267
268
|
|
|
268
269
|
@pcm.setter
|
|
269
|
-
def pcm(self, arg: Annotated[
|
|
270
|
+
def pcm(self, arg: Annotated[NDArray[numpy.float32], dict(shape=(None, None), order='C')], /) -> None: ...
|
|
270
271
|
|
|
271
272
|
@property
|
|
272
273
|
def timestamp(self) -> datetime.timedelta: ...
|
|
@@ -282,10 +283,10 @@ class EncodedAudio:
|
|
|
282
283
|
def __init__(self) -> None: ...
|
|
283
284
|
|
|
284
285
|
@property
|
|
285
|
-
def data(self) -> Annotated[
|
|
286
|
+
def data(self) -> Annotated[NDArray[numpy.uint8], dict(shape=(None,), order='C')]: ...
|
|
286
287
|
|
|
287
288
|
@data.setter
|
|
288
|
-
def data(self, arg: Annotated[
|
|
289
|
+
def data(self, arg: Annotated[NDArray[numpy.uint8], dict(shape=(None,), order='C')], /) -> None: ...
|
|
289
290
|
|
|
290
291
|
@property
|
|
291
292
|
def timestamp(self) -> datetime.timedelta: ...
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import enum
|
|
2
2
|
|
|
3
|
-
from numpy.typing import
|
|
3
|
+
from numpy.typing import NDArray
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
class FilterMode(enum.Enum):
|
|
@@ -172,16 +172,16 @@ class RotationMode(enum.Enum):
|
|
|
172
172
|
|
|
173
173
|
kRotate270 = 270
|
|
174
174
|
|
|
175
|
-
def nv12_scale(src_y:
|
|
175
|
+
def nv12_scale(src_y: NDArray, src_uv: NDArray, src_stride_y: int, src_stride_uv: int, src_width: int, src_height: int, dst_y: NDArray, dst_uv: NDArray, dst_stride_y: int, dst_stride_uv: int, dst_width: int, dst_height: int, filtering: FilterMode) -> int: ...
|
|
176
176
|
|
|
177
|
-
def i420_scale(src_y:
|
|
177
|
+
def i420_scale(src_y: NDArray, src_u: NDArray, src_v: NDArray, src_stride_y: int, src_stride_u: int, src_stride_v: int, src_width: int, src_height: int, dst_y: NDArray, dst_u: NDArray, dst_v: NDArray, dst_stride_y: int, dst_stride_u: int, dst_stride_v: int, dst_width: int, dst_height: int, filtering: FilterMode) -> int: ...
|
|
178
178
|
|
|
179
|
-
def convert_to_i420(sample:
|
|
179
|
+
def convert_to_i420(sample: NDArray, sample_size: int, dst_y: NDArray, dst_stride_y: int, dst_u: NDArray, dst_stride_u: int, dst_v: NDArray, dst_stride_v: int, crop_x: int, crop_y: int, src_width: int, src_height: int, crop_width: int, crop_height: int, rotation: RotationMode, fourcc: FourCC) -> int: ...
|
|
180
180
|
|
|
181
|
-
def nv12_to_i420(src_y:
|
|
181
|
+
def nv12_to_i420(src_y: NDArray, src_uv: NDArray, src_stride_y: int, src_stride_uv: int, dst_y: NDArray, dst_u: NDArray, dst_v: NDArray, dst_stride_y: int, dst_stride_u: int, dst_stride_v: int, width: int, height: int) -> int: ...
|
|
182
182
|
|
|
183
|
-
def i420_to_nv12(src_y:
|
|
183
|
+
def i420_to_nv12(src_y: NDArray, src_u: NDArray, src_v: NDArray, src_stride_y: int, src_stride_u: int, src_stride_v: int, dst_y: NDArray, dst_uv: NDArray, dst_stride_y: int, dst_stride_uv: int, width: int, height: int) -> int: ...
|
|
184
184
|
|
|
185
|
-
def rgb24_to_i420(src_rgb24:
|
|
185
|
+
def rgb24_to_i420(src_rgb24: NDArray, src_stride_rgb24: int, dst_y: NDArray, dst_u: NDArray, dst_v: NDArray, dst_stride_y: int, dst_stride_u: int, dst_stride_v: int, width: int, height: int) -> int: ...
|
|
186
186
|
|
|
187
|
-
def i420_to_rgb24(src_y:
|
|
187
|
+
def i420_to_rgb24(src_y: NDArray, src_u: NDArray, src_v: NDArray, src_stride_y: int, src_stride_u: int, src_stride_v: int, dst_rgb24: NDArray, dst_stride_rgb24: int, width: int, height: int) -> int: ...
|
|
@@ -8,7 +8,7 @@ pyproject.toml
|
|
|
8
8
|
run.py
|
|
9
9
|
setup.py
|
|
10
10
|
src/libdatachannel/__init__.py
|
|
11
|
-
src/libdatachannel/libdatachannel_ext.cpython-
|
|
11
|
+
src/libdatachannel/libdatachannel_ext.cpython-314-darwin.so
|
|
12
12
|
src/libdatachannel/libdatachannel_ext.pyi
|
|
13
13
|
src/libdatachannel/py.typed
|
|
14
14
|
src/libdatachannel/codec/__init__.py
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
2025.1.0.dev15
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/src/libdatachannel/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/src/libdatachannel/py.typed
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_audio_codec.py
RENAMED
|
File without changes
|
{libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_candidate.py
RENAMED
|
File without changes
|
{libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_configuration.py
RENAMED
|
File without changes
|
{libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_description.py
RENAMED
|
File without changes
|
{libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_frameinfo.py
RENAMED
|
File without changes
|
{libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_h265nalunit.py
RENAMED
|
File without changes
|
|
File without changes
|
{libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_mediahandler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_peerconnection.py
RENAMED
|
File without changes
|
{libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_prop_audio_codec.py
RENAMED
|
File without changes
|
{libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_reliability.py
RENAMED
|
File without changes
|
{libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_rtppacketizer.py
RENAMED
|
File without changes
|
{libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_video_codec.py
RENAMED
|
File without changes
|
{libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_websocket.py
RENAMED
|
File without changes
|
{libdatachannel_py-2025.1.0.dev15 → libdatachannel_py-2025.1.0.dev17}/tests/test_websocketserver.py
RENAMED
|
File without changes
|