Keyword - OS X

Entries feed - Comments feed

8 June 2016

This week in VideoLAN - 46

46th VideoLAN report

A new week, a new weekly report about the VLC and VideoLAN communities!

Vienna Meeting

This week-end was the Q2 meeting of the VideoLAN asso, hosted in Vienna, by PSPDFKit.

VideoLAN in Vienna

We gathered to fix pending issues for VLC 3.0, and we worked on the mobile apps and the VideoLAN server infrastructure. It was a great week-end!

Features

VLC

During the week-end, we released VLC 2.2.4, to fix 2 security issues, one in VLC, one in a 3rd party library! It is already released and pushed to our users.

Core and libVLC

The input core was modified to support network slaves, aka external subtitles or audio tracks, over the network. In the past, it was only working for local subtitles.
The libVLC API added for this is called libvlc_media_player_add_slave.

The core threading code was improved for recent versions of Windows: it can use futeces and generic semaphore, starting from Windows 8.

We also added the libvlc_media_player_(get|set)_role calls for libVLC, to set the media role (notification, video, audio) that are reflected to the audio output mixer. This is notably used for the PulseAudio output.

Finally, the preparser was reworked to allow interruption and have a default timeout. Applications can also now cancel their preparsing requests with libvlc_MetadataCancel.

Modules

The Qt interface received the first renderers selection dialog. You should be able to detect your ChromeCast from this interface, and stream to it. :)

The UPnP module was improved to support more type of servers, more metadata per item and the code was heavily cleaned. (The library we use is still very bad though).

The OS X interface got new HUD panels and widgets for the dark mode.

Finally, we added the first AppStream Metadata for Linux distributions, a few Qt minor changes, support for GoPro highlights chapters in MP4 and some OS X interface fixes.

Android

Nothing very exciting on Android, just the beta 1.9.13, 2.0.0-rc1 and 2.0.0-rc2 releases, pushed to the store.

For 1.9.13, we mostly focused on activating subtitles over the network, and improving the support for subtitles.

2.0.0-rc1 was mostly focused on fixing the UPnP support and 2.0.0-rc2 was minor fixes for bugs reported by several beta testers. :)

WinRT

On WinRT, we reimplemented the playlists management, and the support for playlists in the PlaybackService.

The Search page, that was hidden, is now visible again, and we support favorites for streams and servers, like the Android version.

The notifications and toasts were reworked to be less intrusive, and Cortana support was improved.

Finally, the new equalizer got a facelift.

And of course, numerous bugs were fixed, so we can have a proper release soon!

That's already quite a bit for last week, see you next!

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!

1 February 2016

15 years of VLC and VideoLAN

15 years!

Today marks the 15th anniversary of VLC!


Cone-Video-large.png

GPL

Technically, today is the 15th anniversary of the relicensing of all the VideoLAN software to the GPL license, as agreed by the École Centrale Paris, on February 1st, 2001.

VideoLAN_GPL.jpeg

If you've been to one of my talks, (if you haven't, you should come to one), you know that the project that became VideoLAN and VLC, is almost 5 years older than that, and was called Network 2000.

Moreover, the first commit on the VideoLAN Client project is from August 8th 1999, by Michel Kaempf had 21275 lines of code already, so the VLC software was started earlier in 1999.

However, the most important date for the birth of VLC is when it was allowed to be used outside of the school, and therefore when the project was GPL-ized: February 1st, 2001.

Facts and numbers

Since then, only on VLC, we've had around,

  • 700 contributors,
  • 70000 commits,
  • at least 2 billion downloads,
  • hundreds of millions users!

And all that, mostly with volunteers and without turning into a business!

We have now ports for Windows, GNU/Linux, BSD, OS X, iPhone and iPad, Android, Solaris, Windows Phones, BeOS, OS/2, Android TV, Apple TV, Tizen and ChromeOS.

Future

If you read this blog, you know that we're working hard on VLC 3.0, to unify most of our mobile ports, adding more GPU decoding, better adaptive streaming and ChromeCast integration.

We're still here and working for our users.

Thanks

So, for all our users supporting us, I just want to say: thank you!

Cone-Video-large.png

10 January 2016

This week in VideoLAN - 32

32nd VideoLAN report

Another year, and another week working on VLC and VideoLAN.

Happy New Year 2016!

Features and changes

VLC

Another week started with improvements on the new HTTP/2 stack.
We mostly got support for HTTPS through HTTP proxy and HTTP tunnel (RFC7639) but also a better documentation and better cookies handling.

The large work of the week was the merge of the new Keystore API for the VLC core.
It allows to store user passwords and credentials in the secure storage provided by the Operating System. This is notably for HTTP or SMB passwords.

This was implemented for HTTP, RTSP, SFTP, FTP(S), SMB. And we have now a KDE Kwallet, a Gnome libsecret and a plaintext backends to store those in the disk.
Hopefully, one for iOS/OSX and Windows will follow soon.

The TLS support has a new shinny test, that helped improve the GnuTLS module, which provides TLS on most platforms. This is going to be important for HTTP/2.

