I was a little out of date.
The front end for the mobile version uses Panel. The Android TV version required a java interface, to work with the remotes and support the format better. You can see some screenshots on the Android TV Play Store.
The Android TV version is still very early in development. It does not use madVR. It will eventually use ExoPlayer for video.
Exoplayer has been implemented.
26.0.21 (1/28/2020)
1. Fixed: (Android TV) Load library was calling the wrong activity.
2. NEW: (Android TV) Implemented ExoPlayer for video playback.
Also.
For now, yes. ExoPlayer uses Android's decoders. Android doesn't have decoders for AC3 or DTS. We will probably enable them later by using FFmpeg extensions.
There are other limitations.
It depends on what kind of content you're sending to the device. If you're trying to play video to an Android TV device as a DLNA renderer, try configuring it not to convert video. I tried playing some h265 videos to a Shield, and they were getting transcoded to mpeg-2, which ExoPlayer wasn't able to play. It was able to play the original format fine.
I'm not even sure if JRiver for Android is using Exoplayer2, or just Exoplayer. I thought I read somewhere it used the original Exoplayer, which is a little less capable.
So the answer to your question is what thecrow posted, probably.
But only Brad really knows, as Exoplayer is extensible so playback formats can be added to expand its capabilities. What gets added, or has been added, only JRiver knows.