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
Improvement Suggestions
Adding madVR support
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="tourettes" data-source="post: 775870" data-attributes="member: 10858"><p>What would be needed is to have a callback that will provide a texture that contains only the video frame. MediaPortal's skin engine needs to be able to draw under and on top of that video frame. Skin Engine is responsible for calling the D3DDevice.Present(). Callback should be called when the frame is about to be rendered (there is slight overhead on the Skin Engine since it will do some drawing as well).</p><p></p><p>In addition to that there is fortcoming MediaPortal Audio Renderer that works like Reclock - video renderer is responsible for making the minor adjustments to allow the audio resampling to be used to eliminate dropped frames (the ones that are caused by A/V clocks running on different rates) and to allowe non 1:1 matching fps vs hz to used like with Reclock.</p><p></p><p>Hare's what the audio renderer's control interface looks like:</p><p></p><p>[code]</p><p>struct CLOCKDATA</p><p>{</p><p> double driftMultiplier;</p><p> double driftHWvsSystem;</p><p> double currentDrift;</p><p> double resamplingAdjustment;</p><p>};</p><p></p><p>// {91A198BA-1C78-4c31-A50F-0F5C7578F078}</p><p>static const GUID IID_IAVSyncClock = { 0x91a198ba, 0x1c78, 0x4c31, { 0xa5, 0xf, 0xf, 0x5c, 0x75, 0x78, 0xf0, 0x78 } };</p><p>DEFINE_GUID(CLSID_IAVSyncClock, 0x91a198ba, 0x1c78, 0x4c31, 0xa5, 0xf, 0xf, 0x5c, 0x75, 0x78, 0xf0, 0x78);</p><p></p><p>MIDL_INTERFACE("91A198BA-1C78-4c31-A50F-0F5C7578F078")</p><p>IAVSyncClock: public IUnknown</p><p>{</p><p>public:</p><p> virtual HRESULT STDMETHODCALLTYPE AdjustClock(DOUBLE adjustment) = 0;</p><p> virtual HRESULT STDMETHODCALLTYPE SetBias(DOUBLE bias) = 0;</p><p> virtual HRESULT STDMETHODCALLTYPE GetBias(DOUBLE *bias) = 0;</p><p> virtual HRESULT STDMETHODCALLTYPE GetMaxBias(DOUBLE *bias) = 0;</p><p> virtual HRESULT STDMETHODCALLTYPE GetMinBias(DOUBLE *bias) = 0;</p><p> virtual HRESULT STDMETHODCALLTYPE GetClockData(CLOCKDATA *clockData) = 0;</p><p> virtual HRESULT STDMETHODCALLTYPE SetEVRPresentationDelay(DOUBLE EVRDelay) = 0;</p><p></p><p>};</p><p>[/code]</p></blockquote><p></p>
[QUOTE="tourettes, post: 775870, member: 10858"] What would be needed is to have a callback that will provide a texture that contains only the video frame. MediaPortal's skin engine needs to be able to draw under and on top of that video frame. Skin Engine is responsible for calling the D3DDevice.Present(). Callback should be called when the frame is about to be rendered (there is slight overhead on the Skin Engine since it will do some drawing as well). In addition to that there is fortcoming MediaPortal Audio Renderer that works like Reclock - video renderer is responsible for making the minor adjustments to allow the audio resampling to be used to eliminate dropped frames (the ones that are caused by A/V clocks running on different rates) and to allowe non 1:1 matching fps vs hz to used like with Reclock. Hare's what the audio renderer's control interface looks like: [code] struct CLOCKDATA { double driftMultiplier; double driftHWvsSystem; double currentDrift; double resamplingAdjustment; }; // {91A198BA-1C78-4c31-A50F-0F5C7578F078} static const GUID IID_IAVSyncClock = { 0x91a198ba, 0x1c78, 0x4c31, { 0xa5, 0xf, 0xf, 0x5c, 0x75, 0x78, 0xf0, 0x78 } }; DEFINE_GUID(CLSID_IAVSyncClock, 0x91a198ba, 0x1c78, 0x4c31, 0xa5, 0xf, 0xf, 0x5c, 0x75, 0x78, 0xf0, 0x78); MIDL_INTERFACE("91A198BA-1C78-4c31-A50F-0F5C7578F078") IAVSyncClock: public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE AdjustClock(DOUBLE adjustment) = 0; virtual HRESULT STDMETHODCALLTYPE SetBias(DOUBLE bias) = 0; virtual HRESULT STDMETHODCALLTYPE GetBias(DOUBLE *bias) = 0; virtual HRESULT STDMETHODCALLTYPE GetMaxBias(DOUBLE *bias) = 0; virtual HRESULT STDMETHODCALLTYPE GetMinBias(DOUBLE *bias) = 0; virtual HRESULT STDMETHODCALLTYPE GetClockData(CLOCKDATA *clockData) = 0; virtual HRESULT STDMETHODCALLTYPE SetEVRPresentationDelay(DOUBLE EVRDelay) = 0; }; [/code] [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
MediaPortal 1
Development
Improvement Suggestions
Adding madVR support
Contact us
RSS
Top
Bottom