If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

HR10-250 aspect correction on 4:3 TV

I watch only over the air TV now on my HR10-250’s. 95% on that is on 4:3 TVs
The only problem is the double letterboxing (top/bottom & both sides) when 4:3 show is on a 16:9 digital station.

Using the TiVo’s settings and remote I can only get two aspect corrections.
“Panel”, adds vertical or horizontal bar to match the selected TV
“Full”, never adds bars, it provides no correction.
Of those choices “panel” is the one that consistently provides a distortion free image.

My research found a program called “si9190test”. That looked promising.
I played with the program and found that aspect correction “3” provides a zoom mode.
“zoom” stretches horizontally and vertically to eliminate the double letterboxing.

I have three ideas to implement aspect correction modes “panel” and “zoom”
In order of most desirable to least:

Idea #1: Automatically read show info for the “program on the screen right now” then picks proper aspect correction.

Idea #2: Manually select “panel” or “zoom” correction using remote button using tivoapp patch(es). Also change trait of first press just showing current aspect correction to trait of changing to other correction on first press. (I don’t want to press the button twice)

Neat find. The Series 3 boxes will cycle through full, panel, and zoom when you repeatedly press the Window/Aspect button. For whatever reason, it looks like tivo didn't fully implement this on the HR10-250.

Tuik Resources contains an image, Pan_and_Scan.png (an older term for zoom?), and tivoapp contains strings like "AspectRatio changed to 4:3 zoom", so looks like parts of it are there. I noticed that when I played around with it, the zoom seemed to improperly center if I had the video paused, but re-center correctly shortly after I hit play. Might be other quirks too that led them not to include it.

I'm not sure about reading the format of the currently playing stream, but for Idea #2, you could rework your bash script and use trickeyplus to invoke it using your remote (a key combination as short as Clear, Window). Pressing Window would then allow you to cycle back to full or panel.

If you want to try for a tivoapp patch, the UI menus for aspect correction or the following string sections of tivoapp might be a good place to start.

4:3 Zoom Patch

Here are patches that will replace 4:3 fullscreen (squeeze) with 4:3 zoom aspect correction. If you have a 4:3 TV hooked to an HR10-250, you can use this to zoom on SD content broadcast on an HD channel (and thus avoid double letterboxing). Though the screen will still report "Full" when you press the Window/Aspect remote button to toggle between modes, the mode will be Zoom (Pan and Scan). The Panel mode remains unchanged with this patch.

The patch works great. That was fast work.
A good thing about 6.3 software is the TV type is smart.

If you tell it you have a 4:3 TV, it will only honor that choice for the 480i and 480p output formats. At 720p and 1080i it acts like 16:9 and will ignore your TV type 4:3 setting. (A very good thing)

Your patch in 480i and 480p will switch between panel and zoom (changed)
Your patch in 720p and 1080i will switch between panel and panel (just like before)

The biggest reason that I'm going pursue method #1 is that when I'm in zoom mode and a 16:9 program is playing, it often takes a while before I realize that I need to turn zoom off. In the opposite case, the double letter box is a dead give away.

I found a way to track the events that would require changing the aspect correction. They are in the tvlog file

I can get the code to read livetv information from the "info" module of tivoweb.I still don't know where I can get show info of recorded program that is playing.

The code below will change the display to panel mode when the format is 480i or 480p and one of the following events occur.
Play from "Now Playing List"
Jump to Live TV
Change channels on live TV
Change tuners on live TV

This program tries to prevent me from watching a wide program in zoom mode.
If the show is double letter boxed then I'll know to hit Ratio button twice.

Here are patches that will replace 4:3 fullscreen (squeeze) with 4:3 zoom aspect correction. If you have a 4:3 TV hooked to an HR10-250, you can use this to zoom on SD content broadcast on an HD channel (and thus avoid double letterboxing). Though the screen will still report "Full" when you press the Window/Aspect remote button to toggle between modes, the mode will be Zoom (Pan and Scan). The Panel mode remains unchanged with this patch.

Single Press Aspect Ratio Change

I do not like pressing the button twice even if my pronto remote can handle that detail. The tivoapp patches below will cause the "ratio" button to change the aspect ratio on every press (including the first).

The 1st patch changes 'v0' to 'a0' on a beql statement, since both registers will have the same value it does nothing, but it is needed for the new branch that will not have the correct 'v0' loaded..
The 2nd patch bypasses three branches that would cause only the current aspect to be displayed.
The 3rd patch is optional and independent. It changes the time that the changed aspect ratio will be displayed on screen. The last two bytes set the time in milliseconds. (as coded: 2.5 seconds)

To patch for other SW versions. Look for brf references 4c72b5 & 6 "Full" & "Panel". That sub is called two times. Near the first call will be an "li s3,1 : beql v0,s3,1 : li s3,2". This is the aspect swap. The the beql is the first patch, the second patch is 21 instructions back. Near the second call is the time change patch location, "li a3,10000" instruction

Red_Dog might be able to provide a better answer than I, as the last time I rummaged around the disassembly was in 2008. You might want to look at si9190test first, as I think that utility offered (IIRC) a smaller executable to tinker with the output display. That might indicate whether the zoom factor is controlled in software or hardware.