NextPVR Forums
  • ______
  • Home
  • New Posts
  • Wiki
  • Members
  • Help
  • Search
  • Register
  • Login
  • Home
  • Wiki
  • Members
  • Help
  • Search
NextPVR Forums Public Developers v
« Previous 1 … 50 51 52 53 54 … 93 Next »
render only called for mouse and keyboard event

 
  • 0 Vote(s) - 0 Average
render only called for mouse and keyboard event
sub
Offline

Administrator

NextPVR HQ, New Zealand
Posts: 106,789
Threads: 769
Joined: Nov 2003
#11
2006-06-23, 12:44 AM
If you can email a plugin that exhibits this problem to me at support@devnz.com, I'll give it a try.
rshaw
Offline

Junior Member

Posts: 11
Threads: 3
Joined: May 2006
#12
2006-06-23, 12:54 AM
If I figure it out I will post the answer. Thanks.
23skidoo
Offline

Member

Posts: 120
Threads: 9
Joined: Sep 2006
#13
2006-09-14, 09:39 PM
Same problem here. Haven't tested other media playback, but needsRendering() never gets called if liveTV is playing.

My plugin is simple. It displays a menu of sleep timer values, e.g. "Not set," "10 minutes," "30 minutes," etc. Under the menu is the current status of the sleep timer, e.g. "GB-PVR will shut down in 8 minutes."

If live TV is not playing in the background, my code in needsRendering() gets called every second or so.

If live TV is playing in the background, my code in needsRendering() never gets called. That is, unless a keyboard event is fired. Maybe mouse events too. Haven't tested those.

Interestingly, PluginHelperFactory.getPluginHelper().ForceRepaint() doesn't do anything either when live TV is playing.

In my case, it's not a huge deal. Falling asleep with the TV on (or net radio or whatever) is kinda the whole point of the sleep timer. I'm not interested in sitting there watching the timer countdown. :-)

This is my first GB-PVR plugin (just found this thing a couple days ago), so I can't say yet whether this anomaly is a bug. But it does seem fishy. :-)
WinTV PVR-150 / ATI X1600 512 / 3GHz P4 / 2GB RAM
23skidoo
Offline

Member

Posts: 120
Threads: 9
Joined: Sep 2006
#14
2006-09-14, 11:39 PM
OK. Here's some more info.

I suspected perhaps the culprit was the GbpvrUiElements.Label helper class. So I went on and called Graphics.DrawString() directly.

Oh, and I put some debugging messages in my implementation of render(). It actually does get called every second or so, even when live TV is playing.

The catch is, even though render() gets called every second (assuming needsRendering() has been properly coded to return true when necessary), if live TV is running in the background, none of the GDI functions on the window graphics get executed. Or at least their changes aren't refreshed visibly.

The short of it is, even calling Graphics.DrawString() directly doesn't work when live TV is running.

Please see my specs below.
WinTV PVR-150 / ATI X1600 512 / 3GHz P4 / 2GB RAM
23skidoo
Offline

Member

Posts: 120
Threads: 9
Joined: Sep 2006
#15
2006-09-14, 11:40 PM
Post Script: This is a fun little project. Love the slapdash-yet-earnest efforts at this endeavor. It's rare for me to find coding these days that's actually fun. Just coding for the sake of coding. :-)
WinTV PVR-150 / ATI X1600 512 / 3GHz P4 / 2GB RAM
acheyne
Offline

Member

Posts: 81
Threads: 20
Joined: Dec 2005
#16
2006-09-15, 02:31 AM
Is it a threading issue?
GBPVR 1.1.5 on
Pentium 4 2.0GHz
PVR-350
NVidia GeForce 5200 TV-Out
23skidoo
Offline

Member

Posts: 120
Threads: 9
Joined: Sep 2006
#17
2006-09-15, 03:45 AM (This post was last modified: 2006-09-15, 03:49 AM by 23skidoo.)
acheyne Wrote:Is it a threading issue?

I don't think so. I'm using static bools as semaphores and whatnot. And like I said, needsRendering() gets called every second. And the value that's important to me (int RemainingMinutes) gets shuttled arround accurately (according to debug messages).

But I've even tested it by removing all conditional processing and just hard-coding needsRendering() to always return true.
WinTV PVR-150 / ATI X1600 512 / 3GHz P4 / 2GB RAM
Snarky
Offline

Junior Member

Posts: 43
Threads: 7
Joined: Oct 2005
#18
2006-09-18, 02:51 PM
What do you mean by video playing in the background? Do you mean that your plugin is running as an IVideoPlugin?

