port vlc to mobile os · full audio player media library & indexing audio background service...
TRANSCRIPT
![Page 1: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/1.jpg)
VideoLAN
Port VLC to Mobile OS
Jean-Baptiste Kempf
mercredi 14 janvier 2015
![Page 2: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/2.jpg)
![Page 3: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/3.jpg)
![Page 4: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/4.jpg)
Ecole Centrale Paris
![Page 5: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/5.jpg)
The Cone
![Page 6: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/6.jpg)
VLC
![Page 7: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/7.jpg)
![Page 8: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/8.jpg)
1 every 6 MacTop 15 Windows
900 000 per day
More than 1.5B over VLC lifetime
Most used French software
![Page 9: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/9.jpg)
libVLC
libVLCcore
VLC VLMC Applications
Interface
MKVOggMuxDemuxer
x264VorbisTheoraDecoder
FiltersAoutVout
Modules ModulesModulesModules
![Page 10: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/10.jpg)
14 janv. 2015 Jean-Baptiste Kempf 10
What we need to port VLC➢ Compiler
➢ Libc➢ Files, Unicode
➢ Threads➢ + cancellation
➢ Network➢ BSD sockets
➢ Modules➢ dlopen
➢ Audio output➢ Delay computation
➢ Video output➢ YUV
➢ Interfaces
Requirements
![Page 11: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/11.jpg)
14 janv. 2015 Jean-Baptiste Kempf 11
iOS➢ Technically, iOS is great :
➢ Same OS than OS X
➢ But
➢ Same bugs about pthread/signal➢ Static modules only➢ Multicast
➢ AudioUnit vs AuHal➢ Stereo only
➢ OpenGL output➢ Limitation in YUV → RGB shaders
iOS
![Page 12: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/12.jpg)
14 janv. 2015 Jean-Baptiste Kempf 12
Android
![Page 13: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/13.jpg)
14 janv. 2015 Jean-Baptiste Kempf 13
100 % Open Source
➢ 2.1+
Full video player
➢ All codecs, formats, protocols
➢ Hardware and multicore decoding
Full audio player
➢ Media library & Indexing
➢ Audio Background service
VLC for Android
![Page 14: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/14.jpg)
14 janv. 2015 Jean-Baptiste Kempf 14
Technically, Android is bad,
and it's a mess (android-x platforms vs SDK versions)
➢ Shared Modules
➢ limits of .so shared → static like iOS➢ Bionic is broken
➢ pthread rwlock_t → AOSP android-11 + workarounds
➢ wchar_t functions → AOSP android-14
➢ off_t 32bits… → #define
➢ multicast → disabled
Port to Android
![Page 15: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/15.jpg)
14 janv. 2015 Jean-Baptiste Kempf 15
Android Multimedia
![Page 16: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/16.jpg)
14 janv. 2015 Jean-Baptiste Kempf 16
Audio
➢ AudioTrack Java➢ Slow
➢ AudioTrack native➢ Missing delay computation
➢ OpenSL ES➢ Buggy
➢ AudioFlinger➢ Not portable
Port to Android : Audio
![Page 17: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/17.jpg)
14 janv. 2015 Jean-Baptiste Kempf 17
Video
➢ Android 2.1, 2.2➢ SurfaceFlinger dlopen➢ Using Android-9 headers➢ RGB
➢ Android 2.3+➢ Android NativeWindow➢ 1 surface only, no rotation➢ Android NativeWindowPriv
➢ anw.14.so➢ RGB vs YUV➢ Opaque
➢ OpenGL ES➢ Buggy EGL
Port to Android : Video
![Page 18: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/18.jpg)
14 janv. 2015 Jean-Baptiste Kempf 18
Codec
➢ Android 2.3➢ OMX + Binder = iOMX
➢ Android 3.0+
➢ iOMX + gralloc➢ Android 4.1+
➢ MediaCodec Java➢ Broken
➢ Android 4.3+
➢ MediaCodec Java➢ Software and hardware rendering
Port to Android : Codecs
![Page 19: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/19.jpg)
14 janv. 2015 Jean-Baptiste Kempf 19
Project start
![Page 20: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/20.jpg)
14 janv. 2015 Jean-Baptiste Kempf 20
Release in July 2012
➣ Beta on Google Play
➣ Limited countries
➣ ARMv7 only
➣ Numerous crashes
➣ Good feedback
➣ GPLv3
Release
![Page 21: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/21.jpg)
14 janv. 2015 Jean-Baptiste Kempf 21
![Page 22: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/22.jpg)
14 janv. 2015 Jean-Baptiste Kempf 22
Video
![Page 23: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/23.jpg)
14 janv. 2015 Jean-Baptiste Kempf 23
Evolution
![Page 24: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/24.jpg)
14 janv. 2015 Jean-Baptiste Kempf 24
Evolution
![Page 25: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/25.jpg)
14 janv. 2015 Jean-Baptiste Kempf 25
Audio v2
![Page 26: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/26.jpg)
14 janv. 2015 Jean-Baptiste Kempf 26
Video v2
![Page 27: Port VLC to Mobile OS · Full audio player Media library & Indexing Audio Background service VLC for Android. 14 janv. 2015 Jean-Baptiste Kempf 14 Technically, Android is bad, and](https://reader036.vdocuments.site/reader036/viewer/2022071103/5fdd05dd5de951753f0d6d42/html5/thumbnails/27.jpg)
14 janv. 2015 Jean-Baptiste Kempf 27
Port to WinRT➢ Compiler
➢ Libc➢ New access module, limited
➢ Threads➢ 50ms wake-up
➢ Network➢ WinRT sockets
➢ Modules➢ dlopen limited
➢ Audio output➢ Xaudio broken for delay
➢ Video output➢ Direct2D (RGB only)
➢ Interfaces in C#
Requirements