Hi,
I'm working on a custom tv_input HAL module, and I can't figure out how to implement correctly a TvInputService/HardwareSession to control it.
My tv_input module is made for controlling a DVB tuner and using the TV_STREAM_TYPE_INDEPENDENT_VIDEO_SOURCE/sideband feature.
On the HAL side, my module declares a device with its device_id and type (TV_INPUT_TYPE_TUNER), and a tv_stream_config_t with a stream_id and TV_STREAM_TYPE_INDEPENDENT_VIDEO_SOURCE type.
On the Java side, I create a class extending TvInputService which overrides onHardwareAdded() for returning a TvInputInfo based on the TvInputHardwareInfo, and creating a HardwareSession in the onCreateSession() method. The HardwareSession returns (in getHardwareInputId()) the hardware input id detected by TvInputHal.
When I enable debug in logs in all the TV framework classes, I see TvInputService complaining about my input hardware id is invalid since the input is not a passthrough.
And if I change the tv input type of the HAL module to TV_INPUT_TYPE_OTHER_HARDWARE, createSessionInternalLocked() in TvInputManagerService is called in loop, which leads to a system restart.
Do you have any suggestion or idea about that?
Best regards,
Christophe.