Today’s VLCKit 3.0 update from the developer of the popular VLC Media Player brings a number of enhancements to the framework for apps on iOS, tvOS, and macOS. This is the first major update for the framework in over three years.
The update adds new APIs to allow for full support of H.264 and H.265 (HEVC) file formats, and also decrease the memory management for 4K videos on iPhones from 100% CPU usage to less than 20%. It also improves on 3D video, with better touch controls, and allows better access to videos on your network. On tvOS, the framework will finally have its own APIs with TVVLCKit to allow developers to better hook into the underlying libraries on the platform.
For VLCKit, we improved performance and memory management, added new APIs and you get all improvements from the underlying libvlc including full support for decoding H264 and H265 using VideoToolbox in hardware. Instead of using all cores of your iPhones CPU at 100%, decoding a 4K video uses less than 20%.
Further you can look at all aspects of a 3D video with touch gesture based controls, discover and browse shares on your network with UPnP, NFS, FTP, SFTP and SMB and more.
The full changelog can be found below:
New APIs: - VLCAudio - setMuted: - VLCDialogProvider - new class to handle user interaction with VLC events - VLCLibrary - added properties: debugLogging, debugLoggingLevel - VLCMediaDiscoverer - added selector: availableMediaDiscovererForCategoryType: - added enum: VLCMediaDiscovererCategoryType - VLCMediaListPlayer - added selectors: initWithDrawable: initWithOptions:andDrawable: playItemAtNumber: - VLCMediaPlayer - added properties: titleDescriptions indexOfLongestTitle numberOfTitles snapshots lastSnapshot - added selectors: chaptersForTitleIndex: numberOfChaptersForTitle: addPlaybackSlave:type:enforce: updateViewpoint:pitch:roll:fov:absolute: - added notifications: VLCMediaPlayerTitleChanged, VLCMediaPlayerChapterChanged - added enum: VLCMediaPlaybackSlaveType Note: - play's return type was changed from BOOL to void - hue is now a float instead of an integer WARNING: - Return value of the following methods changed from INT_MAX to -1 (int)currentVideoTrackIndex (int)currentVideoSubTitleIndex (int)currentChapterIndex (int)currentTitleIndex (int)currentAudioTrackIndex - VLCMedia - added keys: VLCMetaInformationTrackTotal, VLCMetaInformationDirector, VLCMetaInformationSeason, VLCMetaInformationEpisode, VLCMetaInformationShowName, VLCMetaInformationActors, VLCMetaInformationAlbumArtist, VLCMetaInformationDiscNumber, VLCMediaTracksInformationVideoOrientation, VLCMediaTracksInformationVideoProjection - added selectors: codecNameForFourCC:trackType: mediaType parseWithOptions: parseWithOptions:Timeout: parsedStatus storeCookie:forHost:path: clearStoredCookies - added enums: VLCMediaType, VLCMediaParsingOptions, VLCMediaParsedStatus, VLCMediaOrientation, VLCMediaProjection - changed behavior: media will no longer be parsed automatically if meta data is requested prior to concluded parsing - VLCMediaList - changed behavior: lists of media objects added through arrays or on init are no longer added in reverse order - VLCTime - added selectors: isEqual: hash - VLCAudio - added property: passthrough Modified APIs: - VLCMediaList - To match the KVC bindings, all NSInteger arguments were moved to NSUInteger as appropriate - mediaList:mediaAdded:atIndex: - mediaList:mediaRemovedAtIndex: - addMedia: - insertMedia:atIndex: - removeMediaAtIndex: - mediaAtIndex: Deprecated APIs: - VLCAudio - setMute: - VLCMedia - parse, isParsed, synchronousParse - VLCMediaDiscoverer - availableMediaDiscoverer, localizedName - VLCMediaPlayer - titles, chaptersForTitleIndex:, countOfTitles, framesPerSecond, openVideoSubTitlesFromFile: - VLCMediaListPlayer - playItemAtIndex - VLCStreamSession - VLCStreamOutput - VLCMediaLibrary Removed APIs: - VLCExtension - VLCExtensionsManager - VLCMedia: - fps - media:metaValueChangedFrom:forKey: - VLCMediaPlayer - audioTracks - videoTracks - videoSubTitles - VLCServicesDiscoverer - VLCPlaylistDataSource