Keyword - iOS

Entries feed - Comments feed

29 October 2019

dav1d 0.5.1: more speed!

A few reminders about dav1d

If you follow this blog, you should know everything about dav1d.

The VideoLAN, VLC and FFmpeg communities have been working on a new AV1 decoder, dav1d, to be the best and fastest decoder.

0.5.1

2 weeks ago, we released dav1d 0.5.0.

With 0.5.0, we showed that we were between 3x and 5x faster than aomdec on desktop CPUs, including 32bit CPUs, and between 2.5x and 3x faster on Android and iOS 64bit phones.

We even showed we were a lot faster than the new gav1 decoder on Android 64bit.

However, there were 2 cases where dav1d was not the best:

  • desktop without SSSE3 capabilities, aka very old CPUs, in single-thread,
  • Android phones in 32bits, in single-thread.

0.5.1 is a small release focused on those cases.

0.5.1 gets up to 50% speed improvements on SSE2 CPUs, which should make dav1d faster than aomdec in all desktop cases, from C to AVX-2.

At the same time, 0.5.1 gets up to 41% speed improvements on ARMv7 CPUs, which makes dav1d at least as fast as gav1.

Of course, in multi-thread, we were already faster :)

So, yes, dav1d is now faster than all the other decoders in all cases.

19 September 2019

VLC for iOS 3.2: a new hope

A new release: 3.2!

VLC for iOS is our port of VLC on the iDevices and has been around for quite some time, and is quite popular.

However, lately, the application development had a bit slowed-down and the interface was outdated. So, we decided to do a massive refresh on the code and on the interface.

Here comes VLC for iOS 3.2!

Interface

This release gives the first part of the interface refresh, focusing notably on the audio and video collection views.

iOS video collection

The audio view features a full audio media library, similar to the Android version of VLC, sorting by Artists, Albums, Genres and so on.

iOS audio collection

As you can see, this is more fitting for modern version of iOS. In addition, you can see that the main menu has moved to a bottom tabbar, instead of the side menu.

The playlists have their own entry on the tab, with network (NAS, URLs, Cloud) and settings.

Dark/Light

Whether you prefer the dark or the light path of the force, we added both modes to VLC:

iOS video collection in dark mode

iOS video collection in dark mode

After?

There are still a lot of changes to be done in the interface, notably for the network section and the video player.
But we couldn't wait to have everything fixed in a single version. Therefore, those views will be refreshed in the version 3.3.

Also, missing features will be added, depending on the user reports.

Under the hood

We focus on the interface, but in this release, a lot of the work was not visible, and was done to improve the code and simplify the future evolutions of the application.

First, as the name indicates, this release is based on libVLC 3, like the current desktop version.
It is not based yet on VLC 4.0, the development version of VLC, as VLC 4.0 is not ready yet.

However, a very large number of bugs have been fixed specifically for the iOS port of VLC, in the VLC 3.0 branch

Swift

The biggest change in the codebase is the move to Swift for all the new code added to the project, in addition to some migration from Obj-C to Swift for some internal classes.

You should look at the changes on the gitlab project.

MediaLibrary

The media management for this version of VLC has moved to the medialibrary project, written in C++, common to Android and iOS, and soon the desktop version of VLC.
This new library replaces the medialibrarykit project.

As it is written in C++, a wrapper for the medialibrary was created, in Obj-C, to be able to use it in our application.

Test it

Because of the large amount of changes, there are probably numerous bugs in this release, so please test and report, so we can fix it quickly!

19 July 2018

VLC for iOS and UWP 3.1.0 release

VLC 3.1.0 release

After a few months since the release of VLC 3.0, today we release VLC 3.1.0 on 2 mobile OSes: iOS and Windows Store (UWP).

This release brings ChromeCast integration to iOS and UWP, like it was present on desktop and Android versions.

ChromeCast and hardware encoding

However, it supports ChromeCast in a more performant way, because we added hardware encoders to those 2 platforms.
Indeed, here, for local streaming, we care more about speed and battery saving than we care about bandwidth efficiency, si hardware encoding is a good fit.

On iOS, we're using the standard VideoToolbox hardware encoding to produce H.264 streams, muxed in MKV.

