Keyword - Windows

Entries feed - Comments feed

Monday, February 1 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

Sunday, January 31 2016

These weeks in VideoLAN - 34

34th VideoLAN report

I was traveling quite a bit lately, so here is a double-week report about the VLC and VideoLAN communities.

FOSDEM

Once again, the VideoLAN team was present at FOSDEM.

Here is a the usual Delirium Cafe photo!

FOSDEM 2016 Delirium

And of course, my talk about VLC 3.0.

FOSDEM 2016 VLC talk

Features

VLC

The first change was related to ChromeCast: a new module was added, to split the control of the chromecast from the streaming part. More code on that feature should come in the next weeks.

Petri then got us support for a Bluray demuxer in our Bluray module. It was only an access_demux before, and will now allow to open ISO files of Blurays over the network, including FTP, SMB, NFS or HTTP. Additionally, you can now use the default drive with the MRL bluray://.

We fixed the support of Windows XP for the 3.0 release: but XP support is now only on a best-effort basis.

François also got support for ATSC A65, aka PSIP, or information like EPG and related, for ATSC broadcasted streams.
Almost at the same time, we received support for SCTE-18 / AES, aka alerting system inside broadcast.

Hugo added support for Metadata over UPnP, (notably artist, album, cover ART and related fields) and fixed quite a few issues on this module.
We finally will get proper UPnP support soon!

We also received fixes for TS sections, dialogs, win32 installer, TS seeking, DxVA decoding and MIDI. And also improved the features merged in the last weeks: keystore, the dialogs and SMB modules.

iOS / Apple TV

After the release of the Apple TV version in my last report, we produced 2 updates to fix bugs: 1.0.1 and 1.0.2.

We're still waiting for feedback to improve for the future releases.

On the main development branch, we mostly got:

  • improvements on FTP and Plex protocols,
  • support to play "next item" automatically,
  • support for a "play all" action,
  • support for 3D Touch Quick Actions,
  • and a few bugfixes.

Android

Android development was quite busy too, as it's been the usual in the last few weeks.

The most visible change is that from now on, you will have only one version and apk for both Android TV and Android.

We also got:

  • a new File Browser for the Android TV version,
  • an option to select Android TVs or Android look, (useful for TV devices not officially Android TV),
  • support for the history view on TVs,
  • support for icons in the extensions,
  • media directories are now displayed on the main TV screen,
  • fixes for keyboard and remotes navigation,
  • fixes for bitrate display, preferences and equalizer,
  • improved now-playing support,
  • the About and License dialog in the TV interface,
  • numerous fixes for crashes,
  • memory reduction when the application background.

WinRT

WinRT development was quite active too, mostly focusing on a complete UWP project.

Thomas:

  • improved the launch speed of the application,
  • reworked numerous exceptions,
  • fixed numerous crashes,
  • reduced the amount of WindowsPhone specific code,
  • improved the responsiveness of the application,
  • improved our Pivot-control,
  • improved the audio metadata,
  • added various interface fixes and improvements,
  • and many other small tweaks...

That's mostly it for those weeks, see you next time!

Tuesday, January 19 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!

Thursday, December 17 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!

Monday, October 26 2015

This week in VideoLAN - 23

23rd week of VideoLAN reports

Yet another week, another new weekly report about the VideoLAN community and the VLC development community.

Features and changes

VLC

Protocol Redirections

We've added support for inter-module redirections.
In the past, the HTTP or FTP redirections were only done in the same module. That caused limitations, if we wanted for example to redirect to a different protocol, like HTTP-> FTP or HTTP -> HTTP2.
Now, a redirection will spawn a new module, that can support a different protocol.

OS X notifications

In the past, we've supported only Growl for notifications on OS X.

Since quite a few versions, OS X supports native notifications. So we've added support for those notifications. Growl is still possible as a fallback.
Those notifications are only visible if VLC is in the background, of course.

Evas video output

As you've probably seen, on this blog, lately, we've done a EFL/EMotion backend.

This was the first step, but it was done with a memcpy at every frame, which is BAD and SLOW.

Therefore, we've added a new video output to VLC, based on Evas, the canvas library of EFL. It supports directly YUV, RGB, and TBM (Tizen Buffer Manager).

We also added a new libVLC call, so you can get VLC to draw directly in an Evas Object: libvlc_media_player_set_evas_object.

We will use that for our Tizen port of VLC.

Subtitles font fallback

VLC font rendering engine was never good for non-western languages.

A few month ago, we've added support for harfbuzz to shape CTL correctly.

This week, Salah-Eddin added support for font fallback to our Freetype module, for Linux, Android and Windows.

On the following example, we have Korean, Japanese and Chinese characters:

With-fallback.png

This is how it used to render for 2.2.x: Without-fallback.png

Cool, no?

Core input

The week actually started with a rework of the demux controls in the core. This makes stream, the access and the access_demux modules more similar and simplifies the code.
Moreover, sometimes the demuxers can seek even if the access cannot (or the other way around); those cases should behave correctly now.

The old caching module was fixed when seeking near the end of the file. This was the cause of the WMA regression on the latest Android versions (1.6.x up to 1.6.4).

Miscellaneous

The ALSA device selection was fixed so that the "default" choice is always available. And the ALSA device selection menu was fixed too.

