home
products
contribute
download
documentation
forum
Home
Forums
New posts
Search forums
What's new
New posts
All posts
Latest activity
Members
Registered members
Current visitors
Donate
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Search titles only
By:
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Forums
MediaPortal 1
Development
General Development (no feature request here!)
MP 1.3.x dshowhelper development
Contact us
RSS
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="Owlsroost" data-source="post: 921629" data-attributes="member: 83973"><p>For reference, the <strong>default</strong> settings for the registry values in "HKEY_CURRENT_USER\Software\Team MediaPortal\EVR Presenter" are:</p><p> </p><p style="margin-left: 20px">EnableDWMQueuedMode = 0</p> <p style="margin-left: 20px">EnableMMCSSforDWM = 0</p> <p style="margin-left: 20px">EnableMMCSSforSchedulerThread = 1</p> <p style="margin-left: 20px">NumDWMBuffers = 3</p> <p style="margin-left: 20px">EnableDWMAudioDelayComp = 0</p> <p style="margin-left: 20px">SampleQueueSize = 5</p> <p style="margin-left: 20px">WorkerThreadMmcssPriority = 1</p> <p style="margin-left: 20px">TimerThreadMmcssPriority = 0</p> <p style="margin-left: 20px">SchedulerThreadMmcssPriority = 2</p> <p style="margin-left: 20px">ForceFirstFrame = 0</p> <p style="margin-left: 20px">LowResVSyncCorrectionTiming = 0</p> <p style="margin-left: 20px">FPSLimitFrameRate = 0</p> <p style="margin-left: 20px">FPSLimitHeightThresh = 700</p> <p style="margin-left: 20px">FPSLimitWidthThresh = 1200</p> <p style="margin-left: 20px">EnableLateDWMInit = 0</p> <p style="margin-left: 20px">Enable24HzDWM = 1</p> <p style="margin-left: 20px">EnableDWMInitSleep = 1</p> <p style="margin-left: 20px"></p> <p style="margin-left: 20px"></p><p></p><p> </p><p><strong>Release v663b:</strong></p><ul> <li data-xf-list-type="ul">DWM 'queued' mode support added (like the older 'part_DWM' versions)</li> <li data-xf-list-type="ul">Sample queue management changed to fix occasional frame 'flashback' problems</li> <li data-xf-list-type="ul">High-hysteresis frame drop/repeat logic added to produce cleaner frame drops and repeats</li> <li data-xf-list-type="ul">Thread locking converted/reverted to hard locks as an experiment ('PauseThread' etc removed)</li> <li data-xf-list-type="ul">Potential deadlock situation when flushing worked around</li> <li data-xf-list-type="ul">Registry key added - 'HKEY_CURRENT_USER\Software\Team MediaPortal\EVR Presenter\EnableDWMQueuedMode - if this is '1' DWM queued mode is enabled, if '0' it is disabled (it is disabled in the standard dshowhelper).</li> </ul><p><strong>Release v666:</strong></p><ul> <li data-xf-list-type="ul">Converted to use Unicode for Windows API interfaces</li> <li data-xf-list-type="ul">Fixed a bug so the registry settings are now applied correctly</li> <li data-xf-list-type="ul">Added new Registry setting - 'HKEY_CURRENT_USER\Software\Team MediaPortal\EVR Presenter\NumDWMBuffers' - sets number of DWM buffers used, range is 3-7, default is 3. Only used when DWM queued mode is enabled.</li> <li data-xf-list-type="ul">Added automatic audio delay compensation for DWM buffering delay when MP Audio Renderer is used</li> </ul><p><strong>Release v667:</strong></p><ul> <li data-xf-list-type="ul">Fixed a bug with Unicode strings in logging</li> <li data-xf-list-type="ul">High-hysteresis frame drop/repeat logic enabled when MP Audio Renderer is in use.</li> <li data-xf-list-type="ul">Added new Registry setting - 'HKEY_CURRENT_USER\Software\Team MediaPortal\EVR Presenter\EnableDWMAudioDelayComp' - when '1' automatic audio delay compensation for DWM buffering delay is enabled (when MP Audio Renderer is used). Default is '0' (not enabled)</li> <li data-xf-list-type="ul">Internal sample queue length increased to 5</li> <li data-xf-list-type="ul">'NumDWMBuffers' registry setting range is now 3-8</li> <li data-xf-list-type="ul">Sample dropping in ScheduleSample() disabled until pre-buffering is complete.</li> </ul><p><strong>Release v669:</strong></p><ul> <li data-xf-list-type="ul">Added new Registry setting - 'HKEY_CURRENT_USER\Software\Team MediaPortal\EVR Presenter\SampleQueueSize' - sets the input video sample queue length - range is 3 to 9, default is '5'</li> <li data-xf-list-type="ul">Added new Registry settings to control the (MMCSS) thread priorities: "TimerThreadMmcssPriority", "WorkerThreadMmcssPriority", "SchedulerThreadMmcssPriority"<br /> <br /> Possible values are 0 to 3:<br /> <br /> 3 = AVRT_PRIORITY_CRITICAL<br /> 2 = AVRT_PRIORITY_HIGH (default for Scheduler thread)<br /> 1 = AVRT_PRIORITY_NORMAL (default for Worker thread)<br /> 0 = AVRT_PRIORITY_LOW (default for Timer thread)</li> </ul> <ul> <li data-xf-list-type="ul">Default for 'EnableDWMQueuedMode' is now '0' (disabled) so that it behaves like the standard dshowhelper when first installed.</li> </ul><p><strong>Release v671:</strong></p><ul> <li data-xf-list-type="ul">Changes to fix hangs/crashes with AMD GPU (probably caused by calling DwmFlush() when shutdown)</li> </ul><p><strong>Release v672:</strong></p><ul> <li data-xf-list-type="ul">DwmInit() and DwmReset() delays now use Sleep()</li> </ul><p><strong>Release v675:</strong></p><ul> <li data-xf-list-type="ul">More changes to internal thread locking to fix hangs/crashes (small update from v674). Delays removed from DwmInit() and DwmReset() methods (experimental).</li> </ul><p><strong>Release v676:</strong></p><ul> <li data-xf-list-type="ul">Timer thread reworked to use WaitableTimers (might lower CPU usage a little)</li> <li data-xf-list-type="ul">'LowResVSyncCorrectionTiming' registry option added (might lower CPU usage a little, but creates bumpy graph lines)</li> <li data-xf-list-type="ul">Some deadlock hazards worked around</li> <li data-xf-list-type="ul">Minor logging bug in DWM (Aero) detection code fixed.</li> </ul><p><strong>Release v677:</strong></p><p> </p><p>Controllable FPS rate limiter added - can be used for low-performance systems to reduce rendering load, by discarding 50% of frames when video FPS and frame size exceeds thresholds. Controlled by registry values:</p><p> </p><p>FPSLimitFrameRate (FPS limit, default = 0, FPS limiter disabled)</p><p>FPSLimitHeightThresh (default = 700)</p><p>FPSLimitWidthThresh (default = 1200)</p><p> </p><p>e.g. if FPSLimitFrameRate = 40 AND FPSLimitHeightThresh = 700 AND FPSLimitWidthThresh = 1200 then all video with FPS higher than 40 and frame size greater than 1200 x 700 will have 50% of the frames dropped to reduce the GPU rendering load.</p><p> </p><p><strong>Release v678:</strong></p><p> </p><p>Identical to v677, except that the Scheduler thread locking is now 'soft' instead of 'hard' - this makes it behave like the thread locking inside the standard MP 1.2.3/1.3.0 dshowhelper. I'm not sure if the v677 or v678 approach is better, so I'm interested in feedback before deciding which way to go for the future. Hopefully you won't notice any difference in performance or stability <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite1" alt=":)" title="Smile :)" loading="lazy" data-shortname=":)" /> (I can't, but then I can't reproduce some of the lockup/hang problems other people have reported in the past either).</p><p> </p><p><strong>Release v679:</strong></p><ul> <li data-xf-list-type="ul">Version info added to dll (so it shows up in Windows file 'Properties' dialog).</li> <li data-xf-list-type="ul">DWM queued mode initialisation moved later in the start-of-play sequence, to minimise the temporary black screen effect.</li> </ul><p><strong>Release v684:</strong></p><ul> <li data-xf-list-type="ul">Reverted Scheduler thread locking back to 'hard'.</li> <li data-xf-list-type="ul">'EnableLateDWMInit' registry option added - default is '0' (early initialisation, like v677 and earlier). DWM queued mode initialisation is done as late as possible in the start-of-play sequence when '1'</li> <li data-xf-list-type="ul">'Enable24HzDWM' registry option added - default is '1' (enabled), uses normal DWM queued mode operation in 24 Hz display refresh situation. This is an experiment - feedback welcome, since this has caused problems in the past, but seems to help on my system now.</li> <li data-xf-list-type="ul">'EnableDWMInitSleep' registry option added - default is '1' (enabled), adds small delay after DWM queued mode initialisation to help with 24 Hz display refresh situation (mostly). Another experiment...</li> </ul></blockquote><p></p>
[QUOTE="Owlsroost, post: 921629, member: 83973"] For reference, the [B]default[/B] settings for the registry values in "HKEY_CURRENT_USER\Software\Team MediaPortal\EVR Presenter" are: [INDENT=1]EnableDWMQueuedMode = 0[/INDENT] [INDENT=1]EnableMMCSSforDWM = 0[/INDENT] [INDENT=1]EnableMMCSSforSchedulerThread = 1[/INDENT] [INDENT=1]NumDWMBuffers = 3[/INDENT] [INDENT=1]EnableDWMAudioDelayComp = 0[/INDENT] [INDENT=1]SampleQueueSize = 5[/INDENT] [INDENT=1]WorkerThreadMmcssPriority = 1[/INDENT] [INDENT=1]TimerThreadMmcssPriority = 0[/INDENT] [INDENT=1]SchedulerThreadMmcssPriority = 2[/INDENT] [INDENT=1]ForceFirstFrame = 0[/INDENT] [INDENT=1]LowResVSyncCorrectionTiming = 0[/INDENT] [INDENT=1]FPSLimitFrameRate = 0[/INDENT] [INDENT=1]FPSLimitHeightThresh = 700[/INDENT] [INDENT=1]FPSLimitWidthThresh = 1200[/INDENT] [INDENT=1]EnableLateDWMInit = 0[/INDENT] [INDENT=1]Enable24HzDWM = 1[/INDENT] [INDENT=1]EnableDWMInitSleep = 1[/INDENT] [INDENT=1][/INDENT] [INDENT=1] [/INDENT] [B]Release v663b:[/B] [LIST] [*]DWM 'queued' mode support added (like the older 'part_DWM' versions) [*]Sample queue management changed to fix occasional frame 'flashback' problems [*]High-hysteresis frame drop/repeat logic added to produce cleaner frame drops and repeats [*]Thread locking converted/reverted to hard locks as an experiment ('PauseThread' etc removed) [*]Potential deadlock situation when flushing worked around [*]Registry key added - 'HKEY_CURRENT_USER\Software\Team MediaPortal\EVR Presenter\EnableDWMQueuedMode - if this is '1' DWM queued mode is enabled, if '0' it is disabled (it is disabled in the standard dshowhelper). [/LIST] [B]Release v666:[/B] [LIST] [*]Converted to use Unicode for Windows API interfaces [*]Fixed a bug so the registry settings are now applied correctly [*]Added new Registry setting - 'HKEY_CURRENT_USER\Software\Team MediaPortal\EVR Presenter\NumDWMBuffers' - sets number of DWM buffers used, range is 3-7, default is 3. Only used when DWM queued mode is enabled. [*]Added automatic audio delay compensation for DWM buffering delay when MP Audio Renderer is used [/LIST] [B]Release v667:[/B] [LIST] [*]Fixed a bug with Unicode strings in logging [*]High-hysteresis frame drop/repeat logic enabled when MP Audio Renderer is in use. [*]Added new Registry setting - 'HKEY_CURRENT_USER\Software\Team MediaPortal\EVR Presenter\EnableDWMAudioDelayComp' - when '1' automatic audio delay compensation for DWM buffering delay is enabled (when MP Audio Renderer is used). Default is '0' (not enabled) [*]Internal sample queue length increased to 5 [*]'NumDWMBuffers' registry setting range is now 3-8 [*]Sample dropping in ScheduleSample() disabled until pre-buffering is complete. [/LIST] [B]Release v669:[/B] [LIST] [*]Added new Registry setting - 'HKEY_CURRENT_USER\Software\Team MediaPortal\EVR Presenter\SampleQueueSize' - sets the input video sample queue length - range is 3 to 9, default is '5' [*]Added new Registry settings to control the (MMCSS) thread priorities: "TimerThreadMmcssPriority", "WorkerThreadMmcssPriority", "SchedulerThreadMmcssPriority" Possible values are 0 to 3: 3 = AVRT_PRIORITY_CRITICAL 2 = AVRT_PRIORITY_HIGH (default for Scheduler thread) 1 = AVRT_PRIORITY_NORMAL (default for Worker thread) 0 = AVRT_PRIORITY_LOW (default for Timer thread) [/LIST] [LIST] [*]Default for 'EnableDWMQueuedMode' is now '0' (disabled) so that it behaves like the standard dshowhelper when first installed. [/LIST] [B]Release v671:[/B] [LIST] [*]Changes to fix hangs/crashes with AMD GPU (probably caused by calling DwmFlush() when shutdown) [/LIST] [B]Release v672:[/B] [LIST] [*]DwmInit() and DwmReset() delays now use Sleep() [/LIST] [B]Release v675:[/B] [LIST] [*]More changes to internal thread locking to fix hangs/crashes (small update from v674). Delays removed from DwmInit() and DwmReset() methods (experimental). [/LIST] [B]Release v676:[/B] [LIST] [*]Timer thread reworked to use WaitableTimers (might lower CPU usage a little) [*]'LowResVSyncCorrectionTiming' registry option added (might lower CPU usage a little, but creates bumpy graph lines) [*]Some deadlock hazards worked around [*]Minor logging bug in DWM (Aero) detection code fixed. [/LIST] [B]Release v677:[/B] Controllable FPS rate limiter added - can be used for low-performance systems to reduce rendering load, by discarding 50% of frames when video FPS and frame size exceeds thresholds. Controlled by registry values: FPSLimitFrameRate (FPS limit, default = 0, FPS limiter disabled) FPSLimitHeightThresh (default = 700) FPSLimitWidthThresh (default = 1200) e.g. if FPSLimitFrameRate = 40 AND FPSLimitHeightThresh = 700 AND FPSLimitWidthThresh = 1200 then all video with FPS higher than 40 and frame size greater than 1200 x 700 will have 50% of the frames dropped to reduce the GPU rendering load. [B]Release v678:[/B] Identical to v677, except that the Scheduler thread locking is now 'soft' instead of 'hard' - this makes it behave like the thread locking inside the standard MP 1.2.3/1.3.0 dshowhelper. I'm not sure if the v677 or v678 approach is better, so I'm interested in feedback before deciding which way to go for the future. Hopefully you won't notice any difference in performance or stability :) (I can't, but then I can't reproduce some of the lockup/hang problems other people have reported in the past either). [B]Release v679:[/B] [LIST] [*]Version info added to dll (so it shows up in Windows file 'Properties' dialog). [*]DWM queued mode initialisation moved later in the start-of-play sequence, to minimise the temporary black screen effect. [/LIST] [B]Release v684:[/B] [LIST] [*]Reverted Scheduler thread locking back to 'hard'. [*]'EnableLateDWMInit' registry option added - default is '0' (early initialisation, like v677 and earlier). DWM queued mode initialisation is done as late as possible in the start-of-play sequence when '1' [*]'Enable24HzDWM' registry option added - default is '1' (enabled), uses normal DWM queued mode operation in 24 Hz display refresh situation. This is an experiment - feedback welcome, since this has caused problems in the past, but seems to help on my system now. [*]'EnableDWMInitSleep' registry option added - default is '1' (enabled), adds small delay after DWM queued mode initialisation to help with 24 Hz display refresh situation (mostly). Another experiment... [/LIST] [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
MediaPortal 1
Development
General Development (no feature request here!)
MP 1.3.x dshowhelper development
Contact us
RSS
Top
Bottom