[mythtv] Patch for 4:3 zoom on 16:9 broadcasts of 4:3

Christian Hack christianh at pdd.edmi.com.au
Mon Oct 6 11:08:46 EDT 2003


From: Isaac Richards
> > One problem is that the zoom causes part of the OSD to fall 
> off the screen.
> > Is there some way to scale the OSD back such that it 
> remains independent of
> > the zoom? I had a look at the OSD code but couldn't see an easy way.
> 
> Probably will need to re-init the OSD class with the new numbers.  In 
> NuppelVideoPlayer.cpp, the ToggleLetterbox function, you 
> should probably need 
> to do something very similar to 
> NuppelVideoPlayer::ReinitVideo(), but without 
> the call to videoOutput->InputChanged() and ClearAfterSeek().
> 

I had a look at this and essentially called osd->Reinit with
appropriately calculated values for dispx, dispy, dispw and disph. When
I tried it though, all the osd got completely corrupted. I think I'm
doing it right. I followed the Reinit into OSD::Reinit and then
OSDSet::Reinit but they don't really seem to use the offset stuff -
possibly explaining the problems. Should it be this simple? I had:

void NuppelVideoPlayer::ToggleLetterbox(void)
{
    if (videoOutput)
        videoOutput->ToggleLetterbox();

    if (osd) 
    {
        int dispx = 0, dispy = 0, dispw = video_width, disph =
video_height;

        videoOutput->GetDrawSize(dispx, dispy, dispw, disph);

        if (videoOutput->GetLetterbox() == 2) {
            dispw = video_width * 9.0 / 16;
            dispx = (video_width - dispw) / 2;
        }

        osd->Reinit(video_width, video_height, frame_interval,
                    dispx, dispy, dispw, disph);
    }
}

The final call was then for a 720x576 image:
osd->Reinit(720, 576, frame_interval, 157, 0, 405, 576);

Thanks
CH



More information about the mythtv-dev mailing list