feat!: dual-target mpv backend + rename to ovos-media-plugin-mpv#21
Conversation
Add the new ovos-media backends so mpv works on both stacks (previously legacy ovos-audio only): - extract the mpv engine into a shared MPVBaseService(MediaBackend); add MPVOCPAudioService (opm.media.audio) and MPVOCPVideoService (opm.media.video); the legacy OVOSMPVService now reuses the shared engine via the same base-first MRO. ocp_sync_playback is legacy-only — the new backends fall back to the bus emit (existing try/except). - rename the distribution ovos-audio-plugin-mpv -> ovos-media-plugin-mpv and declare opm.media.audio/video alongside mycroft.plugin.audioservice; bump ovos-plugin-manager to >=2.1.0,<3.0.0 (required for the opm.media.* templates). Python module stays ovos_plugin_mpv (matches the mplayer convention). - tests cover the new audio/video backends + the legacy adapter sharing one engine and the declared entry-point groups. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Warning Review limit reached
More reviews will be available in 38 minutes and 11 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more credits in the billing tab to continue. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (4)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Beep boop! Here's the latest status of your PR checks. 🤖I've aggregated the results of the automated checks for this PR below. 🔍 LintThe results are fresh out of the pipeline. 🏗️ ❌ ruff: issues found — see job log 🔒 Security (pip-audit)No malware found in this neighborhood! 🏡 ✅ No known vulnerabilities found (61 packages scanned). ⚖️ License CheckEnsuring the project remains 100% open source. 🔓 ✅ No license violations found. Policy: Apache 2.0 (universal donor). StrongCopyleft / NetworkCopyleft / WeakCopyleft / Other / Error categories fail. MPL allowed. 🏷️ Release PreviewWhat's in the box? A preview of the next release! 📦 Caution Breaking change — this PR will bump the MAJOR version ( Current:
✅ PR title follows conventional commit format. 🚀 Release Channel Compatibility Predicted next version:
📋 Repo HealthEnsuring the repo's immune system is strong (aka security checks). 🛡️ ✅ All required files present. Latest Version: ✅ 🔌 Plugin DetectionEnsuring the plugin's 'metadata' is searchable and accurate. 🔍 Plugin Info:
Plugin Types: media.audio, media.video OPM Detection:
Entry Point Validation:
⊘ No Issues:
🔨 Build TestsChecking the calibration of the build environment. ⚖️ ✅ All versions pass
Helping you push code with confidence 🚀 |
…ayer Use ovoscope's OCPPlayerHarness (PR #89) to inject MPVOCPAudioService into a real ovos-media OCPMediaPlayer on a FakeBus and exercise the full play/pause/resume/ stop flow + now_playing routing (the mpv engine is mocked). Declare the ovoscope[media] test extra (floor-pinned to 0.20.0a1, the release that adds the harness); the test skips gracefully if the extra is absent. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…released) The OCPPlayerHarness media extra shipped in ovoscope 0.21.0a1, not 0.20.x. 0.20.0a1 was never published to PyPI, so the test extra was unresolvable and build_tests failed at install with 'No matching distribution found'. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Makes mpv work on both stacks (it was legacy ovos-audio only) and renames the distribution to match the
ovos-media-plugin-*family.MPVBaseService(MediaBackend); addMPVOCPAudioService(opm.media.audio) +MPVOCPVideoService(opm.media.video). The legacyOVOSMPVService(mycroft.plugin.audioservice) now reuses the same engine via base-first MRO — no duplicated logic.ovos-audio-plugin-mpv→ovos-media-plugin-mpv; bumpovos-plugin-manager>=2.1.0,<3.0.0(needed for theopm.media.*templates). Python module staysovos_plugin_mpv(mplayer convention).The GitHub repo is being renamed to
ovos-media-plugin-mpv(redirects preserved).🤖 Generated with Claude Code