Keyword - Android

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!

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!

8 August 2016

Last week in VideoLAN - 52

52nd VideoLAN report

Another summer week passes by and here is a new weekly report about the VLC and VideoLAN communities!

Features

VLC

The week started with numerous additions to the Direct3D video accelerations and video outputs, to continue the support for 10bits decoding and HDR.

Related to those improvements, we added support for hardware decoding of HEVC decoding inside the TS format, by improving our HEVC packetizer.

We fixed (actually added) the support of QuickTime Videos inside MKV, aka MP4-inside-MKV; and also the support for QuickTime Audio inside MKV.

We improved again the ChromeCast support, by fixing small issues, notably when reloading and stopping the stream.

In the core, an important deadlock was killed, that was affecting Windows and Android platforms.

Finally, we also did a fix for hidden chapters in MKV, and improved the MIDI integration for Windows, and reworked a bit our contrib system.

Android

On Android, we finally fixed the support for old x86 Phones like the ZenPhone that claimed to be ARM phones. Those phones lie about their CPU with CPU_ABI, CPU_ABI AND they expose a fake /proc/cpuinfo to the applications! Thanks to a contact at ASUS, we got a phone and coded a work-around.

We also added support for saving audio-delay when using your Bluetooth headphones, so that you have a different audio-delay when using those headphones than without headphones.

Finally, we fixed a few crashes and regressions that were reported against the last release.

WinRT

On UWP, the biggest focus was on cleaning the code and on the Xbox 1 interface.

More to come soon, I hope!

libbluray

We've had a lot of small fixes for libbluray, mostly on fixing issues and crashes reported by static analyzers, but also build issues, Windows issues, and crashes reported by the users.

That's all for this summer week! See you next!

3 August 2016

Last week in VideoLAN - 51

51st VideoLAN report

So, after a few crazy weeks, I'm coming back to a more regular schedule for my weekly reports about VLC and VideoLAN.

Features

VLC

Decoder fallback

The major change, during last week, was the possibility to restart the audio decoders when the audio device changes.
This is very useful when you switch from normal decoders to SPDIF/HDMI pass-through for DTS, Dolby and related codecs.

In the past, VLC could only restart the filters, not the decoders, so our Dolby and DTS decoders were actually filters. This was finally changed and now decoders are decoders.

For those who don't understand what all this means, it means that it will help us support more formats for pass-through over HDMI, like DolbyDigital+ or DTS-HD.

Modules

We've fixed the green line that appears only on AMD GPUs on Windows. This is scheduled for the next Windows update.

I've implemented the support for browsing FTP remote directories, so that it behaves similarly to SFTP or SMB.

On Windows, we've added the support for hardware decoding of 10bits HEVC , using DxVA and D3D11.

We also pushed improvements to the prefetcher module and to our TTML support; and we've fixed issues for DVD menus, SAT>IP protocol and HLS protocol.

Finally, please note that the license of the UPnP module was switched from GPL to LGPL.

Android

On Android, we've fixed a few issues related to old devices, and we've improved the libVLC Java bindings to support statistics.

WinRT

Last week on WinRT, we've removed all the code that was focusing on older versions of Windows.

The codebase now support only Windows 10 Universal with its Anniversary Edition version.

That's all for this week!

Thanks for the support and see you soon!

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!

- page 1 of 12