Keyword - OS X

Entries feed - Comments feed

28 September 2015

Last weeks in VideoLAN - 19

19th week of VideoLAN reports

Because of the VideoLAN Dev Days that happened last week-end, here is a dual-week report of what has happened in the VideoLAN community and VLC development, during the past 2 weeks. :D

It explains also why there may not be as many commits as we usual have. This report is also shorter because I don't have enough time to detail as much as I'd like.

VDD 2015

The VideoLAN Dev Days 2015 were a huge success, with numerous attendees and quite a few nice conferences.

I'll do a longer post about it, but here is a nice picture during one of our meetings!

Features and changes

VLC

We've finally merge the work from outreachy on the TTML subtitles. Largely reworked by Hugo, this makes it supports most of the styles from the TTML specification.
We still need a bit of work to merge multiple styles.

François worked on the subtitles support for DASH and HLS, because we had quite a few issues with subtitles streaming input; be careful, it is not ready yet. :)
He also worked on lazy-loading of the playlists, mp4 seeking.

David found a work-around for AirPlay output that was stuttering, on OS X.

We've had large refactoring on the OS X interface, to continue the cleaning, that you've seen in the past weeks.

Rémi worked on the avcodec direct-rendering support, to always assume edge-emulation; and on simplifications of the hardware decoding setup in this module.

This work introduced 2 calls in the core: decoder_GetPicture() and picture_pool_Wait(). The first can be used instead of decoder_NewPicture() when the decoder manages correctly the format updates. The latter is a variant of picture_pool_Get() that sleeps until a picture is available.
This could be useful for the future asynchronous decoding feature...

Finally, we've had fixes on the Mac OS X advanced preferences, the iOS vout, the Direct3D11 video output, a 2.2.0 WMV regression, videotooolbox crashes.

iOS

The iOS port has been quite busy, starting by fixes for iOS 9.

We did a release numbered 2.6.5 of VLC for iOS.

The MediaLibraryKit project was updated for iOS 9 and for tvOS.

We've also had fixes for WatchOS, for iOS 9 searches, for the database indexing, and thumbnails.

We've also disabled the search if the folder is hidden behind a passcode, to avoid embarrassing results. :)

WinRT

We did a 1.7.0 release for Windows Phone, Windows RT and Windows 8.1/10.

This is major WinRT release, adding the hardware decoding, changing a lot of the internal, and improving the interface to match Windows 10 look.

We've updated the projects to support both a Universal Windows Project and a Windows 8.1 project.

We've fixed a few bugs from this 1.7.0 release, notably crashes.

Android

After the 1.5.90 release, things have been quiet on the Android front.

We've had translations updates, fixes for crashes, fixes for last playlist resuming, playlist&random states on resume and a few other small bugs.

Finally, yours truly fixed a very important bug, where we exported more than 14000 symbols in libvlcjni.so instead of 200. This will make the binary quite smaller and faster to load.

14 September 2015

This week in VideoLAN - 18

18th week of VideoLAN reports

Here is the weekly report of what has happened in the VideoLAN community and VLC development, during the past week.

Features and changes

VLC

The week started with the addition of a long-asked feature in VLC: hotkeys to increase and decrease the size of the subtitles, without going to preferences or restarting VLC.

We then had several fixes for the Bluray support and mostly BD-J menus, that should now work correctly in VLC.

The skins2 module was fixed for some windows managers like Gnome 3 and Unity that could sometimes keep the taskbar above VLC.

The big mutex that we had for Android decoders and video output was removed by Thomas, after a big fight.

Thomas also modified the core loading of decoders and packetizers: we now always packetize. This is done in preparation of the asynchronous decoding that we'd like to merge inside VLC.

François rewrote some parts of the mp4 demuxer related to seeking to improve fragmented MP4 and adaptive streaming support.

We've also had numerous fixes and improvements for the Direct3D outputs, but also for the OS X code signatures, SFTP input, libVLC playlists, Video Toolbox and subtitles handling.

Oh, and one more thing... we started to prepare VLC for tvOS. :)

Android

This week was mostly a preparation for the next major release.

What we mostly did was fixing bugs, notably in audio playback, in cover art management, chapters display and in the bitmap cache.

