Jump to content

“Always” audio setting in new Oreo update for Xiaomi Mi Box


Richard Branches
 Share

Go to solution Solved by CBers,

Recommended Posts

Richard Branches

On June 25 2018 I received the most awaited Android Oreo update to the Xiaomi Mi Box, which brought enhancements and new features, one of this features is an audio setting called “Always”, an option to force the device to pass-through digital audio like Dolby Digital and DTS, useful for AV receivers with ONLY optical audio inputs:

 

5b34518cafa1e_Screenshot1.jpg

 

This setting works perfect because I was able to hear legacy Dolby Digital and DTS audio from the optical audio port but with Dolby Digital Plus I got no sound, so this may be by one of the following reasons:
 
1) The device doesn’t have a Dolby Audio license to transcode or convert the Dolby Digital Plus bitstream into legacy Dolby Digital, despite the Dolby Audio logo is advertised on the package and at the first boot screen of the device.
 
2) The transcoding or conversion is supported by the device but Emby also needs to support this new implementation in order to work as expected, this is similar to Windows 10 which supports Dolby Audio but apps must also support it, for example, the Edge browser has support, the Netflix app has support, the Movies and TV app has support, etc.
 
The Dolby developer website has more information: developer.dolby.com
 
I hope Emby devs review this and try to fix it.
Edited by delacosta78
Link to comment
Share on other sites

Richard Branches

You can't have DD+ over optical. It doesn't support it. You need HDMI

 

Enter "Dolby Audio" which should convert or transcode on-the-fly the Dolby Digital Plus bitstream into standard Dolby Digital to send it directly to the optical port, the question is where is it?. You didn't pay attention to what I wrote...

 

Dolby Audio:

 

https://www.dolby.com/us/en/brands/dolby-audio.html

Link to comment
Share on other sites

Guest asrequested

No, I understand perfectly. By selecting 'always', you're trying to force DD+ down an optical cable, and it doesn't support it. It's overriding the app. The device config takes precedence. You need to allow the app to decide what to do.

 

https://www.dolby.com/uploadedFiles/Assets/US/Doc/Professional/dolby-digital-plus-faq.pdf

 

5b34603c737da_Snapshot_145.jpg

Edited by Doofus
Link to comment
Share on other sites

Richard Branches

No, I understand perfectly. By selecting 'always', you're trying to force DD+ down an optical cable, and it doesn't support it. It's overriding the app. The device config takes precedence. You need to allow the app to decide what to do.

 

https://www.dolby.com/uploadedFiles/Assets/US/Doc/Professional/dolby-digital-plus-faq.pdf

 

5b34603c737da_Snapshot_145.jpg

 

When I had the 3rd generation Apple TV, it had an option similar to this "always" setting along with the "auto" setting, when I selected auto, the device detected through HDMI the EDID of the equipment (the TV or AV receiver) to see if supported Dolby Digital so depending on the result it sent PCM 2.0 or Dolby Digital 5.1 out the HDMI and optical port simultaneously; when I selected the option similar to "always", it forced the device to convert the Dolby Digital Plus signal that came from Netflix into Dolby Digital, regardless if the TV or AV receiver supported them, so you may got no sound if the target device didn't support it, the current 4th gen apple tv does exactly the same because the device support Dolby Audio, however, it doesn't have an optical audio port, but does it anyway through HDMI.

 

I know that Dolby Digital Plus supports only HDMI because of the high bandwidth of the bitstream, but you're missing the part where it is transcoded by the device if it has an optical audio port, like the old apple tv devices and even the old WDTV devices.

Edited by delacosta78
Link to comment
Share on other sites

Richard Branches

No, I understand perfectly. By selecting 'always', you're trying to force DD+ down an optical cable, and it doesn't support it. It's overriding the app. The device config takes precedence. You need to allow the app to decide what to do.

 

https://www.dolby.com/uploadedFiles/Assets/US/Doc/Professional/dolby-digital-plus-faq.pdf

 

 

 

The answer is in the file you posted, this is what I'm talking about, look:

 

5b3464d0c4582_ddplus.png

 

This is what the Mi Box should do, so what is the reason why it's not working? the closest answer is that maybe the manufacturer didn't pay the licence for this, despite the technology is advertised on the box, I feel scammed.

Edited by delacosta78
Link to comment
Share on other sites

Guest asrequested

