Top Banner
VLC & Qt Jean-Baptiste Kempf Thursday, September 10, 2020
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)

Jan 01, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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