Date: Wed, 7 Mar 2018 18:04:38 +0000 From: Johannes Lundberg <johalun0@gmail.com> To: Jan Beich <jbeich@freebsd.org> Cc: chromium@freebsd.org Subject: Re: Google Widevine CDM? Message-ID: <CAECmPwtnujehDFme2BaR55Y7NDKNUQXD--vgCazoOCvQaAKpLg@mail.gmail.com> In-Reply-To: <371b-vmbn-wny@FreeBSD.org> References: <CAECmPwumcCtHxhE2g=Km=vLX0xW4SDzo7qHdFp=qt7=uy7BeGQ@mail.gmail.com> <371b-vmbn-wny@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi Jan Thanks for the detailed reply. I suppose having Google build a FreeBSD binary is too much to ask (if it's now that simple..)? Otherwise maybe the Foundation can work their magic. On Wed, Mar 7, 2018 at 5:15 PM, Jan Beich <jbeich@freebsd.org> wrote: > Johannes Lundberg <johalun0@gmail.com> writes: > > > Hi > > > > How far away is this (if even possible) so that we can enjoy Netflix on > > FreeBSD? :) > > Modern browsers use CDM adapter to make it look like a plugin: PPAPI on > Chrome, > GMP on Firefox. To use Linux plugins on FreeBSD it'd require patching IPC > to > invoke Linux version of plugin process (if linuxulator supports), proxying > just > libwidevinecdm.so (portable across Chromium/Firefox/Kodi) or proxying > entire > PPAPI (a la nspluginwrapper) to get Adobe Flash as well. > > # adapters are open source > https://cs.chromium.org/search/?q=ppapi_cdm_adapter # aka > libwidevinecdmadapter.so > https://searchfox.org/mozilla-central/search?q=widevine-adapter > # libwidevinecdm.so API > https://cs.chromium.org/chromium/src/media/cdm/api/ > > Another option is to ask FreeBSD Foundation to get Google to provide > source for > Widevine CDM under NDA, so the Foundation can build FreeBSD binary and then > distribute it to users (a la Diablo JDK). The code has only few > dependencies > (glib2, nss) and may not even require porting to FreeBSD. > > # for Chromium with enable_widevine=true, version 1.4.9.1070, built on > 2018-03-06 > $ fetch https://dl.google.com/linux/deb/pool/main/g/google-chrome- > stable/google-chrome-stable_65.0.3325.146-1_amd64.deb > $ tar xOf google-chrome-stable_65.0.3325.146-1_amd64.deb --include > data.tar.xz | > tar xvf - --include \*/libwidevinecdm.so --strip-components 4 > > or > > # for Firefox, built on 2017-08-03 > $ fetch https://dl.google.com/widevine-cdm/1.4.8.1008-linux-x64.zip > $ tar xvf 1.4.8.1008-linux-x64.zip > > $ readelf -d libwidevinecdm.so | fgrep NEEDED > 0x0000000000000001 (NEEDED) Shared library: > [libpthread.so.0] > 0x0000000000000001 (NEEDED) Shared library: [libm.so.6] > 0x0000000000000001 (NEEDED) Shared library: [libstdc++.so.6] > 0x0000000000000001 (NEEDED) Shared library: [libdl.so.2] > 0x0000000000000001 (NEEDED) Shared library: [librt.so.1] > 0x0000000000000001 (NEEDED) Shared library: > [libglib-2.0.so.0] > 0x0000000000000001 (NEEDED) Shared library: [libnss3.so] > 0x0000000000000001 (NEEDED) Shared library: [libnssutil3.so] > 0x0000000000000001 (NEEDED) Shared library: [libnspr4.so] > 0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1] > 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] > 0x0000000000000001 (NEEDED) Shared library: > [ld-linux-x86-64.so.2] > > $ nm --demangle --defined-only -D libwidevinecdm.so > 000000000008bf40 T CreateCdmInstance > 000000000008bf20 T DeinitializeCdmModule > 000000000008bfd0 T GetCdmVersion > 000000000008bde0 T InitializeCdmModule_4 > 0000000000069020 T VerifyCdmHost_0 > 0000000000000010 b tcmalloc::ThreadCache::threadlocal_heap_ > 00000000001be7bc T _fini > 0000000000014a58 T _init > 00000000000161c0 T calloc > 0000000000016110 T free > 0000000000016130 T malloc > 00000000000163a0 T posix_memalign > 0000000000016260 T realloc >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAECmPwtnujehDFme2BaR55Y7NDKNUQXD--vgCazoOCvQaAKpLg>