I don't think the MiBox works like the nibbled fruit. @@ebr will have to confirm this, but with the MiBox (Android TV), it probably has a global setting that overrides the apps. I have a MiBox, but I've never tested the optical.

 

Yes, I know what you're talking about, but I don't know if the MiBox has the ability to adjust the bitrate. The emby app has the server do that.

Link to comment
Share on other sites

Richard Branches

I don't think the MiBox works like the nibbled fruit. @@ebr will have to confirm this, but with the MiBox (Android TV), it probably has a global setting that overrides the apps. I have a MiBox, but I've never tested the optical.

 

Yes, I know what you're talking about, but I don't know if the MiBox has the ability to adjust the bitrate. The emby app has the server do that.

 

It shouldn't "adjust" the bitrate, the Mi Box should just to convert the bitstream to 640kbps in real time and send it to the optical port, period.

Edited by delacosta78
Link to comment
Share on other sites

Richard Branches

But optical can't support that. It supports 384

 

http://www.tech-faq.com/spdif.html

 

https://en.wikipedia.org/wiki/S/PDIF

 

5b346e6f4bfe5_Snapshot_146.jpg

 

It does support it because I've tested that, don't forget the Dolby Digital and DTS bitstreams are encoded so the cable is just a transport method, also DTS support 96Khz/24bit through optical but again it's the AV receiver who decodes this, the cable is just a transport method.

Link to comment
Share on other sites

Richard Branches

*sigh* 

 

Have fun

 

Look, I don't want to argue with you about this subject if you are an audio engineer or something with better knowledge about this than me, I'm just exposing my frustration or disappointment about this device by not really having what they advertise and not working just like my old Apple TV and WDTV devices did in the past with Dolby Digital Plus. Period.

Edited by delacosta78
Link to comment
Share on other sites

Hi.  Doofus is correct.

 

By selecting that "Always" option, you told the app to ignore what it thinks is possible and always send the raw bitstream even if the connection or device says it cannot support it.

 

You need to change that option back to automatic.

Link to comment
Share on other sites

Richard Branches

Hi.  Doofus is correct.

 

By selecting that "Always" option, you told the app to ignore what it thinks is possible and always send the raw bitstream even if the connection or device says it cannot support it.

With the "Always" option it should send the raw Dolby Digital Plus bitstream to the HDMI port (as it currently does) and at the same time convert it to legacy Dolby Digital and send it to the optical port (which is not doing), that's what Dolby Audio does in Apple TV (in the 2nd and 3rd generation with optical port), Roku Ultra (the one with optical port), smart TVs with optical port, the old WDTVs, even Windows 10 when connected to an AV receiver with only Dolby Digital decoder or TVs with Dolby Digital decoder by HDMI input, because Windows 10 has Dolby Audio support.

 

@ refers to the tech behind S/PDIF, I'm talking about Dolby Audio.

Edited by delacosta78
Link to comment
Share on other sites

Richard Branches

You need to change that option back to automatic.

 

The Automatic option doesn't work for me because:

 

1) My old TV doesn't have Dolby Digital or Dolby Digital Plus decoder by HDMI input, therefore everything is downmixed to stereo, and the audio from the optical port is stereo.

 

2) I tested the auto setting on a TV with Dolby Digital decoder by HDMI input and it does exactly the same as the Always setting: Dolby Digital was passed-through directly to the TV and I got audio out of the TV speakers and also I got 5.1 audio from the optical port of the device, however, Dolby Digital Plus was downmixed to stereo from the TV speakers and the audio from the optical port was stereo, in this case the bitstream should've been converted to legacy Dolby Digital by the device but it didn't.

 

3) Newer 2017 and beyond smart TVs are supporting now Dolby Digital Plus by HDMI input, it's a matter of buying one to give it a test. I can't afford one, at least not yet.

 

Basically, the Mi Box is doing the same as with marshmallow firmware, the only difference is this new audio setting that doesn't do what it should, to convert the Dolby Digital Plus bitstream when necessary, because that's what Dolby Audio does.

Edited by delacosta78
Link to comment
Share on other sites

Sorry to jump in, I'm reading this with some interest because I'm looking at these settings too...

 

Can you clarify #2... you're saying with Auto, DD does work with 5.1, but DD+ is downmixed to 2ch (DD or something else?) on the optical port?

 

The Xiaomi forums are pretty full of similar stories.  From the posts I gather they don't have a DD+ license.

 

 

My old audio equipment is optical only, and I'm not spending money right now to "upgrade" to HDMI, so I'm curious.

Link to comment
Share on other sites

You're both right...in a way.  Doofus is correct in saying that S/PDIF doesn't have the bandwidth to support E-AC-3, and delacosta78 is correct in saying that there is a way to pseudo-extract a legacy AC-3 5.1 stream from an E-AC-3 multichannel stream (doesn't work like a DTS-HD core setup, but the end result is very similar).  The legacy AC-3 substream is part of the eac3 spec, so it's not like ignoring the additional dependent streams (any channels not covered by the 5.1 layout) during output should be that hard to do for the device, but I have no idea how they implemented it in their software when it comes to considering the output connection type or how this option may change that process.  It's very possible that they neglected to implement that whole thing (or that they're not using a licensed eac3 implementation...or that such an operation not a requirement under Dolby's licensing, etc).

 

As for what Emby can do to mitigate this...I'm not sure there's an answer other than ebr's suggestion.  If you don't want Emby to transcode eac3 to ac3 on the server side and the Mi Box is configured to support eac3 (or reports to Emby that it does), then it's entirely in the Mi's hands .  I don't have one of these boxes, so I'm not even sure what this option is supposed to do or when it's appropriate to set it to "always" (any documentation you can point us to would be welcome in that regard...it's incredibly vague from that screenshot).  If ebr is correct, and I suspect he is, then setting it to "always" may mean it's simply trying to shovel the eac3 bitstream (and every other codec) through the S/PDIF connection unctouched (which will obviously never work)...and it could be overriding/disabling the legacy substream "extraction" that you're expecting it to be doing.

 

Out of curiosity, what was the behaviour in these circumstances prior to Oreo (and this option being added) on the Mi?  Also, is there any way to disable eac3/DD+ support on the Mi specifically like you could on, say, a Roku?

Link to comment
Share on other sites

This has been an ongoing issue with the Mi Box even though it has DD licensing and is not unique to the Emby app. DD+ to DD downmixing does not work in the Netflix app either and appears to be broken on the Mi Box. Which is unfortunate because Netflix exclusively uses DD+ audio now as far as I know.

 

Edit: This thread is worth a read https://forum.kodi.tv/showthread.php?tid=304632

Edited by Jdiesel
Link to comment
Share on other sites

Richard Branches

Sorry to jump in, I'm reading this with some interest because I'm looking at these settings too...

 

Hello and thank you for your interest in this matter.

 

Can you clarify #2... you're saying with Auto, DD does work with 5.1, but DD+ is downmixed to 2ch (DD or something else?) on the optical port?

 

HDMI supports something called EDID (https://en.wikipedia.org/wiki/Extended_Display_Identification_Data) which helps to any given device connected by HDMI to a display (a TV) or an AV receiver to "read" or "negociate" what this display or receiver supports in terms of video and audio, in the case of the TV, when I connect the Mi Box to my TV, the device "detects" or "read" that the TV doesn't have any kind of digital audio decoders except PCM playback, so everything different than PCM will be "downmixed" or sometimes "transcoded" or "converted" into PCM 2.0 to be able to hear sounds out of the TV speakers and the optical audio port will send the same PCM 2.0 format because it depends on what the EDID supports.

 

When I connected the Mi Box to a friend's TV with Dolby Digital decoder supported by the HDMI inputs, the Mi Box "read" that this TV has Dolby Digital decoding so when I play a video with Dolby Digital audio (from 2.0 to 5,1), the Mi Box sends this audio format directly to the TV without conversion or transcoding, the only thing the TV does is to downmix the 5.1 channels to stereo to be heard through the TV speakers, and at the same time, the optical audio port will also send the same format without downmixing, so when I switch the audio input in my receiver I will hear the same Dolby Digital 5.1 audio without any conversion or transcoding.

 

Now, why Dolby Digital Plus is downmixed to stereo? Since the Mi Box doesn't have the Dolby Digital Plus conversion I've been craving for such a long time, that's what we get, because the TV doesn't have Dolby Digital Plus decoder support in its HDMI inputs, so for compatibility reasons it must downmix the format to stereo and send it to both HDMI and optical at the same time, otherwise, the audio should be converted into standard Dolby Digital and output it directly to the optical port, as long as the EDID reads that the TV has Dolby Digital decoder inside.

 

When I saw this "Always" setting I thought, "finally we have Dolby Digital Plus conversion" because this overrides any EDID detection, the device itself should do the decoding or conversion of the Dolby Digital Plus bitstream into standard Dolby Digital to be sent directly to the optical port for playback by the receiver while DTS core is untouched and sent to the optical port as well. When I played one Dolby Digital Plus file I have for testing, I was so disappointed because I didn't hear any sound from the optical port, Netflix didn't work, Google Play Movies and TV either, so I immediately knew that this oreo update didn't bring what I wanted.

 

The Xiaomi forums are pretty full of similar stories.  From the posts I gather they don't have a DD+ license.

 

Yeah, I've posted something about this over there as well.

 

 

My old audio equipment is optical only, and I'm not spending money right now to "upgrade" to HDMI, so I'm curious.

 

When you connect the Mi Box to an AV receiver by HDMI input, the EDID reads that the receiver has Dolby Digital Plus decoding so you don't need any conversion or transcoding or anything, in this case you will be able to hear 5.1 sounds with few issues. meanwhile for people like us with old av equipment with only optical inputs, the Dolby Digital Plus conversion is necessary if we want to listen to 5.1 audio from services like Netflix, Play Movies and TV and others.

Edited by delacosta78
Link to comment
Share on other sites

Richard Branches

Out of curiosity, what was the behaviour in these circumstances prior to Oreo (and this option being added) on the Mi?

 

The previous firmware was marshmallow, the audio options were "Auto", PCM, HDMI and SPDIF, depending on the TV/AV receiver where the Mi Box was connected, the audio coming from the optical audio port depended on what the EDID detected, for example, if I connected the device to a TV with only Dolby Digital decoder using "auto", the device was set automatically to SPDIF so no sound was heard from the TV speakers and the Dolby Digital bitstream was sent directly to that port, so if I wanted to hear sound from the TV speakers I needed to select HDMI manually, it was buggy but it was the same because there wasn't Dolby Digital Plus conversion.

 

Also, is there any way to disable eac3/DD+ support on the Mi specifically like you could on, say, a Roku?

 

The only way to disable eac3/DD+ is by selecting "Auto" or "Never".

Edited by delacosta78
Link to comment
Share on other sites

Richard Branches

This has been an ongoing issue with the Mi Box even though it has DD licensing and is not unique to the Emby app. DD+ to DD downmixing does not work in the Netflix app either and appears to be broken on the Mi Box. Which is unfortunate because Netflix exclusively uses DD+ audio now as far as I know.

 

Edit: This thread is worth a read https://forum.kodi.tv/showthread.php?tid=304632

 

I'm about to sell the Mi Box and buying a Roku Ultra instead which has official Dolby Audio support, I'm getting tired of this situation, it's ridiculous.

 

Also an HDMI audio extractor connected to my Windows 10 PC with Dolby Audio support works like a charm, I've been able to test it.

Edited by delacosta78
Link to comment
Share on other sites

Ah, okay, now I get it.  Sure sounds like the box doesn't support decoding eac3 internally (probably licensing-related).  As such, it's probably a "passthrough-only" scenario, and the S/PDIF limitation is well-covered at this point.  While ac3 is included in eac3 as a substream, you'd still need an eac3 decoder to get at it and use it.

 

What's weird in my mind is why the device would report support for eac3 when it's not sure it can deliver it...and not give the user a way to remove eac3 from the list.  For instance, Netflix offers audio streams in many different codecs and bitrates, but decide on which to send based on what the client can support (if it doesn't support DD or DD+, it'll go with AAC, for example).  It sounds like this "always" setting is basically saying "sure, we eac3" even though it can't confirm it and doesn't give you a way to disable it specifically in case you are using S/PDIF for output.  If they implemented something like Roku's audio capabilities settings, it would probably settle this whole issue since you could select something like "DD and DTS only" so that providers like Netflix and even Emby would know that eac3 isn't an option for your particular configuration.

Link to comment
Share on other sites

Richard Branches

You probably should get a Shield.

 

The Shield doesn't support Dolby Audio, I'm going to get a Roku Ultra instead, I don't want to spend money in a new AV receiver because they are still too expensive, I wonder if they'll ever become cheaper or more affordable.

Edited by delacosta78
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...