Keyword - Blu-Ray

Entries feed - Comments feed

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!

30 November 2015

This week in VideoLAN - 28

28th week of VideoLAN reports

Another week, another weekly report about VideoLAN and VLC development.

I'm still here. :)

Features and changes

VLC

Following last week's work on Freetype font fallback on OS X and iOS, after a few fixes, we removed the QuartzText and the WinGDI text renderers.
The Freetype renderer should always be the best one, now.

We've added a new libVLC event: libvlc_MediaPlayerChapterChanged to detect a change of chapters and we've fixed the libvlc_MediaPlayerTitleChanged event, that was not fired in all cases.

The core handling of objects was changed, to notably have a lock per parent-object and not per instance; this should reduce the lock contention.
Also in the core, the variables callbacks were changed in order to be privatized and some string-related functions were renamed.

Also in the core, an important change was introduced in the flush mechanism for decoders and packetizers, adding a custom pf_flush function.

The HLS support was improved by adding support for inconsistent HLS playlist numbering, fixing live pruning, using targetduration hints for HLS updates and other small fixes.

On the Blu-Ray side, we've fixed interactive titles selection, subtitles that disappeared too quickly, and implemented overlay wiping to fix some HDMV menus selections.

Finally, our last.fm plugin now supports NowPlaying events and we've pushed fixes for the Qt interface, for an XSS in the HTTP interface, the new Youtube URLs, and improved our OS/2 support.

Android

On Android, we've polished the 1.7.0 release, fixing the menu's look, some crashes and some alignments in the video player. This version should go live during this week :)

We've worked quite a bit on the ChromeOS version, more news about this, next week :)

However, the biggest work was done for the next release, by adding support for video playlists, something that was requested for years...
The core of the feature is done, the playback is correctly working, and you can play a group or all the elements from a directory.
What is currently missing is an interface to manage those.

iOS

On iOS, we've integrated the new subtitles renderer based on Freetype, improved our fonts support and fixed some crashes in the core.

We've also improved the notifications, the information panels, the media library and the SMB browsing.

A lot of features were added to the tvOS port, but once again, this is still only for testers. The release is on its way, as soon as we can push it on the store.

libbluray and other libraries

On libbluray, we've fixed the Android compilation (no BD-J support and untested), fixed small numbering parsing issues, and fixed support for Windows pathes that are in non-ASCII folders.

On libudfread, we've made the same changes for Android compilation.

That's all for this week, folks, see you next one!

16 November 2015

This week in VideoLAN - 26

26th week of VideoLAN reports

This week-end, I really did not feel like writing anything about last week, because... you know... fuck it.

tour_eiffel.jpeg

...

...

...

But then, I realized that I shouldn't stop living because some assholes believe the way I live is the wrong one.

So after crying a bit, here is the short (and late) report about last week in the VideoLAN community.

Features and changes

VLC

Once again, a week started with fixes about our adaptive streaming support ( :) ), notably the Smooth Streaming part, to support the Language attribute and per-stream Timescale.
Also, the computation of the bandwidth was reworked to supported split-streams (audio and video separated).

During the week, we've also fixed the streams selection (like the language) when changing quality during the adaptivity of the streaming.

We've also improved our chained OggFlac support (#14972 and #10328).

We've continued to fix the seeking, the flushing and pausing regressions in the core, that I spoke about last week.

On the Blu-Ray menu integration side, we've fixed the selection of audio tracks and subtitles tracks from the Blu-Ray menus (and not the usual VLC topbar), and a problem in chapters handling.

Salah fixed an extremely weird bug on our Freetype integration, because of the new font fallback system: #15840).

Finally, we've also worked on the Youtube integration, we've cleaned our audio output and our hardware decoder on Android and fixed a rotation regression.

Android

Since this week, and the next update, VLC on Android will require Android 2.2 (API 8).
I dislike this decision, but the fact that it allows to correctly drop a permission and the fact that the Percent library requires it forced us to do it. If you have a clean way to revert this, please feel free. :)

The audio playlist was rewritten by using the RecyclerView class: this is cleaner, shorter and more Android-like. It will allow us to add more features to this playlist too, (like the duration of each track).

The video list was also updated to use the RecyclerView class. However, this is a bit a smaller change than the playlist.

We've reworked our notification to always show the next and previous buttons: if the playlist is too short, they will restart the current media.

We've added an option in the preferences to remember the brightness level in the video player, if you want.

Geoffrey also did a large refactoring to move the Java code around, so that it makes more sense for the new developers working on our project.

We've also fixed a few crashes reported in the beta program.

iOS/tvOS

Like last week, most of the work was done on Apple TV instead of the iOS application, while we're waiting for the version 2.7.0 to be updated on the store.

Even more than last week, the commits were quite numerous, but I can't speak too much about those features, yet. I hope this will change soon. :)

WinRT

