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
23skidoo
Offline

Member

Posts: 120
Threads: 9
Joined: Sep 2006
#21
2006-09-19, 04:44 PM
Snarky Wrote: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?
First, when I referred to "running video in the background," what I meant is that I went back to the main menu without turning off live TV. In this case, the only evidence live TV is still running is the audio. That is, live TV is "running in the background" from an application execution standpoint, not a user interface standpoint.

Second, a plugin does not have to implement IVideoPlugin to show up as an overlay on the live TV screen. My plugin just implements IMenuTask, but if i add it to one of the <VideoPluginX/> elements in config.xml, it shows up just fine. Looks kinda cool.

Quote: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, I've discovered this through experimentation. I want my plugin's main screen to reflect the timer's current countdown value (approximate to the minute). If it runs over top of live TV (as a <VideoPluginX/> element; even though it does not implement IVideoPlugin), render() is called every second, as expected. Not so if live TV is running and I call the plugin from the main menu.

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

Quote: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.
Forget about it running as an overlay or an OSD or whatever. Forget about running it on top of a live TV video image. That opens up an entirely different can of worms.

Here are the steps to reproduce the bug. I have a WinTV-PVR-150, latest drivers, etc. And my Sleep Timer plugin is installed.

  1. From the Main Menu, click Live TV.
  2. Once watching Live TV, click Menu (on the remote).
  3. From the menu (which now displays a Live TV video inset), click Sleep Timer.
  4. From the Sleep Timer menu, click "10 minutes." You'll be returned to the Main Menu.
  5. Wait exactly 2 minutes.
  6. From the Main Menu, click Sleep Timer. On the Sleep Timer screen, you'll see that your previous choice ("10 minutes") is selected, and at the bottom a status message will tell you about 8 minutes are left on the timer.
  7. Watch this screen for another 2 minutes. Don't touch any arrow keys or click the mouse. The status message does not change.
  8. Move the Up arrow key. The status message updates.
I have determined via debug messages and testing that render() is in fact being called about every second (when required).

The Weather plugin behaves the same way. The updates. The screen doesn't reflect the new values if Live TV is running in the background (not as an OSD; just the regular plugin).

Quote:That's odd.
I bet it seems even more odd now. :-)

Quote:I wonder if it's something weird you're doing that's causing this.
Of course it is! lol

Quote: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?
Yes, I will make a simple example plugin that demonstrates the bug precisely. I was looking to kill some time. :-)

Quote: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.
I'll make the simple test first, then we'll see. :-)
WinTV PVR-150 / ATI X1600 512 / 3GHz P4 / 2GB RAM
Jeff
Offline

Posting Freak

Posts: 1,933
Threads: 69
Joined: Oct 2004
#22
2006-09-19, 05:05 PM
23skidoo Wrote:The Weather plugin behaves the same way. The updates. The screen doesn't reflect the new values if Live TV is running in the background (not as an OSD; just the regular plugin).

I'm not sure what you mean. If the weather plug-in is popped up over video it does update on its own without needing to press the keyboard or mouse. I have tested it by downloading a new forecast while watching video. The forecast is initiated by a keypress, but the actual download is done in a background thread and the display is (correctly) updated when that download is complete. Note that I don't have a tuner in my development machine so I just tried this with a prerecorded video. Are you saying it only behaves this way with live TV? Have you tried your test with prerecorded video?

Jeff
23skidoo
Offline

Member

Posts: 120
Threads: 9
Joined: Sep 2006
#23
2006-09-19, 05:41 PM
Jeff Wrote:I'm not sure what you mean. If the weather plug-in is popped up over video...
Arrrg! lol

Forget about stuff popping up over video! See my steps above. Run Live TV, go back to the menu (leaving live TV open), and then launch a plugin that expects to refresh itself on the screen every so often. It won't happen!

I'll post a tiny simple little test class that demonstrates this clearly. I'll start a new thread, since the subject of this one is innaccurate.
WinTV PVR-150 / ATI X1600 512 / 3GHz P4 / 2GB RAM
Snarky
Offline

Junior Member

Posts: 43
Threads: 7
Joined: Oct 2005
#24
2006-09-19, 07:33 PM
23skidoo Wrote:First, when I referred to "running video in the background," what I meant is that I went back to the main menu without turning off live TV. In this case, the only evidence live TV is still running is the audio. That is, live TV is "running in the background" from an application execution standpoint, not a user interface standpoint.
Ah, I see. That begins to explain what's going on.

Quote:Second, a plugin does not have to implement IVideoPlugin to show up as an overlay on the live TV screen. My plugin just implements IMenuTask, but if i add it to one of the <VideoPluginX/> elements in config.xml, it shows up just fine. Looks kinda cool.
Interesting. I wasn't aware of that. The IVideoPlugin API is probably still quite handy for these plugins, but it's nice that it's not required.

Quote:Forget about it running as an overlay or an OSD or whatever. Forget about running it on top of a live TV video image. That opens up an entirely different can of worms.

Here are the steps to reproduce the bug. I have a WinTV-PVR-150, latest drivers, etc. And my Sleep Timer plugin is installed.

  1. From the Main Menu, click Live TV.
  2. Once watching Live TV, click Menu (on the remote).
  3. From the menu (which now displays a Live TV video inset), click Sleep Timer.
  4. From the Sleep Timer menu, click "10 minutes." You'll be returned to the Main Menu.
  5. Wait exactly 2 minutes.
  6. From the Main Menu, click Sleep Timer. On the Sleep Timer screen, you'll see that your previous choice ("10 minutes") is selected, and at the bottom a status message will tell you about 8 minutes are left on the timer.
  7. Watch this screen for another 2 minutes. Don't touch any arrow keys or click the mouse. The status message does not change.
  8. Move the Up arrow key. The status message updates.
I have determined via debug messages and testing that render() is in fact being called about every second (when required).

The Weather plugin behaves the same way. The updates. The screen doesn't reflect the new values if Live TV is running in the background (not as an OSD; just the regular plugin).


I bet it seems even more odd now. :-)
No, it actually seems less odd. In my experiences, I've noticed that video plugins don't appear on top of the video window in the main menu. (This makes sense, since keypresses and stuff refer to the main menu itself.) This could be where your problem comes from: maybe there's a test somewhere for the video running in a window, which disables the actual rendering. Or maybe your controls are being drawn on top of the (off-screen) video.

I'm leaning towards this being a GBPVR bug, and a relatively obscure one because it only happens in this very special case.
23skidoo
Offline

Member

Posts: 120
Threads: 9
Joined: Sep 2006
#25
2006-09-20, 10:45 AM
@Snarky: Sub (who I've come to understand is our Project Overlord) has confirmed that there's an issue that'll be addressed in the next release:
http://forums.nextpvr.com/showthread.php?t=19842
WinTV PVR-150 / ATI X1600 512 / 3GHz P4 / 2GB RAM
« Next Oldest | Next Newest »

Users browsing this thread: 1 Guest(s)

Pages (3): « Previous 1 2 3


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