Keyword - VideoLAN

Entries feed - Comments feed

Tuesday, September 1 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.

Monday, August 24 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.

Monday, August 17 2015

Last weeks in VideoLAN - 14

14th weekly (!) report of VideoLAN

This week is a bit special, since I will report about the last 2 weeks, because of lack of connectivity last week.
So here is a double weekly report of what has happened in the VideoLAN community and VLC development teams!

Features and changes

VLC

The big change of subtitles handling of the previous week involved quite a few fixes for the Closed Caption module, the tx3g codec, the freetype, quartztext and win32 text renderers. There are a few fixes pending that have yet to be merged, but let's hope the biggest work is done.

Linked to this, we've added support to Closed Captions inside VC1 and AVC streams; the decoder was also improved, notably to support time interpolation. We've also added support to SBV subtitles (Youtube).

Once again, we've fixed things and added more support to the adaptive streaming module; the goal is to allow user selection in the interface of the resolution or adaptive algorithm.

The work on the code of the OS X interface went on: panels modernization, cleaning the creation and the destruction of the main interface, moving more code to ARC, etc...

Finally, we've fixed issues with decoding TS with encrypted programs, but also with bitrate control when encoding.

Android

The Android port got a release named 1.5.1 that we pushed as a beta on the Store.
We moved to an Open Beta system for the delivery of those beta.

We've added the support for a new flag on our Intent, named title, so that you can override the title when launching VLC. The intent should now even support playlists.

We've fixed a few bugs on controlling from the remote on the Android TV version.
We've also reworked completely the network browsing code on the TV.

We've also fixed the deletion of the playlists, and issues when resuming an interrupted scan of our library.

Expect 1.5.2 and maybe 1.6.0 in beta soon.

iOS

VLC for iOS got quite a few changes lately.

First, the 2.6.4 version was pushed on the store, to fix a UPnP browsing issue.

Then, the VideoToolbox changes got merged into the iOS port. Hardware decoding should land in 2.7.0.

2.7.0 will also get, on iOS 9, a global search feature, using CoreSpotlight, as described in the iOS 9 preview. It should also now work fine with split-view.

Finally, some work has been started on an watchOS 2 application. More news on that later :)

WinRT

VLC for Windows Store was even more busy, in the 2 last weeks.

We finally got a release, named 1.5.0, adding numerous features, and notably targetting Windows 10.

VLC_winrt_150.png

You should read Thomas' post about it.

In summary, new hardware acceleration, new interface, integration on Windows 10, and many more.

NB: We still support Windows RT and Windows 8.1.

That's all for those weeks! Have fun!

Don't forget to register now for VDD, this September, in Paris.

Tuesday, August 4 2015

This week in VideoLAN - 13

13th week of VideoLAN reports

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

Features and changes

VLC

Another week started with MediaCodec fixes, which went on for a few days and terminated with the addition of hardware accelerated Audio decoding on Android.

libVLC received new events for audio corking, muting, volume changing and audio devices: libvlc_MediaPlayerCorked, libvlc_MediaPlayerUncorked, libvlc_MediaPlayerMuted, libvlc_MediaPlayerUnmuted, libvlc_MediaPlayerAudioVolume, libvlc_MediaPlayerAudioDevice.
I backported the first few to libVLC 2.2.2.

The internal of VLC subtitles were completely rewritten, changing the way we're passing the text information from demuxers to decoders to text renderers.
We are now passing some structured text around, with styles information attached to it, instead of pseudo-HTML. This allowed to remove a large piece of duplicated code from text renderers, and put the complexity on the parsing side, not on the rendering side.

The H.264 NAL parsing was largely improved to fix the remaining problems of VideoToolbox for OS X and iOS, notably for frame re-ordering.
The VideoToolbox decoder should now be totally usable.

We added a new speech-to-text subtitle renderer for OS X, that speaks the subtitles instead of showing them on the screen. Of course, this is not for everyone, but it should help in accessibility cases for vision-impaired people.

The OS X interface cleanup work was continued during the whole week, by David, and will probably go on the next weeks.

Finally, we got fixes for AudioTrack (once again), notably for SPDIF support; for numerous memory leaks and some uninitialized variables.

Android

This week was rather calm (but not too calm) on the Android side of things, mainly because of the work on the other projects.

First, we integrated the VLC core changes to improve performance. VLC 1.5.1 should be quite competitive on this matter.

Then, we rewrote completely most of the video player advanced options, using icons in a new single panel.

We also improved the integration of vlc:// protocol and the Intents for 3rd party apps and websites when they try to launch VLC.

Finally, we improved the libVLC JNI API to support SurfaceTexture directly.

iOS

The work for VLC for iOS 2.7.0 was continued greatly this week. And VLC 2.6.3 was pushed on the store.

A large amount of work was done to support RTL languages, as it was announced for iOS 9.
This requires more usage of AutoLayout in our code.

Also, the thumbnail cache was improved, the side menu is getting a lift and a few crashes were fixed.

Some important work was done on MobileVLCKit to make it usable as a shared library framework.

Finally, the integration of VideoToolbox was merged for the iOS project.

WinRT

Like last week, the WinRT port received quite a few changes.

Most of the changes are about the interface, to prepare the integration for Windows 10, to get a more consistent interface, and to listen to user's feedback.

The rest of the changes are on the Direct3D11 hardware decoding.

We'll see how all this gets merged and released soon.

x264

x264 got a new release, and a bit of code merged in the master branch.

