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

Check out 9to5Mac on YouTube for more Apple news:

About the Author