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
ffi
to2.0.1
. - Fixed locking of
VLC::MediaList
during modification. - BREAKING CHANGE: Discontinued
NativeVideo
implementation for Windows.
0.3.0 #
- BREAKING CHANGES
- Removed iOS support.
- Removed macOS support.
0.2.1 #
- Addressed few issues related to
NativeVideo
on Windows (@alexmercerind). - Fixed switch case directShow control (@Paradoxu).
- Fixed Bump
flutter_native_view
andwindow_manager
to latest versions (@ashutosh2014, @alexmercerind).
0.2.0 #
- Addressed multiple Dart-sided memory leaks during FFI interop (@alexmercerind).
- Introduce
NativeVideo
for 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
Video
rendering when explicitVideoDimensions
are passed (@alexmercerind). - Expose Player::SetHWND (@alexmercerind).
0.1.9 #
- Fix RTSP & HLS streams launching separate window instead of using
Video
widget (@alexmercerind). - Add
playlistLength
value to ensure the "skip next" and "skip previous" buttons do not render if there is only oneMedia
in aPlaylist
. (@GroovinChip) - Update
dart_vlc.podspec
to ensure the correct Pods path on macOS. NOTE: This is based on Flutter'sstable
channel. (@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
startTime
andstopTime
parameters toMedia
for clipping (@alexmercerind). - Add
Player.bufferingProgress
&Player.bufferingProgressStream
to listen to buffering percentage of the player (@alexmercerind). Video
widget 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
(OnOpen
event) 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
Media
inPlaylist
(apologies) (@alexmercerind). - Implemented media and playlist equality operators (@jnschulze).
- Added
Player.takeSnapshot
to 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
Player
no longer requiresvideoWidth
&videoHeight
to be passed for video playback (@alexmercerind). Video
widget now uses the dimensions of the currently playing video (@alexmercerind).- For overriding the automatic video dimensions retrieval,
videoDimensions
argument must be passed while instantiatingPlayer
class (@alexmercerind). Video
widget no longer asks forplayerId
argument, butplayer
instead (@jnszhulze).- Added
videoDimensionStream
andvideoDimension
attributes toPlayer
class to listen to currently playing video dimensions (@alexmercerind). - Migrated C++ code to use smart pointers instead of raw pointers (@alexmercerind).
Player.dispose
no longer causing crash on Windows (#103) (@alexmercerind).- Added Add fit and alignment properties to
Video
widget (@jnschulze).
0.1.3 #
- Fixed libVLC shared libraries not being copied on Windows (@jnschulze).
0.1.2 #
- Now using
flutter::TextureRegistrar
for performantVideo
on Windows (#54) (@alexmercerind). - Fixed
autoStart
inPlayer.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::parse
causing 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
Video
widgets 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.asset
for 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
Equalizer
class (@alexmercerind). - Support for Dart CLI. See package
dart_vlc_ffi
(@alexmercerind). - Added
commandlineArguments
toPlayer
constructor to pass VLC commandline arguments (@alexmercerind). - BREAKING CHANGES
- Now plugin requires initialization in the
main
method, 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
Video
widget (@alexmercerind). - Fixed compilation issues on arch linux (@alexmercerind).
- Fixes to device changing (@alexmercerind).
0.0.6 #
- Now
Player
class has sync constructor & no longer needsPlayer.create
(@alexmercerind). - Fixed memory leak errors on Windows & Linux (@alexmercerind).
- Added controls to
Video
widget (@tomassasovsky). - Added
Record
class for recording media (@DomingoMG). - Added
Chromecast
class (@DomingoMG). - Fixed
Player.setPlaylistMode
on Linux (@alexmercerind). - Event streams inside
Player
no longer can benull
(@alexmercerind).
0.0.5 #
Broadcast
class to broadcast aMedia
(@alexmercerind).- Fix to a bug that caused
CurrentState
to not update inPlayer
(@alexmercerind).
0.0.4 #
Video
Widget
for showing video output from aPlayer
insideWidget
tree.Player
must be used as a controller for aVideo
(@alexmercerind).- Initialize
Player
withvideoHeight
andvideoWidth
optional 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):
add
for appending a newMedia
to thePlaylist
of thePlayer
.remove
for removing aMedia
from thePlaylist
of thePlayer
from certain index.insert
method for insertingMedia
to certain index (@alexmercerind).move
aMedia
from one index to another.
- Ability to get all playback
Device
s on machine & change (@alexmercerind).Devices.all
givesList
of allDevice
s.Player.setDevice
can be used to set a playback device for thePlayer
instance (@alexmercerind).
- Now event streams are splitted into four: (@alexmercerind)
Player.currentStream
- Contains:
index
media
medias
isPlaylist
- Contains:
Player.positionStream
- Contains:
position
duration
- Contains:
Player.playbackStream
- Contains:
isPlaying
isSeekable
isCompleted
- Contains:
Player.generalStream
- Contains:
volume
rate
- Contains:
- Ability to retrieve metadata of a
Media
(either fromMedia.network
orMedia.file
) (@alexmercerind).- Now you can access metadata of a
Media
by passingparse: true
for parsing the metadata (@alexmercerind). - Retrieved metadata is stored inside
Media.metas
asMap<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
, whennext
orback
or on completion ofMedia
(@alexmercerind). - Changed default
Player
volume to0.5
(@alexmercerind).
0.0.1+1 #
- Little left-over changes in the project documentation (@alexmercerind).
0.0.1 #
Media
playback from file.Media
playback from network.Media
playback from assets.play
/pause
/playOrPause
/stop
.- Multiple
Player
instances. Playlist
.next
/back
/jump
for playlists.setVolume
.setRate
.seek
.- Events.
- Automatic fetching of headers, libs & shared libraries.
- Changing VLC version from CMake.
- Event streams.
Player.currentState
index
: Index of current media inPlaylist
.medias
: List of all openedMedia
s.media
: Currently playingMedia
.isPlaylist
: Whether a singleMedia
is loaded or aPlaylist
.
Player.positionState
position
: Position of currently playing media inDuration
.duration
: Position of currently playing media inDuration
.
Player.playbackState
isPlaying
.isSeekable
.isCompleted
.
Player.generalState
volume
: Volume of currentPlayer
instance.rate
: Rate of currentPlayer
instance.
- Initial release, worked & documented by @alexmercerind.