To also help this HTTP/2 module, the core got a new socket function named vlc_socketpair() to create a pair of sockets.

The H.264/HEVC packetizers were made faster, using some SSE2 optimizations.

We also should detect now JP2K inside TS streams.

Finally, we've had fixes for securetransport, improvements for the OS X interface, and improvements on the EAC3 detection in TS.

Android

Android port got quite busy this week, with more than 50 commits from Geoffrey.

In summary, we:

  • reworked all the existing snackbars for deletion (or related actions),
  • reworked the advanced options dialog,
  • added a context menu to delete and play as audio for all files in the file browser (even the ones we don't know the type),
  • adding file deletion in more context menus,
  • added an option to disable the playback history,
  • reduced the number of refreshs in the video, audio and playlist views,
  • improved auto-scroll in the playlist,
  • moved the targetSDK to MarshMallow,
  • added an option to disable gestures,
  • allowed to cancel a swipe on an item in the playlist,
  • added Media Information panel for audio,
  • improved video list and media information fragments post file deletions,
  • moved the 'save playlist' feature to advanced options,
  • change the icon for the Google Drive extension,
  • added other look and small fixes improvements.

:)

iOS

After releasing VLC for iOS 2.7.1 last week, we prepared a version named 2.7.2 fixing more issues reported, notably for UPnP playback, changing subtitles size and passcode lock.

This release is in review on the store.

At the same time, we've prepared the release of the Apple TV version, that will be out this week, (if everything happens according to schedule).

WinRT

The WinRT port is getting in shape and was quite busy too this week, with almost 50 commits from Thomas!

The largest part of the work was the improvement of the Database speed, playing with threads, bindings and properties.

We fixed a large number of bugs on this part.

We also improved and fixed the look for the navigation, when switching from Light Mode to Dark Mode.

That's all, this week for VLC! All my best wishes for 2016!

17 December 2015

Announcing VLC for Chrome OS

VLC on ChromeOS

ChromeOS is one of the last Operating Systems where you could not run VLC and play all your media as you wished. :)

Even worse, it was the only significant Desktop Operating Systems that we did not support (so far, VLC exists for Windows, OS X, Linux, BSD, Solaris, OS/2, Haiku/BeOS, ReactOS).

At the same time, VLC for Android is quite popular and is supported on most phones and tablets, and is currently being expanded to Android TVs or other forms of Android.

Today, I'm pleased to tell you that you can use it now! DOWNLOAD!


Chrome-Player.jpg


Android Runtime on Chrome

A few months ago, the Chrome team announced the possibility to run some Android applications on Chrome OS using the new Android Runtime for Chrome. Starting from that moment, we wanted to support this runtime.

Why did we want ARC support?

VLC is mostly a native application on all ​platforms​, using low-level APIs to output video, audio and get access to threads. VLC is using mostly C, C++ and hand-crafted ASM to get the best performance, as required for a realtime application.

Therefore, it's currently impossible to port VLC to Javascript and other Web technologies (or FirefoxOS). It might be possible in the future, but this is off-topic. :D

Usually, the mobile ports of VLC, like VLC for Android, VLC for iOS or Windows phone, use the native language of the platforms to create the interfaces and the media database.

For ChromeOS, the only solution we saw, before ARC was announced, was using PPAPI, NaCL and Javascript, but that would require to rewrite a complete interface in Javascript and would be a bit problematic for the database. That work would have taken months of work.

Therefore the ARC solution was a blessing, and helped us to recycle 95% of the Android code and optimizations we did in the last months (some are not released yet).
Of course, some work was required, nothing is magical, but way less than other solutions.

Features

VLC on ChromeOS supports:

  • all video files supported in VLC, including MKV and DVD ISOs,
  • all audio files supported in VLC, including FLAC and other weird audio formats,
  • subtitles files, from SRT to SSA and with auto-detection, when possible,
  • a media database like on Android and iOS to select the right medias, and resume playback,
  • playback of streams, local and on the internet, include adaptive streaming like HLS or DASH,
  • we also support playlists, accelerated playback, audio equalizer, audio/video synchronization and hardware accelerated video/audio decoding.


Chrome video listing


Open Source and Free Software

As everything VideoLAN is doing, VLC for ChromeOS is completely free and open source.

We would LOVE help to improve this port! Join the community, fork the code and send patches!

The source code is licensed under the GPL (v2 or later) and is currently distributed as GPLv3, like VLC for Android.

Compatibility

The current version was tested on the 2 ChromeBooks we had access to:

  • a Chromebook Pixel,
  • an HP Chromebook 14.

It is possible that there are issues with other machines, and we ADVISE to use the latest Chrome 48 or the current beta version, to test VLC.

Please report the bugs, if you can!

Nota Bene: ChromeBit

Currently, the Chromebit by ASUS is untested, because it seems to be not available in France yet, and ASUS did not answer to our query to get access to one.

Any testing on this would be welcome!

Nota Bene 2: ARChon

