dart_vlc 0.4.0
dart_vlc: ^0.4.0 copied to clipboard
Flutter audio / video playback, broadcast & recording library for Windows & Linux. Based on libvlc.
0.4.0 #
- Bumped
ffito2.0.1. - Fixed locking of
VLC::MediaListduring modification. - BREAKING CHANGE: Discontinued
NativeVideoimplementation for Windows.
0.3.0 #
- BREAKING CHANGES
- Removed iOS support.
- Removed macOS support.
0.2.1 #
- Addressed few issues related to
NativeVideoon Windows (@alexmercerind). - Fixed switch case directShow control (@Paradoxu).
- Fixed Bump
flutter_native_viewandwindow_managerto latest versions (@ashutosh2014, @alexmercerind).
0.2.0 #
- Addressed multiple Dart-sided memory leaks during FFI interop (@alexmercerind).
- Introduce
NativeVideofor Windows to render video playback performantly (uses flutter_native_view) (@alexmercerind). - Refactor native source code, move implementations to separate translation units & remove inline class methods (@alexmercerind).
- Fix
Videorendering when explicitVideoDimensionsare passed (@alexmercerind). - Expose Player::SetHWND (@alexmercerind).
0.1.9 #
- Fix RTSP & HLS streams launching separate window instead of using
Videowidget (@alexmercerind). - Add
playlistLengthvalue to ensure the "skip next" and "skip previous" buttons do not render if there is only oneMediain aPlaylist. (@GroovinChip) - Update
dart_vlc.podspecto ensure the correct Pods path on macOS. NOTE: This is based on Flutter'sstablechannel. (@GroovinChip) - Added support for setting current audio track and getting audio track count (@exts)
- (linux) store texture info in instance data instead of class data (@hansihe)
0.1.8 #
- Add
startTimeandstopTimeparameters toMediafor clipping (@alexmercerind). - Add
Player.bufferingProgress&Player.bufferingProgressStreamto listen to buffering percentage of the player (@alexmercerind). Videowidget no longer turns black after being scrolled out of the view (@alexmercerind).- Now Linux uses texture registrar API for video playback (@alexmercerind) (REQUIRES master Flutter channel).
- Now macOS uses texture registrar API for video playback (@jnschulze).
- Initial work on iOS support has been started (@krjw-eyev).
0.1.7 #
- Fixed
Player.open(OnOpenevent) randomly causing crash on Windows (@alexmercerind). - Using constant frame buffer size until #137 is resolved (@alexmercerind).
0.1.6 #
- A hotfix update to fix a critical bug (@alexmercerind).
- Fixed a critical bug that resulted in a crash upon opening more than one
MediainPlaylist(apologies) (@alexmercerind). - Implemented media and playlist equality operators (@jnschulze).
- Added
Player.takeSnapshotto save snapshot of a playing video (@alexmercerind).
0.1.5 #
- Added initial macOS support (@jnschulze).
- Improved NativePort callbacks & removed unnecessary serialization (@alexmercerind).
- Now using a common core wrapper CMake library for all platforms (@jnschulze).
- Other bug-fixes related to
Video(@jnschulze). - Setup garbage cleaning finalizers for memory allocated on heap (for C++/Dart FFI communication) (@alexmercerind @jnschulze).
- Removed deprecated libVLC API calls (@alexmercerind).
0.1.4 #
- Now
Playerno longer requiresvideoWidth&videoHeightto be passed for video playback (@alexmercerind). Videowidget now uses the dimensions of the currently playing video (@alexmercerind).- For overriding the automatic video dimensions retrieval,
videoDimensionsargument must be passed while instantiatingPlayerclass (@alexmercerind). Videowidget no longer asks forplayerIdargument, butplayerinstead (@jnszhulze).- Added
videoDimensionStreamandvideoDimensionattributes toPlayerclass to listen to currently playing video dimensions (@alexmercerind). - Migrated C++ code to use smart pointers instead of raw pointers (@alexmercerind).
Player.disposeno longer causing crash on Windows (#103) (@alexmercerind).- Added Add fit and alignment properties to
Videowidget (@jnschulze).
0.1.3 #
- Fixed libVLC shared libraries not being copied on Windows (@jnschulze).
0.1.2 #
- Now using
flutter::TextureRegistrarfor performantVideoon Windows (#54) (@alexmercerind). - Fixed
autoStartinPlayer.open(@alexmercerind). - Fixed other crashes for Windows (@alexmercerind).
- Improved stability (@alexmercerind).
0.1.1 #
- Fixed setState being called after dispose (#75) (Finally) (@alexmercerind).
- Improved memory management (@alexmercerind).
- Fixed ton of memory leaks (@alexmercerind).
- Fixed
Devices::all&Media::parsecausing crash on Windows (@alexmercerind).
0.1.0 #
- Fixed build on Linux (@alexmercerind).
- Changed cmake minimum required version to 3.10 for fixing use with snap installation (@alexmercerind).
- Fixed vlc header not being located in Flutter on Linux version 2.2.4 (@alexmercerind).
- Fixed few memory leaks (@alexmercerind).
- Fixed calling setState after dispose & other Video widget issues (@alexmercerind).
- Fixed build warnings on Linux (@alexmercerind).
- Changed required CMake version to 3.10 on Linux (@alexmercerind).
0.0.9 #
- Fixed multiple
Videowidgets not working after FFI migration (@alexmercerind). - Now package contains complete libVLC & libVLC++ source inside (@alexmercerind).
- No longer fetching from videoLAN & GitHub servers required (@alexmercerind).
- No more build errors for developers in China (@alexmercerind).
- Fixed
Player::setPlaylistMode(@alexmercerind). - Fixed built-in play/pause button in Video widget (@alexmercerind).
- Added back
Media.assetfor Flutter (@alexmercerind).
0.0.8 #
- Now using FFI (instead of Platform channels) (@alexmercerind).
- Better performance, being direct C <-> Dart interop with no Flutter involvement.
- Added
Equalizerclass (@alexmercerind). - Support for Dart CLI. See package
dart_vlc_ffi(@alexmercerind). - Added
commandlineArgumentstoPlayerconstructor to pass VLC commandline arguments (@alexmercerind). - BREAKING CHANGES
- Now plugin requires initialization in the
mainmethod, callDartVLC.initialize()to instantiate the plugin (@alexmercerind). - Now all the methods are synchronous & no longer require
await. Please update your code (@alexmercerind).
- Now plugin requires initialization in the
0.0.7 #
- Added
Player.setUserAgent(@alexmercerind). - Improved & fixed issues related to play/pause button in
Videowidget (@alexmercerind). - Fixed compilation issues on arch linux (@alexmercerind).
- Fixes to device changing (@alexmercerind).
0.0.6 #
- Now
Playerclass has sync constructor & no longer needsPlayer.create(@alexmercerind). - Fixed memory leak errors on Windows & Linux (@alexmercerind).
- Added controls to
Videowidget (@tomassasovsky). - Added
Recordclass for recording media (@DomingoMG). - Added
Chromecastclass (@DomingoMG). - Fixed
Player.setPlaylistModeon Linux (@alexmercerind). - Event streams inside
Playerno longer can benull(@alexmercerind).
0.0.5 #
Broadcastclass to broadcast aMedia(@alexmercerind).- Fix to a bug that caused
CurrentStateto not update inPlayer(@alexmercerind).
0.0.4 #
VideoWidgetfor showing video output from aPlayerinsideWidgettree.Playermust be used as a controller for aVideo(@alexmercerind).- Initialize
PlayerwithvideoHeightandvideoWidthoptional parameters, if you wish to use it for video playback (@alexmercerind).
- Null-safety migration (@alexmercerind).
0.0.3 #
- More advanced playlist modification methods like (@alexmercerind):
addfor appending a newMediato thePlaylistof thePlayer.removefor removing aMediafrom thePlaylistof thePlayerfrom certain index.insertmethod for insertingMediato certain index (@alexmercerind).moveaMediafrom one index to another.
- Ability to get all playback
Devices on machine & change (@alexmercerind).Devices.allgivesListof allDevices.Player.setDevicecan be used to set a playback device for thePlayerinstance (@alexmercerind).
- Now event streams are splitted into four: (@alexmercerind)
Player.currentStream- Contains:
indexmediamediasisPlaylist
- Contains:
Player.positionStream- Contains:
positionduration
- Contains:
Player.playbackStream- Contains:
isPlayingisSeekableisCompleted
- Contains:
Player.generalStream- Contains:
volumerate
- Contains:
- Ability to retrieve metadata of a
Media(either fromMedia.networkorMedia.file) (@alexmercerind).- Now you can access metadata of a
Mediaby passingparse: truefor parsing the metadata (@alexmercerind). - Retrieved metadata is stored inside
Media.metasasMap<String, String>(@alexmercerind).
- Now you can access metadata of a
0.0.2 #
- Support for Flutter on Linux (@alexmercerind).
- Fixed bug that caused index to not update properly in
Playlist, whennextorbackor on completion ofMedia(@alexmercerind). - Changed default
Playervolume to0.5(@alexmercerind).
0.0.1+1 #
- Little left-over changes in the project documentation (@alexmercerind).
0.0.1 #
Mediaplayback from file.Mediaplayback from network.Mediaplayback from assets.play/pause/playOrPause/stop.- Multiple
Playerinstances. Playlist.next/back/jumpfor playlists.setVolume.setRate.seek.- Events.
- Automatic fetching of headers, libs & shared libraries.
- Changing VLC version from CMake.
- Event streams.
Player.currentStateindex: Index of current media inPlaylist.medias: List of all openedMedias.media: Currently playingMedia.isPlaylist: Whether a singleMediais loaded or aPlaylist.
Player.positionStateposition: Position of currently playing media inDuration.duration: Position of currently playing media inDuration.
Player.playbackStateisPlaying.isSeekable.isCompleted.
Player.generalStatevolume: Volume of currentPlayerinstance.rate: Rate of currentPlayerinstance.
- Initial release, worked & documented by @alexmercerind.