Keyword - Windows Phone

Entries feed - Comments feed

14 February 2016

These weeks in VideoLAN - 35

35th VideoLAN report

After the celebration of the 15th anniversary of VLC and the release of VLC 2.2.2, here are we back to normal weeks and here is a new report, on time.

Once again, this post is a double-week report about the VLC and VideoLAN communities; and they were very very busy.

Features and changes

VLC

Core, input

The first thing that happened after FOSDEM, was that the HTTP support for gzip and deflate was removed and split into a new module named inflate.

The biggest improvement of the past two weeks was the new API for dialogs that replaced the old one; it should be more consistent, easier to use, and is finally exposed through libVLC!
All calling applications can now manage the dialogs without the old hacks that existed.

We have now libvlc_dialog_get_context, libvlc_dialog_set_context, libvlc_dialog_set_callbacks functions to setup, and the functions libvlc_dialog_dismiss, libvlc_dialog_post_action, libvlc_dialog_post_login to do the interactions.

Network Discovery

A new module to discover mDNS/ZeroConf/Avahi/Bonjour services was merged.
It is based on libmicrodns, works on all platforms and discovers NFS, SFTP, FTP and SMB shares.

Finally, libvlc_media_discoverer_list_get was added to libVLC to have a list of services discoveries supported in this instance.

Codecs, Demuxer and filters

Vikram shared with us a large patch to support zero-copy between GStreamer decoder and the normal video output modules, when we're using GStreamer decoders inside VLC.

Tristan added new VP8 and VP9 encoders based on libvpx.

François split the big TS demuxer in multiple files and improved a lot the support for metadata and EPG. Support for PSIP and ETT tables were added too.

Finally, we've also mapped the Vidvox Hap codec and Resolume DXV codec to our libavcodec module.

We've merged a new video filter for edge detection, as you can see here: Edge Detection

Mac OS X / iOS

The Mac OS interface, got itself a complete status bar menu, to control VLC without bringing it to the front.

In addition the OS X and iOS port, got their support for a wallet keystore module, with values that can be shared through iCloud.

The old dialogs support for OS X and iOS was removed.

A large number of Mac OS X dialogs were moved to AutoLayout, so that we can support RTL in a simpler and more correct way.

A module named bonjour was added to provide the same features as the libmicrodns module.

Miscellaneous

We also got improvements for Vimeo and Youtube support, large changes in the UPnP module, fixes on Freetype and Ogg seeking, and vmem.

We've merged quite a few patches to improve our Windows Phone and WinRT compatibility.

Android

Networking

On Android, we've finally activated SMB, mDNS and UPnP, and we've added support for NFS shares.

Once the keystore module is merged, the Android version of VLC, should support most of the common network shares.

We've added the notion of favorite network shares too.

Extensions

The extensions can now have a refresh callback and can set their icons through a custom URI.

The extensions can also easily warn if VLC is not installed.

libVLC interaction

We've added the support for the LUA extensions and the new Dialog APIs mentioned earlier in this post.

We've also improved the support for the different libc we have on different versions of Android.

TV

We've improved the support of TV running Android without being officially Android TV.

We've refactor the network discovery and added the network browsing on the TV interface.

We've done large code cleaning on the TV specific classes, and fixed numerous bugs in the main views and the remote controls.

Phone

Finally, we've added an option to disable the album art on the lockscreen, for privacy reasons!

WinRT

The WinRT port was quite busy preparing the Windows 10 port, also known as UWP.

These weeks, a lot of the design was reworked, notably in the Artist and Album sections, to better fit the new Windows 10 look.

The pivot and the sidebar were also improved for colors and behaviors. Settings and a few other pages were also fixed to support Windows 10 Mobile buttons.

The application is now working as WP8.1, Win8.1 and UWP flavours, depending on how you compile the application.

libbluray & libaacs

libaacs received the new aacs_decrypt_bus() needed for BD+ when the bus is encrypted.

libbluray was fixed to detect if the DRM implementation (AACS or MMBD) is actually working, and fallbacks in the other cases.

And both libraries got a few other minor fixes, mostly crashes related.

That's all for this week! Have fun!

19 January 2016

This week in VideoLAN - 33

33rd VideoLAN report

This is my second report in 2016 about what happened last week in the VLC and VideoLAN communities.

VLC on AppleTV

Of course, the big news of the week was the release of VLC for the AppleTV.

Apple TV is the latest platform to which we added VLC support, to continue the VLC everywhere route, after VLC on ChromeOS, VLC for Android TV and VLC for Windows Phone that we added last year.

