libdatachannel-py 2025.1.0.dev11__tar.gz → 2025.1.0.dev13__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.dev11/src/libdatachannel_py.egg-info → libdatachannel_py-2025.1.0.dev13}/PKG-INFO +1 -1
- libdatachannel_py-2025.1.0.dev13/VERSION +1 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/pyproject.toml +7 -1
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/src/libdatachannel/libdatachannel_ext.cpython-313-darwin.so +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/src/libdatachannel/libdatachannel_ext.pyi +15 -15
- libdatachannel_py-2025.1.0.dev13/src/libdatachannel/libyuv/__init__.pyi +187 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13/src/libdatachannel_py.egg-info}/PKG-INFO +1 -1
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_libyuv.py +5 -5
- libdatachannel_py-2025.1.0.dev11/VERSION +0 -1
- libdatachannel_py-2025.1.0.dev11/src/libdatachannel/libyuv/__init__.pyi +0 -345
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/LICENSE +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/MANIFEST.in +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/README.md +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/buildbase.py +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/pypath.py +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/run.py +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/setup.cfg +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/setup.py +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/src/libdatachannel/__init__.py +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/src/libdatachannel/codec/__init__.py +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/src/libdatachannel/codec/__init__.pyi +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/src/libdatachannel/libyuv/__init__.py +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/src/libdatachannel/py.typed +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/src/libdatachannel_py.egg-info/SOURCES.txt +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/src/libdatachannel_py.egg-info/dependency_links.txt +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/src/libdatachannel_py.egg-info/top_level.txt +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_audio_codec.py +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_candidate.py +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_configuration.py +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_description.py +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_frameinfo.py +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_h265nalunit.py +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_mediahandler.py +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_message.py +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_nalunit.py +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_packetizationconfig.py +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_peerconnection.py +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_prop_audio_codec.py +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_reliability.py +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_rtppacketizer.py +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_video_codec.py +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_websocket.py +0 -0
- {libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_websocketserver.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2025.1.0.dev13
|
|
@@ -12,7 +12,6 @@ classifiers = [
|
|
|
12
12
|
"Programming Language :: Python :: 3.13",
|
|
13
13
|
]
|
|
14
14
|
requires-python = ">=3.13"
|
|
15
|
-
|
|
16
15
|
[project.urls]
|
|
17
16
|
Source = "https://github.com/shiguredo/libdatachannel-py"
|
|
18
17
|
Discord = "https://discord.gg/shiguredo"
|
|
@@ -31,6 +30,9 @@ dev = [
|
|
|
31
30
|
"numpy>=2.2",
|
|
32
31
|
"ty",
|
|
33
32
|
"hypothesis>=6.132.0",
|
|
33
|
+
"mypy",
|
|
34
|
+
"pyrefly",
|
|
35
|
+
"pyright",
|
|
34
36
|
]
|
|
35
37
|
|
|
36
38
|
[tool.uv.workspace]
|
|
@@ -39,3 +41,7 @@ members = ["examples"]
|
|
|
39
41
|
[tool.ruff]
|
|
40
42
|
target-version = "py313"
|
|
41
43
|
line-length = 100
|
|
44
|
+
|
|
45
|
+
[tool.pyrefly]
|
|
46
|
+
project-includes = ["**/*"]
|
|
47
|
+
project-excludes = ["**/*venv/**/*"]
|
|
Binary file
|
|
@@ -434,12 +434,12 @@ class Description:
|
|
|
434
434
|
def __init__(self, id: int, uri: str, direction: Description.Direction = Description.Direction.Unknown) -> None: ...
|
|
435
435
|
|
|
436
436
|
@overload
|
|
437
|
-
def __init__(self, description:
|
|
437
|
+
def __init__(self, description: str) -> None: ...
|
|
438
438
|
|
|
439
|
-
def set_description(self, arg:
|
|
439
|
+
def set_description(self, arg: str, /) -> None: ...
|
|
440
440
|
|
|
441
441
|
@staticmethod
|
|
442
|
-
def parse_id(arg:
|
|
442
|
+
def parse_id(arg: str, /) -> int: ...
|
|
443
443
|
|
|
444
444
|
@property
|
|
445
445
|
def id(self) -> int: ...
|
|
@@ -516,7 +516,7 @@ class Description:
|
|
|
516
516
|
|
|
517
517
|
def max_message_size(self) -> int | None: ...
|
|
518
518
|
|
|
519
|
-
def parse_sdp_line(self, arg:
|
|
519
|
+
def parse_sdp_line(self, arg: str, /) -> None: ...
|
|
520
520
|
|
|
521
521
|
class Media(Description.Entry):
|
|
522
522
|
@overload
|
|
@@ -547,7 +547,7 @@ class Description:
|
|
|
547
547
|
|
|
548
548
|
def set_bitrate(self, arg: int, /) -> None: ...
|
|
549
549
|
|
|
550
|
-
def parse_sdp_line(self, arg:
|
|
550
|
+
def parse_sdp_line(self, arg: str, /) -> None: ...
|
|
551
551
|
|
|
552
552
|
def has_payload_type(self, arg: int, /) -> bool: ...
|
|
553
553
|
|
|
@@ -572,12 +572,12 @@ class Description:
|
|
|
572
572
|
def __init__(self, payload_type: int) -> None: ...
|
|
573
573
|
|
|
574
574
|
@overload
|
|
575
|
-
def __init__(self, description:
|
|
575
|
+
def __init__(self, description: str) -> None: ...
|
|
576
576
|
|
|
577
|
-
def set_description(self, arg:
|
|
577
|
+
def set_description(self, arg: str, /) -> None: ...
|
|
578
578
|
|
|
579
579
|
@staticmethod
|
|
580
|
-
def parse_payload_type(arg:
|
|
580
|
+
def parse_payload_type(arg: str, /) -> int: ...
|
|
581
581
|
|
|
582
582
|
def add_feedback(self, arg: str, /) -> None: ...
|
|
583
583
|
|
|
@@ -681,7 +681,7 @@ class Description:
|
|
|
681
681
|
|
|
682
682
|
def has_audio_or_video(self) -> bool: ...
|
|
683
683
|
|
|
684
|
-
def has_mid(self, mid:
|
|
684
|
+
def has_mid(self, mid: str) -> bool: ...
|
|
685
685
|
|
|
686
686
|
@overload
|
|
687
687
|
def add_media(self, media: Description.Media) -> int: ...
|
|
@@ -780,9 +780,9 @@ class Candidate:
|
|
|
780
780
|
|
|
781
781
|
def port(self) -> int | None: ...
|
|
782
782
|
|
|
783
|
-
def __eq__(self, arg:
|
|
783
|
+
def __eq__(self, arg: object, /) -> bool: ...
|
|
784
784
|
|
|
785
|
-
def __ne__(self, arg:
|
|
785
|
+
def __ne__(self, arg: object, /) -> bool: ...
|
|
786
786
|
|
|
787
787
|
def __str__(self) -> str: ...
|
|
788
788
|
|
|
@@ -1350,7 +1350,7 @@ class Channel:
|
|
|
1350
1350
|
def send(self, data: bytes | str) -> bool: ...
|
|
1351
1351
|
|
|
1352
1352
|
@overload
|
|
1353
|
-
def send(self, data:
|
|
1353
|
+
def send(self, data: bytes, size: int) -> bool: ...
|
|
1354
1354
|
|
|
1355
1355
|
def is_open(self) -> bool: ...
|
|
1356
1356
|
|
|
@@ -1399,7 +1399,7 @@ class DataChannel(Channel):
|
|
|
1399
1399
|
def send(self, data: bytes | str) -> bool: ...
|
|
1400
1400
|
|
|
1401
1401
|
@overload
|
|
1402
|
-
def send(self, data:
|
|
1402
|
+
def send(self, data: bytes, size: int) -> bool: ...
|
|
1403
1403
|
|
|
1404
1404
|
def stream(self) -> int | None: ...
|
|
1405
1405
|
|
|
@@ -1424,7 +1424,7 @@ class Track(Channel):
|
|
|
1424
1424
|
def send(self, data: bytes | str) -> bool: ...
|
|
1425
1425
|
|
|
1426
1426
|
@overload
|
|
1427
|
-
def send(self, data:
|
|
1427
|
+
def send(self, data: bytes, size: int) -> bool: ...
|
|
1428
1428
|
|
|
1429
1429
|
def mid(self) -> str: ...
|
|
1430
1430
|
|
|
@@ -1643,7 +1643,7 @@ class WebSocket(Channel):
|
|
|
1643
1643
|
def send(self, data: bytes | str) -> bool: ...
|
|
1644
1644
|
|
|
1645
1645
|
@overload
|
|
1646
|
-
def send(self, data:
|
|
1646
|
+
def send(self, data: bytes, size: int) -> bool: ...
|
|
1647
1647
|
|
|
1648
1648
|
def ready_state(self) -> WebSocket.State: ...
|
|
1649
1649
|
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import enum
|
|
2
|
+
|
|
3
|
+
from numpy.typing import ArrayLike
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class FilterMode(enum.Enum):
|
|
7
|
+
kNone = 0
|
|
8
|
+
|
|
9
|
+
kLinear = 1
|
|
10
|
+
|
|
11
|
+
kBilinear = 2
|
|
12
|
+
|
|
13
|
+
kBox = 3
|
|
14
|
+
|
|
15
|
+
class FourCC(enum.Enum):
|
|
16
|
+
kI420 = 808596553
|
|
17
|
+
|
|
18
|
+
kI422 = 842150985
|
|
19
|
+
|
|
20
|
+
kI444 = 875836489
|
|
21
|
+
|
|
22
|
+
kI400 = 808465481
|
|
23
|
+
|
|
24
|
+
kNV21 = 825382478
|
|
25
|
+
|
|
26
|
+
kNV12 = 842094158
|
|
27
|
+
|
|
28
|
+
kYUY2 = 844715353
|
|
29
|
+
|
|
30
|
+
kUYVY = 1498831189
|
|
31
|
+
|
|
32
|
+
kI010 = 808529993
|
|
33
|
+
|
|
34
|
+
kI210 = 808530505
|
|
35
|
+
|
|
36
|
+
kM420 = 808596557
|
|
37
|
+
|
|
38
|
+
kARGB = 1111970369
|
|
39
|
+
|
|
40
|
+
kBGRA = 1095911234
|
|
41
|
+
|
|
42
|
+
kABGR = 1380401729
|
|
43
|
+
|
|
44
|
+
kAR30 = 808669761
|
|
45
|
+
|
|
46
|
+
kAB30 = 808665665
|
|
47
|
+
|
|
48
|
+
kAR64 = 875975233
|
|
49
|
+
|
|
50
|
+
kAB64 = 875971137
|
|
51
|
+
|
|
52
|
+
k24BG = 1195521074
|
|
53
|
+
|
|
54
|
+
kRAW = 544694642
|
|
55
|
+
|
|
56
|
+
kRGBA = 1094862674
|
|
57
|
+
|
|
58
|
+
kRGBP = 1346520914
|
|
59
|
+
|
|
60
|
+
kRGBO = 1329743698
|
|
61
|
+
|
|
62
|
+
kR444 = 875836498
|
|
63
|
+
|
|
64
|
+
kMJPG = 1196444237
|
|
65
|
+
|
|
66
|
+
kYV12 = 842094169
|
|
67
|
+
|
|
68
|
+
kYV16 = 909203033
|
|
69
|
+
|
|
70
|
+
kYV24 = 875714137
|
|
71
|
+
|
|
72
|
+
kYU12 = 842093913
|
|
73
|
+
|
|
74
|
+
kJ420 = 808596554
|
|
75
|
+
|
|
76
|
+
kJ422 = 842150986
|
|
77
|
+
|
|
78
|
+
kJ444 = 875836490
|
|
79
|
+
|
|
80
|
+
kJ400 = 808465482
|
|
81
|
+
|
|
82
|
+
kF420 = 808596550
|
|
83
|
+
|
|
84
|
+
kF422 = 842150982
|
|
85
|
+
|
|
86
|
+
kF444 = 875836486
|
|
87
|
+
|
|
88
|
+
kH420 = 808596552
|
|
89
|
+
|
|
90
|
+
kH422 = 842150984
|
|
91
|
+
|
|
92
|
+
kH444 = 875836488
|
|
93
|
+
|
|
94
|
+
kU420 = 808596565
|
|
95
|
+
|
|
96
|
+
kU422 = 842150997
|
|
97
|
+
|
|
98
|
+
kU444 = 875836501
|
|
99
|
+
|
|
100
|
+
kF010 = 808529990
|
|
101
|
+
|
|
102
|
+
kH010 = 808529992
|
|
103
|
+
|
|
104
|
+
kU010 = 808530005
|
|
105
|
+
|
|
106
|
+
kF210 = 808530502
|
|
107
|
+
|
|
108
|
+
kH210 = 808530504
|
|
109
|
+
|
|
110
|
+
kU210 = 808530517
|
|
111
|
+
|
|
112
|
+
kP010 = 808530000
|
|
113
|
+
|
|
114
|
+
kP210 = 808530512
|
|
115
|
+
|
|
116
|
+
kIYUV = 1448433993
|
|
117
|
+
|
|
118
|
+
kYU16 = 909202777
|
|
119
|
+
|
|
120
|
+
kYU24 = 875713881
|
|
121
|
+
|
|
122
|
+
kYUYV = 1448695129
|
|
123
|
+
|
|
124
|
+
kYUVS = 1937143161
|
|
125
|
+
|
|
126
|
+
kHDYC = 1129923656
|
|
127
|
+
|
|
128
|
+
k2VUY = 2037741106
|
|
129
|
+
|
|
130
|
+
kJPEG = 1195724874
|
|
131
|
+
|
|
132
|
+
kDMB1 = 828534116
|
|
133
|
+
|
|
134
|
+
kBA81 = 825770306
|
|
135
|
+
|
|
136
|
+
kRGB3 = 859981650
|
|
137
|
+
|
|
138
|
+
kBGR3 = 861030210
|
|
139
|
+
|
|
140
|
+
kCM32 = 536870912
|
|
141
|
+
|
|
142
|
+
kCM24 = 402653184
|
|
143
|
+
|
|
144
|
+
kL555 = 892679500
|
|
145
|
+
|
|
146
|
+
kL565 = 892745036
|
|
147
|
+
|
|
148
|
+
k5551 = 825570613
|
|
149
|
+
|
|
150
|
+
kI411 = 825308233
|
|
151
|
+
|
|
152
|
+
kQ420 = 808596561
|
|
153
|
+
|
|
154
|
+
kRGGB = 1111967570
|
|
155
|
+
|
|
156
|
+
kBGGR = 1380403010
|
|
157
|
+
|
|
158
|
+
kGRBG = 1195528775
|
|
159
|
+
|
|
160
|
+
kGBRG = 1196573255
|
|
161
|
+
|
|
162
|
+
kH264 = 875967048
|
|
163
|
+
|
|
164
|
+
kANY = -1
|
|
165
|
+
|
|
166
|
+
class RotationMode(enum.Enum):
|
|
167
|
+
kRotate0 = 0
|
|
168
|
+
|
|
169
|
+
kRotate90 = 90
|
|
170
|
+
|
|
171
|
+
kRotate180 = 180
|
|
172
|
+
|
|
173
|
+
kRotate270 = 270
|
|
174
|
+
|
|
175
|
+
def nv12_scale(src_y: ArrayLike, src_uv: ArrayLike, src_stride_y: int, src_stride_uv: int, src_width: int, src_height: int, dst_y: ArrayLike, dst_uv: ArrayLike, dst_stride_y: int, dst_stride_uv: int, dst_width: int, dst_height: int, filtering: FilterMode) -> int: ...
|
|
176
|
+
|
|
177
|
+
def i420_scale(src_y: ArrayLike, src_u: ArrayLike, src_v: ArrayLike, src_stride_y: int, src_stride_u: int, src_stride_v: int, src_width: int, src_height: int, dst_y: ArrayLike, dst_u: ArrayLike, dst_v: ArrayLike, dst_stride_y: int, dst_stride_u: int, dst_stride_v: int, dst_width: int, dst_height: int, filtering: FilterMode) -> int: ...
|
|
178
|
+
|
|
179
|
+
def convert_to_i420(sample: ArrayLike, sample_size: int, dst_y: ArrayLike, dst_stride_y: int, dst_u: ArrayLike, dst_stride_u: int, dst_v: ArrayLike, 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
|
+
|
|
181
|
+
def nv12_to_i420(src_y: ArrayLike, src_uv: ArrayLike, src_stride_y: int, src_stride_uv: int, dst_y: ArrayLike, dst_u: ArrayLike, dst_v: ArrayLike, dst_stride_y: int, dst_stride_u: int, dst_stride_v: int, width: int, height: int) -> int: ...
|
|
182
|
+
|
|
183
|
+
def i420_to_nv12(src_y: ArrayLike, src_u: ArrayLike, src_v: ArrayLike, src_stride_y: int, src_stride_u: int, src_stride_v: int, dst_y: ArrayLike, dst_uv: ArrayLike, dst_stride_y: int, dst_stride_uv: int, width: int, height: int) -> int: ...
|
|
184
|
+
|
|
185
|
+
def rgb24_to_i420(src_rgb24: ArrayLike, src_stride_rgb24: int, dst_y: ArrayLike, dst_u: ArrayLike, dst_v: ArrayLike, dst_stride_y: int, dst_stride_u: int, dst_stride_v: int, width: int, height: int) -> int: ...
|
|
186
|
+
|
|
187
|
+
def i420_to_rgb24(src_y: ArrayLike, src_u: ArrayLike, src_v: ArrayLike, src_stride_y: int, src_stride_u: int, src_stride_v: int, dst_rgb24: ArrayLike, dst_stride_rgb24: int, width: int, height: int) -> int: ...
|
|
@@ -18,7 +18,7 @@ from libdatachannel.libyuv import (
|
|
|
18
18
|
def test_libyuv_nv12_scale():
|
|
19
19
|
src_width, src_height = 640, 480
|
|
20
20
|
src = VideoFrameBufferNV12.create(src_width, src_height)
|
|
21
|
-
#
|
|
21
|
+
# ignore しないと型エラーになる
|
|
22
22
|
# 参考: https://github.com/wjakob/nanobind/pull/442
|
|
23
23
|
src.y[:, :] = 42 # type: ignore
|
|
24
24
|
|
|
@@ -37,7 +37,7 @@ def test_libyuv_nv12_scale():
|
|
|
37
37
|
dst.stride_uv(),
|
|
38
38
|
dst.width(),
|
|
39
39
|
dst.height(),
|
|
40
|
-
FilterMode.
|
|
40
|
+
FilterMode.kNone,
|
|
41
41
|
)
|
|
42
42
|
|
|
43
43
|
assert r == 0
|
|
@@ -68,7 +68,7 @@ def test_libyuv_i420_scale():
|
|
|
68
68
|
dst.stride_v(),
|
|
69
69
|
dst.width(),
|
|
70
70
|
dst.height(),
|
|
71
|
-
FilterMode.
|
|
71
|
+
FilterMode.kNone,
|
|
72
72
|
)
|
|
73
73
|
assert r == 0
|
|
74
74
|
assert np.all(dst.y == 42)
|
|
@@ -93,8 +93,8 @@ def test_libyuv_convert_to_i420():
|
|
|
93
93
|
480,
|
|
94
94
|
640,
|
|
95
95
|
480,
|
|
96
|
-
RotationMode.
|
|
97
|
-
FourCC.
|
|
96
|
+
RotationMode.kRotate0,
|
|
97
|
+
FourCC.kNV12,
|
|
98
98
|
)
|
|
99
99
|
assert r == 0
|
|
100
100
|
assert np.all(dst.y == 42)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
2025.1.0.dev11
|
|
@@ -1,345 +0,0 @@
|
|
|
1
|
-
import enum
|
|
2
|
-
|
|
3
|
-
from numpy.typing import ArrayLike
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class FilterMode(enum.Enum):
|
|
7
|
-
NONE = 0
|
|
8
|
-
|
|
9
|
-
Linear = 1
|
|
10
|
-
|
|
11
|
-
Bilinear = 2
|
|
12
|
-
|
|
13
|
-
Box = 3
|
|
14
|
-
|
|
15
|
-
class FourCC(enum.Enum):
|
|
16
|
-
I420 = 808596553
|
|
17
|
-
|
|
18
|
-
I422 = 842150985
|
|
19
|
-
|
|
20
|
-
I444 = 875836489
|
|
21
|
-
|
|
22
|
-
I400 = 808465481
|
|
23
|
-
|
|
24
|
-
NV21 = 825382478
|
|
25
|
-
|
|
26
|
-
NV12 = 842094158
|
|
27
|
-
|
|
28
|
-
YUY2 = 844715353
|
|
29
|
-
|
|
30
|
-
UYVY = 1498831189
|
|
31
|
-
|
|
32
|
-
I010 = 808529993
|
|
33
|
-
|
|
34
|
-
I210 = 808530505
|
|
35
|
-
|
|
36
|
-
M420 = 808596557
|
|
37
|
-
|
|
38
|
-
ARGB = 1111970369
|
|
39
|
-
|
|
40
|
-
BGRA = 1095911234
|
|
41
|
-
|
|
42
|
-
ABGR = 1380401729
|
|
43
|
-
|
|
44
|
-
AR30 = 808669761
|
|
45
|
-
|
|
46
|
-
AB30 = 808665665
|
|
47
|
-
|
|
48
|
-
AR64 = 875975233
|
|
49
|
-
|
|
50
|
-
AB64 = 875971137
|
|
51
|
-
|
|
52
|
-
24BG = 1195521074
|
|
53
|
-
|
|
54
|
-
RAW = 544694642
|
|
55
|
-
|
|
56
|
-
RGBA = 1094862674
|
|
57
|
-
|
|
58
|
-
RGBP = 1346520914
|
|
59
|
-
|
|
60
|
-
RGBO = 1329743698
|
|
61
|
-
|
|
62
|
-
R444 = 875836498
|
|
63
|
-
|
|
64
|
-
MJPG = 1196444237
|
|
65
|
-
|
|
66
|
-
YV12 = 842094169
|
|
67
|
-
|
|
68
|
-
YV16 = 909203033
|
|
69
|
-
|
|
70
|
-
YV24 = 875714137
|
|
71
|
-
|
|
72
|
-
YU12 = 842093913
|
|
73
|
-
|
|
74
|
-
J420 = 808596554
|
|
75
|
-
|
|
76
|
-
J422 = 842150986
|
|
77
|
-
|
|
78
|
-
J444 = 875836490
|
|
79
|
-
|
|
80
|
-
J400 = 808465482
|
|
81
|
-
|
|
82
|
-
F420 = 808596550
|
|
83
|
-
|
|
84
|
-
F422 = 842150982
|
|
85
|
-
|
|
86
|
-
F444 = 875836486
|
|
87
|
-
|
|
88
|
-
H420 = 808596552
|
|
89
|
-
|
|
90
|
-
H422 = 842150984
|
|
91
|
-
|
|
92
|
-
H444 = 875836488
|
|
93
|
-
|
|
94
|
-
U420 = 808596565
|
|
95
|
-
|
|
96
|
-
U422 = 842150997
|
|
97
|
-
|
|
98
|
-
U444 = 875836501
|
|
99
|
-
|
|
100
|
-
F010 = 808529990
|
|
101
|
-
|
|
102
|
-
H010 = 808529992
|
|
103
|
-
|
|
104
|
-
U010 = 808530005
|
|
105
|
-
|
|
106
|
-
F210 = 808530502
|
|
107
|
-
|
|
108
|
-
H210 = 808530504
|
|
109
|
-
|
|
110
|
-
U210 = 808530517
|
|
111
|
-
|
|
112
|
-
P010 = 808530000
|
|
113
|
-
|
|
114
|
-
P210 = 808530512
|
|
115
|
-
|
|
116
|
-
IYUV = 1448433993
|
|
117
|
-
|
|
118
|
-
YU16 = 909202777
|
|
119
|
-
|
|
120
|
-
YU24 = 875713881
|
|
121
|
-
|
|
122
|
-
YUYV = 1448695129
|
|
123
|
-
|
|
124
|
-
YUVS = 1937143161
|
|
125
|
-
|
|
126
|
-
HDYC = 1129923656
|
|
127
|
-
|
|
128
|
-
2VUY = 2037741106
|
|
129
|
-
|
|
130
|
-
JPEG = 1195724874
|
|
131
|
-
|
|
132
|
-
DMB1 = 828534116
|
|
133
|
-
|
|
134
|
-
BA81 = 825770306
|
|
135
|
-
|
|
136
|
-
RGB3 = 859981650
|
|
137
|
-
|
|
138
|
-
BGR3 = 861030210
|
|
139
|
-
|
|
140
|
-
CM32 = 536870912
|
|
141
|
-
|
|
142
|
-
CM24 = 402653184
|
|
143
|
-
|
|
144
|
-
L555 = 892679500
|
|
145
|
-
|
|
146
|
-
L565 = 892745036
|
|
147
|
-
|
|
148
|
-
5551 = 825570613
|
|
149
|
-
|
|
150
|
-
I411 = 825308233
|
|
151
|
-
|
|
152
|
-
Q420 = 808596561
|
|
153
|
-
|
|
154
|
-
RGGB = 1111967570
|
|
155
|
-
|
|
156
|
-
BGGR = 1380403010
|
|
157
|
-
|
|
158
|
-
GRBG = 1195528775
|
|
159
|
-
|
|
160
|
-
GBRG = 1196573255
|
|
161
|
-
|
|
162
|
-
H264 = 875967048
|
|
163
|
-
|
|
164
|
-
ANY = -1
|
|
165
|
-
|
|
166
|
-
I420: FourCC = FourCC.I420
|
|
167
|
-
|
|
168
|
-
I422: FourCC = FourCC.I422
|
|
169
|
-
|
|
170
|
-
I444: FourCC = FourCC.I444
|
|
171
|
-
|
|
172
|
-
I400: FourCC = FourCC.I400
|
|
173
|
-
|
|
174
|
-
NV21: FourCC = FourCC.NV21
|
|
175
|
-
|
|
176
|
-
NV12: FourCC = FourCC.NV12
|
|
177
|
-
|
|
178
|
-
YUY2: FourCC = FourCC.YUY2
|
|
179
|
-
|
|
180
|
-
UYVY: FourCC = FourCC.UYVY
|
|
181
|
-
|
|
182
|
-
I010: FourCC = FourCC.I010
|
|
183
|
-
|
|
184
|
-
I210: FourCC = FourCC.I210
|
|
185
|
-
|
|
186
|
-
M420: FourCC = FourCC.M420
|
|
187
|
-
|
|
188
|
-
ARGB: FourCC = FourCC.ARGB
|
|
189
|
-
|
|
190
|
-
BGRA: FourCC = FourCC.BGRA
|
|
191
|
-
|
|
192
|
-
ABGR: FourCC = FourCC.ABGR
|
|
193
|
-
|
|
194
|
-
AR30: FourCC = FourCC.AR30
|
|
195
|
-
|
|
196
|
-
AB30: FourCC = FourCC.AB30
|
|
197
|
-
|
|
198
|
-
AR64: FourCC = FourCC.AR64
|
|
199
|
-
|
|
200
|
-
AB64: FourCC = FourCC.AB64
|
|
201
|
-
|
|
202
|
-
24BG: FourCC = FourCC.24BG
|
|
203
|
-
|
|
204
|
-
RAW: FourCC = FourCC.RAW
|
|
205
|
-
|
|
206
|
-
RGBA: FourCC = FourCC.RGBA
|
|
207
|
-
|
|
208
|
-
RGBP: FourCC = FourCC.RGBP
|
|
209
|
-
|
|
210
|
-
RGBO: FourCC = FourCC.RGBO
|
|
211
|
-
|
|
212
|
-
R444: FourCC = FourCC.R444
|
|
213
|
-
|
|
214
|
-
MJPG: FourCC = FourCC.MJPG
|
|
215
|
-
|
|
216
|
-
YV12: FourCC = FourCC.YV12
|
|
217
|
-
|
|
218
|
-
YV16: FourCC = FourCC.YV16
|
|
219
|
-
|
|
220
|
-
YV24: FourCC = FourCC.YV24
|
|
221
|
-
|
|
222
|
-
YU12: FourCC = FourCC.YU12
|
|
223
|
-
|
|
224
|
-
J420: FourCC = FourCC.J420
|
|
225
|
-
|
|
226
|
-
J422: FourCC = FourCC.J422
|
|
227
|
-
|
|
228
|
-
J444: FourCC = FourCC.J444
|
|
229
|
-
|
|
230
|
-
J400: FourCC = FourCC.J400
|
|
231
|
-
|
|
232
|
-
F420: FourCC = FourCC.F420
|
|
233
|
-
|
|
234
|
-
F422: FourCC = FourCC.F422
|
|
235
|
-
|
|
236
|
-
F444: FourCC = FourCC.F444
|
|
237
|
-
|
|
238
|
-
H420: FourCC = FourCC.H420
|
|
239
|
-
|
|
240
|
-
H422: FourCC = FourCC.H422
|
|
241
|
-
|
|
242
|
-
H444: FourCC = FourCC.H444
|
|
243
|
-
|
|
244
|
-
U420: FourCC = FourCC.U420
|
|
245
|
-
|
|
246
|
-
U422: FourCC = FourCC.U422
|
|
247
|
-
|
|
248
|
-
U444: FourCC = FourCC.U444
|
|
249
|
-
|
|
250
|
-
F010: FourCC = FourCC.F010
|
|
251
|
-
|
|
252
|
-
H010: FourCC = FourCC.H010
|
|
253
|
-
|
|
254
|
-
U010: FourCC = FourCC.U010
|
|
255
|
-
|
|
256
|
-
F210: FourCC = FourCC.F210
|
|
257
|
-
|
|
258
|
-
H210: FourCC = FourCC.H210
|
|
259
|
-
|
|
260
|
-
U210: FourCC = FourCC.U210
|
|
261
|
-
|
|
262
|
-
P010: FourCC = FourCC.P010
|
|
263
|
-
|
|
264
|
-
P210: FourCC = FourCC.P210
|
|
265
|
-
|
|
266
|
-
IYUV: FourCC = FourCC.IYUV
|
|
267
|
-
|
|
268
|
-
YU16: FourCC = FourCC.YU16
|
|
269
|
-
|
|
270
|
-
YU24: FourCC = FourCC.YU24
|
|
271
|
-
|
|
272
|
-
YUYV: FourCC = FourCC.YUYV
|
|
273
|
-
|
|
274
|
-
YUVS: FourCC = FourCC.YUVS
|
|
275
|
-
|
|
276
|
-
HDYC: FourCC = FourCC.HDYC
|
|
277
|
-
|
|
278
|
-
2VUY: FourCC = FourCC.2VUY
|
|
279
|
-
|
|
280
|
-
JPEG: FourCC = FourCC.JPEG
|
|
281
|
-
|
|
282
|
-
DMB1: FourCC = FourCC.DMB1
|
|
283
|
-
|
|
284
|
-
BA81: FourCC = FourCC.BA81
|
|
285
|
-
|
|
286
|
-
RGB3: FourCC = FourCC.RGB3
|
|
287
|
-
|
|
288
|
-
BGR3: FourCC = FourCC.BGR3
|
|
289
|
-
|
|
290
|
-
CM32: FourCC = FourCC.CM32
|
|
291
|
-
|
|
292
|
-
CM24: FourCC = FourCC.CM24
|
|
293
|
-
|
|
294
|
-
L555: FourCC = FourCC.L555
|
|
295
|
-
|
|
296
|
-
L565: FourCC = FourCC.L565
|
|
297
|
-
|
|
298
|
-
5551: FourCC = FourCC.5551
|
|
299
|
-
|
|
300
|
-
I411: FourCC = FourCC.I411
|
|
301
|
-
|
|
302
|
-
Q420: FourCC = FourCC.Q420
|
|
303
|
-
|
|
304
|
-
RGGB: FourCC = FourCC.RGGB
|
|
305
|
-
|
|
306
|
-
BGGR: FourCC = FourCC.BGGR
|
|
307
|
-
|
|
308
|
-
GRBG: FourCC = FourCC.GRBG
|
|
309
|
-
|
|
310
|
-
GBRG: FourCC = FourCC.GBRG
|
|
311
|
-
|
|
312
|
-
H264: FourCC = FourCC.H264
|
|
313
|
-
|
|
314
|
-
ANY: FourCC = FourCC.ANY
|
|
315
|
-
|
|
316
|
-
class RotationMode(enum.Enum):
|
|
317
|
-
Rotate0 = 0
|
|
318
|
-
|
|
319
|
-
Rotate90 = 90
|
|
320
|
-
|
|
321
|
-
Rotate180 = 180
|
|
322
|
-
|
|
323
|
-
Rotate270 = 270
|
|
324
|
-
|
|
325
|
-
Rotate0: RotationMode = RotationMode.Rotate0
|
|
326
|
-
|
|
327
|
-
Rotate90: RotationMode = RotationMode.Rotate90
|
|
328
|
-
|
|
329
|
-
Rotate180: RotationMode = RotationMode.Rotate180
|
|
330
|
-
|
|
331
|
-
Rotate270: RotationMode = RotationMode.Rotate270
|
|
332
|
-
|
|
333
|
-
def nv12_scale(src_y: ArrayLike, src_uv: ArrayLike, src_stride_y: int, src_stride_uv: int, src_width: int, src_height: int, dst_y: ArrayLike, dst_uv: ArrayLike, dst_stride_y: int, dst_stride_uv: int, dst_width: int, dst_height: int, filtering: FilterMode) -> int: ...
|
|
334
|
-
|
|
335
|
-
def i420_scale(src_y: ArrayLike, src_u: ArrayLike, src_v: ArrayLike, src_stride_y: int, src_stride_u: int, src_stride_v: int, src_width: int, src_height: int, dst_y: ArrayLike, dst_u: ArrayLike, dst_v: ArrayLike, dst_stride_y: int, dst_stride_u: int, dst_stride_v: int, dst_width: int, dst_height: int, filtering: FilterMode) -> int: ...
|
|
336
|
-
|
|
337
|
-
def convert_to_i420(sample: ArrayLike, sample_size: int, dst_y: ArrayLike, dst_stride_y: int, dst_u: ArrayLike, dst_stride_u: int, dst_v: ArrayLike, 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: ...
|
|
338
|
-
|
|
339
|
-
def nv12_to_i420(src_y: ArrayLike, src_uv: ArrayLike, src_stride_y: int, src_stride_uv: int, dst_y: ArrayLike, dst_u: ArrayLike, dst_v: ArrayLike, dst_stride_y: int, dst_stride_u: int, dst_stride_v: int, width: int, height: int) -> int: ...
|
|
340
|
-
|
|
341
|
-
def i420_to_nv12(src_y: ArrayLike, src_u: ArrayLike, src_v: ArrayLike, src_stride_y: int, src_stride_u: int, src_stride_v: int, dst_y: ArrayLike, dst_uv: ArrayLike, dst_stride_y: int, dst_stride_uv: int, width: int, height: int) -> int: ...
|
|
342
|
-
|
|
343
|
-
def rgb24_to_i420(src_rgb24: ArrayLike, src_stride_rgb24: int, dst_y: ArrayLike, dst_u: ArrayLike, dst_v: ArrayLike, dst_stride_y: int, dst_stride_u: int, dst_stride_v: int, width: int, height: int) -> int: ...
|
|
344
|
-
|
|
345
|
-
def i420_to_rgb24(src_y: ArrayLike, src_u: ArrayLike, src_v: ArrayLike, src_stride_y: int, src_stride_u: int, src_stride_v: int, dst_rgb24: ArrayLike, dst_stride_rgb24: int, width: int, height: int) -> int: ...
|
|
File without changes
|
|
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.dev11 → libdatachannel_py-2025.1.0.dev13}/src/libdatachannel/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/src/libdatachannel/py.typed
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_audio_codec.py
RENAMED
|
File without changes
|
{libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_candidate.py
RENAMED
|
File without changes
|
{libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_configuration.py
RENAMED
|
File without changes
|
{libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_description.py
RENAMED
|
File without changes
|
{libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_frameinfo.py
RENAMED
|
File without changes
|
{libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_h265nalunit.py
RENAMED
|
File without changes
|
{libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_mediahandler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_peerconnection.py
RENAMED
|
File without changes
|
{libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_prop_audio_codec.py
RENAMED
|
File without changes
|
{libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_reliability.py
RENAMED
|
File without changes
|
{libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_rtppacketizer.py
RENAMED
|
File without changes
|
{libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_video_codec.py
RENAMED
|
File without changes
|
{libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_websocket.py
RENAMED
|
File without changes
|
{libdatachannel_py-2025.1.0.dev11 → libdatachannel_py-2025.1.0.dev13}/tests/test_websocketserver.py
RENAMED
|
File without changes
|