Keyword - libdvdcss

Entries feed - Comments feed

14 March 2016

These weeks in VideoLAN - 38

38th week of VideoLAN reports

Another double-week report about VideoLAN and VLC development.

Features

VLC

After the major work of the previous weeks on the topic, the week started with quite a few fixes on credentials and dialogs.

We then repaired the Avahi service discovery (that has been broken for years), so that it can discover SMB, FTP, SFTP and NFS shares on Linux.

The Qt playlist now allows to sort by disc number, and the search field is accessible with Ctrl+K shortcut.

The Windows Direct3D11 module was improved to avoid some GPU buffer copies; this will restrict the module to versions of Windows more recent than Windows 7 SP1, since we need D3D11.1. In a similar way, we've improved the Direct3D9 for performance, device management and to get more debug information.

François made, once again, improvements on the TS module, notably about EPG and channels management; and simplified the standards (DVB, ARIB, ATSC) selection. The support for DVB subtitles was improved too.

We've then had some major MKV demuxer code cleaning, code simplification, but also some parsing speed improvements.

An external contributor gave us support for the OggSpots codec.

Petri added support for public key authentication in our SFTP module.

We fixed regressions and a crash on the MediaCodec module for Android.

Finally, we've had fixes for ALAC inside MKV issues, HTTP redirect, SFTP browsing, Qt recents, and for crashes in chroma conversions.

Android

In the last 2 weeks, we've published 3 betas of the future 2.0.0 VLC for Android: 1.9.0, 1.9.1 and 1.9.2.

It brings a lot of features, but notably:

  • network disk browsing (Windows shares, UPnP, NFS, FTP, SFTP...),
  • favorite folders and URLs,
  • video playlists (and control),
  • Full Android 6.0 compatibility (including permissions)
  • rewritten notifications and control,
  • rewritten history (permanent, not like in the 0.9 days, and disable in preferences),
  • cleaner preferences
  • lots of small improvements

It is also a merge of Android TV and Android versions, so that every device can optionally get the Android TV interface.

Please note that we have a new repository for examples on how to use libVLC on Android. It contains both a Java application and a Native application.

WinRT

On the WinRT front, we've been quite active on performance and interface.

The interface should now be mostly usable with a keyboard or a gamepad, to be more Universal.

The interface got a few refinement, notably to simplify the main user interface and use only the SlideShow in the music pages.

Hopefully a new beta quite soon.

libdvdcss

A few fixes on libdvdcss, this week, to fix the cache on Linux systems. A 1.4.1 release will probably follow.

That's all for these 2 weeks! See you next!

24 December 2015

libdvdcss 1.4.0 release

libdvdcss 1.4.0

For once, just a very short blogpost, to announce that libdvdcss 1.4.0 is out!

This release is a major release of libdvdcss, released a bit more than one year after 1.3.0. It's focused on stability, cleaning, deprecating and small improvements.

In terms of commits, this is also a very large release, with more than 150 commits (on a total of 486 since libdvdcss creation).

Features

The biggest feature of 1.4.0 of libdvdcss is the support of ISOs over the network, with the introduction of the dvdcss_open_stream() function in the API.
This is the first time in a long long time, that we add a call to libdvdcss. :)

We've finished the porting to Android, with key caching. NOTE that the default Android cannot open a USB DVDs player, nor can VLC for Android use them.

We've also added an optional header file, named version.h, to help detecting the version, if you ever use libdvdcss statically (very rare case, I believe).

Finally, we've spent a lot of time to clean, and make a big lift-up to this library. If there are not too many regressions, the cleanups will go on, next year.

Deprecation

In this release, we've dropped the support for:

  • HP-UX,
  • Windows 9x and Windows NT 4.0, (you need 2000 now),
  • BeOS (replaced by Haiku).

If you are on those OSes, please keep using the old libdvdcss versions.

Download

You can download it now, on your favorite website!

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!

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!

29 April 2015

New libDVD releases: streaming DVD ISOs

Past releases

Following my blogpost about the history of the free DVD stack, last August, and the announces of libdvdread and libdvdnav 5.0.0, with libdvdcss 1.3.0, I kept updating the projects.

libdvdnav 5.0.1/5.02

There were not many regressions in DVDnav, so I quickly released libdvdnav 5.0.1 and 5.0.2, to fix remaining crashes.

libdvdread 5.0.1

However, DVDread was in a less good shape, so I released, in January, libdvdread 5.0.1 with numerous fixes and 2 minor features: DragonFly BSD bswap and a new md5 implementation.

Streaming DVD

In January, the major feature I integrated in libdvdread and libdvdnav is the capability to open ISO and devices through the network, as virtual devices/files, using callbacks.

The allows to use the same architecture to play ISOs or virtual devices, from SMB shares, SFTP or HTTP, with decryption and menu navigation.

Streaming releases

This feature was integrated in libdvdcss 1.3.99, libdvdread 5.0.2 and libdvdnav 5.0.3, all released at the end of January.

libdvdread 5.0.3

We had just a small problem remaining with the streaming feature: during the read IFO phase, we had too many seeks and read of the files. That took way too much network resources, so we added a small cache in libdvdread 5.0.3, to work around this issue.

We just released libdvdread 5.0.3 that you can find on our FTP.

libdvdcss 1.3.99

Just a word on libdvdcss 1.3.99: it's a major cleanup release of the codebase, and there could be some regressions still lingering around.

So I'm waiting for regressions, and I will release 1.4.0 when the important issues are fixed!

5 August 2014

libdvdread, libdvdnav and libdvdcss releases

Dvdread and Dvdnav

libdvdread and libdvdnav have had a history of poor maintenance and numerous forks (and merges), with numerous lapse of time without active maintainers.

As a result, those libraries were in a sorry state, crashing a lot (crashing VLC more than libavcodec or filling up distribution BTS), while the DVD protections were getting stronger than ever...

Last year, after some work on libbluray, I decided to take over the maintenance of those DVD libraries. And here are the first releases of the new libdvdread, libdvdnav, coupled with a libdvdcss one...

Continue reading...