You can read more about it on Felix's blog and on our website.

We hope you will enjoy VLC on this new platform.

Features and changes

VLC

Monday started with the addition of a NFS protocol implementation to VLC. This will allow us to access and browse files and directories on NFS shares, on all our ports, including Windows, Android and iOS, where this protocol is not natively included.

We then got multiple fixes on the new Keystore API and the corresponding implementations, notably in the SMB and SFTP modules.

The AVI demuxer module was fixed to help reducing the number of connections for distant streams on interleaved files. This should reduce the load on the servers, when playing those files.

Multiple fixes and improvements were pushed on the TLS code, continuing the work from the previous week. Notably, to use I/O vectors for sending and receiving messages.
Then, the TLS code was abstracted to allow TLS sessions not directly above TCP, like in the TLS over TLS case. This big refactoring was necessary to add the support of HTTPS through HTTPS proxies.

Finally, we received numerous fixes for crashes, memory leaks and small issues.

Android

On Android this week, we had quite a few changes too.

We now have a manual way add network servers, like FTP, SFTP, SMB, NFS or FTPS.

On the Android TV, we've improved the settings, reworked heavily the playlist and the advanced options navigation, and refactored completely the video listing, to allow alphabetical sorting and browsing.

Finally, we changed the seek buttons to 10 seconds, instead of 30; we now show bitrate information in media information dialog for audio files and we improved the playlist items' look and navigation.

Try a nightly build to test all those features!

iOS / Apple TV

So, as said in the introduction, VLC for Apple TV was introduced this week, in its version 1.0.0.

Based on the iOS version, it's finally a bit different, to accommodate the specialties of this platform. Especially the casting we introduced is not seen in any other port of VLC.

You should read more about it on Felix's blog.

At the same time, we released VLC for iOS 2.7.2, fixing minor reported bugs.

That's mostly it for this busy week, see you next!

1 September 2015

This week in VideoLAN - 16

16th week of VideoLAN reports

This weekly report of what's happening in the VideoLAN community and VLC development is a bit late, because I'm in India, a bit far from a stable Internet connection :)
However, here it is.

You'll see that this week has been busy on VLC's core and the WinRT port.

Features and changes

VLC

On Monday, Rémi rewrote the core part dealing with temporary files, introduced vlc_memfd() and rewrote the timeshifting code related to those files.

François worked on the background rendering of closed captions and subtitles, and improved the default style of subtitles.

Tuesday, the part of core dealing with caching was splitted from the core and moved into 2 modules: cache_read and cache_block. The core updated accordingly and should allow to have different and new caching strategies.
And indeed, Friday, we received a new stream filter module named prefetch.

Wednesday got us support for iOS hardware deinterlacing, at the Video Toolbox decoder level.
Controlling this is done as an option, which means it might not yet work with the libVLC calls.

We also got fixes in our HLS and DASH support to handle correctly absolute paths and also to simplify the manifests/playlists reloading.

The core was also fixed for a long standing bug on URL parsing with parameters.

Friday, we've added a new module, only for developers, named accesstweaks to simulate access failures and limitations (like limited seeking and slow access) to properly code demuxers.

And to finish, we also got bluray improvements, iOS vout cleaning; but also fixes for memory leaks, for Direct3D11 crashes and for MediaCodec transitions.

WinRT

The WinRT port was quite active this week, with around 70 commits.

The week started with the cleaning of the Direct3D initializations, the DXGI calls and the libraries linked in.

We then fixed some issues about file management, deadlocks when creating the library and thumbnails.

We also removed a memory copy in the access plugin, for all files; that could improve quite a bit the performance and improve the seeking.

On the interface side, the support for chapters was added, to allow change while playing.
Also on the player, the look of the slider was updated to allow more precise seeking, and the volume slider to match the look of the rest of VLC.

Also, the light theme is back. :D

The colors and the symbols for all the actions were updated to be more consistent around the UI. The animations of the transitions were updated and made faster; and the file browser interface was improved, and adapted for Windows Phone.

Android

This week work on VLC for Android was pretty boring, with only 2 fixes for older versions of Android (2.x), updates of translations and the export of libVLC.setUserAgent() in libVLCjni.

The rest of the work was done, in the VLC core, to improve greatly the VLC for Android performance, by using hardware acceleration in a better way.
This code is still on-going and is not merged yet, so it's not visible yet.

iOS

And unfortunately, iOS is not much better than Android, since just a minor change on Dropbox login was merged.

Once again, the reason is because of the work on the core, on Video Toolbox and on deinterlacing.

That's all for this week! Have fun!