In the same way, ARChon Runtime is currently not supported, because it was not tested at all.

Help on this is welcome too!

Download

You can download it here!

Be careful, it's just the first release, but for now, Enjoy!

14 December 2015

Last weeks in VideoLAN - 29

29th VideoLAN report

This report is a bit special, since the previous week-end was the VideoLAN meeting in Barcelona, so I did not do a post last week.

So, I'll cover in this post, the work of the last 2 weeks on VideoLAN and VLC development.

VideoLAN meeting

The VideoLAN team met for our 4th quarter meeting, in Barcelona, Spain, in the offices of Skyscanner. VideoLAN @Skyscanner

We were around 20 for 2 days, and worked on quite a few things around VLC. VideoLAN working in Barcelona!

During the week-end, we worked on:

  • the next update of the videolan.org website, to update its contents and to make it responsive,
  • finishing the next release 2.2.2 of VLC,
  • fixing important 3.0 blockers, notably in the Qt and OS X interfaces and in the core decoder,
  • most of the 3.0 blockers, to discuss and find the correct way to fix them,
  • new features like HEVC packetizing or HTTP/2 support (see below),
  • finishing our Apple TV/tvOS port,
  • finished the port to Android 6.0, aka Marshmallow,
  • adding important features for our Android port,
  • reworking our Code of Conduct,
  • preparing our move to Gitlab,
  • fixing important VLC bugs in demuxers and decoders,
  • internal policy and decisions for the VideoLAN non-profit,
  • and other stuffs I forgot about. :)

So, all in all, a quite busy week-end :)

Features and changes

So let's discuss a bit more in details, what got merged, in the last weeks.

VLC

Core

The fight against the deadlocks in the input and video output core went on during the last 2 weeks. To solve this, the core got 2 new functions named picture_pool_Cancel() and vout_Cancel() for the video output and the function vlc_fifo_TimedWaitCond() which allowed to introduce an interruptible mwait in the decoder core.
We should now be close to the end of these issues.

Related to this, all the decoders and packetizers now have a pf_flush function that they can implement. This flush was notably re-implemented in the libavcodec module.

VLC now has support asynchronous decoding, in the core: the methods decoder_QueueVideo, decoder_QueueAudio, decoder_QueueSub were introduced for that, and the preroll was fixed and simplified accordingly.

Finally, we have now timespec_get() (to fix issues on Win64 snapshot numbering) and timegm() replacements in our compat/ library.

Access

On the bluray side, the menus are now activated by default, we've improved the speed of transitions, and the overlay, and we also fixed numerous issues on titles detection, chapters count, end-of-file behavior and static menus.

We fixed the listing of numerous UPnP shares, including the Plex ones and UPnP module was made interruptible.

We fixed the support for AVC Intra files without SPS/PPS, and we added support for HEVC NAL parsing, at the same time.
This led to a big refactoring of the H264 and HEVC packetizers and parsers. This will allow us to record in HEVC codec.

HTTP/2 stack

Finally, a large piece of code was added to VLC last week: a new HTTP/2 stack.

It's around 5000 LoC and it supports HTTP 2.0 protocol, and supports seeking by reusing the TCP connection and the TLS session.

The code is currently only used for HTTP/2, because it is still missing some features compared to the HTTP 1.1 module (proxies, cookies, auth...)

OS X

On OS X, we've had an important rework of the simple preferences interface.

We've also reworked and fixed the starting of the interface from command-line.

Qt

In the Qt interface, we've fixed the layouts for the Right-To-Left (RTL) languages.

We've also fixed an important 3.0 regression in the input seekbar and a singleton thread-safety blocker for 2.2.2!

Miscellaneous

  • We've fixed an SMB module performance issue,
  • We've improved tizen and iOS video output.
  • We've fixed a FLAC CRC issue, that rendered some FLAC inaudible
  • For the adaptive streaming module, we fixed the computation of the length, in some unusual Content-Length cases,
  • Finally, we've fixed a regression on MKV ordered chapters issue and improved our WebVTT support.

Android

Android development got quite busy in the last 2 weeks: we've released VLC 1.7.0, 1.7.1 and 1.7.2.

We've fixed the video playlists feature introduced the previous week, we've improved the Android TV audio player, and fixed numerous reported issues.

Then, we've pushed the last fix for Android 6.0 Marshmallow support to VLC's core. It was mostly related to PIC issues (Position Independent Code) in 3rd party libraries. We will now be able to target Sdk 23!

Finally, we've merged the asynchronous decoding, which should improve, once again, the performance of VLC on Android. VLC should be now the fastest player in town.

iOS

Most of the work on iOS was done for the tvOS port, and to fight against Kafkaesque issues in the iOS Store.

We're still waiting.

WinRT

The WinRT port got quite busy too. Large refactoring to the applications were made to clean and simplify the old code and increase the speed of the application.

The look was refreshed too.

Finally, the port to UWP projects was merged. It should allow us to compile the application as a UWP application, without dropping support for 8.1.

That's quite a lot for those weeks, see you next time!

- page 1 of 5