- mixWithOthers for iOS
- privacy manifest for apple
- enable DXVA decoder for win, used by some win7 devices
- crash fix
- keep video aspect ratio for user specified texture size
- improve dependency download error check
- Add VideoPlayerController extension, support adavanced features without using backend api directly
- backend api: fix updateTexture() never complete without prepare
- improve android impeller, support surface changes. requires flutter 3.24+. for 3.22, impeller is not perfect
- fix no responding in prepare() using backend api
- fix hang in updateTexture()
- ensure texture size is available when initialized
- replace exceptions with error events
- fix metal crash if api validation is enabled
- cleanup dependencies
- fix dispose crash on apple platforms
- fix metal sync issue
- add
Player.snapshot()
- fix sometimes no intialized event
- enable http(s) reconnect
- fix Player.state is not current state
- windows: fix d3d11 sync issue
- android: min api level is 21, target sdk 34. this requires flutter > 3.19
- add
Player.setAsset()
- android 16KB page size
- compatible with vcrt 14.20
- fix macos and ios dependency
- fix dependencies install
- android: use SurfaceProducer only for impeller, fix surface lifetime if impeller not enabled
- force upgrade dependencies via environment var
FVP_DEPS_LATEST=1
(except macOS and iOS) - support http(s) cache via
registerOpts['player']['demux.buffer.ranges'] = '$positive_int'
- registerWith() can register official backends if a platform is not specified in platforms
- check seekable range for live streams
- live stream duration.inMicroseconds is int max
- fix wasm build
- fix log level
- support Impeller for android. may require flutter 3.19+ to build
- fix initialized event
- compatible with dart < 3.3
import 'package:fvp/fvp.dart'
andregisterWith(...)
are optional on windows and linux- don't hardcode ffmpeg library name. prepare for ffmpeg 7.0
- fix deprecated methods
- delay texture creation if video size is unknown, improve low latency streams
- Player: support registing multiple event and state callbacks
- set default subtitle file, required by android subtitle rendering
- fix build in flutter installed via snap
- support video with rotation
- support tunnel mode for android
- make libfvp_plugin.so optional on android
- support flutter 3.16, fix runtime error
- fix isCompleted is never true since previous version
- keep open when play to end
- fix texture aspect ratio
- add lowLatency option
- remove callbacks before StreamController close, avoid add event when closed
- fix rtsp, rtmp open error
- fix music cover art sometimes is not displayed. ensure texture is created before the 1st video frame.
- fix seek ignored if previous is not finished
- add
fastSeek
option inregisterWith()
. default is accurate seek
- fix incorrect dxgi adapter used on windows
- fix video may be not displayed on windows 7
- support audio without video
- fix s16p audio play on android
Player.seek()
is async
- free for all platforms
- fix android x86 load error
- enable x11 multi-thread on linux
- VideoEvent.completed
- better error handling if failed to open a media
- use software decoder in android emulator, fix black screen
- able to pass global options and player properties to libmdk
- improve log
- add arm64 ios simulater
- fix cmake include
- allow http in m3u8 local file
- add D3D11 decoder for windows
- fix web build. web will use official implementation
- add 'platforms' option for
registerWith()
to enable plugin for given platforms, other platforms will use official implementation Player.prepare()
is async- no longer export
MdkVideoPlayer
- fix fail to convert metadata to dart string
- rename
State
toPlaybackState
- add textureId notifier for Player
- improve documentation
- support httpHeaders
- export backend apis for creating your own players
- texture size can be set by user via
MdkVideoPlayer.registerWith({'maxWidth': width, 'maxHeight': height});
- fix crash for some streams containing subtitle
- fix local file path encoding
- use objc instead of swift. simpler code, smaller binary size, less dependencies.
- fix macos, ios build for flutter without sharedDarwinSource support
- fix StreamController close
- supports assets
- improve bufferingUpdate event
- support backend logging
- customize decoders via
MdkVideoPlayer.registerWith({'video.decoders': [...]})
- fix macos build from pub
- fix macos build
- video playback for windows, linux, macos, ios, android
- hardware decoding, optimal gpu rendering