51
VLC & Qt Jean-Baptiste Kempf Thursday, September 10, 2020

VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

  • Upload
    others

  • View
    31

  • Download
    0

Embed Size (px)

Citation preview

Page 1: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VLC & Qt Jean-Baptiste Kempf

Thursday, September 10, 2020

Page 2: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)
Page 3: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)
Page 4: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

Ecole Centrale Paris

Page 5: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN @ QtDD

5

Under VideoLAN's umbrella

● VLC

● VLMA (VLC automation)

● VLC Skin Designer

● VLMC (Non-linear video editor)

● DVBlast, Multicat (DVB streaming)

● libdvdcss (DVD CSS decryption)

● libdts, libdca (DTS decoding)

● libdvbpsi (MPEG-TS PSI encoding/decoding)

● libdvbcsa (DVB encryption decoding)

● libbluray, libaacs (BluRay playback)

● x262, x264, x265

Page 6: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN @ QtDD

6

Streaming Solution

Page 7: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

The Cone

Page 8: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VLC

Page 9: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)
Page 10: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

1.000.000 downloads per day

450.000.000 users on all platforms! *

3.500.000.000+downloads since the early days

Page 11: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)
Page 12: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VLC 0.6.1

Page 13: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)
Page 14: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)
Page 15: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VLC 0.9

Page 16: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)
Page 17: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN

VLC

Volunteers

Page 18: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN @ QtDD

18

Association VideoLAN

Creation➢ 2009, decided in the VDD '08

➢ Libre/Free Software and Multimedia

Members➣ VLC's core developers

➣ Important members

Supports➣ Hardware for development

➣ Travel, Servers, Legal

➣ VideoLAN Dev Days

Page 19: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN @ QtDD

19

Architecture

Small Core➣ libVLCCore

➣ Light

➣ Memory, Network and Threads handling

➣ Module loading

➣ Clock / Synchronization

Simple Multimedia Framework➣ LibVLC

➣ bindings for C++, C#, Objective-C, Java, Lua, Perl, Python, Node.JS

Page 20: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

libVLC

libVLCcore

VLC VLMC Applications

Interface

MKVOggMuxDemuxer

x264VorbisTheoraDecoder

FiltersAoutVout

Modules ModulesModulesModules

Page 21: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN @ QtDD

21Also C99, C++, Obj-C, ASM, Lua

C-Object (C--)

Page 22: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN @ QtDD

22

VNC & Remote Desktop

Page 23: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN @ QtDD

23

VLC's screen casting

Page 24: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN @ QtDD

24

Karaoke & MIDI

Page 25: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN @ QtDD

25

Console & headless

Page 26: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN @ QtDD

26

Libcaca

Page 27: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

Project start

Page 28: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)
Page 29: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN @ QtDD

29

3.0.0 Android TV

Page 30: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VLC - VR

VLC for iOS

Page 31: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)
Page 32: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)
Page 33: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

3.0.0

Page 34: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN @ QtDD

34

3.0 numbers

● Vetinari

● 18000 commits

– 3600 Android

– 2800 WinRT

– 2300 iOS

● A bit long to come (!)

● One very strong release

● Focus on Mobile convergence, as announced, previously

● libVLC, and libVLC++, and bindings

● 1900+ bugs closed

Page 35: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN @ QtDD

35

3.0 highlights

● HW decoding on by default everywhere

● 360 video and 3D Audio

● Network shares browsing (+passwords)

● Common codebase

● 10bits / 12bits / HDR support

● Audio HDMI rework passthrough

● HTTP/2

● Lots of new formats (adaptive, subtitles)

● OpenGL and Wayland (part 1)

● New subtitle rendering stack

● Chromecast

Page 36: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN @ QtDD

36

VLC - VR

36

VLC VR

Page 37: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN @ QtDD

37

VLC 4.0

Otto Chriek● New input/playlist

● Clock

● Media Library

● New Interface

● New video output architecture

● VR/3D

● Dropping old platforms

Page 38: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

A new UI

Page 39: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN @ QtDD

39

Why

Why a new UI?● New usages

– More audio playback

– More content oriented (Netflix & Co)

– More connected

● Convergence– Android, Android TV, iOS, tvOS

– Set-Top Box and Other cases without mouse

● More beautiful

● Biggest users feedback

Page 40: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN @ QtDD

40

UX

UX wchanges without too much backlash?

● But, We’re not Gnome● No usage regressions

● No feature removal

● Double use cases supported● Explorer/Dolphin/Finder playback→

● Directory of content playback→

● Hierarchy of access● Common actions are easier to access

● Complex actions are hidden under more clicks (3)

Page 41: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN @ QtDD

41

Difficult

Difficult

● Conflicting usages– Options

– Changes is difficult

● Multiple platforms– Composition Windows 7 10→

– Linux, Wayland/x11, CSD, SSD

● Qt

– Qt4 is outdated

– Qt5 and qml is quite slow

– Video and Qt don’t mix well

● Limited resources

Page 42: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN @ QtDD

42

Page 43: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN @ QtDD

43

Page 44: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN @ QtDD

44

Page 45: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN @ QtDD

45

Page 46: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN @ QtDD

46

Page 47: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN @ QtDD

47

Page 48: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)
Page 49: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)
Page 50: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)
Page 51: VLC & Qt · VLC VLMA (VLC automation) VLC Skin Designer VLMC (Non-linear video editor) DVBlast, Multicat (DVB streaming) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding)

VideoLAN @ QtDD

51

Questions?Thanks!

VLC