It notably adds:

  • NV21 input support,
  • Experimental NASM support,
  • Fixes for some CAVLC overflow, some memory leaks, and file handle leaks,
  • SSSE3 and AVX2 implementations of plane_copy_swap, for NV21 support,
  • Support for MSA MIPS architecture, for SIMD on MIPS,
  • Early Power8 support.

That's all for this week! Have fun!

Don't forget to register now for VDD, this September, in Paris.

Wednesday, July 29 2015

This week in VideoLAN - 12

12th week of VideoLAN reports

The summer goes on, and here I publish another weekly report of what's happening in the VideoLAN community and VLC development teams!

This week was quite cool, and quite busy, with some of the team going to Spain for aKademy!akademy2015.jpg

Features and changes

VLC

The week started by the continuation of the OS X cleaning by Felix, preparing for the next releases of OS X and Xcode, removing the old QTCapture module, switching more code to ARC, splitting the code of the interface in smaller files and improve the code style of the OS X modules.
This important cleaning work went on until Wednesday night.

The Windows code is now calling SetThreadErrorMode() on Windows 7 and is calling a fallback for older versions. This is necessary for proper thread-safety of libVLC.

The helpers vlc_access_NewMRL(), vlc_access_Delete() were introduced in the core, along with inline function helpers like vlc_access_Tell(), vlc_access_Seek(), vlc_access_Eof(), vlc_access_Read() and vlc_access_Block().
All this should make the writing of an access modules easier.

And we got a new concat access module, to concatenate multiple access objects, using those new APIs.

Rémi went on by simplifying the peek() features of the stream filters: we have now a generic stream_Peek() front-end and now pf_peek are now gone from stream filter modules. At the same time, access_GetParentInput() and demux_GetParentInput() got removed from the core.

François added the support for alternative audio/groups in HLS, fixed relative paths in DASH, and finally merged both HLS and DASH modules into one adaptive module; this will make improvements in one format available in the other. He also added support in DASH/HLS for parsing the language, the role and the description of each track.

We deprecated libvlc_media_player_set_agl(), because this is an old Apple technology that noone uses anymore. And we fixed the plugins cache signature issue on OS X.

Finally, Rémi worked on ACCESS_GET_CONTENT_TYPE to remove the access_t.psz_demux variable that was used to force the demuxer from the access module. This was a dangerous design that did not work well with stream filters.

Android

The Android port got a few fixes on the audio output, notably a circular buffer to improve the whole VLC performance, a hack for 4.4.2, and stabilization for Android Lollipop.
In the core, we also added interlacing detection for MediaCodec acceleration.

On the interface side, the important changes were mostly on the Android TV version, notably adding Now Player Tile and fixing reported issues.

iOS

Last week was quite busy on iOS, culminating with a 2.6.3 release.

On the VLCKit SDK, we removed headers that are useless on iOS (MobileVLCKit). We also fixed crashes in the MediaLibraryKit SDK.

Then, more than 20 commits were pushed and 6 tickets closed to fix random crashes of the 2.6.x versions of VLC, including backports from the 2.7 branch.
The 2.6.3 tag was pushed on Friday, ending the week. :) It should be on the store in the next days.

WinRT

After a few calm weeks, the WinRT port got a lot of work this week.

First, we added a SlideShow subproject, to display nice animations in the background.
Then, we fixed the MediaFoundation backend, we fixed some issues with the new SDK and new VisualStudio version and the newer libVLC.

We then updated slightly the desktop design and the icons, in order to simplify the interface and the mini-player, and match the Windows 10 look.

The interface for Windows Phone was also improved for Windows Mobile 10.

Finally, quite a bit of work went into the hardware acceleration for Direct3D11. It's almost fully working for us :)

Tizen

The first code was pushed to the Mike git repository to build libVLC on Tizen.

Community and VDD

As you saw in the introduction, Rémi, Felix and me went to aKademy to speak with our KDE friends. It was in A Coruña.

We also finally announced VDD for this September, in Paris. Register now!

Monday, July 20 2015

This week in VideoLAN - 11

11th week of VideoLAN reports

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

This week was quite hot, in the real world, and we're in the core of the summer; therefore this week was quite calm on all fronts :)

Features and changes

VLC

A large part of the OS X interface was rewritten by Felix, to use more modern code, notably Objective 2.0 features.
We've seen notably the usage of automatic properties synthesis, the removal of object instances in the xib files, the removal of the support of Mac OS X 10.6 and the class APIs reduction. All this should modernize the VLC OS X codebase quite a bit. :)

The port of VLC and libVLC to Tizen was started this week too. Currently, we have the core, the contrib, most modules and libVLC compiled with the Tizen SDK. More info here.

As often lately, we've seen also fixes for HLS, notably to fix a regression on Windows, where no HLS stream were working and one to correctly support AAC audio.

We've also added support for WebVTT subtitles inside MKV, fixed a few memory leaks, and a regression in the DirectShow input module.

This week was quite calm, as I said before. :)

Android

Last week, as promised, we've released VLC for Android 1.5.0, as a beta, on the store, for the testers from our communities.

We've therefore spent a lot of time fixing regressions and bugs for this release.

We've also fixed a few issues for the Android TV version: the previous weeks changes introduced some regressions, especially for the background video playback feature.

iOS

The iOS port got integration of CoreSpotlight to support global search for iOS 9.0.

We've also pushed a few fixes, as usual.

I know all this is a bit less than the usual work, but it's the summer. I hope we'll get more done next weeks... :D

That's all for this week! Have fun!

- page 1 of 15