We largely modified our Android Thumbnailer to fix regressions and support DVD thumbnails.

We also tweaked a bit the interface for advanced options and started to load asynchronously the images for the video list.

Finally we updated all the translations and pushed a version numbered 1.5.90 on the Play Store, in beta.

iOS

On iOS, we prepared and pushed the 2.6.5 release, fixing a couple of regressions, notably the handling of the vlc:// protocol.

The master was updated to match the latest libVLC 3.0.0 which we will base 2.7.0 on.

We also fixed a few bugs for this next version.

Finally, some code to build VLCKit for the new tvOS was merged.
It's very early though, but we have video playback! :)

tvOS simulator screenshot

WinRT

Last week was a calm week, mostly on the UI side, for WinRT.

We've spent our week fixing regressions and issue in the thumbnailer, in the video output and fixing crashes.

No new feature, for once :)

That's all for this week! See you next! Have fun!

8 September 2015

This week in VideoLAN - 17

17th week of VideoLAN reports

As this now almost an habit, here is the weekly report of what has happened in the VideoLAN community and VLC development, during the past week.

You'll see that this week has been busy on VLC's core and the WinRT port.

Features and changes

VLC

The week started by adding the support for the newest versions of libavcodec/libavformat, who deprecate a few API and symbols that we were using. VLC 3.0.0 will be fully compatible with those releases.

access and stream

We then had quite a few modifications in the size reported by the access modules, that allowed to introduce a new helper stream_GetSize() that correctly reports unknown file sizes.
Related to this, the stream_Read() and stream_Peek() functions now warn if one doesn't check the results; and a stream_Tell function was exposed through libvlccore.

The stream filter code was also streamlined to have a proper seek function, instead of a call to the Control() one and stream_Seek() was exposed to modules too.

The STREAM_IS_DIRECTORY Control call was improved, to behave similarly to the GET_SIZE one, and a ACCESS_IS_DIRECTORY was introduced in the same way.

All those changes are here to clean the VLC input and notably the stream filters, that were abused in their design. This is important to ensure that VLC always behaves in the same way, for all inputs, but also to correctly support all weird cases (a zip on a SMB share, containing an MKV with WMV in it).

We also removed the byte offset from seekpoints/chapters. Seeking is now only time-based.

the rest

The block allocation was reworked too: we remove block shrinkage feature and we added a block_TryRealloc() function.

Continuing the work of last weeks, the work on Video Toolbox acceleration for iOS and OS X was finished, mostly by fixing the memory management of frames.

The MediaCodec for Android code was modified to prepare the work on asynchronous decoding, by reworking the support for MPEG-4 video and allow late opening of the module.

The prefetch module was modified to support buffering while the input is paused.

Finally, the calls to the deprecated NSAutoreleasePool function were removed from all the OS X code; we removed the deprecated GnomeVFS module; we fixed issues with videos that have an alpha plane; and, of course, we've improved the HLS and DASH modules.

Android

As already said, a large part of the work for Android was to improve again the decoding speed, which is a focus of us since quite a few weeks.

We fixed numerous issues for the Android TV port, but also in the playlist management, and the video lifecycle. Those issues were hard to track down, but they should be well fixed :)

The code of advanced options during playback was simplified and a corner-case fixed.

Finally, we've started to integrate the new DataBinding API into the application: this code is not merged yet, though. Maybe next week.

iOS

As for Android, most of the iOS work was done on the hardware decoders.

However, a bit of work was done on VLCKit to fix memory leaks and to rebase the work on top of the normal VLC code.

WinRT

Once again, the WinRT port was the more active, with almost 100 commits in a week.

Most of the core changes were to solve deadlocks, notably after using the hardware decoders, and the Thumbnailer.

The interface was updated to fix alignment bugs and issues reported by numerous users.

A large work was done on gestures and keyboard shortcuts to support more of them!

Finally, the audio and subtitles synchronization was implemented to match the desktop and the iOS and Android versions!

A new release should be expected soon!

Conferences

I was invited to speak at the Techniche conference about VLC, VideoLAN and the rest :)

Techniche

That's all for this week! See you next! Have fun!

17 August 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.

4 August 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.

29 July 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!

- page 3 of 5 -