The work on WinRT was resumed quite a bit, adding new features and fixes to the application:

  • a network panel was added to play and save your streams, like Android and iOS,
  • updated artists and similar artists pages look and features,
  • an updated sidebar menu,
  • updates on colors consistency,
  • speed-ups and crash fixes.

I hope we can provide a release in the next weeks.

That's all for this week! See you soon!

3 November 2015

This week in VideoLAN - 24

24th week of VideoLAN reports

The last few weeks were extremely busy, so here is the latest weekly report about VLC development, hoping it won't be too disappointing. :)

Features and changes

VLC

Qt

The week started with a workaround of a very problematic Qt5.5 regression. Qt5.5 is breaking 2 important behaviors of VLC: video and hotkeys.
One is a Qt regression that was introduced in Qt5.5 and one was probably an issue in VLC, but could also be an issue in the X server. We worked-around the latter. The former is still blocked by the Qt developers.

Adaptive streaming

The adaptive streaming module got a lot of changes, notably to better support byte-range requests, and to add timeline seeking. This was a preparation for some smooth streaming support.
And indeed, at the end of the week, the Smooth Streaming support was added to the adaptive module, deprecating the old smooth streaming module. We now have only one logic for HLS, Dash and Smooth.

Related to smooth streaming, our mp4 mux got support for VC-1 and WMAPro muxing; while the mp4 demux got support for WMAPro.
The mp4 demux also got support for some Youtube-specific metadata.

Core and modules

In the input core, the preparsing was moved inside a thread, to avoid getting VLC stucked at exit.

The audio output core was modified in regards to its thread-handling, notably when VLC is paused. This allowed to fix an important Alsa module issue, by reducing the locking scope.

We've added support for SoundCloud private tracks, fixed a Youtube issue when using HTTPS, fixed the vimeo quality (low-res was selected before).

Finally, we've added a new resampler module based on soxr. This module should provide better quality for less CPU than the current resamplers we have.

Miscellaneous

We also fixed:

  • the fact that VLC was not 100% fullscreen at the start (#2685),
  • a busy-loop in the input core,
  • some issues for Blu-Ray Java integration,
  • some Blu-Ray audio selection regression,
  • some Android video output issues with the subpictures,
  • some regressions in the video output when seeking,
  • some Qt dialog issues,
  • some lua 5.2 compatibility issues,
  • add we added support of the ttml file extension.

Android

A massive work this week was to about the Android permissions.

In the end, we:

  • removed the READ_PHONE_STATE permission from all builds for ALL Android versions, starting from Android 2.1,
  • removed the READ_LOGS permission from all releases. The logs feature will only work in debug builds and starting from Android 4.1.
  • removed the VIBRATE permissions from the TV builds.
  • removed the WRITE_SETTINGS permissions from the TV builds too.

This will be in the next release we do, probably 1.7.0.

We also prepared the app for Android 6.0:

  • ask WRITE_SETTINGS permission at runtime, when setting the audio ringtone.
  • ask READ and WRITE storage permissions at runtime, to read your media files. Without VLC is a bit useless, to be honest.

This will be activated when we do a release targeting the new SDK (too buggy at the moment).

We also rewrote the sidebar menu, fixed numerous crashes, and fixed some sorting issues in the audio view.

iOS

We first worked to finish the iOS 2.7.0 release, to fix a few remaining issues, and update translations.

The tvOS application development is accelerating fast.

We now have correct SMB, UPnP and Plex browsing, and support for the Cloud providers. The playback over HTTP, FTP and HTTPS works fine too.

We've improved the video player and added more animations, and we worked on the speed of the app.

DVD/Bluray

We've had numerous changes on libbluray, notably to fix some Java menu issues on the following Blu-Rays: Cabin in the Woods, The Grand Budapest Hotel, Birdman...

We've improved the Java security model in BDJThreadGroup.

Finally, we've added the class file manipulation functionality from the asm library. This will allow to fix the playback of Penguins of Madagascar.

We've also had fixes on libdvdcss for Android.

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

27 January 2015

Blu-Ray libraries releases

Blu-Ray libraries

Today, we release a new version of all our Blu-Ray libraries:

  • libbluray 0.7.0
  • libaacs 0.8.0
  • libbdplus 0.1.2

Those releases feature minor features improvements, and numerous bug fixes.

The biggest changes lie on the BD-J support, Java 8 support, fonts management and the raw access to devices and filesystem.

Our BD-J support should now be mostly working for most disks.

The filesystem changes is preparing the development of ISO support in those libraries.

Finally, a lot of code for portability has been merged between those libraries!

Download

You can download those on the right pages:

Have fun!

13 July 2014

Blu-Ray playback libraries updates (BD-J)

Triumvirat update

6 months after the first libbdplus release, and my post about the open Blu-Ray playback stack state, we've updated a bit the libraries.

We have seen, in the last weeks, the release of:

So, the three libraries of the stack have been updated with a few important features.

Continue reading...

- page 1 of 3