robotpy-cscore 2024.3.2.1__cp311-cp311-win_amd64.whl → 2025.0.0b1__cp311-cp311-win_amd64.whl
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.
Potentially problematic release.
This version of robotpy-cscore might be problematic. Click here for more details.
- cscore/__init__.py +5 -4
- cscore/__pycache__/__init__.cpython-311.pyc +0 -0
- cscore/__pycache__/_init_cscore.cpython-311.pyc +0 -0
- cscore/__pycache__/_logging.cpython-311.pyc +0 -0
- cscore/__pycache__/version.cpython-311.pyc +0 -0
- cscore/_cscore.cp311-win_amd64.pyd +0 -0
- cscore/_cscore.pyi +146 -27
- cscore/cvnp/cvnp.cpp +1 -9
- cscore/cvnp/cvnp.h +1 -0
- cscore/version.py +2 -2
- {robotpy_cscore-2024.3.2.1.dist-info → robotpy_cscore-2025.0.0b1.dist-info}/METADATA +4 -4
- robotpy_cscore-2025.0.0b1.dist-info/RECORD +27 -0
- {robotpy_cscore-2024.3.2.1.dist-info → robotpy_cscore-2025.0.0b1.dist-info}/WHEEL +1 -1
- robotpy_cscore-2024.3.2.1.dist-info/RECORD +0 -27
- {robotpy_cscore-2024.3.2.1.dist-info → robotpy_cscore-2025.0.0b1.dist-info}/LICENSE +0 -0
- {robotpy_cscore-2024.3.2.1.dist-info → robotpy_cscore-2025.0.0b1.dist-info}/entry_points.txt +0 -0
- {robotpy_cscore-2024.3.2.1.dist-info → robotpy_cscore-2025.0.0b1.dist-info}/top_level.txt +0 -0
cscore/__init__.py
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
from . import _init_cscore
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
# autogenerated by 'robotpy-build create-imports cscore'
|
|
3
|
+
# autogenerated by 'robotpy-build create-imports cscore cscore._cscore'
|
|
6
4
|
from ._cscore import (
|
|
7
5
|
AxisCamera,
|
|
8
6
|
CameraServer,
|
|
@@ -49,9 +47,12 @@ __all__ = [
|
|
|
49
47
|
"runMainRunLoop",
|
|
50
48
|
"runMainRunLoopTimeout",
|
|
51
49
|
"stopMainRunLoop",
|
|
52
|
-
"enableLogging",
|
|
53
50
|
]
|
|
54
51
|
|
|
52
|
+
from ._logging import enableLogging
|
|
53
|
+
|
|
54
|
+
__all__.append("enableLogging")
|
|
55
|
+
|
|
55
56
|
try:
|
|
56
57
|
from .version import __version__
|
|
57
58
|
except ImportError:
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
cscore/_cscore.pyi
CHANGED
|
@@ -6,7 +6,12 @@ __all__ = ['AxisCamera', 'CameraServer', 'CvSink', 'CvSource', 'HttpCamera', 'Im
|
|
|
6
6
|
class AxisCamera(HttpCamera):
|
|
7
7
|
"""
|
|
8
8
|
A source that represents an Axis IP camera.
|
|
9
|
+
|
|
10
|
+
:deprecated: Use HttpCamera instead.
|
|
9
11
|
"""
|
|
12
|
+
@staticmethod
|
|
13
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
14
|
+
...
|
|
10
15
|
@typing.overload
|
|
11
16
|
def __init__(self, name: str, host: str) -> None:
|
|
12
17
|
"""
|
|
@@ -47,6 +52,9 @@ class CameraServer:
|
|
|
47
52
|
"""
|
|
48
53
|
kBasePort: typing.ClassVar[int] = 1181
|
|
49
54
|
@staticmethod
|
|
55
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
56
|
+
...
|
|
57
|
+
@staticmethod
|
|
50
58
|
@typing.overload
|
|
51
59
|
def addAxisCamera(host: str) -> AxisCamera:
|
|
52
60
|
"""
|
|
@@ -54,6 +62,8 @@ class CameraServer:
|
|
|
54
62
|
|
|
55
63
|
This overload calls AddAxisCamera() with name "Axis Camera".
|
|
56
64
|
|
|
65
|
+
:deprecated: Call StartAutomaticCapture with a HttpCamera instead.
|
|
66
|
+
|
|
57
67
|
:param host: Camera host IP or DNS name (e.g. "10.x.y.11")
|
|
58
68
|
"""
|
|
59
69
|
@staticmethod
|
|
@@ -64,6 +74,8 @@ class CameraServer:
|
|
|
64
74
|
|
|
65
75
|
This overload calls AddAxisCamera() with name "Axis Camera".
|
|
66
76
|
|
|
77
|
+
:deprecated: Call StartAutomaticCapture with a HttpCamera instead.
|
|
78
|
+
|
|
67
79
|
:param hosts: Array of Camera host IPs/DNS names
|
|
68
80
|
"""
|
|
69
81
|
@staticmethod
|
|
@@ -72,6 +84,8 @@ class CameraServer:
|
|
|
72
84
|
"""
|
|
73
85
|
Adds an Axis IP camera.
|
|
74
86
|
|
|
87
|
+
:deprecated: Call StartAutomaticCapture with a HttpCamera instead.
|
|
88
|
+
|
|
75
89
|
:param name: The name to give the camera
|
|
76
90
|
:param host: Camera host IP or DNS name (e.g. "10.x.y.11")
|
|
77
91
|
"""
|
|
@@ -81,6 +95,8 @@ class CameraServer:
|
|
|
81
95
|
"""
|
|
82
96
|
Adds an Axis IP camera.
|
|
83
97
|
|
|
98
|
+
:deprecated: Call StartAutomaticCapture with a HttpCamera instead.
|
|
99
|
+
|
|
84
100
|
:param name: The name to give the camera
|
|
85
101
|
:param hosts: Array of Camera host IPs/DNS names
|
|
86
102
|
"""
|
|
@@ -281,7 +297,9 @@ class CvSink(ImageSink):
|
|
|
281
297
|
"""
|
|
282
298
|
A sink for user code to accept video frames as OpenCV images.
|
|
283
299
|
"""
|
|
284
|
-
@
|
|
300
|
+
@staticmethod
|
|
301
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
302
|
+
...
|
|
285
303
|
def __init__(self, name: str, pixelFormat: VideoMode.PixelFormat = ...) -> None:
|
|
286
304
|
"""
|
|
287
305
|
Create a sink for accepting OpenCV images.
|
|
@@ -290,28 +308,26 @@ class CvSink(ImageSink):
|
|
|
290
308
|
image.
|
|
291
309
|
|
|
292
310
|
:param name: Source name (arbitrary unique identifier)
|
|
293
|
-
:param pixelFormat:
|
|
311
|
+
:param pixelFormat: The pixel format to read
|
|
294
312
|
"""
|
|
295
|
-
|
|
296
|
-
def __init__(self, name: str, processFrame: typing.Callable[[int], None], pixelFormat: VideoMode.PixelFormat = ...) -> None:
|
|
313
|
+
def grabFrame(self, image: numpy.ndarray, timeout: float = 0.225) -> tuple[int, numpy.ndarray]:
|
|
297
314
|
"""
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
315
|
+
Wait for the next frame and get the image.
|
|
316
|
+
Times out (returning 0) after timeout seconds.
|
|
317
|
+
The provided image will have the pixelFormat this class was constructed
|
|
318
|
+
with.
|
|
302
319
|
|
|
303
|
-
:
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
or GetError() as needed, but should not call (except in very
|
|
307
|
-
unusual circumstances) WaitForImage().
|
|
308
|
-
:param pixelFormat: Source pixel format
|
|
320
|
+
:returns: Frame time, or 0 on error (call GetError() to obtain the error
|
|
321
|
+
message); the frame time is in the same time base as wpi::Now(),
|
|
322
|
+
and is in 1 us increments.
|
|
309
323
|
"""
|
|
310
|
-
def
|
|
324
|
+
def grabFrameDirect(self, image: numpy.ndarray, timeout: float = 0.225) -> int:
|
|
311
325
|
"""
|
|
312
326
|
Wait for the next frame and get the image.
|
|
313
327
|
Times out (returning 0) after timeout seconds.
|
|
314
|
-
The provided image will have
|
|
328
|
+
The provided image will have the pixelFormat this class was constructed
|
|
329
|
+
with. The data is backed by data in the CvSink. It will be invalidated by
|
|
330
|
+
any grabFrame*() call on the sink.
|
|
315
331
|
|
|
316
332
|
:returns: Frame time, or 0 on error (call GetError() to obtain the error
|
|
317
333
|
message); the frame time is in the same time base as wpi::Now(),
|
|
@@ -320,7 +336,19 @@ class CvSink(ImageSink):
|
|
|
320
336
|
def grabFrameNoTimeout(self, image: numpy.ndarray) -> tuple[int, numpy.ndarray]:
|
|
321
337
|
"""
|
|
322
338
|
Wait for the next frame and get the image. May block forever.
|
|
323
|
-
The provided image will have
|
|
339
|
+
The provided image will have the pixelFormat this class was constructed
|
|
340
|
+
with.
|
|
341
|
+
|
|
342
|
+
:returns: Frame time, or 0 on error (call GetError() to obtain the error
|
|
343
|
+
message); the frame time is in the same time base as wpi::Now(),
|
|
344
|
+
and is in 1 us increments.
|
|
345
|
+
"""
|
|
346
|
+
def grabFrameNoTimeoutDirect(self, image: numpy.ndarray) -> int:
|
|
347
|
+
"""
|
|
348
|
+
Wait for the next frame and get the image. May block forever.
|
|
349
|
+
The provided image will have the pixelFormat this class was constructed
|
|
350
|
+
with. The data is backed by data in the CvSink. It will be invalidated by
|
|
351
|
+
any grabFrame*() call on the sink.
|
|
324
352
|
|
|
325
353
|
:returns: Frame time, or 0 on error (call GetError() to obtain the error
|
|
326
354
|
message); the frame time is in the same time base as wpi::Now(),
|
|
@@ -330,6 +358,9 @@ class CvSource(ImageSource):
|
|
|
330
358
|
"""
|
|
331
359
|
A source for user code to provide OpenCV images as video frames.
|
|
332
360
|
"""
|
|
361
|
+
@staticmethod
|
|
362
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
363
|
+
...
|
|
333
364
|
@typing.overload
|
|
334
365
|
def __init__(self, name: str, mode: VideoMode) -> None:
|
|
335
366
|
"""
|
|
@@ -341,7 +372,7 @@ class CvSource(ImageSource):
|
|
|
341
372
|
@typing.overload
|
|
342
373
|
def __init__(self, name: str, pixelFormat: VideoMode.PixelFormat, width: int, height: int, fps: int) -> None:
|
|
343
374
|
"""
|
|
344
|
-
Create an
|
|
375
|
+
Create an OpenCV source.
|
|
345
376
|
|
|
346
377
|
:param name: Source name (arbitrary unique identifier)
|
|
347
378
|
:param pixelFormat: Pixel format
|
|
@@ -349,15 +380,31 @@ class CvSource(ImageSource):
|
|
|
349
380
|
:param height: height
|
|
350
381
|
:param fps: fps
|
|
351
382
|
"""
|
|
383
|
+
@typing.overload
|
|
352
384
|
def putFrame(self, image: numpy.ndarray) -> None:
|
|
385
|
+
"""
|
|
386
|
+
Put an OpenCV image and notify sinks
|
|
387
|
+
|
|
388
|
+
The image format is guessed from the number of channels. The channel
|
|
389
|
+
mapping is as follows. 1: kGray 2: kYUYV 3: BGR 4: BGRA Any other channel
|
|
390
|
+
numbers will throw an error. If your image is an in alternate format, use
|
|
391
|
+
the overload that takes a PixelFormat.
|
|
392
|
+
|
|
393
|
+
:param image: OpenCV Image
|
|
394
|
+
"""
|
|
395
|
+
@typing.overload
|
|
396
|
+
def putFrame(self, image: numpy.ndarray, pixelFormat: VideoMode.PixelFormat, skipVerification: bool) -> None:
|
|
353
397
|
"""
|
|
354
398
|
Put an OpenCV image and notify sinks.
|
|
355
399
|
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
400
|
+
The format of the Mat must match the PixelFormat. You will corrupt memory
|
|
401
|
+
if they dont. With skipVerification false, we will verify the number of
|
|
402
|
+
channels matches the pixel format. If skipVerification is true, this step
|
|
403
|
+
is skipped and is passed straight through.
|
|
359
404
|
|
|
360
|
-
:param image:
|
|
405
|
+
:param image: OpenCV image
|
|
406
|
+
:param pixelFormat: The pixel format of the image
|
|
407
|
+
:param skipVerification: skip verifying pixel format
|
|
361
408
|
"""
|
|
362
409
|
class HttpCamera(VideoCamera):
|
|
363
410
|
"""
|
|
@@ -382,6 +429,9 @@ class HttpCamera(VideoCamera):
|
|
|
382
429
|
kCSCore: typing.ClassVar[HttpCamera.HttpCameraKind] # value = <HttpCameraKind.kCSCore: 2>
|
|
383
430
|
kMJPGStreamer: typing.ClassVar[HttpCamera.HttpCameraKind] # value = <HttpCameraKind.kMJPGStreamer: 1>
|
|
384
431
|
kUnknown: typing.ClassVar[HttpCamera.HttpCameraKind] # value = <HttpCameraKind.kUnknown: 0>
|
|
432
|
+
@staticmethod
|
|
433
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
434
|
+
...
|
|
385
435
|
def __eq__(self, other: typing.Any) -> bool:
|
|
386
436
|
...
|
|
387
437
|
def __getstate__(self) -> int:
|
|
@@ -408,6 +458,9 @@ class HttpCamera(VideoCamera):
|
|
|
408
458
|
@property
|
|
409
459
|
def value(self) -> int:
|
|
410
460
|
...
|
|
461
|
+
@staticmethod
|
|
462
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
463
|
+
...
|
|
411
464
|
@typing.overload
|
|
412
465
|
def __init__(self, name: str, url: str, kind: HttpCamera.HttpCameraKind = ...) -> None:
|
|
413
466
|
"""
|
|
@@ -463,6 +516,9 @@ class ImageSink(VideoSink):
|
|
|
463
516
|
"""
|
|
464
517
|
A base class for single image reading sinks.
|
|
465
518
|
"""
|
|
519
|
+
@staticmethod
|
|
520
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
521
|
+
...
|
|
466
522
|
def getError(self) -> str:
|
|
467
523
|
"""
|
|
468
524
|
Get error string. Call this if WaitForFrame() returns 0 to determine
|
|
@@ -486,6 +542,9 @@ class ImageSource(VideoSource):
|
|
|
486
542
|
"""
|
|
487
543
|
A base class for single image providing sources.
|
|
488
544
|
"""
|
|
545
|
+
@staticmethod
|
|
546
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
547
|
+
...
|
|
489
548
|
def createBooleanProperty(self, name: str, defaultValue: bool, value: bool) -> VideoProperty:
|
|
490
549
|
"""
|
|
491
550
|
Create a boolean property.
|
|
@@ -562,6 +621,9 @@ class MjpegServer(VideoSink):
|
|
|
562
621
|
"""
|
|
563
622
|
A sink that acts as a MJPEG-over-HTTP network server.
|
|
564
623
|
"""
|
|
624
|
+
@staticmethod
|
|
625
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
626
|
+
...
|
|
565
627
|
@typing.overload
|
|
566
628
|
def __init__(self) -> None:
|
|
567
629
|
...
|
|
@@ -635,11 +697,17 @@ class RawEvent:
|
|
|
635
697
|
"""
|
|
636
698
|
Listener event
|
|
637
699
|
"""
|
|
700
|
+
@staticmethod
|
|
701
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
702
|
+
...
|
|
638
703
|
class UsbCamera(VideoCamera):
|
|
639
704
|
"""
|
|
640
705
|
A source that represents a USB camera.
|
|
641
706
|
"""
|
|
642
707
|
@staticmethod
|
|
708
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
709
|
+
...
|
|
710
|
+
@staticmethod
|
|
643
711
|
def enumerateUsbCameras() -> list[UsbCameraInfo]:
|
|
644
712
|
"""
|
|
645
713
|
Enumerate USB cameras on the local system.
|
|
@@ -687,6 +755,9 @@ class UsbCameraInfo:
|
|
|
687
755
|
"""
|
|
688
756
|
USB camera information
|
|
689
757
|
"""
|
|
758
|
+
@staticmethod
|
|
759
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
760
|
+
...
|
|
690
761
|
def __init__(self) -> None:
|
|
691
762
|
...
|
|
692
763
|
@property
|
|
@@ -763,6 +834,9 @@ class VideoCamera(VideoSource):
|
|
|
763
834
|
kFixedIndoor: typing.ClassVar[VideoCamera.WhiteBalance] # value = <WhiteBalance.kFixedIndoor: 3000>
|
|
764
835
|
kFixedOutdoor1: typing.ClassVar[VideoCamera.WhiteBalance] # value = <WhiteBalance.kFixedOutdoor1: 4000>
|
|
765
836
|
kFixedOutdoor2: typing.ClassVar[VideoCamera.WhiteBalance] # value = <WhiteBalance.kFixedOutdoor2: 5000>
|
|
837
|
+
@staticmethod
|
|
838
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
839
|
+
...
|
|
766
840
|
def __eq__(self, other: typing.Any) -> bool:
|
|
767
841
|
...
|
|
768
842
|
def __getstate__(self) -> int:
|
|
@@ -789,6 +863,9 @@ class VideoCamera(VideoSource):
|
|
|
789
863
|
@property
|
|
790
864
|
def value(self) -> int:
|
|
791
865
|
...
|
|
866
|
+
@staticmethod
|
|
867
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
868
|
+
...
|
|
792
869
|
def __init__(self) -> None:
|
|
793
870
|
...
|
|
794
871
|
def getBrightness(self) -> int:
|
|
@@ -801,7 +878,7 @@ class VideoCamera(VideoSource):
|
|
|
801
878
|
"""
|
|
802
879
|
def setExposureAuto(self) -> None:
|
|
803
880
|
"""
|
|
804
|
-
Set the exposure to auto
|
|
881
|
+
Set the exposure to auto aperture.
|
|
805
882
|
"""
|
|
806
883
|
def setExposureHoldCurrent(self) -> None:
|
|
807
884
|
"""
|
|
@@ -827,6 +904,9 @@ class VideoEvent(RawEvent):
|
|
|
827
904
|
"""
|
|
828
905
|
An event generated by the library and provided to event listeners.
|
|
829
906
|
"""
|
|
907
|
+
@staticmethod
|
|
908
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
909
|
+
...
|
|
830
910
|
def __init__(self) -> None:
|
|
831
911
|
...
|
|
832
912
|
def getProperty(self) -> VideoProperty:
|
|
@@ -849,9 +929,12 @@ class VideoEvent(RawEvent):
|
|
|
849
929
|
"""
|
|
850
930
|
class VideoListener:
|
|
851
931
|
"""
|
|
852
|
-
An event listener. This calls back to a
|
|
932
|
+
An event listener. This calls back to a designated callback function when
|
|
853
933
|
an event matching the specified mask is generated by the library.
|
|
854
934
|
"""
|
|
935
|
+
@staticmethod
|
|
936
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
937
|
+
...
|
|
855
938
|
@typing.overload
|
|
856
939
|
def __init__(self) -> None:
|
|
857
940
|
...
|
|
@@ -888,9 +971,12 @@ class VideoMode:
|
|
|
888
971
|
kY16
|
|
889
972
|
|
|
890
973
|
kUYVY
|
|
974
|
+
|
|
975
|
+
kBGRA
|
|
891
976
|
"""
|
|
892
|
-
__members__: typing.ClassVar[dict[str, VideoMode.PixelFormat]] # value = {'kUnknown': <PixelFormat.kUnknown: 0>, 'kMJPEG': <PixelFormat.kMJPEG: 1>, 'kYUYV': <PixelFormat.kYUYV: 2>, 'kRGB565': <PixelFormat.kRGB565: 3>, 'kBGR': <PixelFormat.kBGR: 4>, 'kGray': <PixelFormat.kGray: 5>, 'kY16': <PixelFormat.kY16: 6>, 'kUYVY': <PixelFormat.kUYVY: 7>}
|
|
977
|
+
__members__: typing.ClassVar[dict[str, VideoMode.PixelFormat]] # value = {'kUnknown': <PixelFormat.kUnknown: 0>, 'kMJPEG': <PixelFormat.kMJPEG: 1>, 'kYUYV': <PixelFormat.kYUYV: 2>, 'kRGB565': <PixelFormat.kRGB565: 3>, 'kBGR': <PixelFormat.kBGR: 4>, 'kGray': <PixelFormat.kGray: 5>, 'kY16': <PixelFormat.kY16: 6>, 'kUYVY': <PixelFormat.kUYVY: 7>, 'kBGRA': <PixelFormat.kBGRA: 8>}
|
|
893
978
|
kBGR: typing.ClassVar[VideoMode.PixelFormat] # value = <PixelFormat.kBGR: 4>
|
|
979
|
+
kBGRA: typing.ClassVar[VideoMode.PixelFormat] # value = <PixelFormat.kBGRA: 8>
|
|
894
980
|
kGray: typing.ClassVar[VideoMode.PixelFormat] # value = <PixelFormat.kGray: 5>
|
|
895
981
|
kMJPEG: typing.ClassVar[VideoMode.PixelFormat] # value = <PixelFormat.kMJPEG: 1>
|
|
896
982
|
kRGB565: typing.ClassVar[VideoMode.PixelFormat] # value = <PixelFormat.kRGB565: 3>
|
|
@@ -898,6 +984,9 @@ class VideoMode:
|
|
|
898
984
|
kUnknown: typing.ClassVar[VideoMode.PixelFormat] # value = <PixelFormat.kUnknown: 0>
|
|
899
985
|
kY16: typing.ClassVar[VideoMode.PixelFormat] # value = <PixelFormat.kY16: 6>
|
|
900
986
|
kYUYV: typing.ClassVar[VideoMode.PixelFormat] # value = <PixelFormat.kYUYV: 2>
|
|
987
|
+
@staticmethod
|
|
988
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
989
|
+
...
|
|
901
990
|
def __eq__(self, other: typing.Any) -> bool:
|
|
902
991
|
...
|
|
903
992
|
def __getstate__(self) -> int:
|
|
@@ -929,6 +1018,9 @@ class VideoMode:
|
|
|
929
1018
|
height: int
|
|
930
1019
|
pixelFormat: int
|
|
931
1020
|
width: int
|
|
1021
|
+
@staticmethod
|
|
1022
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
1023
|
+
...
|
|
932
1024
|
def __eq__(self, arg0: VideoMode) -> bool:
|
|
933
1025
|
...
|
|
934
1026
|
@typing.overload
|
|
@@ -963,6 +1055,9 @@ class VideoProperty:
|
|
|
963
1055
|
kInteger: typing.ClassVar[VideoProperty.Kind] # value = <Kind.kInteger: 2>
|
|
964
1056
|
kNone: typing.ClassVar[VideoProperty.Kind] # value = <Kind.kNone: 0>
|
|
965
1057
|
kString: typing.ClassVar[VideoProperty.Kind] # value = <Kind.kString: 4>
|
|
1058
|
+
@staticmethod
|
|
1059
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
1060
|
+
...
|
|
966
1061
|
def __eq__(self, other: typing.Any) -> bool:
|
|
967
1062
|
...
|
|
968
1063
|
def __getstate__(self) -> int:
|
|
@@ -989,6 +1084,9 @@ class VideoProperty:
|
|
|
989
1084
|
@property
|
|
990
1085
|
def value(self) -> int:
|
|
991
1086
|
...
|
|
1087
|
+
@staticmethod
|
|
1088
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
1089
|
+
...
|
|
992
1090
|
def __init__(self) -> None:
|
|
993
1091
|
...
|
|
994
1092
|
def get(self) -> int:
|
|
@@ -1118,11 +1216,17 @@ class VideoSink:
|
|
|
1118
1216
|
kMjpeg : MJPEG video sink.
|
|
1119
1217
|
|
|
1120
1218
|
kCv : CV video sink.
|
|
1219
|
+
|
|
1220
|
+
kRaw : Raw video sink.
|
|
1121
1221
|
"""
|
|
1122
|
-
__members__: typing.ClassVar[dict[str, VideoSink.Kind]] # value = {'kUnknown': <Kind.kUnknown: 0>, 'kMjpeg': <Kind.kMjpeg: 2>, 'kCv': <Kind.kCv: 4>}
|
|
1222
|
+
__members__: typing.ClassVar[dict[str, VideoSink.Kind]] # value = {'kUnknown': <Kind.kUnknown: 0>, 'kMjpeg': <Kind.kMjpeg: 2>, 'kCv': <Kind.kCv: 4>, 'kRaw': <Kind.kRaw: 8>}
|
|
1123
1223
|
kCv: typing.ClassVar[VideoSink.Kind] # value = <Kind.kCv: 4>
|
|
1124
1224
|
kMjpeg: typing.ClassVar[VideoSink.Kind] # value = <Kind.kMjpeg: 2>
|
|
1225
|
+
kRaw: typing.ClassVar[VideoSink.Kind] # value = <Kind.kRaw: 8>
|
|
1125
1226
|
kUnknown: typing.ClassVar[VideoSink.Kind] # value = <Kind.kUnknown: 0>
|
|
1227
|
+
@staticmethod
|
|
1228
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
1229
|
+
...
|
|
1126
1230
|
def __eq__(self, other: typing.Any) -> bool:
|
|
1127
1231
|
...
|
|
1128
1232
|
def __getstate__(self) -> int:
|
|
@@ -1151,6 +1255,9 @@ class VideoSink:
|
|
|
1151
1255
|
...
|
|
1152
1256
|
__hash__: typing.ClassVar[None] = None
|
|
1153
1257
|
@staticmethod
|
|
1258
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
1259
|
+
...
|
|
1260
|
+
@staticmethod
|
|
1154
1261
|
def enumerateSinks() -> list[VideoSink]:
|
|
1155
1262
|
"""
|
|
1156
1263
|
Enumerate all existing sinks.
|
|
@@ -1284,6 +1391,9 @@ class VideoSource:
|
|
|
1284
1391
|
kConnectionAutoManage: typing.ClassVar[VideoSource.ConnectionStrategy] # value = <ConnectionStrategy.kConnectionAutoManage: 0>
|
|
1285
1392
|
kConnectionForceClose: typing.ClassVar[VideoSource.ConnectionStrategy] # value = <ConnectionStrategy.kConnectionForceClose: 2>
|
|
1286
1393
|
kConnectionKeepOpen: typing.ClassVar[VideoSource.ConnectionStrategy] # value = <ConnectionStrategy.kConnectionKeepOpen: 1>
|
|
1394
|
+
@staticmethod
|
|
1395
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
1396
|
+
...
|
|
1287
1397
|
def __eq__(self, other: typing.Any) -> bool:
|
|
1288
1398
|
...
|
|
1289
1399
|
def __getstate__(self) -> int:
|
|
@@ -1323,12 +1433,18 @@ class VideoSource:
|
|
|
1323
1433
|
kHttp : HTTP video source.
|
|
1324
1434
|
|
|
1325
1435
|
kCv : CV video source.
|
|
1436
|
+
|
|
1437
|
+
kRaw : Raw video source.
|
|
1326
1438
|
"""
|
|
1327
|
-
__members__: typing.ClassVar[dict[str, VideoSource.Kind]] # value = {'kUnknown': <Kind.kUnknown: 0>, 'kUsb': <Kind.kUsb: 1>, 'kHttp': <Kind.kHttp: 2>, 'kCv': <Kind.kCv: 4>}
|
|
1439
|
+
__members__: typing.ClassVar[dict[str, VideoSource.Kind]] # value = {'kUnknown': <Kind.kUnknown: 0>, 'kUsb': <Kind.kUsb: 1>, 'kHttp': <Kind.kHttp: 2>, 'kCv': <Kind.kCv: 4>, 'kRaw': <Kind.kRaw: 8>}
|
|
1328
1440
|
kCv: typing.ClassVar[VideoSource.Kind] # value = <Kind.kCv: 4>
|
|
1329
1441
|
kHttp: typing.ClassVar[VideoSource.Kind] # value = <Kind.kHttp: 2>
|
|
1442
|
+
kRaw: typing.ClassVar[VideoSource.Kind] # value = <Kind.kRaw: 8>
|
|
1330
1443
|
kUnknown: typing.ClassVar[VideoSource.Kind] # value = <Kind.kUnknown: 0>
|
|
1331
1444
|
kUsb: typing.ClassVar[VideoSource.Kind] # value = <Kind.kUsb: 1>
|
|
1445
|
+
@staticmethod
|
|
1446
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
1447
|
+
...
|
|
1332
1448
|
def __eq__(self, other: typing.Any) -> bool:
|
|
1333
1449
|
...
|
|
1334
1450
|
def __getstate__(self) -> int:
|
|
@@ -1357,6 +1473,9 @@ class VideoSource:
|
|
|
1357
1473
|
...
|
|
1358
1474
|
__hash__: typing.ClassVar[None] = None
|
|
1359
1475
|
@staticmethod
|
|
1476
|
+
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
1477
|
+
...
|
|
1478
|
+
@staticmethod
|
|
1360
1479
|
def enumerateSources() -> list[VideoSource]:
|
|
1361
1480
|
"""
|
|
1362
1481
|
Enumerate all existing sources.
|
cscore/cvnp/cvnp.cpp
CHANGED
|
@@ -181,15 +181,7 @@ namespace cvnp
|
|
|
181
181
|
|
|
182
182
|
bool is_array_contiguous(const pybind11::array& a)
|
|
183
183
|
{
|
|
184
|
-
|
|
185
|
-
for (int i = a.ndim() - 1; i >=0; --i)
|
|
186
|
-
{
|
|
187
|
-
pybind11::ssize_t current_stride = a.strides()[i];
|
|
188
|
-
if (current_stride != expected_stride)
|
|
189
|
-
return false;
|
|
190
|
-
expected_stride = expected_stride * a.shape()[i];
|
|
191
|
-
}
|
|
192
|
-
return true;
|
|
184
|
+
return a.flags() & pybind11::array::c_style;
|
|
193
185
|
}
|
|
194
186
|
|
|
195
187
|
|
cscore/cvnp/cvnp.h
CHANGED
cscore/version.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: robotpy-cscore
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2025.0.0b1
|
|
4
4
|
Summary: RobotPy bindings for cscore image processing library
|
|
5
5
|
Home-page: https://github.com/robotpy/robotpy-cscore
|
|
6
6
|
Author: RobotPy Development Team
|
|
@@ -9,9 +9,9 @@ License: BSD-3-Clause
|
|
|
9
9
|
Requires-Python: >=3.8
|
|
10
10
|
Description-Content-Type: text/x-rst
|
|
11
11
|
License-File: LICENSE
|
|
12
|
-
Requires-Dist: robotpy-wpiutil
|
|
13
|
-
Requires-Dist: robotpy-wpinet
|
|
14
|
-
Requires-Dist: pyntcore
|
|
12
|
+
Requires-Dist: robotpy-wpiutil==2025.0.0b1
|
|
13
|
+
Requires-Dist: robotpy-wpinet==2025.0.0b1
|
|
14
|
+
Requires-Dist: pyntcore==2025.0.0b1
|
|
15
15
|
|
|
16
16
|
robotpy-cscore
|
|
17
17
|
==============
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
cscore/__init__.py,sha256=xtJaSt6Uiihii-R_9XYbQVovx_D3Q-tqZpnyt6i2s0I,1119
|
|
2
|
+
cscore/__main__.py,sha256=No4nfyEHnbuyavQ9yInscvbiEGFPxxse9klZ-DSVMhc,4588
|
|
3
|
+
cscore/_cscore.cp311-win_amd64.pyd,sha256=pAzb5SsdpVy61nL8VYeu8o5vtF2NB-xbKhcnIoqY6KU,3588096
|
|
4
|
+
cscore/_cscore.pyi,sha256=djn_9I0m4TldKRPlRrM9E1TLNHdubwvHU0HxUR_-Djg,57823
|
|
5
|
+
cscore/_init_cscore.py,sha256=IJoWfQi1FpW48Uez-o9vS8SVCArHlmCAGt1BZkmbZmY,267
|
|
6
|
+
cscore/_logging.py,sha256=uv1Shlu49aPgQpRn5yD2ybT4N8ewJS3qUFOn8YTffwg,333
|
|
7
|
+
cscore/grip.py,sha256=qC6MbWvVllpnnsm10f31gqq4_PMWI_G9GKt3PfOaUpo,1042
|
|
8
|
+
cscore/imagewriter.py,sha256=RAWRRhL3DLNampZJjdd7Ye_8P1AmiYAZsWhnwov5id0,4537
|
|
9
|
+
cscore/pkgcfg.py,sha256=nkuqOy-Oy0Kw0pi8YXX9KfQCviwNliFZZlSOi2slsiw,791
|
|
10
|
+
cscore/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
+
cscore/version.py,sha256=mbT1n9Aeez2kLCUucrThMR_QhRFSchOunB1mmFuqfSE,172
|
|
12
|
+
cscore/__pycache__/__init__.cpython-311.pyc,sha256=A8EnitDqOH9rdYsrGUgBAh1ORtqHfKZwcVRbPNt-h9k,1321
|
|
13
|
+
cscore/__pycache__/_init_cscore.cpython-311.pyc,sha256=fQoVDIPC-_NrElwJeZGKPh1e8OAIBrK2PJsowRRs39A,576
|
|
14
|
+
cscore/__pycache__/_logging.cpython-311.pyc,sha256=RexMrVn0-LnI3sNHqvSAqVBRlofSUQC_sIrUBrlgVqI,984
|
|
15
|
+
cscore/__pycache__/version.cpython-311.pyc,sha256=PxtIBSDoYK31lrpAgprxW4-yh-5ckCtVxX5zhIs60g4,329
|
|
16
|
+
cscore/cvnp/README.md,sha256=197MQ-gG-pZf9YAUZqcHXLKk8au8WtxXrfFf7lnwHAo,1175
|
|
17
|
+
cscore/cvnp/cvnp.cpp,sha256=dE3cBEbVVXaEdULdxbzglt9elRCxhkcXjF69W_Ak6so,9216
|
|
18
|
+
cscore/cvnp/cvnp.h,sha256=021_w8fhAlnew4Nc88ypPAdT9sBPwPzXwGPRiGIY1_Q,14937
|
|
19
|
+
cscore/cvnp/cvnp_synonyms.cpp,sha256=ZpLZzmK5ZcrIgLfi_j7eJ_NXLNtcb8ymDWehYuVVHvo,2419
|
|
20
|
+
cscore/cvnp/cvnp_synonyms.h,sha256=MgU4yOOXMhGGLrKb06dX4nsQLtqkq_1gDE6ToR3mjFo,589
|
|
21
|
+
cscore/src/main.cpp,sha256=sXb-crcVv2JxivUGCqPkpYmjgeupf5-M9XXOrxkRiRw,737
|
|
22
|
+
robotpy_cscore-2025.0.0b1.dist-info/LICENSE,sha256=eday0nHMlO9Rc7a6n0ONgNEe6N20r5xNWivVL5n-fN4,3138
|
|
23
|
+
robotpy_cscore-2025.0.0b1.dist-info/METADATA,sha256=UU3WAC_e0mDVmMMUp1xMEa35RW2RAMYLikELuEqMEPw,1096
|
|
24
|
+
robotpy_cscore-2025.0.0b1.dist-info/WHEEL,sha256=yEpuRje-u1Z_HrXQj-UTAfIAegW_HcP2GJ7Ek8BJkUM,102
|
|
25
|
+
robotpy_cscore-2025.0.0b1.dist-info/entry_points.txt,sha256=ZOi1FKkpTmx8xBqUtdp6Z4IzoCKfwDOKJoVDAF9qjhE,38
|
|
26
|
+
robotpy_cscore-2025.0.0b1.dist-info/top_level.txt,sha256=yKRnfRQe07G2XO6XXYgsj9CN2obAQX3D3gsGvcewpVw,7
|
|
27
|
+
robotpy_cscore-2025.0.0b1.dist-info/RECORD,,
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
cscore/__init__.py,sha256=VaZBAeqPudG-P5ca41SS9q7UNjEyfAM08xaXba1Q-uk,1091
|
|
2
|
-
cscore/__main__.py,sha256=No4nfyEHnbuyavQ9yInscvbiEGFPxxse9klZ-DSVMhc,4588
|
|
3
|
-
cscore/_cscore.cp311-win_amd64.pyd,sha256=jh202EYcidgrgRpvc0rX1OImFp5lwIu9O9jONqWiR0U,3615232
|
|
4
|
-
cscore/_cscore.pyi,sha256=Dw4M5fQ95tmPem5BC7TVCW3-4Fynka-6TlpE5ZRuxCc,53708
|
|
5
|
-
cscore/_init_cscore.py,sha256=IJoWfQi1FpW48Uez-o9vS8SVCArHlmCAGt1BZkmbZmY,267
|
|
6
|
-
cscore/_logging.py,sha256=uv1Shlu49aPgQpRn5yD2ybT4N8ewJS3qUFOn8YTffwg,333
|
|
7
|
-
cscore/grip.py,sha256=qC6MbWvVllpnnsm10f31gqq4_PMWI_G9GKt3PfOaUpo,1042
|
|
8
|
-
cscore/imagewriter.py,sha256=RAWRRhL3DLNampZJjdd7Ye_8P1AmiYAZsWhnwov5id0,4537
|
|
9
|
-
cscore/pkgcfg.py,sha256=nkuqOy-Oy0Kw0pi8YXX9KfQCviwNliFZZlSOi2slsiw,791
|
|
10
|
-
cscore/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
-
cscore/version.py,sha256=BRzsf6IEqQtPKO-VyxoeQmB0EuN414faTBe-n-8PTs8,175
|
|
12
|
-
cscore/__pycache__/__init__.cpython-311.pyc,sha256=SefOf2Tpst2NJDXq4LfCOrqvTfAWk8MgqgKZ7XZjSzE,1358
|
|
13
|
-
cscore/__pycache__/_init_cscore.cpython-311.pyc,sha256=zBGrJZ1Wz9S9brM0Xa_jUj6K4Az7sWNVrnEFluaxkXw,576
|
|
14
|
-
cscore/__pycache__/_logging.cpython-311.pyc,sha256=GBfA-mmfztjrORUUWLwMoQv9s3AG_wfd7Ezj8maYB8g,984
|
|
15
|
-
cscore/__pycache__/version.cpython-311.pyc,sha256=XONCRGR-De7uKZ93VWnuHlZKNolo5GHGwQC7kqgBI_g,334
|
|
16
|
-
cscore/cvnp/README.md,sha256=197MQ-gG-pZf9YAUZqcHXLKk8au8WtxXrfFf7lnwHAo,1175
|
|
17
|
-
cscore/cvnp/cvnp.cpp,sha256=xGs0MUNMPFw34WJWWo02E0s41Si0MvWgeJI_TWdOw_A,9523
|
|
18
|
-
cscore/cvnp/cvnp.h,sha256=4ymsVQgp8nOJqVazCtENVMgfTJ32M_j0ShfltPxL5aw,14852
|
|
19
|
-
cscore/cvnp/cvnp_synonyms.cpp,sha256=ZpLZzmK5ZcrIgLfi_j7eJ_NXLNtcb8ymDWehYuVVHvo,2419
|
|
20
|
-
cscore/cvnp/cvnp_synonyms.h,sha256=MgU4yOOXMhGGLrKb06dX4nsQLtqkq_1gDE6ToR3mjFo,589
|
|
21
|
-
cscore/src/main.cpp,sha256=sXb-crcVv2JxivUGCqPkpYmjgeupf5-M9XXOrxkRiRw,737
|
|
22
|
-
robotpy_cscore-2024.3.2.1.dist-info/LICENSE,sha256=eday0nHMlO9Rc7a6n0ONgNEe6N20r5xNWivVL5n-fN4,3138
|
|
23
|
-
robotpy_cscore-2024.3.2.1.dist-info/METADATA,sha256=Yqisi4ylv9nlrdfQj4MPpTej_HNLey--QUxxAlknXP4,1099
|
|
24
|
-
robotpy_cscore-2024.3.2.1.dist-info/WHEEL,sha256=nSybvzWlmdJnHiUQSY-d7V1ycwEVUTqXiTvr2eshg44,102
|
|
25
|
-
robotpy_cscore-2024.3.2.1.dist-info/entry_points.txt,sha256=ZOi1FKkpTmx8xBqUtdp6Z4IzoCKfwDOKJoVDAF9qjhE,38
|
|
26
|
-
robotpy_cscore-2024.3.2.1.dist-info/top_level.txt,sha256=yKRnfRQe07G2XO6XXYgsj9CN2obAQX3D3gsGvcewpVw,7
|
|
27
|
-
robotpy_cscore-2024.3.2.1.dist-info/RECORD,,
|
|
File without changes
|
{robotpy_cscore-2024.3.2.1.dist-info → robotpy_cscore-2025.0.0b1.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|