Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [

{
"name": "BrightScript Debug: Launch",
"type": "brightscript",
"request": "launch",
"host": "${promptForHost}",
"password": "${promptForPassword}",
"rootDir": "${workspaceFolder}"
}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
id = "examplePoster"
width = "512"
height = "288"
uri = "http://sdktestinglab.com/Tutorial/images/videopg.jpg" />
uri = "http://www.sdktestinglab.com/Tutorial/images/videopg.jpg" />
Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The updated image URL still uses http://. If the server supports TLS, prefer https:// to avoid downgrade/MITM risk and to reduce the chance of failures in environments that block plain HTTP.

Suggested change
uri = "http://www.sdktestinglab.com/Tutorial/images/videopg.jpg" />
uri = "https://www.sdktestinglab.com/Tutorial/images/videopg.jpg" />

Copilot uses AI. Check for mistakes.

<!-- Float animation, does linear interpolation of example poster's opacity field -->
<Animation
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
id="examplePoster"
width="512"
height="288"
uri="http://sdktestinglab.com/Tutorial/images/videopg.jpg" />
uri="http://www.sdktestinglab.com/Tutorial/images/videopg.jpg" />

</MaskGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ sub init()
m.top.translation = [ centerx, centery ]

m.readXMLContentTask = createObject("RoSGNode", "ContentReader")
m.readXMLContentTask.uri = "http://api.delvenetworks.com/rest/organizations/59021fabe3b645968e382ac726cd6c7b/channels/1cfd09ab38e54f48be8498e0249f5c83/media.rss"
m.readXMLContentTask.uri = "https://stream-akamai.castr.com/5b9352dbda7b8c769937e459/live_2361c920455111ea85db6911fe397b9e/index.fmp4.m3u8"
m.readXMLContentTask.observeField("content", "setcontent")
m.readXMLContentTask.control = "RUN"
end sub
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ sub init()
m.markupgrid = m.top.findNode("exampleMarkupGrid")

m.readMarkupGridTask = createObject("roSGNode", "ContentReader")
m.readMarkupGridTask.uri = "http://api.delvenetworks.com/rest/organizations/59021fabe3b645968e382ac726cd6c7b/channels/1cfd09ab38e54f48be8498e0249f5c83/media.rss"
m.readMarkupGridTask.uri = "https://stream-akamai.castr.com/5b9352dbda7b8c769937e459/live_2361c920455111ea85db6911fe397b9e/index.fmp4.m3u8"
Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new stream URLs use index.fmp4.m3u8 (CMAF/fMP4 HLS). For a sample channel intended to be broadly runnable across Roku models/firmware, fMP4-based HLS can be less compatible than TS-segment HLS depending on device/OS version. To improve reliability (as stated in the PR description), consider switching to a widely-compatible Roku sample HLS URL (TS segments) or providing a fallback URL/format for older devices.

Suggested change
m.readMarkupGridTask.uri = "https://stream-akamai.castr.com/5b9352dbda7b8c769937e459/live_2361c920455111ea85db6911fe397b9e/index.fmp4.m3u8"
' Use a TS-segment HLS stream for broader Roku compatibility
m.readMarkupGridTask.uri = "https://devtools.web.roku.com/samples/hls/master.m3u8"

Copilot uses AI. Check for mistakes.
m.readMarkupGridTask.observeField("content", "showmarkupgrid")
m.readMarkupGridTask.control = "RUN"
end sub
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ sub init()
m.markupList = m.top.findNode("exampleMarkupList")

m.markupListContentReader = createObject("roSGNode", "ContentReader")
m.markupListContentReader.uri = "http://api.delvenetworks.com/rest/organizations/59021fabe3b645968e382ac726cd6c7b/channels/1cfd09ab38e54f48be8498e0249f5c83/media.rss"
m.markupListContentReader.uri = "https://stream-akamai.castr.com/5b9352dbda7b8c769937e459/live_2361c920455111ea85db6911fe397b9e/index.fmp4.m3u8"
m.markupListContentReader.observeField("content", "setMarkupListContent")
m.markupListContentReader.control = "RUN"
end sub
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ sub init()
m.postergrid = m.top.findNode("examplePosterGrid")

m.readPosterGridTask = createObject("roSGNode", "ContentReader")
m.readPosterGridTask.uri = "http://api.delvenetworks.com/rest/organizations/59021fabe3b645968e382ac726cd6c7b/channels/1cfd09ab38e54f48be8498e0249f5c83/media.rss"
m.readPosterGridTask.uri = "https://stream-fastly.castr.com/5b9352dbda7b8c769937e459/live_2361c920455111ea85db6911fe397b9e/index.fmp4.m3u8"
Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These examples still use a ContentReader task, but the uri is now an HLS playlist (.m3u8) rather than a content feed (RSS/JSON). If ContentReader parses a feed to build a ContentNode tree for grids/lists, this change will likely result in empty/invalid content (or parse errors), breaking the samples. Suggested fix: point uri at a stable feed that returns multiple items (with poster + stream URLs), or update ContentReader to detect .m3u8 inputs and synthesize appropriate ContentNode items (including required metadata like title/HDPosterUrl/streamFormat/url).

Suggested change
m.readPosterGridTask.uri = "https://stream-fastly.castr.com/5b9352dbda7b8c769937e459/live_2361c920455111ea85db6911fe397b9e/index.fmp4.m3u8"

Copilot uses AI. Check for mistakes.
m.readPosterGridTask.observeField("content", "showpostergrid")
m.readPosterGridTask.control = "RUN"
end sub
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ sub init()
m.rowlist.itemSize = [ 536 * 3, 308 ]

m.contentReader = createObject("roSGNode", "ContentReader")
m.contentReader.uri = "http://api.delvenetworks.com/rest/organizations/59021fabe3b645968e382ac726cd6c7b/channels/1cfd09ab38e54f48be8498e0249f5c83/media.rss"
m.contentReader.uri = "https://stream-fastly.castr.com/5b9352dbda7b8c769937e459/live_2361c920455111ea85db6911fe397b9e/index.fmp4.m3u8"
m.contentReader.observeField("content", "getContent")
m.contentReader.control = "RUN"
end sub
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ sub init()
m.top.grid = m.postergrid

m.readPosterGridTask = createObject("roSGNode", "ContentReader")
m.readPosterGridTask.uri = "http://api.delvenetworks.com/rest/organizations/59021fabe3b645968e382ac726cd6c7b/channels/1cfd09ab38e54f48be8498e0249f5c83/media.rss"
m.readPosterGridTask.uri = "https://stream-fastly.castr.com/5b9352dbda7b8c769937e459/live_2361c920455111ea85db6911fe397b9e/index.fmp4.m3u8"
m.readPosterGridTask.observeField("content", "showpostergrid")
m.readPosterGridTask.control = "RUN"
end sub
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
id = "examplePoster"
width = "512"
height = "288"
uri = "http://sdktestinglab.com/Tutorial/images/videopg.jpg" >
uri = "http://www.sdktestinglab.com/Tutorial/images/videopg.jpg" >

<!-- The bottomRectangle is the child of examplePoster and parent of bottomLabel -->
<Rectangle
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
id = "channelPoster"
width = "512"
height = "288"
uri = "http://sdktestinglab.com/Tutorial/images/videopg.jpg" />
uri = "http://www.sdktestinglab.com/Tutorial/images/videopg.jpg" />

<!-- The bottomRectangle is drawn next and will cover rectangles drawn earlier and be covered by rectangles drawn next -->
<Rectangle
Expand Down
Binary file not shown.
Loading