streaming error with https URLs (TLS-handshake error since migration to AndroidX libraries)
Since the Migration to AndroidX libraries in Oktober 2018, all vlc versions quit the playback with an TLS-handshake error when you try to play or pass streams over the SSL protocol. All previous nightlies till 28th September 2018 (last one that works) plays all https links well, on the same device and same LineageOS version.
Device: https://wiki.lineageos.org/devices/bacon
GPU: Adreno 330
OS: tested LineageOS 15.1 (Oreo 8.1) and LineageOS 16 (Pie 9)
last nightly without bug: VLC-Android-3.0.13-20180928-0244-ARMv7.apk (and all previous)
first nightly with bug: VLC-Android-3.0.13-20181026-0248-ARMv7.apk (and all following)
Reproducibility: Always when a https link is given, tried different SSL protocols
Samples: everything on https, like: https://sample-videos.com
logcat of current version 3.1.0-RC1 with bug:
03-05 13:47:19.339 W/Adreno-EGL(14682): <qeglDrvAPI_eglGetConfigAttrib:607>: EGL_BAD_ATTRIBUTE
03-05 13:47:19.340 D/vndksupport(14682): Loading /vendor/lib/hw/gralloc.msm8974.so from current namespace instead of sphal namespace.
03-05 13:47:22.004 W/Adreno-EGL(14682): <qeglDrvAPI_eglGetConfigAttrib:607>: EGL_BAD_ATTRIBUTE
03-05 13:47:22.009 D/vndksupport(14682): Loading /vendor/lib/hw/gralloc.msm8974.so from current namespace instead of sphal namespace.
03-05 13:47:24.414 W/Adreno-EGL(14682): <qeglDrvAPI_eglGetConfigAttrib:607>: EGL_BAD_ATTRIBUTE
03-05 13:47:24.415 D/vndksupport(14682): Loading /vendor/lib/hw/gralloc.msm8974.so from current namespace instead of sphal namespace.
03-05 13:47:24.509 W/Adreno-EGL(14682): <qeglDrvAPI_eglGetConfigAttrib:607>: EGL_BAD_ATTRIBUTE
03-05 13:47:24.510 D/vndksupport(14682): Loading /vendor/lib/hw/gralloc.msm8974.so from current namespace instead of sphal namespace.
03-05 13:47:25.765 D/VLC (14682): [90ac0b90/395a] libvlc generic: creating audio output
03-05 13:47:25.765 D/VLC (14682): [8ffcdf30/395a] libvlc audio output: looking for audio output module matching "android_audiotrack": 4 candidates
03-05 13:47:25.766 D/VLC (14682): [8ffcdf30/395a] libvlc audio output: using audio output module "android_audiotrack"
03-05 13:47:25.767 D/VLC (14682): [90ac0b90/395a] libvlc generic: keeping audio output
03-05 13:47:25.857 D/VLC (14682): [8ffcdf30/395a] libvlc audio output: restart requested (1)
03-05 13:47:25.866 D/VLC (14682): [8ffcdf30/395a] libvlc audio output: restart requested (3)
03-05 13:47:25.866 D/VLC (14682): [8ffcdf30/395a] libvlc audio output: selected device: pcm
03-05 13:47:25.868 D/VLC (14682): [90a64830/395a] libvlc input: Creating an input for 'big_buck_bunny_240p_1mb.mp4'
03-05 13:47:25.870 D/VLC (14682): [90a64830/3ba3] libvlc input: using timeshift granularity of 50 MiB
03-05 13:47:25.870 D/VLC (14682): [90a64830/3ba3] libvlc input: using default timeshift path
03-05 13:47:25.871 D/VLC (14682): [90a64830/3ba3] libvlc input: `https://sample-videos.com/video123/mp4/240/big_buck_bunny_240p_1mb.mp4' gives access `https' demux `any' path `sample-videos.com/video123/mp4/240/big_buck_bunny_240p_1mb.mp4'
03-05 13:47:25.875 D/VLC (14682): [8e908d50/3ba3] libvlc input source: creating demux: access='https' demux='any' location='sample-videos.com/video123/mp4/240/big_buck_bunny_240p_1mb.mp4' file='(null)'
03-05 13:47:25.875 D/VLC (14682): [8e908df0/3ba3] libvlc demux: looking for access_demux module matching "https": 6 candidates
03-05 13:47:25.875 D/VLC (14682): [8e908df0/3ba3] libvlc demux: no access_demux modules matched
03-05 13:47:25.875 D/VLC (14682): [95546ef0/3ba3] libvlc stream: creating access: https://sample-videos.com/video123/mp4/240/big_buck_bunny_240p_1mb.mp4
03-05 13:47:25.875 D/VLC (14682): [95546ef0/3ba3] libvlc stream: looking for access module matching "https": 23 candidates
03-05 13:47:25.884 D/VLC (14682): [90e94630/3ba3] libvlc tls client: looking for tls client module matching "any": 1 candidates
03-05 13:47:25.884 D/VLC (14682): [90e94630/3ba3] libvlc tls client: using GnuTLS version 3.5.19
03-05 13:47:25.963 D/VLC (14682): [90e94630/3ba3] libvlc tls client: loaded 137 trusted CAs from system
03-05 13:47:25.963 D/VLC (14682): [90e94630/3ba3] libvlc tls client: using tls client module "gnutls"
03-05 13:47:25.963 D/VLC (14682): [90e94630/3ba3] libvlc tls client: resolving sample-videos.com ...
03-05 13:47:25.968 D/VLC (14682): [90e94630/3ba3] libvlc tls client: TLS handshake: Error in the push function.
03-05 13:47:25.968 E/VLC (14682): [90e94630/3ba3] libvlc tls client: TLS handshake error: Error in the push function.
03-05 13:47:25.968 E/VLC (14682): [90e94630/3ba3] libvlc tls client: TLS session handshake error
03-05 13:47:25.968 E/VLC (14682): [90e94630/3ba3] libvlc tls client: connection error: Broken pipe
03-05 13:47:25.968 E/VLC (14682): [95546ef0/3ba3] libvlc stream: HTTP connection failure
03-05 13:47:25.970 I/rg.videolan.vl(14682): Background concurrent copying GC freed 98160(5MB) AllocSpace objects, 1(68KB) LOS objects, 49% free, 6MB/12MB, paused 677us total 180.280ms
03-05 13:47:25.978 D/VLC (14682): [95546ef0/3ba3] libvlc stream: no access modules matched
03-05 13:47:25.979 W/VLC/VLCApplication(14682): ErrorMessage VLC is unable to open the MRL 'https://sample-videos.com/video123/mp4/240/big_buck_bunny_240p_1mb.mp4'. Check the log for details.
03-05 13:47:25.980 W/VLC/PlaylistManager(14682): Warning: invalid next index, aborted !
03-05 13:47:25.981 D/VLC (14682): [90ac0cd0/395a] libvlc generic: creating audio output
03-05 13:47:25.981 D/VLC (14682): [8f811830/395a] libvlc audio output: looking for audio output module matching "android_audiotrack": 4 candidates
03-05 13:47:25.981 D/VLC (14682): [8f811830/395a] libvlc audio output: using audio output module "android_audiotrack"
03-05 13:47:25.981 D/VLC (14682): [90ac0cd0/395a] libvlc generic: keeping audio output
03-05 13:47:25.983 D/VLC (14682): [8ffcdf30/396d] libvlc audio output: removing module "android_audiotrack"
03-05 13:47:26.011 W/Adreno-EGL(14682): <qeglDrvAPI_eglGetConfigAttrib:607>: EGL_BAD_ATTRIBUTE
03-05 13:47:26.011 D/vndksupport(14682): Loading /vendor/lib/hw/gralloc.msm8974.so from current namespace instead of sphal namespace.
03-05 13:47:28.958 W/ActivityThread(14682): handleWindowVisibility: no activity for token android.os.BinderProxy@4c4f03f
03-05 13:47:28.990 W/Adreno-EGL(14682): <qeglDrvAPI_eglGetConfigAttrib:607>: EGL_BAD_ATTRIBUTE
03-05 13:47:28.991 D/vndksupport(14682): Loading /vendor/lib/hw/gralloc.msm8974.so from current namespace instead of sphal namespace.
logcat from working version 3.0.13-20180921-0238-ARMv7 (all pre end September 2018 builds):
01-31 13:32:26.216 W/Adreno-EGL(10676): <qeglDrvAPI_eglGetConfigAttrib:607>: EGL_BAD_ATTRIBUTE
01-31 13:32:26.218 D/vndksupport(10676): Loading /vendor/lib/hw/gralloc.msm8974.so from current namespace instead of sphal namespace.
01-31 13:32:26.293 D/OpenGLRenderer(10676): endAllActiveAnimators on 0x8a5dd380 (RippleDrawable) with handle 0x8ca15b50
01-31 13:32:29.376 W/Adreno-EGL(10676): <qeglDrvAPI_eglGetConfigAttrib:607>: EGL_BAD_ATTRIBUTE
01-31 13:32:29.378 D/vndksupport(10676): Loading /vendor/lib/hw/gralloc.msm8974.so from current namespace instead of sphal namespace.
01-31 13:32:30.968 W/Adreno-EGL(10676): <qeglDrvAPI_eglGetConfigAttrib:607>: EGL_BAD_ATTRIBUTE
01-31 13:32:30.969 D/vndksupport(10676): Loading /vendor/lib/hw/gralloc.msm8974.so from current namespace instead of sphal namespace.
01-31 13:32:31.301 W/Adreno-EGL(10676): <qeglDrvAPI_eglGetConfigAttrib:607>: EGL_BAD_ATTRIBUTE
01-31 13:32:31.303 D/vndksupport(10676): Loading /vendor/lib/hw/gralloc.msm8974.so from current namespace instead of sphal namespace.
01-31 13:32:32.073 D/SelectionMetricsLogger(10676): Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
01-31 13:32:32.698 D/VLC (10676): [89b23c50/29b4] libvlc generic: creating audio output
01-31 13:32:32.698 D/VLC (10676): [89df6cb0/29b4] libvlc audio output: looking for audio output module matching "android_audiotrack": 4 candidates
01-31 13:32:32.699 D/VLC (10676): [89df6cb0/29b4] libvlc audio output: using audio output module "android_audiotrack"
01-31 13:32:32.700 D/VLC (10676): [89b23c50/29b4] libvlc generic: keeping audio output
01-31 13:32:32.710 D/VLC (10676): [89df6cb0/29b4] libvlc audio output: restart requested (3)
01-31 13:32:32.710 D/VLC (10676): [89df6cb0/29b4] libvlc audio output: selected device: pcm
01-31 13:32:32.712 D/VLC (10676): [89f57830/29b4] libvlc input: Creating an input for 'big_buck_bunny_240p_1mb.mp4'
01-31 13:32:32.713 D/VLC (10676): [89f57830/2e15] libvlc input: using timeshift granularity of 50 MiB
01-31 13:32:32.713 D/VLC (10676): [89f57830/2e15] libvlc input: using default timeshift path
01-31 13:32:32.714 D/VLC (10676): [89f57830/2e15] libvlc input: `https://sample-videos.com/video123/mp4/240/big_buck_bunny_240p_1mb.mp4' gives access `https' demux `any' path `sample-videos.com/video123/mp4/240/big_buck_bunny_240p_1mb.mp4'
01-31 13:32:32.714 D/VLC (10676): [a0ce5210/2e15] libvlc input source: creating demux: access='https' demux='any' location='sample-videos.com/video123/mp4/240/big_buck_bunny_240p_1mb.mp4' file='(null)'
01-31 13:32:32.714 D/VLC (10676): [a0ce93b0/2e15] libvlc demux: looking for access_demux module matching "https": 6 candidates
01-31 13:32:32.714 D/VLC (10676): [a0ce93b0/2e15] libvlc demux: no access_demux modules matched
01-31 13:32:32.714 D/VLC (10676): [a0ca52f0/2e15] libvlc stream: creating access: https://sample-videos.com/video123/mp4/240/big_buck_bunny_240p_1mb.mp4
01-31 13:32:32.714 D/VLC (10676): [a0ca52f0/2e15] libvlc stream: looking for access module matching "https": 20 candidates
01-31 13:32:32.714 D/VLC (10676): [a0cb1d90/2e15] libvlc tls client: looking for tls client module matching "any": 1 candidates
01-31 13:32:32.714 D/VLC (10676): [a0cb1d90/2e15] libvlc tls client: using GnuTLS version 3.5.18
01-31 13:32:32.724 I/VLC/medialibrary(10676): ../src/MediaLibrary.cpp:396 virtual MediaPtr medialibrary::MediaLibrary::media(const std::string &) const Fetching media from mrl: https://sample-videos.com/video123/mp4/240/big_buck_bunny_240p_1mb.mp4
01-31 13:32:32.753 W/VLC/medialibrary(10676): ../src/MediaLibrary.cpp:406 virtual MediaPtr medialibrary::MediaLibrary::media(const std::string &) const Failed to create FS factory for path https://sample-videos.com/video123/mp4/240/big_buck_bunny_240p_1mb.mp4
01-31 13:32:32.757 I/VLC/medialibrary(10676): ../src/MediaLibrary.cpp:396 virtual MediaPtr medialibrary::MediaLibrary::media(const std::string &) const Fetching media from mrl: https://sample-videos.com/video123/mp4/240/big_buck_bunny_240p_1mb.mp4
01-31 13:32:32.807 I/VLC/medialibrary(10676): ../src/MediaLibrary.cpp:400 virtual MediaPtr medialibrary::MediaLibrary::media(const std::string &) const Found external media: https://sample-videos.com/video123/mp4/240/big_buck_bunny_240p_1mb.mp4
01-31 13:32:32.809 I/VLC/PlaylistManager(10676): Media.Event.MetaChanged: 12
01-31 13:32:32.810 I/VLC/PlaylistManager(10676): Media.Event.MetaChanged: 12
01-31 13:32:32.820 D/VLC (10676): [a0cb1d90/2e15] libvlc tls client: loaded 135 trusted CAs from system
01-31 13:32:32.821 D/VLC (10676): [a0cb1d90/2e15] libvlc tls client: using tls client module "gnutls"
01-31 13:32:32.821 D/VLC (10676): [a0cb1d90/2e15] libvlc tls client: resolving sample-videos.com ...
01-31 13:32:32.974 D/VLC (10676): [a0cb1d90/2e15] libvlc tls client: TLS handshake: Resource temporarily unavailable, try again.
01-31 13:32:33.105 D/VLC (10676): [a0cb1d90/2e15] libvlc tls client: TLS handshake: Resource temporarily unavailable, try again.
01-31 13:32:33.115 D/VLC (10676): [a0cb1d90/2e15] libvlc tls client: TLS handshake: Success.
01-31 13:32:33.115 D/VLC (10676): [a0cb1d90/2e15] libvlc tls client: - safe renegotiation (RFC5746) enabled
01-31 13:32:33.115 D/VLC (10676): [a0cb1d90/2e15] libvlc tls client: - false start (RFC7918) enabled
01-31 13:32:33.124 D/VLC (10676): [a0ca52f0/2e15] http stream: outgoing request:
01-31 13:32:33.124 D/VLC (10676): GET /video123/mp4/240/big_buck_bunny_240p_1mb.mp4 HTTP/1.1
01-31 13:32:33.124 D/VLC (10676): Host: sample-videos.com
01-31 13:32:33.124 D/VLC (10676): Accept: */*
01-31 13:32:33.124 D/VLC (10676): Accept-Language: en_US
01-31 13:32:33.124 D/VLC (10676): User-Agent: VLC/3.0.5 LibVLC/3.0.5
01-31 13:32:33.124 D/VLC (10676): Range: bytes=0-
01-31 13:32:33.124 D/VLC (10676):
01-31 13:32:33.258 D/VLC (10676): [a0ca52f0/2e15] http stream: incoming response:
01-31 13:32:33.258 D/VLC (10676): HTTP/1.1 206 Partial Content
01-31 13:32:33.258 D/VLC (10676): Date: Thu, 31 Jan 2019 12:36:36 GMT
01-31 13:32:33.258 D/VLC (10676): Server: Apache
01-31 13:32:33.258 D/VLC (10676): Last-Modified: Fri, 17 Jun 2016 17:30:33 GMT
01-31 13:32:33.258 D/VLC (10676): Accept-Ranges: bytes
01-31 13:32:33.258 D/VLC (10676): Content-Length: 1053651
01-31 13:32:33.258 D/VLC (10676): Content-Range: bytes 0-1053650/1053651
01-31 13:32:33.258 D/VLC (10676): Content-Type: video/mp4
01-31 13:32:33.258 D/VLC (10676):