Vendor media_kit_video 2.0.1 with the X11/EGL fix (hardware rendering on X11 with Flutter >= 3.38)
ci / core (push) Successful in 28s
ci / server (push) Successful in 51s
ci / updater-windows (push) Failing after 5m59s

Flutter >= 3.38 keeps its EGL contexts on the raster thread, so
media_kit's video output found none on the platform thread and fell
back to software rendering (no shaders, ~5 fps) on X11. The patched
output opens Flutter's EGL display itself, steps GDK's GLX context aside
on X11 and releases its own context. Patch from a friend's agent, kept
in third_party/media_kit_video/starsync/. Wayland/NVIDIA still renders
on the GPU (checked); the X11 path was verified on the friend's machine.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
foxyzandClaude Opus 5.5 committed 2026-10-16 01:13:14 +03:00
1 parent 25b19f2d6a
commit a87ee98faa
131 files changed
+15532 -6

No files matched your search

+245
View File
@@ -0,0 +1,245 @@
## 2.0.1
- fix: flutter 3.38.x crash
- fix(linux): flutter 3.38.x h/w render
## 2.0.0
- feat: flutter 3.38.x support
- **BREAKING CHANGE**: remove `screen_brightness` and `volume_controller` dependencies
## 1.3.1
- fix(windows): notify `VideoOutput.Resize` on platform thread
- fix(linux): notify `VideoOutput.Resize` on platform thread
- fix(android): `VideoController` implementation
- fix(android): remove deprecated API usage
## 1.3.0
- **REFACTOR**: screen_brightness -> screen_brightness_platform_interface.
- **REFACTOR**(android): simplify AndroidVideoController implementation.
- **REFACTOR**(android): VideoOutput SurfaceTextureEntry -> SurfaceProducer migration.
- **REFACTOR**: use setProperty API in NativeVideoController.
- **FIX**: improve responsiveness of showing controls on mobile.
- **FIX**: bump web to 1.1.0.
- **FIX**: cast to JSObject.
- **FIX**: not call super.didChangeAppLifecycleState(state);.
- **FIX**: not call super.didChangeAppLifecycleState(state);.
- **FIX**: wakelock print.
- **FIX**: subtitles not shifting on controls show/hide.
- **FIX**: set width/height from VideoParams in NativeVideoController.
- **FIX**: seek inside onPointerMove.
- **FIX**(windows): automatic IDXGIAdapter selection on windows 10 or greater.
- **FIX**(android): waitUntilFirstFrameRenderedCompleter.
- **FIX**(android): --hwdec=auto-safe as default.
- **FIX**: dispose ValueNotifier(s) in PlatformVideoController.
- **FIX**: fullscreen.
- **FIX**: long press video speed reset issue.
- **FIX**: wrong value in brightness builder callback.
- **FIX**: Use a Scaffold as the outermost widget on fullscreen video pages.
- **FEAT**: upgrade volume_controller dependency and refactor related code.
- **FEAT**: seek on double tap custom duration support.
## 1.2.5
- fix: subtitleView not being updated
- fix: mobile double tap areas hidden but still mounted
- fix: mobile center click is delayed
- feat: desktop video controls mouse hides with controls
- feat: desktop on tap pause and play
- feat: desktop on double tap fullscreen
- fix: windows crash by @Airyzz [#900](https://github.com/media-kit/media-kit/pull/900)
- feat: auto pass changes to fullscreen without having to call .update
## 1.2.4
- fix: web compile error
## 1.2.3
- feat: `VideoState.update` & `VideoViewParameters`
## 1.2.2
- fix: override `setState` & check `mounted` in `MaterialVideoControls` & `MaterialDesktopVideoControls`
## 1.2.1
- fix(android): clear `android.view.Surface` before playback
- feat: `MaterialVideoControlsThemeData.seekBarAlignment`
## 1.2.0
- fix: `MaterialVideoControls` layout
## 1.1.9
- fix: unmount `CircularProgressIndicator` buffering indicator if invisible
- fix: pass all video attributes to fullscreen route
- fix: prevent controls from hiding during seek
- fix: hide last video's frame upon `Player.open`
- fix: `ThemeData.copyWith` override
- fix(android): `hwdec=auto-safe` w/ `enableHardwareAcceleration=true`
- fix(windows): fullscreen for non-primary monitors
- fix(darwin): `mpv_render_context_free` call
- fix(darwin): memory leaks
- fix(ios): fix `disposeMPV`
- feat: `VideoControllerConfiguration.androidAttachSurfaceAfterVideoParameters`
- feat: center the seek-bar within its parent `Container` for improved tap area
- feat: `backdropColor` argument in `MaterialVideoControlsThemeData`
## 1.1.8
- fix: pass all `*VideoControlsTheme`(s) to fullscreen `context`
## 1.1.7
- fix: add `await` to `maybePop` when exiting fullscreen
- fix: `MaterialVideoControls`/`MaterialDesktopVideoControls` seekbar glitch
- fix(android): S/W rendering fallback
- fix(android): create fresh `android.view.Surface` for every video output
## 1.1.6
- fix: programmatic fullscreen API
- fix(android): pause upon entering fullscreen
- fix(android): `waitUntilFirstFrameRenderedNotify` in `FlutterFragmentActivity`
## 1.1.5
- fix(android): `waitUntilFirstFrameRenderedNotify` fallback & release-mode
## 1.1.4
- feat: `Video` `resumeUponEnteringForegroundMode`
- feat(android): `waitUntilFirstFrameRenderedNotify` implementation
## 1.1.3
- feat(android): `VideoControllerConfiguration.scale`
- fix(android): use `hwdec=auto`
- fix(android): `SurfaceTexture.setDefaultBufferSize` & render race
## 1.1.2
- fix(windows): memory leak in `GetVideoWidth`/`GetVideoHeight`
- fix(linux): `GThread*` leak in S/W render & `video_output_get_(width|height)`
- fix(linux): H/W support for multiple videos
- build(darwin): bump `mpv` headers to `0.36.0`
- build(darwin): use symlinks for `FRAMEWORK_SEARCH_PATHS`, `media_kit_libs_*** >= 1.1.0`
- fix(darwin): remove black screen when switching videos ([#332](https://github.com/media-kit/media-kit/issues/332))
- feat: `Video`: expose `onEnterFullscreen` & `onExitFullscreen`
- feat: feat: `visibleOnMount` `MaterialVideoControls`/`MaterialDesktopVideoControls`
- fix: display `bufferingIndicatorBuilder` even if controls are hidden
## 1.1.1
- chore: `try`/`catch` native calls to hide stray logs
- fix: `MaterialDesktopVideoControls`: do not add `onTapUp` callback if `toggleFullscreenOnDoublePress` is disabled
## 1.1.0
- feat: `SubtitleView`, `SubtitleViewConfiguration`
- feat: `shiftSubtitlesOnControlsVisibilityChange` in `MaterialVideoControls` & `MaterialDesktopVideoControls`
- feat: apply rotation from metadata to video output
- feat: improve wakelock behavior
- feat: `pauseUponEnteringBackgroundMode`
- fix: `bufferingIndicatorBuilder` padding in `MaterialVideoControls` & `MaterialDesktopVideoControls`
- fix(windows): maintain aspect ratio in s/w rendering pixel-buffer size clamping
- fix(linux): maintain aspect ratio in s/w rendering pixel-buffer size clamping
- perf(android): use `hwdec=mediacodec` w/ `enableHardwareAcceleration`
- deps: migrate [`package:wakelock_plus`](https://pub.dev/packages/wakelock_plus)
## 1.0.2
- fix(video/macos): fix fullscreen support
## 1.0.1
- fix: synchronize `VideoController` constructor
- fix: `fullscreen` video controls theme data not being applied
## 1.0.0
- feat: web support
- feat: fullscreen API
- feat: acquire wakelock
- feat: support for AGP 8.0
- feat: pre-built video controls
- feat: `controls` argument in `Video` widget
- feat: `AdaptiveVideoControls`, `MaterialVideoControls`, `MaterialDesktopVideoControls` & `NoVideoControls`
## 0.0.12
- fix(android): improve `Texture` resize handling
## 0.0.11
- fix(android): improve `Texture` resize handling
## 0.0.10
- feat: `VideoControllerConfiguration`
- feat: `VideoController.waitUntilFirstFrameRendered`
- refactor: clean-up package structure
- refactor: remove `VideoController.dispose`
- refactor: `VideoController.create` -> `VideoController` constructor
- fix(android): add `av1` to `hwdec-codecs`
- fix(android): use `--vo=gpu` + `--hwdec=mediacodec-copy` /w `enableHardwareAcceleration`
## 0.0.9
- fix(android): revert to `--vo=mediacodec_embed` in `enableHardwareAcceleration`
## 0.0.8
- fix(android): subtitle rendering
- fix(android): video rendering inside emulators (#149)
- fix(android): video rendering with `enableHardwareAcceleration: false`
## 0.0.7
- fix(linux): VAAPI hardware acceleration
- perf(windows): `VideoOutput::Resize`: delete texture objects in background
## 0.0.6
- fix(windows): synchronize texture object deletion in on unregister _v.i.z_ `VideoOutput::Resize` or `VideoOutput::~VideoOutput`
## 0.0.5
- Android support
- feat: `VideoController.setSize`
- fix: set `vo` to `libmpv` before creating render context
- refactor: `VideoController.create` takes `Player` reference instead of `handle`
## 0.0.4
- fix: use `mkdir` instead of `.gitkeep`
## 0.0.3
- fix: add `.framework` & `.xcframework` for all libs
## 0.0.2
- macOS support:
- Hardware: MPV_RENDER_API_TYPE_OPENGL + pixel buffer + METAL
- Software: MPV_RENDER_API_TYPE_SW + pixel buffer
- iOS support:
- Hardware: MPV_RENDER_API_TYPE_OPENGL + pixel buffer
- Software: MPV_RENDER_API_TYPE_SW + pixel buffer
- fix(windows): use `TextureRegistrar::UnregisterTexture` release callback to free texture resources
- fix(windows): synchronize texture unregister & release on frame dimensions change
- feat: `aspectRatio` parameter for `Video` widget
## 0.0.1
- Initial release
- Windows support:
- Hardware: MPV_RENDER_API_TYPE_OPENGL + ANGLE + DirectX 11
- Software: MPV_RENDER_API_TYPE_SW + pixel buffer
- GNU/Linux support:
- Hardware: MPV_RENDER_API_TYPE_OPENGL + GDK/GL
- Software: MPV_RENDER_API_TYPE_SW + pixel buffer