- March 24, 2007
- 12,073
- 7,459
- Home Country
- Germany
- Moderator
- #71
AW: Video and sound syncronisation
There is a new testbuild, based on the brand new RenderStats branch!
It's basically based on dev and BDPlayer, so you'll get some more nice things to test (see also native bluray playback thread for MP1).
Main changes I've added:
Comment on render modes: in principle they affect the "idle" mode when no video is playing (mostly the maximum speed).
For a test I need feedback while video is playing (in combination with the active RenderMode!)
Please also post some screenshots (like mine attached), when idle and playing video
Edit 1:
- attached 1st Update: added yellow line (nr. of glitches), added screen and video resolution info (primary+PiP)
Edit 2 (2011-11-20):
- attached a fresh full build (unzip to a different folder), containing highly experimental code regarding process / thread usage
Edit 3 (2011-11-21):
- deleted build from day before, experiment didn't show improvements new version will come soon!
Edit 4 (2011-11-22):
- new build added. main change is the use of Texture callbacks from EVRPresenter. this build is based on current dev, so it's newer than builds before. note: this build is known to break PiP video, but it's not the most important thing to check currently
Edit 5 (2011-11-23):
- new version of plugins added (incremental update to Edit 4). better locking, removed waitvblank call, applied scheduler changes from EVR_v2
Edit 6 (2011-11-23):
- new version of plugins added (incremental update to Edit 5). more locking
Edit 7 (2011-11-27):
- I changed the locking of VideoBrush like it is done in dev branch. But this version doesn't do the StretchRect twice, but creates a local new texture instance. I've done this because on my ATI 5670 probably StretchRect can cause stutters as well
Edit 8 (2011-11-29):
- new build based on dev, using texture callback without StretchRect. This should work without flicker now for ATI. code got cleaned up and will be found in new branch "20111129-BluRay_v2"
Edit 9 (2011-11-30):
- small update of video player + media plugin. I'm now waiting in EVR callback until the render process is finished. Does it work better now?
Edit 10 (2011-12-02):
- Changed all video frame processing to use the single texture from callback only (no more copying). Callback thread is blocked until render process is done. Also includes a release build of BDReader.ax, so regsrv32 should work now. this is a release compiled build.
Edit 11 (2011-12-19):
- New tesbuild from VideoFlickerFix branch (https://github.com/MediaPortal/MediaPortal-2/commit/fb53c35d961f33e329806b5efeac94c72a3db12b). The EVR callback is now fully syncronized with the RenderThread. Should work now with both ATI+NVIDIA
There is a new testbuild, based on the brand new RenderStats branch!
It's basically based on dev and BDPlayer, so you'll get some more nice things to test (see also native bluray playback thread for MP1).
Main changes I've added:
- I now expose 3 different RenderModes:
- SleepForceImmediate: the way as in master/dev branch (manually sleep till next frame time, use Present.ForceImmediate)
- NoSleepPresentNone: do not manually sleep, use Present.None that takes care for one present per VBlank
- NoSleepForceImmediate: dot not sleep, use Present.ForceImmediate (when NOT playing video this renders the GUI at maximum speed)
- I added rendering lines for
- GUI render duration (red)
- Offset time in ms to next VBlank (green)
Comment on render modes: in principle they affect the "idle" mode when no video is playing (mostly the maximum speed).
For a test I need feedback while video is playing (in combination with the active RenderMode!)
- are the lines quite steady
- does the video playback stutter
- do "wrong frames" appear (or black frames flashing)
Please also post some screenshots (like mine attached), when idle and playing video
Edit 1:
- attached 1st Update: added yellow line (nr. of glitches), added screen and video resolution info (primary+PiP)
Edit 2 (2011-11-20):
- attached a fresh full build (unzip to a different folder), containing highly experimental code regarding process / thread usage
Edit 3 (2011-11-21):
- deleted build from day before, experiment didn't show improvements new version will come soon!
Edit 4 (2011-11-22):
- new build added. main change is the use of Texture callbacks from EVRPresenter. this build is based on current dev, so it's newer than builds before. note: this build is known to break PiP video, but it's not the most important thing to check currently
Edit 5 (2011-11-23):
- new version of plugins added (incremental update to Edit 4). better locking, removed waitvblank call, applied scheduler changes from EVR_v2
Edit 6 (2011-11-23):
- new version of plugins added (incremental update to Edit 5). more locking
Edit 7 (2011-11-27):
- I changed the locking of VideoBrush like it is done in dev branch. But this version doesn't do the StretchRect twice, but creates a local new texture instance. I've done this because on my ATI 5670 probably StretchRect can cause stutters as well
Edit 8 (2011-11-29):
- new build based on dev, using texture callback without StretchRect. This should work without flicker now for ATI. code got cleaned up and will be found in new branch "20111129-BluRay_v2"
Edit 9 (2011-11-30):
- small update of video player + media plugin. I'm now waiting in EVR callback until the render process is finished. Does it work better now?
Edit 10 (2011-12-02):
- Changed all video frame processing to use the single texture from callback only (no more copying). Callback thread is blocked until render process is done. Also includes a release build of BDReader.ax, so regsrv32 should work now. this is a release compiled build.
Edit 11 (2011-12-19):
- New tesbuild from VideoFlickerFix branch (https://github.com/MediaPortal/MediaPortal-2/commit/fb53c35d961f33e329806b5efeac94c72a3db12b). The EVR callback is now fully syncronized with the RenderThread. Should work now with both ATI+NVIDIA
Attachments
-
01_SleepForceImmediate.jpg93.3 KB
-
02_NoSleepPresentNone.jpg93 KB
-
03_NoSleepForceImmediate.png471.6 KB
-
04_SleepForceImmediate_video.jpg335.6 KB
-
05_NoSleepPresentNone_video.jpg264 KB
-
06_NoSleepForceImmediate_video.jpg349 KB
-
08_update_1.jpg323.8 KB
-
Update_1.7z393.9 KB
-
MP2_20111122_TextureCallback.7z18.5 MB
-
MediaPortal.UI.Players.Video.Settings.VideoSettings.xml158 bytes
-
MP2_20111123_TextureCallback_Update1.7z1.4 MB
-
MP2_20111123_TextureCallback_Update2.7z1.4 MB
-
MP2_20111127_TextureCallback_VideoBrushLock.7z18.5 MB
-
MP2_20111129_BluRay_v2.7z17.5 MB
-
MP2_20111130_Update_EVR.7z447.3 KB