On UWP, we're using Quick Sync Video for intel CPUs (that covers almost all CPUs since 3rd core generation).

In fact, VLC has a QSV encoder since 2013, but it's very rarely used, because people usually prefer software encode (x264). Here, we fixed it and modified it to work inside the UWP sandbox.

iOS

You should really read Caro's blogpost here!

But in that version you have:

  • ChromeCast,
  • 360 video support, with sensors,
  • Numerous bugfixes on the playback core (inherited mostly from VLC 3.0.1-3.0.3)
  • Some decoding speed improvements,
  • Quite a few interface bugs (see 3.1.0 milestone)

UWP

The version is similar to the iOS version, in the fact that it has hardware encoding and ChromeCast integration.

As explained, the hardware encoding is done using QSV.

But it features also a large rework of the codebase and fixes a very large number of crashes.

Also, funnily enough, we've worked on the 8.1 version too, and we will push that one soon on the store. This includes SurfaceRT devices, even if Microsoft has forgotten them!

So VLC 3.1.0, UWP version will be out for:

  • Windows 10 Desktop (x86)
  • XBox One
  • Windows 10 Mobile (ARM)
  • Windows 8.1 Desktop (x86)
  • Windows 8.1 RT (ARM)

Once we fixed an issue, we might even do Windows Phone 8.1.

The Windows 10 versions are on the store today, and we're waiting for a deployment issue to be fixed to push the 8.1 versions!

(Note: if you are from Windows Central, you can contact me for more details)

Have fun!

25 August 2016

Last weeks in VideoLAN - 53

53rd VideoLAN report

During the core of the hot European summer, here is a weekly report about the last 2 weeks in the VLC and VideoLAN communities!

It was a bit calm, to be honest; and I'm a bit late to publish. Summer is the cause :)

Features

VLC

The week started by a lot of code cleanup and renaming for the Mac OS interface. We also had improvements focus on the Sierra release.

On the decoding side, we've had some improvement for hardware decoding in Direct3D11, focused on HEVC decoding.

We also had fixes for the OSX VideoToolbox decoder, notably to be able to restart the decoder when required.

A module supporting the AV1 from the Alliance for Open Media was merged too. So far, it's only a decoder, and disabled by default.

On the streaming side, the MP4 muxer timestamps were fixed. It was also backported to the 2.2.x branch.

We now have ARM64 assembly for our deinterlacer, which will be very useful for iOS, Apple TV and Android TV.

Finally, we had fixes for RTSP passwords saving in the keystore, improvements for RTSP support and the H264 packetizer, and we added support for UTF8 filenames in FTP directory listings, and support for DiscNumber and DiscTotal metadata in MP4, and DNxHR!

Android

On Android, we've mostly fixed crashes, updated translations and pushed 2.0.6 in production, on the play store.

The work is mostly done now on the new media library code, that will be merged later.

WinRT

On UWP, the focus has been on the XBox 1, and mostly on how we can upload files on the box, since we don't have access to the filesystem.

The current solution is using an HTTP webserver to upload the files from your browser, and support for USB disks.

That's all for those weeks, see you next!

28 July 2016

Last weeks in VideoLAN - 50

50th VideoLAN report

So, after a few crazy weeks, I was taken a bit by RealLifeĀ©Ā®, and we've had 3 weeks without report. And this one is late. :)

Therefore, here is a new report about the VLC and VideoLAN communities, covering the last 3 weeks!

The report will be a bit more summarized that usual, and more dense in information, for obvious reasons. :)

Features

VLC

We've added support for codecs with colors in 12bit-depth, in YUV 4:2:0, 4:2:2 and 4:4:4. Of course, nothing can display that yet, but it can happen in some HEVC samples. It will be dithered down before displaying.

The Windows users will be happy, because we're reintroducing the MIDI support, using a new library called FluidLite, in order to replace FluidSynth.

A new protocol to control and distribute satellite signals on a LAN called SAT>IP was implemented in a new access module.

There was a lot of work and rework on our adaptive support, notably to change timings and drain, but also to start supporting HLS using mp4 fragments.

Some work on URL and URI was done to support more cases and improve test coverage. 2 new functions called vlc_uri_resolve() and vlc_uri_compose() were introduced.
At the same time, modifications on the HTTP redirections were merged.

