Same applies to Kodi of course. You won't get DTS-HD or E-AC3 (DD+) out of it. DTS-HD streams usually have a DTS Core which Kodi/ffmpeg can extract and output via HDMI-ARC. As for E-AC3, Kodi 16 can't output it at all and will decode it and output as PCM 2.0, Kodi 17 is able to hand E-AC3 to the TV which then does the DD 5.1 downconversion.
*****.... i would say that is a matter of software, what the hell should we be buying a nvidia shield (+100) having an android on our tv? doesnt make any sense cut down capabilities of a smart tv so we need to buy another device to make our tv smart enough
As for HD/3D audio, it might be a hardware limitation as the HDMI transmitter might internally be hooked up to the SoC via S/PDIF connection for audio via HDMI-ARC, which indeed is limited in bandwidth...
I have a Sony TV and a big Teufel soundbar and subwoofer. I am perfectly fine with the ARC audio formats. True HD has an interleaved AC3 stream, DTS-HD has DTS Core and E-AC3 can be downconverted to AC3. So I would be perfectly fine with AC3 and DTS. If you really want more, you have no other choice but to go with another box, or wait for TVs which support eARC.
I have been using an ODROID-C2 with LibreELEC for quite a while, but was frustrated by the lack of Amazon Prime Video and Netflix support. I was also using a wireless keyboard/mouse to control it, which led to the disapproval from the spouse, so I wanted a proper TV remote control to control both the TV (power/volume) and the ODROID-C2.
This procedure is to install not only Kodi, but also Youtube TV, Amazon Prime Video, Netflix and some individual Channel Apps. It also helps with installing apps from the Google Playstore. Although Netflix would not install from the Playstore one can download the APK and install that. The Remote Control configuration took the most time, because I could not find a single online tutorial detailed the entire process. Hopefully this article will help others with that.
The first step is to install Android on a Flash Card. Android for C2 can be downloaded from At the time of this article, v3.5 is the latest version, and that is what I used. Download the image, uncompress it and install it to the flash card using Etcher, which is available for many operatins systems, or win32diskimager, which runs on Microsoft Windows, or the Linux dd utility. More information may be found at
Install the flash card into the ODROID-C2 plugged into a TV via HDMI along with a USB keyboard/mouse and power on. It takes a few minutes, but eventually you should end up with a shiny new Android system, and the mouse should allow you to navigate.
The first step after Android is running is to adjust the overscan on the screen. I found on my TV that all the edges were missing. I could not see the notification bar at the top and the soft-keys at the bottom were mostly truncated. This is easily fixed by using the "ODROID Utility" app. Through this utility you can set the resolution (the default "autodetect" also works for me), use the arrows to adjust overscan and turn off the blue LED, which blinks to distraction. After adjusting the settings in this app, you must click "Apply and Reboot", which will reboot the system.
Selecting Download will pull a ZIP file into the Download folder. This ZIP file needs to be treated as an Android Update, and hence is loaded using the same Odroid Utility App used to update the Overscan and Blue LED above. Run the Odroid Utility app, and click on the upper right corner (three dots). The menu present will have an option "Package install from storage" which is clicked. On the next page, choose "File Manager" and navigate to the Download folder where you will select the open_gapps ZIP file. You will be prompted to proceed, after which time the odroid will reboot and the Google Apps will be installed.
I downloaded that APK and installed it with FileManager. It runs well with the remote control. There are newer versions of the Netflix APKs available from However, when I downloaded a couple of them, I found they were not remote-control friendly. It is unclear why.
Configuring the apps is the same on all platforms. My Kodi installation communicates with a MythTV backend on another server which does all the LiveTV recording and manages my Movie collection. Finding the MythTV PVR addon was a bit of a challenge in Krypton. It is already in Addons->My Addons, but in a disabled state.
I use an ODROID-C2 TV box with some old TVs that I inherited, and the original remotes were lost long ago. However, I have lying around some old Dish Network 3.0 IR PVR remote controls. These can be had on Ebay for under $10. In my opinion these are good sturdy remotes with good tactile feel and enough buttons that I should be able to do what I need. They are also "programmable" in that they come with a list of TV and other Device Codes which cause them to emulate the other manufacturer's remotes.
It was pretty easy to find the code to control my old TV. Power, Volume Up, Volume Down and Mute are all I really need. I thought I wanted "Input select" to work so that I can change HDMI ports, but nothing I did could get that remote button to work. Fortunately, the ODROID-C2 is the only input device I have, so no switching is needed. If I ever add a second HDMI device, it will probably require a revisit to the research process, to find a viable solution.
Armed with a list of a few hundred codes, I sought out a remote control device code that would send NEC codes for all the buttons. Frustration set in when I found that many devices supported in the Dish Network remote control would only send codes for a limited set of buttons. I had a really hard time finding one that would send codes on the 5 navigation buttons (up, down, left, right and center). Many codes would facilitate only 3 options (up/down/center or left/right/center), or 4 or 5 of the options. I finally found a Memorex DVD player (code 709) which offered all 5 navigation directions and all the number buttons on the remote. It would not send the '*', '#', Volume or Mute codes. The Volume and Mute codes are relegated to the TV code and so I can only control the TV Volume using the buttons, not the Android Volume.
Since the "number keys" are mostly useless for a TV box (except for channel numbers), I re-purposed them in the remote.conf to perform operations such as the Android Home, Android Volume Up/Down/Mute and Fast Forward/Reverse.
In my case, this is where I started searching the Dish Network 3.0 IR device codes looking for a suitable device. I set the device code in the remote, and hit the buttons to see if I got responses in dmesg. I tried many many codes until I was close enough to my requirements with the Memorex DVD code 709, which transmits remote type 0xff00.
This is where the fun begins. You need to press every button and see what code it sends, and note that. Then you need to figure out what you want it to do and find the Android action in the Vendor_0001_Product_0001.kl file that corresponds to the action you want the button to do. Finally, you need to get the Linux KEYCODE from Vendor_0001_Product_0001.kl that will be used to tie everything together.
Now glue everything together by updating remote.conf in the key_begin/key_end section and possibly in the repeat_key_begin/repeat_key_end section. I do not rely on key repeats, so my repeat_key_begin/repeat_key_end section is empty. Also, I am not relying on the mouse_begin/mouse_end section either.
Make a backup of Vendor_0001_Product_0001.kl and remote.conf by copying them to /storage/emulated/0/Download and make sure they are saved in the /system filesystem. If you upgrade Android, you may find that these files need restoration or your remote will not work anymore. Hope this is useful to at least one person. I will probably need to dig it up in the future so I can remember what I did. For comments, questions and suggestions, please visit the original forum post at
Last week, TI Invited me out to their Dallas, Texas headquarters as part of an editors day. There they showed and talked about a number of exciting projects, including their WiLink combo WLAN, GPS, BT, and FM solutions, MSP430 microprocessors, their C66x multicore DSP, and of course more information on OMAP5. If I had to pick a highlight however, it was being first to see Netflix HD playing back on a real live Android 2.3 device, in this case TI's Blaze development platform with an OMAP4430 SoC inside.
Back when Netflix brought an official playback client to Android, modders were quick to discover that playback could be enabled on unapproved devices simply by modifying build.prop. What it boiled down to was that you could enable Netflix playback on unapproved devices merely by masquerading as an approved one. Further, the list of approved devices didn't clearly delineate any specific SoC. At the time, this made things confusing - it seemed as though Netflix was not in fact using any hardware specific DRM. Turns out they really weren't.
There are two different levels of Netflix certification, and every device has to go through it individually. The first level is essentially a playback test - call it an anti-slideshow benchmark. If the device plays back SD Netflix streams with acceptable performance, the device passes, is certified, and thus granted access to SD streams. This is the level that devices on Android are at right now, and the reason why it's just a matter of masquerading as another to playback simple content. That's also why it works across so many different SoCs.
The second level is for HD content, Netflix's 'premium' level. Here, Netflix is forced to have a much more rigorous set of requirements so that it can fulfill contractual agreements with its content parners. To playback HD content, the entire end-to-end chain must be DRM-enabled, at no point in the playback datapath can the video stream be unprotected. That means decoded and uncompressed frames, audio, and device secrets must only exist in 'firewalled,' protected memory that the OS can't get access to, the decoder can only exist in a trusted execution environment, and HDCP must be used for the stream to be output over HDMI. Netflix obviously takes its HD content protection much more seriously so the entire 720p or 1080p H.264 video can't simply be dumped to an SD card by watching memory. What it boils down to is that Netflix requires Microsoft PlayReady DRM compliance across every tier of hardware before it will allow HD streams to playback.
90f70e40cf