Forum Discussion

evilmax17's avatar
evilmax17
Visitor
15 years ago

Give a hoot - Test on 4x3 SD televisions

I do most of my Roku watching on a 15 year old, standard definition, 4x3 tube television. Content can still look great with this setup, but it takes a little extra work on the developer's end to ensure a good user experience. You can't just slap a URL into roVideoPlayer and call it a day.

If the aspect ratio of your video source is in something other than 4x3, it looks like the Roku's default behavior is to letterbox it. Letterboxing is alright in some situations (watching movies for example), but for most of the video being pulled off of the internet, it's unnecessary and hurts the viewing experience. I've found that full-screen is the most visually pleasing way to watch video on a 4x3 SD television. You can use SetDestinationRect to zoom into your video source and achieve this.

Another thing is to make sure your user interface looks good in 4x3. I've seen a few channels where overhang logos are cut off on the top and left sides of the screen when in 4x3. This just looks sloppy and amateur-hour, and can be easily prevented.

Give a hoot. Put the extra time and effort to develop and test on a standard definition television. If you don't have one, then you can probably find one for free on Craigslist.

Your 4x3 users will thank you for it.

3 Replies

  • renojim's avatar
    renojim
    Community Streaming Expert
    I agree that developer's should test on SDTVs, but I don't know if always showing a widescreen video fullscreen is the way to go. Another issue is that only roVideoPlayer supports SetDestinationRect and there may be reasons why you want to use roVideoScreen.

    For the overhang on an SDTV, I've found that an X offset of 72 and a Y offset of 50 is a good place to start, but it always takes some tweaking. Also, for the overhang slice about the top 25 to 30 pixels won't be visible on an SDTV, so adjust your slice accordingly.

    For an roImageCanvas, I usually use a 25 pixel border on the top and bottom and a 50 pixel border on each side to account for overscan. I have two SDTVs and they are somewhat different from each other, so there probably isn't a one size fits all perfect solution. I know that even all HDTVs will not display every pixel and borders are required on them as well. I usually use the same borders just for ease of programming.

    Finally, if you want a square to appear as a square on an SDTV, it must be drawn as a rectangle with the width being 1.125 times the height. This was obtained experimentally, but probably not coincidentally 720/640 = 1.125.

    To the OP, if you don't like letterboxing, change your screen setting to 16x9 widescreen before you watch a video. It's a little bit of a pain, but at least you don't have to reboot.

    -JT
  • "renojim" wrote:
    Another issue is that only roVideoPlayer supports SetDestinationRect and there may be reasons why you want to use roVideoScreen.


    roVideoScreen supports SetDestinationRect() since firmware 2.6. Page 51 of the Component Reference.