We just published an update to our app that provides customers with an SD stream in addition to our HD stream. This is to avoid letterboxing on devices set to 4:3 mode or 16:9 mode, and reduces unnecessary bandwidth for the customer.
Since "quality" is set to true for the HD stream, if I attempt to play that stream on a device in SD mode, it will fail to play. This is the expected behavior.
After publishing the update, we have received a number of complaints of videos not working (attempting to play HD streams in SD display mode). After some troubleshooting, I found that if I have customers switch their display mode (say 4:3 to 16:9) and then back again, it works fine. This looks like a bug in the Roku firmware to me, where these devices are getting into a state where they are not properly reporting the video mode.
Here is the function I am using to determine which stream to use:
device = createobject("rodeviceinfo")
vm = device.getvideomode()
if vm = "480i" or vm = "480p" or vm = "576p60"
Roku already told us we can just play HD streams in letterbox mode by setting the quality to false, but that is not our desired behavior.