More testing by adding debug. I've discovered that Ceton has some custom extensions to the DRI, including useful Diag parameters. There are also some issues that need to be raised with Ceton:
1. They use bps instead of kbps for FDC and Encoder service SVs.
2. There is some uncertainty over upper/lower case for Encoder parameter values (eg. Higher, Lower, Tuner, Aux).
3. FDC service GetFdcStatus action returns the PID list as CSV *decimal* values rather than *hex* values. This could also apply to the AddPid and RemovePid actions for FDC and Mux.
4. AVTransport GetPositionInfo relCount and absCount are set to NOT_IMPLEMENTED. These are meant to be i4 (32 bit integers), so those values are invalid. This is confirmed in the UPnP specs which state they should be set to the max value for i4.