Opened 18 years ago

Closed 18 years ago

#944 closed defect (fixed)

Live TV: OSD Text slowly disappears over time

Reported by: homer_simpson_loves_u@… Owned by: danielk
Priority: minor Milestone: 0.20
Component: mythtv Version: head
Severity: medium Keywords: osd font text
Cc: Ticket locked: no

Description

After changing channels a few dozen times the OSD font begins to disappear starting with the bottom row of pixels and with a few subsequent channel changes more lines disappear until the text is unreadable.

Exiting the Frontend and starting Live TV again corrects the problem, however the problem repeats.

Feel free to ask questions.

Homer

Attachments (5)

badtext.jpg (19.6 KB) - added by homer_simpson_loves_u@… 18 years ago.
Example of OSD text disappearing
image1.jpg (17.8 KB) - added by anonymous 18 years ago.
image2.jpg (24.0 KB) - added by anonymous 18 years ago.
image3.jpg (20.5 KB) - added by anonymous 18 years ago.
944.patch (38.2 KB) - added by danielk 18 years ago.
fixes most of the OSD's

Download all attachments as: .zip

Change History (28)

comment:1 Changed 18 years ago by zdzisekg@…

for me it's not only the text that disappears, but it also looks like bottom edge of the OSD is shifting up and the right edge of the OSD is shifting left.

comment:2 Changed 18 years ago by danielk

Milestone: 0.19unknown
Owner: changed from Isaac Richards to danielk

comment:3 Changed 18 years ago by danielk

Resolution: worksforme
Status: newclosed

Hmmm, can't reproduce this with or without channel browse mode enabled. I tried several aspect override settings as well.

Can you still reproduce this with current SVN?

comment:4 Changed 18 years ago by Homer

Resolution: worksforme
Status: closedreopened