By the way, don't forget to register now for VDD, this September, in Paris.

24 August 2015

This week in VideoLAN - 15

15th week of VideoLAN reports

Yet another week, and yet another weekly report of what's happening in the VideoLAN community and VLC development teams!

We're going back to one report per week, as holidays are over.
But, to be honest, this week has not been the busiest, I guess mostly because of holidays.

Features and changes

VLC

Yet another week started with MediaCodec fixes, which prevented all MediaCodec decoding on most Samsung devices! Ooops :)

François fixed numerous issues with Closed Captions, in the decoder and the text renderer.
This also fixed some background alignment issues that we've had for years...

Felix merged his 0-copy code for the hardware decoding for iOS. This should get very good performances on iOS.

We had a couple of important fixes for the pulseaudio module, that were backported to 2.2.2; and we're now generating Diffie-Hellman parameters dynamically, instead of hardcoding them.

Finally, we had a MKV subtitles regression, an H.264 extradata parsing issue and a large number of memory leaks, that are now past history.

Android

The Android project was moved to the latest version of the Android SDK, and to the last version of AppCompat and we had a few compatibility issues to fix.

We also updated our buildsystem to gradle 2.6, and updated the build-tools and gradle plugins accordingly.

We eventually fixed the loading for playlists and added an option to not rescan the database, if necessary.

In the end, we released VLC for Android 1.5.2 to the store, as a beta version.

iOS

As mentioned above, the most important part for iOS this week is the addition of 0-copy hardware decoding.

We also saw a small bug fixed that could make some files invisible from the media library.

That's not much, but the complete hardware decoding is big enough to explain this :)

WinRT

WinRT was way more interesting, with a couple of releases.

After the 1.5.0 version for Windows, we published a version named 1.6.0, and then one 1.6.1, fixing numerous issues, notably:

  • fixing subtitles display for SRT and SSA, and external subtitles loading,
  • more stable hardware decoding,
  • reworking the main interface, the mini player, and the file explorer,
  • fixing hundreds of bugs found by testers,
  • and fixing a weird crash on Windows RT, coming from the Windows Runtime.

We also published a beta for Windows Phone, named 1.6.0, introducing hardware decoding (disabled by default), and all the updates from the Windows world.

The code between Windows Phone and Windows is now more than 90% the same code.

Expect 1.6.2 and 1.7.0 quite soon.

x264

The x264 project also received almost 20 commits, this week; mostly to fix build issues with Visual Studio, inclusion in C++ projects, and a few other minor bugs.

9 June 2015

This week in VideoLAN - 5

Another week in VideoLAN world

Continuing what I did the last few weeks, here is a new post summing up what happened, this past week, in the VideoLAN community and VLC development teams.

For some technical reasons, this post was delayed a bit. I hope it won't happen again. It still covers only what happened from Monday to Sunday, last week.

Features and changes

VLC and libVLC

A good Monday starts with Android MediaCodec bugfixes: this time, they were mostly done in order to fix issues with the Nexus 10 tablet.

The input core was modified by Rémi, to add vlc_write() and vlc_writev() helpers, to finish the work on SIGPIPE (see previous weeks).

Then, a lot of code was removed to avoid call to the infamous vlc_object_alive() call, in the core and some input access modules. The cleaning led to the removal of input_thread_t.b_eof and input_thread_t.b_error and the deprecation of input_thread_t.b_dead.
If you don't understand what this means (that'd be normal :) ), it's a great cleaning of an unsafe function in VLC.

Julian finally got all his rPI and rPI2 patches (27 of them) for MMAL hardware decoders and video filters merged. Decoding on the rPI with VLC 3.0.0 should be faster and more stable now.

We also fixed a build issues on OS/2 and a potential buffer overflow in the RealRTSP plugin.

The end of the week got VLC the DxVA2 + Direct3D9 0-copy video acceleration for Windows. This is what we already support on Android and Linux with VDPAU, to avoid copies between the CPU and the GPU: decoding and video output happen on the GPU. This reduces quite a bit the CPU usage when using hardware acceleration.

And at the same time, we got a D3D11 decoder and 0-copy video acceleration. This will be useful for Windows 8.1 and should be on Windows Phone 8.1 too, to finally get the full acceleration of the Lumia devices!

Android

The refactoring started last week on libVLC was continued, notably on the Media and MediaList classes and items.

We also started the integration of the Design Support Library to help VLC become more Material.
The real question here is why did they not release this library when they released Material Design last year???

Therefore, we've started using the provided SnackBar and FloatingActionButton classes from this library. And we got the best commit log ever:

Replace some Toasts by Snackbars

And finally, we fixed a lot of small issues due to our big refactoring. Hopefully, we're getting closer to a release.

iOS

The iOS development is accelerating quite a bit, lately. We've pushed 2 betas of VLC 2.6.0 last week.

More than 20 bugs have been fixed on this release, especially on the mini-player, the playlist and the video output. Release incoming :)

WinRT

Most of the work on the WinRT port was done in the underlying library, to support hardware decoding. Everything is not yet plugged in, yet, though.

We also did adaptations for Windows 10, for TV shows support and numerous small issues reported on our bugtracker.

The next version will be able to get all this together :)

libdvbpsi 1.3.0

libdvbpsi 1.3.0 was released this week, adding a few descriptors:

  • 0x10 Smoothing Buffer
  • 0x11 STD descriptor
  • 0x12 IBP descriptor
  • 0x1b MPEG-4 video descriptor
  • 0x1c MPEG-4 audio descriptor

And fixing bugs in some tables and descriptors.

Conferences

Last week, I went to web2day and SSTIC to speak about VLC.

The web2day conference was a classic VLC/VideoLAN presentation, focused on mobile applications.

The SSTIC talk was focused on DRM integration in VLC, libdvdcss, libbluray, and legal topics with HADOPI. It's quite more technical than the usual talks I give, and it was in French. But you should really watch the video of the talk.

That's all for this week!

18 May 2015

This week in VideoLAN - 2

This week in ...

Continuing what I started last week, here is a second post summing up what happened, this past week, in the VideoLAN community and VLC development teams.

Features and changes

VLC

Monday started with fixes for UPnP on VLC, especially on Windows, due to a bug that is inside libupnp, only on Windows. It should fix most of the infamous issues, of VLC and UPnP/DLNA.

The work on adaptive streaming and DASH done by François was continued. Notably, it should add support for TLS (HTTPS), improve the debug messages, split more the code, support subsegments in segmentBase and improve seeking to subsegments.

Some important networking code was changed and simplified, and a core API was added to help TLS connections: vlc_tls_Read, vlc_tls_Write and vlc_tls_GetLine.

In the Mac OS X interface, the about dialog, the add-ons manager dialog and the error panel were heavily reworked.

The core now uses MSG_NOSIGNAL in network calls to avoid SIGPIPE firing that could happen when using libVLC.

The poll() reimplementation for Windows was rewritten, and large changes in the threads implementation were merged, notably in the vlc_cond_broadcast and vlc_cond_signal functions.

Quite a bit of cleaning got into the Freetype module, configure and the buildsystem.

Android

As often, we tried to fix some of the issues we had with Mediacodec on some devices, and we fixed some issues on PPS/SPS changes.

On the interface side, the work on browsing was continued, this week, adding a new Material button, splitting correctly the preferences part, and adding an arrow to browse back.

Also, some useless animations on activity changes were removed, crashes and memory leaks were tracked and fixed.

Finally the version 1.4.0 of VLC for Android was released and pushed out to the beta channel! We're waiting for issues, before pushing it to everyone.

iOS

This week, a lot of work was merged, around 190 patches.

VLC for iOS now supports the Apple Watch! You can control your playback directly from the watch.

The media library and playlists were reworked to allow a mini-player like the Android and WinRT versions of VLC.

Numerous changes were merged to fix a lot of bugs reported in 2.5.0.

The OpenGLES2 video output also had a fix for a bug when the View and Superview had different sizes.

Finally, the version 2.6.0 beta of VLC for iOS was released and pushed to the beta channel!

New releases of VLCKit and MediaLibraryKit have been done too, to support those changes.

WinRT

This week got us the release of the version 1.4.0 of the WinRT port of VLC. It should bring subtitles and DLNA back to the x86 version. It should also add better local metadata support.

The release was made possible thanks to fixes in the internal way we open files.

The work is still in progress, and we'll probably do a new release, next week, that will work on ARM too, and on Windows Phone.

libbluray

We prepared a release of libbluray, named 0.8.1, to fix an important crash in bd_open().

It should also fix some non-checked allocation failures.

Web plugins

The web plugins compilation on OS X was fixed, by moving the platform target to X.6.

libvlcpp

The C++ bindings got support for 2 new added APIs this week: one for Equalizer and one for the imem/libvlc_media_new_callbacks; and an example application was added for this API.

Some improvements on the C++/CX Media constructor were also added.

See you, next week!

Of course, I have probably forgotten some minor things, but that should be most of it!

Have fun, and see you next week!