Hi Folks,
This thread is for discussions related to community development of the MP 1.1.x/1.2.x dshowhelper, particularly the 'EVRCustomPresenter' code.
The discussion was started in this thread - https://forum.team-mediaportal.com/...playback-reclock-45834/index8.html#post607913 - so please read those posts first before posting here.
The most recent versions of my modified MP1 dshowhelper.dll (and source code) are attached below - they work OK on my system (Vista32, nVidia GT430 with 270.90 drivers, with/without ReClock) but have to be regarded as EXPERIMENTAL so tread carefully !
These dll's are compatible with MP 1.1.0 -> 1.2.3 - compatibility with other MP 1.2.x versions is unknown/untested. They are not compatible with MP 1.3.x versions.
ReClock is not required, but if you use it please disable vsync correction in ReClock - the dshowhelper does it's own vsync correction internally.
The various versions are not necessarily better/worse than each other (or the standard dll), they use different logic etc to achieve vsync correction.
MP 1.2.1 uses a version of v0055f dshowhelper (without MP Audio Renderer support)
EDIT: New thread started for MP 1.3.x compatible versions - https://forum.team-mediaportal.com/threads/mp-1-3-x-dshowhelper-development.113014/
Tony
--------------------------------------------------------
EDIT: version v004 added - this is basically v003 with the 'tearing test' bars restored and a reversion to a short (5 frame) scanline timing estimator as in v001 (but this is not used for display FPS determination - that comes from Windows)
EDIT: version v0010 added - this is a more extensive update - vsync correction is always on, the scanline timing estimator has been re-designed, the time delays for vsync correction now use the scheduler loop delay mechanism, timing hysteresis has been added to the presentation decision logic (to hopefully fix the 'synchronised judder' problems when it drops/repeats frames), and the sample buffers have been increased from 5 to 10 - plus a few other minor changes. Note - early feedback is showing problems on low-end GPUs at least...
EDIT: version v0012 added - many changes to the sample scheduling and delay logic, including using the Multimedia Class Scheduler service (MMCSS) for the worker thread. Uses 10 sample buffers.
EDIT: In response to Tourettes comments, added v0013 which is the same as v0012 except it only uses 5 sample buffers to minimise GPU memory usage.
EDIT: Added v0015 dll - fixes issue I found with one video file not starting properly (black screen + audio)
EDIT: Added v0019 dll + source code patch files. Thread locking/pausing changed to fix crash problem with v0010 - v0017. Improved reliability of SD/HD detection logic.
EDIT: Recommend Do not use v0010 - v0017 because they have a bug which can crash MP - use v0019 or later instead.
EDIT: Attachments re-organised.
EDIT: Added v0020 dll + source code patch files. This has some changes which might help with occasional continous stuttering problems in 1:2 video:display fps ratio situations.
EDIT: Added v0037 dll + source code patch files. Refresh rate estimator modified, render stats display simplified, more efficient averaging code, thread pausing logic improved, better handling of DVD menus with looping background video, better handling of situations where video fps is higher than display refresh rate.
EDIT: Added v0055a dll - fixes minor bugs in display refresh rate estimation and vsync correction.
EDIT: Added v0055b dll - filter graph info added to render stats screen. This version requires 'Microsoft Visual C++ 2010 Redistributable Package' to be installed.
EDIT: Added v0055c dll - Fix for MS DTV-DVD decoder crash-after-pause bug. This version requires 'Microsoft Visual C++ 2010 Redistributable Package' to be installed.
EDIT: Older versions removed to tidy things up.
EDIT: Added v0055e dll - Improved handling of some non-integer video:display FPS ratios for MP Audio Renderer (see https://forum.team-mediaportal.com/...ayback-quality-84441/index121.html#post730976 and following posts). This version requires 'Microsoft Visual C++ 2010 Redistributable Package' to be installed.
EDIT: Added v0055f dll (same version as in MP Audio Renderer v21a zip file)
EDIT: Added v0078_part_DWM dll - this version uses 'queued' mode in Aero/DWM to try and improve playback smoothness with some video cards/drivers. It is an alternative to v0055e - it works better on some systems, but can be worse on others, so try both versions. This is the same dll as the one posted here and requires 'Microsoft Visual C++ 2010 Redistributable Package' to be installed.
If you are using the MP AudioRenderer you must use the modified version from this post - https://forum.team-mediaportal.com/707555-post675.html - or version 21 or later from https://forum.team-mediaportal.com/637138-post3.html otherwise MP will crash...
EDIT: v0084_part_DWM dll can be found -> here <-
EDIT: v0092_part_DWM and v0092a_no_DWM can be found -> here <-
(Note: If you are testing the new MP audio renderer, only v0055a and later support this)
This thread is for discussions related to community development of the MP 1.1.x/1.2.x dshowhelper, particularly the 'EVRCustomPresenter' code.
The discussion was started in this thread - https://forum.team-mediaportal.com/...playback-reclock-45834/index8.html#post607913 - so please read those posts first before posting here.
The most recent versions of my modified MP1 dshowhelper.dll (and source code) are attached below - they work OK on my system (Vista32, nVidia GT430 with 270.90 drivers, with/without ReClock) but have to be regarded as EXPERIMENTAL so tread carefully !
These dll's are compatible with MP 1.1.0 -> 1.2.3 - compatibility with other MP 1.2.x versions is unknown/untested. They are not compatible with MP 1.3.x versions.
ReClock is not required, but if you use it please disable vsync correction in ReClock - the dshowhelper does it's own vsync correction internally.
The various versions are not necessarily better/worse than each other (or the standard dll), they use different logic etc to achieve vsync correction.
MP 1.2.1 uses a version of v0055f dshowhelper (without MP Audio Renderer support)
EDIT: New thread started for MP 1.3.x compatible versions - https://forum.team-mediaportal.com/threads/mp-1-3-x-dshowhelper-development.113014/
Tony
--------------------------------------------------------
EDIT: version v004 added - this is basically v003 with the 'tearing test' bars restored and a reversion to a short (5 frame) scanline timing estimator as in v001 (but this is not used for display FPS determination - that comes from Windows)
EDIT: version v0010 added - this is a more extensive update - vsync correction is always on, the scanline timing estimator has been re-designed, the time delays for vsync correction now use the scheduler loop delay mechanism, timing hysteresis has been added to the presentation decision logic (to hopefully fix the 'synchronised judder' problems when it drops/repeats frames), and the sample buffers have been increased from 5 to 10 - plus a few other minor changes. Note - early feedback is showing problems on low-end GPUs at least...
EDIT: version v0012 added - many changes to the sample scheduling and delay logic, including using the Multimedia Class Scheduler service (MMCSS) for the worker thread. Uses 10 sample buffers.
EDIT: In response to Tourettes comments, added v0013 which is the same as v0012 except it only uses 5 sample buffers to minimise GPU memory usage.
EDIT: Added v0015 dll - fixes issue I found with one video file not starting properly (black screen + audio)
EDIT: Added v0019 dll + source code patch files. Thread locking/pausing changed to fix crash problem with v0010 - v0017. Improved reliability of SD/HD detection logic.
EDIT: Recommend Do not use v0010 - v0017 because they have a bug which can crash MP - use v0019 or later instead.
EDIT: Attachments re-organised.
EDIT: Added v0020 dll + source code patch files. This has some changes which might help with occasional continous stuttering problems in 1:2 video:display fps ratio situations.
EDIT: Added v0037 dll + source code patch files. Refresh rate estimator modified, render stats display simplified, more efficient averaging code, thread pausing logic improved, better handling of DVD menus with looping background video, better handling of situations where video fps is higher than display refresh rate.
EDIT: Added v0055a dll - fixes minor bugs in display refresh rate estimation and vsync correction.
EDIT: Added v0055b dll - filter graph info added to render stats screen. This version requires 'Microsoft Visual C++ 2010 Redistributable Package' to be installed.
EDIT: Added v0055c dll - Fix for MS DTV-DVD decoder crash-after-pause bug. This version requires 'Microsoft Visual C++ 2010 Redistributable Package' to be installed.
EDIT: Older versions removed to tidy things up.
EDIT: Added v0055e dll - Improved handling of some non-integer video:display FPS ratios for MP Audio Renderer (see https://forum.team-mediaportal.com/...ayback-quality-84441/index121.html#post730976 and following posts). This version requires 'Microsoft Visual C++ 2010 Redistributable Package' to be installed.
EDIT: Added v0055f dll (same version as in MP Audio Renderer v21a zip file)
EDIT: Added v0078_part_DWM dll - this version uses 'queued' mode in Aero/DWM to try and improve playback smoothness with some video cards/drivers. It is an alternative to v0055e - it works better on some systems, but can be worse on others, so try both versions. This is the same dll as the one posted here and requires 'Microsoft Visual C++ 2010 Redistributable Package' to be installed.
If you are using the MP AudioRenderer you must use the modified version from this post - https://forum.team-mediaportal.com/707555-post675.html - or version 21 or later from https://forum.team-mediaportal.com/637138-post3.html otherwise MP will crash...
EDIT: v0084_part_DWM dll can be found -> here <-
EDIT: v0092_part_DWM and v0092a_no_DWM can be found -> here <-
(Note: If you are testing the new MP audio renderer, only v0055a and later support this)
Last edited: