I have had the enjoyment of troubleshooting Roku 2 and HLS. I just wanted to share my solution in hopes that someone else wont have to spend some late nights debugging...
Build: 1275 (originally 126x)
Channel Code: based on the "videoplayer" that is included in the SDK
Error Message: An unexpected problem (but not server timeout or HTTP error) has been detected.
The error message was given when loading an m3u8 playlist file under the "roVideoScreenEvent" message when handling the "isRequestFailed()" condition.
Our main playlist file looked like the following:
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=924000
http://8.8.8.8/stream/test/eng/rokuhsd.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=1364000
http://8.8.8.8/stream/test/eng/rokuvhsd.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=2134000
http://8.8.8.8/stream/test/eng/rokuhhd.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=484000
http://8.8.8.8/stream/test/eng/rokumsd.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=264000
http://8.8.8.8/stream/test/eng/rokulsd.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=165000
http://8.8.8.8/stream/test/eng/rokuvlsd.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=44000, CODECS="mp4a.40.2"
# audio-only stream
http://8.8.8.8/stream/test/eng/rokuvlsd-audio.m3u8
All of the linked playlists had a format that looked like (with more segments than actually shown):
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:563
#EXTINF:10, no desc
http://8.8.8.8/stream/test/eng/00001/rokuhhd_00041.ts
#EXTINF:10, no desc
http://8.8.8.8/stream/test/eng/00001/rokuhhd_00042.ts
#EXTINF:10, no desc
http://8.8.8.8/stream/test/eng/00001/rokuhhd_00043.ts
#EXTINF:10, no desc
http://8.8.8.8/stream/test/eng/00001/rokuhhd_00044.ts
#EXT-X-ENDLIST
Our client had multiple language playlist files where some of the playlists worked and some didn't when running on the same code.
The streams that did work didn't have an audio stream defined in the playlist. However, it seems odd to me that the definition would be causing the issue since the documentation says to just set the MinBandwidth to ignore the audio streams.
After running some tests I found that by removing the following line the stream worked correctly:
# audio-only stream
I would assume that something has changed in the Roku 2 where it fails when trying to parse comments in the m3u8 playlist.