As usual, we've added misc changes in the mp4 demuxer, the OS X interface, the playlist demuxer.
Also the nightly builds on Windows were updated to more recent 3rd party libraries, notably codecs.

Android

After last week, we kept on doing small bugfix releases for VLC/Android: we've published 1.6.5, 1.6.6 and 1.6.6.1 during the last week.

The bugfixes are focused on seeking, small crashes and Android TV remote events.

We've added optional buttons to seek in the video player, like in the Beta application, like this: Nexus5_SeekButtons.jpg

We've rewritten the preferences view by using the new Android Preferences view supplied by appcompat 23.1. It should fix a few bugs we had, notably the title color of the preferences. It should also give us a slightly better Android TV preferences dialog.

For the next release, we've rewritten the MediaSession control using the new MediaSessionCompat. This means a new notification, new lock screen integration, better integration with external devices, and probably a good step on the road to Android Auto.

Finally, we've removed a permission for Android TV: AUDIO_RECORD.

iOS

This week, we released VLC for iOS 2.6.6, fixing numerous crashes and adding support for SSA styled subtitles.

Besides that, there was nothing very visible on iOS this week, because most of the work was done to support Apple TV, in the same codebase.

This mostly involves splitting some logic from the views and rewriting most of the views.
It also requires modifications of some of the external libraries, notably to support the cloud services.

And of course the usual fixes for UPnP browsing.

We've also had a few small commits in DVBlast, VLC/Tizen and VLC/WinRT.

That's pretty good for this week! See you soon!

Monday, October 12 2015

This week in VideoLAN - 21

21st week of VideoLAN reports

For the 21st time, here is the weekly report of what has happened in the VideoLAN community and VLC development, during the past week.

Features and changes

VLC

Last week started again with Felix committing, this time to port the CAOpenGLLayer to OS X.

The iOS AudioUnit output gain support for a correct mute implementation, and was moved to a modern Objective-C syntax.

The core gained stream_CustomNew(), to create custom streams; it also gained demux_New() and those 2 functions will be used for adaptive streaming, that need slave streams and demux.

The bluray module gained support for Blu-Ray ISO, through the new UDF implementation.

The HLS module now supports HLS discontinuities, which has been a pain to support for us, so far.
We've also added support for WebVTT and TTML in DASH.

The libass version was updated to 0.13.0 and this should remove the infamous "rebuilding font cache" on OS X and Windows Vista (and later). Anime fans will be happy :)

A Text-to-Speech subtitle renderer was added for Windows, like we did for OS X. It's useful for people with visual deficiencies, that can't read those subtitles very well. It's based on the SAPI 5.1 API.

Finally, we also got fixes for HLS, DASH, cache prefetching, Blu-Rays, OS/2, Closed Captioning sizes, Chromecast, TTML probing and the About view of the OS X interface.

DVBlast

DVBlast, the VideoLAN DVB server, had a 3.0 release.

This release is an important version, that was partially rewritten to use the libev library for the event loop.

It's also the first release supporting OS X.

The new features include PID and SID remapping and support for Deltacast ASI cards.

Download it now!

multicat

At the same time, multicat got a 2.1 release.

This release:

  • adds support for FreeBSD and OS X
  • supports changing source address with raw sockets
  • adds packets reordering based on sequence numbers instead of timestamps
  • adds capping, syslog logging, binding to specific interfaces,
  • and quite a few other things (see NEWS file in the tarball).

Tarballs are available now on the project page.

Android

The Android port was busy to prepare a 1.6.0 and a 1.6.1 releases.

The most visible change of last week was a big interface speed up, in the video and audio lists and the thumbnailer, done by limiting the number of threads and removing some unneeded thread barriers.
We've also added an application-wide threadpool to help managing those threads.

libVLCjni was fixed to support and run correctly on Android 6.0. There is still work left to do for the new permissions model, but that will follow quite soon.

We've had numerous fixes for small regressions mentioned during the 1.4.x and 1.5.x development cycles, notably in MKV/FLV support, screen dimming, various crashes, and incomplete metadata.

The releases 1.6.0 and 1.6.1 were pushed in Beta and in Stage-Rollout on the market.

iOS

MobileVLCKit, the libVLC binding for iOS got support again for the VLCAudio class, including mute support.

There has been improvements on the snapshots events and methods.

The port to tvOS has also been worked on, notably by separating more cleanly the interface from the logic in the iOS apps, so we can have a different interface for tvOS.

WinRT

The WinRT port got changes in the theme, and some colors should now be in your roaming settings.

One of the major crash in the Thumbnailer (start of the application) was fixed: it was due to a race condition when seeking to get the snapshot.

The Windows Indexer API is now used on the Windows 10 Mobile version, to get better search results.
We have more strings translated, and an update of the French translation.
Finally, the gestures are now correctly disabled in locked mode.

The releases 1.8.0 and 1.8.1 were pushed on the store, with all the fixes and features of this week and the previous week.

x264

This week, quite a few changes happened to x264.

The largest changes were ARMv7 and ARMv8 optimizations, done by Martin and Janne, which total around 30 commits on the 40 commits pushed this week on x264.

Anton changed the predictors update and the the row VBV algorithms.

Finally, x264 also has received fixes for PowerPC on FreeBSD, and for the high bit depth lookahead cost compensation algorithm.

That's quite a lot for this week! See you next!

- page 1 of 5