Yes. It still exists. I changed to Isthmus-osd (which rocks btw) and the top line description and channel number still suffer from this problem. But the lower description (sorry I'm not in front of the machine right now) does not suffer from the problem.

The channel number on the left side of the Isthmus-osd also disappears from the right side as well. As if there's some window thats shrinking around the text.

I'm running Gentoo Stable. Its possible I'm running different libraries than the rest of you guys. Which libraries matter to the osd font? I'll post version numbers and maybe that will give you a way to reproduce the problem.

Any other things I can look at, just ask.

Homer

comment:5 Changed 18 years ago by jonese@…

I was taking a closer look at this earlier today as it happened. For me, it takes about 20 or so channel changes for you to notice something.

It actually appears that background graphic is actually moving upwards, perhaps one pixel per channel change. At one point, I had the background graphic about 1/5 of the screen off from the bottom (it was heading towards the middle of the screen).

I watch almost 100% of the time DVB sources, but I should test this with ivtv sources as well.

I can post screen caps if need be.

comment:6 Changed 18 years ago by danielk

Resolution: fixed
Status: reopenedclosed

(In [8724]) Fixes #944.

Expands area for callsign in Isthmus OSD so that the bottoms of characters are not cut off...

comment:7 Changed 18 years ago by Homer

Resolution: fixed
Status: closedreopened

Built 8724. OSD text still disappears. This is not a problem with Isthmus specifically. I first noticed it on blueosd.

I'll attach a pic to show you what it looks like.

Homer

Changed 18 years ago by homer_simpson_loves_u@…

Attachment: badtext.jpg added

Example of OSD text disappearing

comment:8 Changed 18 years ago by anonymous

Homer, I think maybe it has something to do with your fonts being too big. On my system only the "callsign" area was too small with the Isthmus OSD.

Can you get me screen shots the various OSD displays with "blueosd" and tell me which aspect override if any you are using?

comment:9 Changed 18 years ago by anonymous

I showed you a static image, an example of what happens to the text over time. It does not start out looking that way, at first it looks perfect. I have to change channels a dozen times or more to get the text to look that way. If I keep changing the channel the text will eventually go completely away.

I'm running 800x600 on an ATI SVIDEO out to a standard TV and I just verified the same problem when running on my 1600x1200 ATI driven laptop.

I'll post more pics tomorrow. Sorry I can't be more help.

Homer

comment:10 Changed 18 years ago by anonymous

Aspect override is off.

Homer

comment:11 Changed 18 years ago by anonymous

Attached is a progression of about 20 channel changes.

image1.jpg, image2.jpg, image3.jpg

Notice how the background slowly moves up and also notice how the text moves upwards and to the left (look at the clock on the right side).

The DVB tuning status does not appear to be effected, but if you do enough channel changes, it too will be effected and eventually there will be no text on the screen at all (and the background will be near the middle of the screen).

Changed 18 years ago by anonymous

Attachment: image1.jpg added

Changed 18 years ago by anonymous

Attachment: image2.jpg added

Changed 18 years ago by anonymous

Attachment: image3.jpg added

comment:12 Changed 18 years ago by Homer

Thanks Mr. Anonymous. I went to do some captures last night and found that my guide had gone blank... Tough to show this bug with a blank guide.

I had to drop mythconverg and start over... I was planning to add pics tonight. I still will if Daniel needs them.

Homer

comment:13 Changed 18 years ago by danielk

Homer, what is the resolution[s] of the channels you are changing between?

My suspicion is that OSDSet::Reinit() is accumulating small errors on most of the OSD types because they use a float representing the relative change in the OSD dimensions to resize things. But inside the osdtypes they use ints to store the dimensions. For example OSDTypeText stores the dimensions as ints and uses a cast to convert the floats to ints; this will always shrink the size of the OSD if the scaling does not scale exactly from one int to another.

comment:14 Changed 18 years ago by anonymous

The resolution of the streams that I used to capture the 3 images in this ticket were at 544x480.

comment:15 Changed 18 years ago by Homer

Everything that is decoded is theoretically NTSC, but I suppose they could change the number of horizontal pixels according to the compression they need.

How do I find out the resolution of the streams?

Homer

comment:16 Changed 18 years ago by danielk

Milestone: unknown0.20

I know how to fix this, but I've caused regressions trying to fix the OSD before so I'm going to hold off on this until after 0.19 is out. Until then you can change the capture resolution from 544x480 to 640x480. Also if you use Browse Mode to change channels you will be much less likely to ever run into this problem since you won't be reinitializing the OSD as often.

Homer, the place to set (and see) the capture resolution is in Utilities/Setup?->Setup->TV Settings->Recording Profiles->"Recorder Type"->Live TV

Where "Recorder Type" is the type of recorder you are using.

comment:17 Changed 18 years ago by anonymous

Just an FYI,

The source material for both Homer and I is DVB and the native resolution is 544x480, thus we don't have any way of changing this for Live TV.

(For myself) Live TV is not very important, I use it mainly for testing my setup. That said, I don't have a problem with holding on the fix until after 0.19 is out.

Thanks Daniel

Changed 18 years ago by danielk

Attachment: 944.patch added

fixes most of the OSD's

comment:18 Changed 18 years ago by danielk

The patch I attached works for most of the OSDType classes, but it breaks the OSDListTreeType. It's child nodes need a more sophisticated Resize method than the other OSDType classes.

comment:19 Changed 18 years ago by Isaac Richards

Might be a bit easier to pass the unscaled coords in and expect the individual objects to do the screen size scaling, instead of always giving them scaled positions..

comment:20 Changed 18 years ago by Homer

Patch applies cleanly but I get compile errors. Looks like something is missing from the patch?

g++ -c -pipe -march=athlon-xp -Wall -W -O3 -Wall -Wno-switch -fomit-frame-pointer -I/usr/include/freetype2 -D_REENTRANT -DPIC -fPIC  -DMMX -Di386 -DHAVE_DVDNAV -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DPREFIX=\"/usr/local\" -D_LARGEFILE_SOURCE -DUSING_OSS -DUSING_XV -DUSING_FRONTEND -DUSING_V4L -DUSING_IVTV -DUSING_DVB -DUSING_DVB_EIT -DUSING_BACKEND -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/qt/3/mkspecs/linux-g++ -I. -I../../../../local/include -I../../../../include -I../../../../include -I../.. -I.. -I../libmyth -I../libavcodec -I../libavutil -I../libmythmpeg2 -Idvbdev -Impeg -I/usr/qt/3/include -o osdlistbtntype.o osdlistbtntype.cpp
osdlistbtntype.cpp: In constructor `OSDListTreeType::OSDListTreeType(const QString&, const QRect&, const QRect&, int, float, float)':
osdlistbtntype.cpp:70: error: `round' was not declared in this scope
osdlistbtntype.cpp:72: error: `ceil' was not declared in this scope
osdlistbtntype.cpp: In member function `virtual void OSDListTreeType::Reinit(float, float)':
osdlistbtntype.cpp:118: error: `round' was not declared in this scope
osdlistbtntype.cpp:120: error: `ceil' was not declared in this scope
osdlistbtntype.cpp: In constructor `OSDListBtnType::OSDListBtnType(const QString&, const QRect&, float, float, bool)':
osdlistbtntype.cpp:438: error: `round' was not declared in this scope
osdlistbtntype.cpp:440: error: `ceil' was not declared in this scope
osdlistbtntype.cpp: In member function `virtual void OSDListBtnType::Reinit(float, float)':
osdlistbtntype.cpp:493: error: `round' was not declared in this scope
osdlistbtntype.cpp:495: error: `ceil' was not declared in this scope
make[2]: *** [osdlistbtntype.o] Error 1
make[2]: Leaving directory `/usr/src/mythtv.8789/libs/libmythtv'
make[1]: *** [sub-libmythtv] Error 2
make[1]: Leaving directory `/usr/src/mythtv.8789/libs'
make: *** [sub-libs] Error 2

comment:21 Changed 18 years ago by Homer

Had to add this

#include <math.h> 

to NuppelVideoPlayer?.h and osdlistbtntype.h

Then it compiled...

And it seems to be working. I changed channels a bunch of time and the text stayed perfect.

Thanks for the patch.

Homer

comment:22 Changed 18 years ago by danielk

(In [9021]) References #944. Fixes disappearing OSD problem in SVN.

I'm keeping the ticket open to remind me to apply this to 0.19-fixes, if no problems are reported.

The OSDListBtnType has been edited much more heavily than needed for this fix. It needed the rewriting, I found several double free's and other potentially serious problems.

The thing I'm not sure of is the DVD menu change in the NVP. I assumed the highlights were scaled for a 720x576 window, my guess is these are actually scaled for different sizes depending on the DVD standard. Highlights weren't working for me before the change, so I couldn't even test with an NTSC DVD.

comment:23 Changed 18 years ago by danielk

Resolution: fixed
Status: reopenedclosed

(In [9048]) Fixes #944 in 0.19-fixes. Disappearing OSD text.

Note: See TracTickets for help on using tickets.