Re: chromium + foreign-cdm not working?

From: Jung-uk Kim <jkim_at_FreeBSD.org>
Date: Wed, 04 Oct 2023 23:33:39 UTC
On 23. 10. 3., jonc@chen.org.nz wrote:
> Hi,
> 
> I noticed the inclusion of foreign-cdm support to www/chromium, and decided to try this out. However, any effort to play content from Netflix results in a failure. I've got: linux_enable="YES" in /etc/rc.conf, and the port pulls in linux-base-c7 as well. The chromium logs from stdout all end with:
> 
> lib.cpp:80: info: CreateSessionAndGenerateRequest; promise_id = 3; session_type = 0; init_data_type = 0; init_data = 1bb11863200; init_data_size = 52
> worker.cpp:240: info: createSessionAndGenerateRequest
> *** Fatal uncaught kj::Exception: worker.cpp:546: unimplemented: CreateFileIO
> *** Fatal uncaught kj::Exception: capnp/rpc.c++:2778: disconnected: Peer disconnected.
> stack: 1bb18037f18 1bb1802c580 1bb1816a310
> [34603:-692588544:1004/072526.678703:ERROR:mojo_cdm.cc(118)] Remote CDM connection error: custom_reason=0, description=""
> 
> Any ideas on how to get this working?

It seems foreign-cdm is missing many important functions.  For example, 
Amazon Prime Video and Disney+ require GetStatusForPolicy and Netflix 
requires CreateFileIO.

https://github.com/shkhln/foreign-cdm/blob/760e440839f4456373460dcb61cfa8e36618d310/src/lib.cpp#L65
https://github.com/shkhln/foreign-cdm/blob/760e440839f4456373460dcb61cfa8e36618d310/src/worker.cpp#L545

Jung-uk Kim