kinemotion 0.18.2__tar.gz → 0.20.0__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.

Potentially problematic release.


This version of kinemotion might be problematic. Click here for more details.

Files changed (88) hide show
  1. {kinemotion-0.18.2 → kinemotion-0.20.0}/CHANGELOG.md +16 -0
  2. {kinemotion-0.18.2 → kinemotion-0.20.0}/PKG-INFO +62 -14
  3. {kinemotion-0.18.2 → kinemotion-0.20.0}/README.md +61 -13
  4. {kinemotion-0.18.2 → kinemotion-0.20.0}/pyproject.toml +1 -1
  5. {kinemotion-0.18.2 → kinemotion-0.20.0}/src/kinemotion/core/video_io.py +12 -2
  6. {kinemotion-0.18.2 → kinemotion-0.20.0}/uv.lock +1 -1
  7. {kinemotion-0.18.2 → kinemotion-0.20.0}/.dockerignore +0 -0
  8. {kinemotion-0.18.2 → kinemotion-0.20.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  9. {kinemotion-0.18.2 → kinemotion-0.20.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  10. {kinemotion-0.18.2 → kinemotion-0.20.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  11. {kinemotion-0.18.2 → kinemotion-0.20.0}/.github/pull_request_template.md +0 -0
  12. {kinemotion-0.18.2 → kinemotion-0.20.0}/.github/workflows/docs.yml +0 -0
  13. {kinemotion-0.18.2 → kinemotion-0.20.0}/.github/workflows/release.yml +0 -0
  14. {kinemotion-0.18.2 → kinemotion-0.20.0}/.github/workflows/test.yml +0 -0
  15. {kinemotion-0.18.2 → kinemotion-0.20.0}/.gitignore +0 -0
  16. {kinemotion-0.18.2 → kinemotion-0.20.0}/.pre-commit-config.yaml +0 -0
  17. {kinemotion-0.18.2 → kinemotion-0.20.0}/.readthedocs.yml +0 -0
  18. {kinemotion-0.18.2 → kinemotion-0.20.0}/.tool-versions +0 -0
  19. {kinemotion-0.18.2 → kinemotion-0.20.0}/CLAUDE.md +0 -0
  20. {kinemotion-0.18.2 → kinemotion-0.20.0}/CODE_OF_CONDUCT.md +0 -0
  21. {kinemotion-0.18.2 → kinemotion-0.20.0}/CONTRIBUTING.md +0 -0
  22. {kinemotion-0.18.2 → kinemotion-0.20.0}/Dockerfile +0 -0
  23. {kinemotion-0.18.2 → kinemotion-0.20.0}/GEMINI.md +0 -0
  24. {kinemotion-0.18.2 → kinemotion-0.20.0}/LICENSE +0 -0
  25. {kinemotion-0.18.2 → kinemotion-0.20.0}/SECURITY.md +0 -0
  26. {kinemotion-0.18.2 → kinemotion-0.20.0}/docs/README.md +0 -0
  27. {kinemotion-0.18.2 → kinemotion-0.20.0}/docs/api/cmj.md +0 -0
  28. {kinemotion-0.18.2 → kinemotion-0.20.0}/docs/api/core.md +0 -0
  29. {kinemotion-0.18.2 → kinemotion-0.20.0}/docs/api/dropjump.md +0 -0
  30. {kinemotion-0.18.2 → kinemotion-0.20.0}/docs/api/overview.md +0 -0
  31. {kinemotion-0.18.2 → kinemotion-0.20.0}/docs/development/errors-findings.md +0 -0
  32. {kinemotion-0.18.2 → kinemotion-0.20.0}/docs/development/validation-plan.md +0 -0
  33. {kinemotion-0.18.2 → kinemotion-0.20.0}/docs/development/wallball-norep-detection.md +0 -0
  34. {kinemotion-0.18.2 → kinemotion-0.20.0}/docs/guides/bulk-processing.md +0 -0
  35. {kinemotion-0.18.2 → kinemotion-0.20.0}/docs/guides/camera-setup.md +0 -0
  36. {kinemotion-0.18.2 → kinemotion-0.20.0}/docs/guides/cmj-guide.md +0 -0
  37. {kinemotion-0.18.2 → kinemotion-0.20.0}/docs/index.md +0 -0
  38. {kinemotion-0.18.2 → kinemotion-0.20.0}/docs/reference/parameters.md +0 -0
  39. {kinemotion-0.18.2 → kinemotion-0.20.0}/docs/reference/pose-systems.md +0 -0
  40. {kinemotion-0.18.2 → kinemotion-0.20.0}/docs/research/sports-biomechanics-pose-estimation.md +0 -0
  41. {kinemotion-0.18.2 → kinemotion-0.20.0}/docs/technical/framerate.md +0 -0
  42. {kinemotion-0.18.2 → kinemotion-0.20.0}/docs/technical/imu-metadata.md +0 -0
  43. {kinemotion-0.18.2 → kinemotion-0.20.0}/docs/technical/real-time-analysis.md +0 -0
  44. {kinemotion-0.18.2 → kinemotion-0.20.0}/docs/technical/triple-extension.md +0 -0
  45. {kinemotion-0.18.2 → kinemotion-0.20.0}/docs/translations/es/camera-setup.md +0 -0
  46. {kinemotion-0.18.2 → kinemotion-0.20.0}/examples/bulk/README.md +0 -0
  47. {kinemotion-0.18.2 → kinemotion-0.20.0}/examples/bulk/bulk_processing.py +0 -0
  48. {kinemotion-0.18.2 → kinemotion-0.20.0}/examples/bulk/simple_example.py +0 -0
  49. {kinemotion-0.18.2 → kinemotion-0.20.0}/examples/programmatic_usage.py +0 -0
  50. {kinemotion-0.18.2 → kinemotion-0.20.0}/mkdocs.yml +0 -0
  51. {kinemotion-0.18.2 → kinemotion-0.20.0}/requirements-docs.txt +0 -0
  52. {kinemotion-0.18.2 → kinemotion-0.20.0}/samples/cmjs/README.md +0 -0
  53. {kinemotion-0.18.2 → kinemotion-0.20.0}/sonar-project.properties +0 -0
  54. {kinemotion-0.18.2 → kinemotion-0.20.0}/src/kinemotion/__init__.py +0 -0
  55. {kinemotion-0.18.2 → kinemotion-0.20.0}/src/kinemotion/api.py +0 -0
  56. {kinemotion-0.18.2 → kinemotion-0.20.0}/src/kinemotion/cli.py +0 -0
  57. {kinemotion-0.18.2 → kinemotion-0.20.0}/src/kinemotion/cmj/__init__.py +0 -0
  58. {kinemotion-0.18.2 → kinemotion-0.20.0}/src/kinemotion/cmj/analysis.py +0 -0
  59. {kinemotion-0.18.2 → kinemotion-0.20.0}/src/kinemotion/cmj/cli.py +0 -0
  60. {kinemotion-0.18.2 → kinemotion-0.20.0}/src/kinemotion/cmj/debug_overlay.py +0 -0
  61. {kinemotion-0.18.2 → kinemotion-0.20.0}/src/kinemotion/cmj/joint_angles.py +0 -0
  62. {kinemotion-0.18.2 → kinemotion-0.20.0}/src/kinemotion/cmj/kinematics.py +0 -0
  63. {kinemotion-0.18.2 → kinemotion-0.20.0}/src/kinemotion/core/__init__.py +0 -0
  64. {kinemotion-0.18.2 → kinemotion-0.20.0}/src/kinemotion/core/auto_tuning.py +0 -0
  65. {kinemotion-0.18.2 → kinemotion-0.20.0}/src/kinemotion/core/cli_utils.py +0 -0
  66. {kinemotion-0.18.2 → kinemotion-0.20.0}/src/kinemotion/core/debug_overlay_utils.py +0 -0
  67. {kinemotion-0.18.2 → kinemotion-0.20.0}/src/kinemotion/core/filtering.py +0 -0
  68. {kinemotion-0.18.2 → kinemotion-0.20.0}/src/kinemotion/core/pose.py +0 -0
  69. {kinemotion-0.18.2 → kinemotion-0.20.0}/src/kinemotion/core/smoothing.py +0 -0
  70. {kinemotion-0.18.2 → kinemotion-0.20.0}/src/kinemotion/dropjump/__init__.py +0 -0
  71. {kinemotion-0.18.2 → kinemotion-0.20.0}/src/kinemotion/dropjump/analysis.py +0 -0
  72. {kinemotion-0.18.2 → kinemotion-0.20.0}/src/kinemotion/dropjump/cli.py +0 -0
  73. {kinemotion-0.18.2 → kinemotion-0.20.0}/src/kinemotion/dropjump/debug_overlay.py +0 -0
  74. {kinemotion-0.18.2 → kinemotion-0.20.0}/src/kinemotion/dropjump/kinematics.py +0 -0
  75. {kinemotion-0.18.2 → kinemotion-0.20.0}/src/kinemotion/py.typed +0 -0
  76. {kinemotion-0.18.2 → kinemotion-0.20.0}/tests/__init__.py +0 -0
  77. {kinemotion-0.18.2 → kinemotion-0.20.0}/tests/test_adaptive_threshold.py +0 -0
  78. {kinemotion-0.18.2 → kinemotion-0.20.0}/tests/test_api.py +0 -0
  79. {kinemotion-0.18.2 → kinemotion-0.20.0}/tests/test_aspect_ratio.py +0 -0
  80. {kinemotion-0.18.2 → kinemotion-0.20.0}/tests/test_cli_imports.py +0 -0
  81. {kinemotion-0.18.2 → kinemotion-0.20.0}/tests/test_cmj_analysis.py +0 -0
  82. {kinemotion-0.18.2 → kinemotion-0.20.0}/tests/test_cmj_kinematics.py +0 -0
  83. {kinemotion-0.18.2 → kinemotion-0.20.0}/tests/test_com_estimation.py +0 -0
  84. {kinemotion-0.18.2 → kinemotion-0.20.0}/tests/test_contact_detection.py +0 -0
  85. {kinemotion-0.18.2 → kinemotion-0.20.0}/tests/test_filtering.py +0 -0
  86. {kinemotion-0.18.2 → kinemotion-0.20.0}/tests/test_joint_angles.py +0 -0
  87. {kinemotion-0.18.2 → kinemotion-0.20.0}/tests/test_kinematics.py +0 -0
  88. {kinemotion-0.18.2 → kinemotion-0.20.0}/tests/test_polyorder.py +0 -0
@@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  <!-- version list -->
9
9
 
10
+ ## v0.20.0 (2025-11-10)
11
+
12
+ ### Features
13
+
14
+ - Add platform-specific installation guide and ffprobe warnings
15
+ ([`b61c8c6`](https://github.com/feniix/kinemotion/commit/b61c8c6dbc2191ca321a2b813aa995c3a68b0b0b))
16
+
17
+
18
+ ## v0.19.0 (2025-11-10)
19
+
20
+ ### Features
21
+
22
+ - Add comprehensive badge layout to README
23
+ ([`e1e2ca3`](https://github.com/feniix/kinemotion/commit/e1e2ca38c67077092bfc1455acfbe8a424e5d4b4))
24
+
25
+
10
26
  ## v0.18.2 (2025-11-10)
11
27
 
12
28
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kinemotion
3
- Version: 0.18.2
3
+ Version: 0.20.0
4
4
  Summary: Video-based kinematic analysis for athletic performance
5
5
  Project-URL: Homepage, https://github.com/feniix/kinemotion
6
6
  Project-URL: Repository, https://github.com/feniix/kinemotion
@@ -30,13 +30,18 @@ Description-Content-Type: text/markdown
30
30
  # Kinemotion
31
31
 
32
32
  [![PyPI version](https://img.shields.io/pypi/v/kinemotion.svg)](https://pypi.org/project/kinemotion/)
33
+ [![Python Version](https://img.shields.io/pypi/pyversions/kinemotion.svg)](https://pypi.org/project/kinemotion/)
33
34
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
34
- [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
35
- [![Type checked with pyright](https://img.shields.io/badge/type%20checked-pyright-blue.svg)](https://github.com/microsoft/pyright)
35
+
36
+ [![Tests](https://github.com/feniix/kinemotion/workflows/Test%20%26%20Quality/badge.svg)](https://github.com/feniix/kinemotion/actions)
37
+ [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=feniix_kinemotion&metric=alert_status)](https://sonarcloud.io/summary/overall?id=feniix_kinemotion)
38
+ [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=feniix_kinemotion&metric=coverage)](https://sonarcloud.io/summary/overall?id=feniix_kinemotion)
39
+
36
40
  [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
37
- [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=feniix_kinemotion&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=feniix_kinemotion)
41
+ [![Type checked with pyright](https://img.shields.io/badge/type%20checked-pyright-blue.svg)](https://github.com/microsoft/pyright)
42
+ [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)
38
43
 
39
- A video-based kinematic analysis tool for athletic performance. Analyzes vertical jump videos to estimate key performance metrics using MediaPipe pose tracking and advanced kinematics.
44
+ > A video-based kinematic analysis tool for athletic performance. Analyzes vertical jump videos to estimate key performance metrics using MediaPipe pose tracking and advanced kinematics.
40
45
 
41
46
  **Supported jump types:**
42
47
 
@@ -88,27 +93,70 @@ For clinical, research, or performance assessment requiring validated accuracy,
88
93
 
89
94
  ## Setup
90
95
 
91
- ### Prerequisites
96
+ ### System Requirements
97
+
98
+ **All Platforms:**
99
+
100
+ - Python 3.10, 3.11, or 3.12
101
+
102
+ **Platform-Specific:**
103
+
104
+ #### Windows
92
105
 
93
- - [asdf](https://asdf-vm.com/) version manager
94
- - asdf plugins for Python and uv
106
+ No additional system dependencies required.
95
107
 
96
- ### Installation
108
+ **Recommended for mobile video support:**
97
109
 
98
- 1. **Install asdf plugins** (if not already installed):
110
+ - [FFmpeg](https://ffmpeg.org/download.html) - Download and add to PATH
111
+
112
+ #### macOS
113
+
114
+ No additional system dependencies required.
115
+
116
+ **Recommended for mobile video support:**
117
+
118
+ ```bash
119
+ brew install ffmpeg
120
+ ```
121
+
122
+ #### Linux (Ubuntu/Debian)
123
+
124
+ **Recommended system libraries:**
125
+
126
+ ```bash
127
+ sudo apt-get update
128
+ sudo apt-get install -y \
129
+ libgl1-mesa-glx \
130
+ libglib2.0-0 \
131
+ ffmpeg
132
+ ```
133
+
134
+ **Note:** `ffmpeg` provides the `ffprobe` tool for video metadata extraction (rotation, aspect ratio). Kinemotion works without it, but mobile/rotated videos may not process correctly. A warning will be shown if `ffprobe` is not available.
135
+
136
+ ### Installation Methods
137
+
138
+ #### From PyPI (Recommended)
139
+
140
+ ```bash
141
+ pip install kinemotion
142
+ ```
143
+
144
+ #### From Source (Development)
145
+
146
+ **Step 1:** Install asdf plugins (if not already installed):
99
147
 
100
148
  ```bash
101
149
  asdf plugin add python
102
150
  asdf plugin add uv
103
151
  ```
104
152
 
105
- 1. **Install versions specified in `.tool-versions`**:
153
+ **Step 2:** Install versions specified in `.tool-versions`:
106
154
 
107
155
  ```bash
108
156
  asdf install
109
157
  ```
110
158
 
111
- 1. **Install project dependencies using uv**:
159
+ **Step 3:** Install project dependencies using uv:
112
160
 
113
161
  ```bash
114
162
  uv sync
@@ -120,7 +168,7 @@ This will install all dependencies and make the `kinemotion` command available.
120
168
 
121
169
  Kinemotion supports two jump types with intelligent auto-tuning that automatically optimizes parameters based on video characteristics.
122
170
 
123
- ### Drop Jump Analysis
171
+ ### Analyzing Drop Jumps
124
172
 
125
173
  Analyzes reactive strength and ground contact time:
126
174
 
@@ -129,7 +177,7 @@ Analyzes reactive strength and ground contact time:
129
177
  kinemotion dropjump-analyze video.mp4
130
178
  ```
131
179
 
132
- ### Counter Movement Jump (CMJ) Analysis
180
+ ### Analyzing CMJ
133
181
 
134
182
  Analyzes jump height and biomechanics:
135
183
 
@@ -1,13 +1,18 @@
1
1
  # Kinemotion
2
2
 
3
3
  [![PyPI version](https://img.shields.io/pypi/v/kinemotion.svg)](https://pypi.org/project/kinemotion/)
4
+ [![Python Version](https://img.shields.io/pypi/pyversions/kinemotion.svg)](https://pypi.org/project/kinemotion/)
4
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
- [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
6
- [![Type checked with pyright](https://img.shields.io/badge/type%20checked-pyright-blue.svg)](https://github.com/microsoft/pyright)
6
+
7
+ [![Tests](https://github.com/feniix/kinemotion/workflows/Test%20%26%20Quality/badge.svg)](https://github.com/feniix/kinemotion/actions)
8
+ [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=feniix_kinemotion&metric=alert_status)](https://sonarcloud.io/summary/overall?id=feniix_kinemotion)
9
+ [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=feniix_kinemotion&metric=coverage)](https://sonarcloud.io/summary/overall?id=feniix_kinemotion)
10
+
7
11
  [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
8
- [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=feniix_kinemotion&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=feniix_kinemotion)
12
+ [![Type checked with pyright](https://img.shields.io/badge/type%20checked-pyright-blue.svg)](https://github.com/microsoft/pyright)
13
+ [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)
9
14
 
10
- A video-based kinematic analysis tool for athletic performance. Analyzes vertical jump videos to estimate key performance metrics using MediaPipe pose tracking and advanced kinematics.
15
+ > A video-based kinematic analysis tool for athletic performance. Analyzes vertical jump videos to estimate key performance metrics using MediaPipe pose tracking and advanced kinematics.
11
16
 
12
17
  **Supported jump types:**
13
18
 
@@ -59,27 +64,70 @@ For clinical, research, or performance assessment requiring validated accuracy,
59
64
 
60
65
  ## Setup
61
66
 
62
- ### Prerequisites
67
+ ### System Requirements
68
+
69
+ **All Platforms:**
70
+
71
+ - Python 3.10, 3.11, or 3.12
72
+
73
+ **Platform-Specific:**
74
+
75
+ #### Windows
63
76
 
64
- - [asdf](https://asdf-vm.com/) version manager
65
- - asdf plugins for Python and uv
77
+ No additional system dependencies required.
66
78
 
67
- ### Installation
79
+ **Recommended for mobile video support:**
68
80
 
69
- 1. **Install asdf plugins** (if not already installed):
81
+ - [FFmpeg](https://ffmpeg.org/download.html) - Download and add to PATH
82
+
83
+ #### macOS
84
+
85
+ No additional system dependencies required.
86
+
87
+ **Recommended for mobile video support:**
88
+
89
+ ```bash
90
+ brew install ffmpeg
91
+ ```
92
+
93
+ #### Linux (Ubuntu/Debian)
94
+
95
+ **Recommended system libraries:**
96
+
97
+ ```bash
98
+ sudo apt-get update
99
+ sudo apt-get install -y \
100
+ libgl1-mesa-glx \
101
+ libglib2.0-0 \
102
+ ffmpeg
103
+ ```
104
+
105
+ **Note:** `ffmpeg` provides the `ffprobe` tool for video metadata extraction (rotation, aspect ratio). Kinemotion works without it, but mobile/rotated videos may not process correctly. A warning will be shown if `ffprobe` is not available.
106
+
107
+ ### Installation Methods
108
+
109
+ #### From PyPI (Recommended)
110
+
111
+ ```bash
112
+ pip install kinemotion
113
+ ```
114
+
115
+ #### From Source (Development)
116
+
117
+ **Step 1:** Install asdf plugins (if not already installed):
70
118
 
71
119
  ```bash
72
120
  asdf plugin add python
73
121
  asdf plugin add uv
74
122
  ```
75
123
 
76
- 1. **Install versions specified in `.tool-versions`**:
124
+ **Step 2:** Install versions specified in `.tool-versions`:
77
125
 
78
126
  ```bash
79
127
  asdf install
80
128
  ```
81
129
 
82
- 1. **Install project dependencies using uv**:
130
+ **Step 3:** Install project dependencies using uv:
83
131
 
84
132
  ```bash
85
133
  uv sync
@@ -91,7 +139,7 @@ This will install all dependencies and make the `kinemotion` command available.
91
139
 
92
140
  Kinemotion supports two jump types with intelligent auto-tuning that automatically optimizes parameters based on video characteristics.
93
141
 
94
- ### Drop Jump Analysis
142
+ ### Analyzing Drop Jumps
95
143
 
96
144
  Analyzes reactive strength and ground contact time:
97
145
 
@@ -100,7 +148,7 @@ Analyzes reactive strength and ground contact time:
100
148
  kinemotion dropjump-analyze video.mp4
101
149
  ```
102
150
 
103
- ### Counter Movement Jump (CMJ) Analysis
151
+ ### Analyzing CMJ
104
152
 
105
153
  Analyzes jump height and biomechanics:
106
154
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "kinemotion"
3
- version = "0.18.2"
3
+ version = "0.20.0"
4
4
  description = "Video-based kinematic analysis for athletic performance"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10,<3.13"
@@ -2,6 +2,7 @@
2
2
 
3
3
  import json
4
4
  import subprocess
5
+ import warnings
5
6
 
6
7
  import cv2
7
8
  import numpy as np
@@ -147,8 +148,17 @@ class VideoProcessor:
147
148
  # Extract rotation from side_data_list (common for iPhone videos)
148
149
  self.rotation = self._extract_rotation_from_stream(stream)
149
150
 
150
- except (subprocess.TimeoutExpired, FileNotFoundError, json.JSONDecodeError):
151
- # If ffprobe fails, keep original dimensions (square pixels)
151
+ except FileNotFoundError:
152
+ # ffprobe not found - warn user about reduced functionality
153
+ warnings.warn(
154
+ "ffprobe not found. Video rotation and aspect ratio metadata will be "
155
+ "ignored. This may cause issues with mobile/rotated videos. "
156
+ "Install FFmpeg for full video support: https://ffmpeg.org/download.html",
157
+ UserWarning,
158
+ stacklevel=2,
159
+ )
160
+ except (subprocess.TimeoutExpired, json.JSONDecodeError):
161
+ # If ffprobe fails for other reasons, silently continue with defaults
152
162
  pass
153
163
 
154
164
  def read_frame(self) -> np.ndarray | None:
@@ -700,7 +700,7 @@ wheels = [
700
700
 
701
701
  [[package]]
702
702
  name = "kinemotion"
703
- version = "0.18.2"
703
+ version = "0.20.0"
704
704
  source = { editable = "." }
705
705
  dependencies = [
706
706
  { name = "click" },
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes