Roku Developer Program

Join our online forum to talk to Roku developers and fellow channel creators. Ask questions, share tips with the community, and find helpful resources.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
RokuKevin
Visitor

v3.0 Beta SDK available for download

We’re making the 3.0 Beta firmware available to all developers who request it. If your box isn’t already part of the developer beta group, send a private developer forum message to RokuKevin. Include the serial number of the Roku units you would like to run the 3.0 beta on.

It is very important that all developers regression test their applications on version 3.0 and note any incompatibilities. You may need to publish an update to your application to make it compatible with v3.0.

The SDK can be downloaded here:
http://rokudev.roku.com/roku_sdk_v30_20110420.zip

--Kevin
0 Kudos
32 REPLIES 32
destruk
Binge Watcher

Re: v3.0 Beta SDK available for download

Thanks! I know the roAudioResource has been something I've been waiting for. 🙂
0 Kudos
TheEndless
Channel Surfer

Re: v3.0 Beta SDK available for download

The new BrightScript compiler/runtime seems a lot stricter than the old one. In general, that's not a problem, and is actually a good thing moving forward, but I can see it causing a lot of problems for existing channels. For example, I've found two issues with some code of mine that worked fine on 2.9, but bails on 3.0.

One was a simple copy and paste error. I had copied a Function and changed it to a Sub without removing the return type from the declaration:
Sub MySubroutine(myParams As Object) As String

Definitely incorrect syntax, but the code runs fine in 2.9, but fails with a Type Mismatch in 3.0 when the subroutine exits.

The second issue actually caused the Roku to reboot immediately upon compilation. I launched the channel, and the box would crash and reboot every time. When sideloading, I got the stack trace, so I was able to find the issue. The published version of the channel, however, caused the catastrophic failure. The code that caused it looked something like this:
Sub ParseXml(node As Object)
subNodes = node.links
...
For Each node in subNodes
...
Next
End Sub

The issue is obvious in that condensed listing, but it was buried in a rather lengthy parsing routine I had. Re-declaring/reusing "node" (an actual parameter) in the body of the routine really freaked the compiler/runtime out, and caused a reboot. 2.9 didn't have any issues with it.

I actually like the new strictness, and think it will go a long way toward ensuring better/cleaner code, but I wanted to be sure to raise the awareness, as there's certainly potential for it rendering some existing channels useless, particularly those that are no longer actively being maintained.
My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)
0 Kudos
RokuKevin
Visitor

Re: v3.0 Beta SDK available for download

TheEndless,

Great point! The new BrightScript interpreter is one of the main reasons we want everyone to regression test their channels ASAP! The other main reason is the new mediaplayer. Both are definite upgrades, but do need testing for compatibility.

--Kevin
0 Kudos
jbrave
Channel Surfer

Re: v3.0 Beta SDK available for download

Haven't found any crashes (yet) in my channels that don't occur on 2.9. The issue I reported with DRM-free iTunes music purchases has not been resolved on 3.0 however.

-Joel
Screenshades: The first Screensaver for Roku2!
Musiclouds: The best free internet music, on your Roku!
Ouroborialis: Psychedelic Screensaver for Roku!
0 Kudos
retrotom
Visitor

Re: v3.0 Beta SDK available for download

So far, no weird crashes for me. I've noticed faster video "loading" for my channel. I don't if it's better (or altogether skipping) network bandwidth calculations or if the process that reassembles the video segments is faster -- but the loading screen is way faster on my box.
0 Kudos
smlsr
Visitor

Re: v3.0 Beta SDK available for download - BUG

This has been compared against both current 2.9.x firmware and the 3.0 BETA firmware.

2.9.x Operates Properly, the bug is in the 3.0 BETA

For live HLS Streams, by live I mean ones that are ACTIVELY being built and the M3U8 file is growing.

Problem 1: The ROKU continues to request the M3U8 over and over and over ever. After it gets it, it requests it again, and again, if a new item is added, it will request the new TS, then go back to requesting the M3U8 repeatedly (as many as 10-15 times per second)

Problem 2: Voice and Video are out of SYNC (H264/AAC/32k Sample Rate) - happens 80% of time.

Problem 3: As with 2.9x versions, when this happens (Problem 2) (only happen 10% of the time), you can fix it by pressing the REFRESH/REPLAY button (circular arrow thing), it jumps back and all is synced in 2.9.x In 3.0, it jumps back, corrects the sync, once it receives a M3U8 with a NEW TS in it. It stops requesting anything and plays out its buffer and stops.


Shawn
0 Kudos
stratcat96
Visitor

Re: v3.0 Beta SDK available for download

I have had the opposite experience RE hls streams... Previously in 2.9 1533 the private channels using live hls streams were going out of sync and taking unusually long to buffer, now with 3.0 the syncing problem is gone and they are buffering quickly. I'm not sure if that's the source or bc of the firmware but I thought I should mention it.

Also, since 3.0 beta, I have had 3 different movies in Netflix cause a freeze up then reboot. This is curious because it happens when I rewind then either pause then play or rewind then play. As I said it happened on 3 different occasions (all 3 times I tried it) since upgrading to 3.0, all during the rewind/reload sequence. The movies were "X-Men", "Death of a Ghosthunter", and (don't laugh) "My Bloody Valentine". Unfortunately I did not record the time in the movies it occurred. I can't be certain it's not just an issue with encoding on Netflix, but it is curious that it occurred all 3 times I performed that operation with 3 different, unrelated titles. Because of that I thought I'd mention it.
0 Kudos
RokuKevin
Visitor

Re: v3.0 Beta SDK available for download

smlsr,

Please share the .m3u8 you are having issues with. If you PM me the link, we will take a look at it.

Thanks,

Kevin
0 Kudos
gonzotek
Visitor

Re: v3.0 Beta SDK available for download

I'm trying to run the webserver example. I'm on 3.0 build 2186. It installs correctly, and starts to the screen with "Web Server: Connections" at the top and "Retrieving..." centered. After that I try to browse to the roku ip and port (8888) specified in the code, and I can not connect. Here's the debugger output:
BrightScript Debugger> ------ Running ------
GetXMLConfig: config 'Roku'
Server.fatal: bind(port 8888)
BrightScript Micro Debugger.
Enter any BrightScript statement, debug commands, or HELP.

Current Function:
060: function errx(obj as Object, message as String, code=0 as Integer)
061: dbg(obj, "fatal", message, code)
062: stop
063: end function
STOP (runtime error &hf7) in ...APR5olJ/pkg:/source/utils.brs(62)

062: stop
Backtrace:
Function errx(obj As <uninitialized>, message As , code As Integer) As
file/line: /tmp/plugin/PD...APR5olJ/pkg:/source/utils.brs(63)
Function server_init(params As ) As
file/line: /tmp/plugin/PDAAAAPR5olJ/pkg:/source/server.brs(54)
Function initserver() As
file/line: /tmp/plugin/PDAAAAPR5olJ/pkg:/source/server.brs(34)
Function main() As
file/line: /tmp/plugin/PDAAAAPR5olJ/pkg:/source/main.brs(49)

Local Variables:
obj &h0010 bsc:roAssociativeArray, refcnt=4
message &h8010 bsc:roString (2.1 was String), refcnt=1
code &h0002 Integer val:0
global &h0020 rotINTERFACE:ifGlobal
m &h0010 bsc:roAssociativeArray, refcnt=4
BrightScript Debugger> ------ Running ------
GetXMLConfig: config 'Roku'
Server.fatal: bind(port 8888)
Current Function:
060: function errx(obj as Object, message as String, code=0 as Integer)
061: dbg(obj, "fatal", message, code)
062: stop
063: end function
STOP (runtime error &hf7) in ...APR5olJ/pkg:/source/utils.brs(62)

062: stop
Backtrace:
Function errx(obj As <uninitialized>, message As , code As Integer) As
file/line: /tmp/plugin/PD...APR5olJ/pkg:/source/utils.brs(63)
Function server_init(params As ) As
file/line: /tmp/plugin/PDAAAAPR5olJ/pkg:/source/server.brs(54)
Function initserver() As
file/line: /tmp/plugin/PDAAAAPR5olJ/pkg:/source/server.brs(34)
Function main() As
file/line: /tmp/plugin/PDAAAAPR5olJ/pkg:/source/main.brs(49)

Local Variables:
obj &h0010 bsc:roAssociativeArray, refcnt=4
message &h8010 bsc:roString (2.1 was String), refcnt=1
code &h0002 Integer val:0
global &h0020 rotINTERFACE:ifGlobal
m &h0010 bsc:roAssociativeArray, refcnt=4
Could this be something on my end, or are some of the new bits exposed in the sdk still being enabled on the box in upcoming beta builds? I noticed the config.xml points to what appears to be an external drive, while the default brs code points to a pkg:/ file, index.html, that doesn't exist. I've tried changing a few things related to that(plugging in a drive with html files, adding index.html to the pkg), and still get the same message.
Remoku.tv - A free web app for Roku Remote Control!
Want to control your Roku from nearly any phone, computer or tablet? Get started at http://help.remoku.tv
by Apps4TV - Applications for television and beyond: http://www.apps4tv.com
0 Kudos