On Windows, we merged the VP9 hardware decoding, using the DxVA APIs.
This code requires very recent video cards to be usable.

Finally, an important work was done to merge the access and stream-filter behavior and semantics. The 2 type of modules still exist, but a large part of the code is now common.
This allows now block-based stream filters.

To achieve this, we now have introduced the vlc_stream_Eof(), vlc_stream_ReadBlock() and vlc_stream_ReadPartial() functions.

Finally, we added support for MP4 chapters in Unicode, and we fixed some Qt sizing issues with Qt5, a DLL loading potential security issue for Win32, MP4 subtitles size, a WMV integer overflow, a crash in smem, the Qt right-click menu on the playlist, SFTP browsing, and the audio fingerprinter. We also improved the HTTP/2 stack, our TS demuxer when dealing with scrambled content, and a few other minor things I forgot.

Android

On Android, we've pushed 2.0.3, 2.0.4 and 2.0.5 to fix the most important issues and regressions reported.

However, we also added a few features notably:

  • Support for HTTP proxies,
  • Support for HTTPS self-signed certificates,
  • Subtitles style modification in preferences,
  • Improvements for SMB browsing,
  • Support for more ARMv8 devices.

And we also added, in the main branch, some modifications about preferences, and adding new ones.

iOS

The iOS buildsystem was modified to support full cocoapod building, so you can compile just the application, without compiling VLC and libVLC.

This important change introduced quite a bit of cleaning of the code and of the project. :D

WinRT

On WinRT, we've prepared a MediaCenter Mode for the Xbox 1.

We fixed numerous interface issues and crashes, that were reported in 2.0.1.

A few fixes where pushed also to address issues happening with specific themes or specific resolutions in responsive mode.

That's all for those weeks! There is probably a bit more I forgot about, but you should have the important parts.

See you soon!

5 July 2016

Last weeks in VideoLAN - 49

49th VideoLAN report

So, after two busy weeks, you can get a new weekly report about the VLC and VideoLAN communities!

Releases

Android

10 days ago, we released VLC for Android 2.0.

After a long period of development, we're finally at a release that supports more features than the old 0.9.x versions and the 1.7.x versions.

Video List

UWP

And last week, we released the new VLC for Windows 10, numbered 2.0 too.

It is a continuation of the work we did for WinRT, the kickstarter, focused on Windows 8.1, Windows Phone 8.1 and Windows RT.

The new application should supersede the old one.

Black.png

Features

VLC

In the last 2 weeks, we improved the ChromeCast support, notably to work on transmitting the pause status and the title between the device and VLC, and we also changed the interface to scan for devices, since it was a bit confusing.

We added support for some uncompressed video format inside MKV, for the AlbumArtist meta-tag inside mp4 and we now support more MicroDVD subtitles styles.

Our new Kwallet module was transitioned from using libKwallet to DBus. This will be better to support both Qt4 and Qt5 applications with libVLC, because those versions are not ABI compatible.

The core gained a new stream FIFO API, with functions like vlc_stream_fifo_New, vlc_stream_fifo_Queue, vlc_stream_fifo_Write and vlc_stream_fifo_Close.
This change, in addition to the new chained_demux implementation in the core, removes the need for stream_Demux (now removed).

We also improved the security when loading of DLLs on Windows.

And for Android, AudioTrack DTS pass-through was implemented.

Finally, numerous fixes were pushed, notably for Direct3D11, our contribs, some in the core, youtube playback regressions, the Mac OS interface, crashes for MMDevice device, and for the MediaCodec decoders. And more that I forget...

Android

As I said, we released 2.0, and we also pushed 2.0.1 and 2.0.2 to fix the most important crashes reported.

WinRT

Same, we released 2.0, the first beta version of the UWP application. Fixup releases are coming soon!

iOS

On iOS, we pushed the promised update and we had a few refactoring, notably on the network login view.

libbluray

The libbluray code was modified to support 8.3 filenames, like in AVCHD directories we see in camcorders. This is the first step for full AVCHD support in VLC :)

That's all for those weeks! Not too bad :)

See you soon!

- page 1 of 9