If so, do you ever see any OSDs? If GBPVR isn't configured correctly, or depending on your hardware, you might not see anything rendered on top of video.

A friend of mine had this problem, and it turned out to be the ATI/VMR9 registry problem (documented on the Wiki). Try looking into that.
23skidoo
Offline

Member

Posts: 120
Threads: 9
Joined: Sep 2006
#19
2006-09-18, 05:31 PM
Snarky Wrote:What do you mean by video playing in the background? Do you mean that your plugin is running as an IVideoPlugin?
Nope. Although I have added it as one of the <VideoPluginX/> values, just to play around. But that's an unrelated subject.

Quote:If so, do you ever see any OSDs?
What exact is an OSD? I see it used a lot, and I just figured eventually its meaning would be revealed through context clues and whatnot. No dice. but let me take a guess: Is an OSD the proper term for stuff being displayed on top of video (such as, say, live TV)?

Quote:If GBPVR isn't configured correctly, or depending on your hardware, you might not see anything rendered on top of video.
Oh, no, no. I see stuff float over video. The mini-guide; and even my own sleep timer plugin. Both pop up just fine.

What I'm saying here is that if GB-PVR is playing video ("in the background," from a UI perspective), the controls in my plugin don't get invalidated properly. Or maybe they do. But whatever the cause, they never get re-painted. Until a keyboard event is fired.

Quote:A friend of mine had this problem, and it turned out to be the ATI/VMR9 registry problem (documented on the Wiki). Try looking into that.
Thanks for checking. It's not really a display issue. I mean, it is. But it's not as if overlays aren't showing up on the video. That seems fine. It's the redrawing of the bitmaps (or lack thereof) that's causing the problem.
WinTV PVR-150 / ATI X1600 512 / 3GHz P4 / 2GB RAM
Snarky
Offline

Junior Member

Posts: 43
Threads: 7
Joined: Oct 2005
#20
2006-09-19, 12:51 PM
I don't follow. You say that this problem occurs when GBPVR is playing video "in the background", but that your plugin is not running as an IVideoPlugin. As far as I am aware, the only way to run a plugin while video is playing is to run it as an IVideoPlugin. Am I missing something here?

Also, when a plugin is running as an IVideoPlugin, needsRendering() is irrelevant. As long as the plugin is active (having returned true when needsToBeShown() is polled), render() will be called every ~1 second. Check the IVP.rtf file for a fuller explanation.

Yes, OSDs (On-Screen Displays) are controls and displays that are superimposed on a video screen.

So if I understand you correctly, your plugin is active, running on top of video, and render() gets called every second, but you don't see the effects of it being drawn until after a keyboard event.

That's odd.

I wonder if it's something weird you're doing that's causing this. The "Hello World" plugin can easily be adapted to run on top of video. Can you try that, adding for example a counter ("Hello World 1", "Hello World 2", ...) that increments each time it is rendered, to see if the thing updates without your key input?

Also, can you please post the code of your current render() method, and a log showing video starting, the plugin getting activated, render() getting called, etc.
« Next Oldest | Next Newest »

Users browsing this thread: 1 Guest(s)

Pages (3): « Previous 1 2 3 Next »


Possibly Related Threads…
Thread Author Replies Views Last Post
  Recording Event jrockow 10 4,757 2014-07-28, 02:51 PM
Last Post: jrockow
  GetRenderList() always called with "block-extras..." element in renderlist alibert 1 1,667 2012-06-18, 10:24 AM
Last Post: sub
  Render order in Videos Jaggy 13 4,444 2011-10-12, 11:20 AM
Last Post: mvallevand
  Timeline mouse navigation Jaggy 2 1,921 2011-09-18, 01:53 AM
Last Post: Jaggy
  IScreenPlugin.Activate() being called twice ACTCMS 0 1,370 2011-06-03, 03:16 PM
Last Post: ACTCMS
  Event codes mvallevand 10 3,900 2011-04-06, 04:26 AM
Last Post: mvallevand
  "Rating" in cached event details xml alibert 74 17,848 2011-03-28, 01:06 AM
Last Post: zehd
  STARTUP_COMPLETE event on NMT alibert 6 2,515 2011-02-12, 05:15 PM
Last Post: sub
  How to render a graphical volume display in nPVR McBainUK 3 2,097 2010-12-13, 03:25 PM
Last Post: imilne
  TV Guide Element Render order Northpole 0 1,321 2010-10-24, 04:11 PM
Last Post: Northpole

  • View a Printable Version
  • Subscribe to this thread
Forum Jump:

© Designed by D&D, modified by NextPVR - Powered by MyBB

Linear Mode
Threaded Mode