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
MediaPortal 1 Plugins
Refresh Rate Control Plugin
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="poffe" data-source="post: 172422" data-attributes="member: 29769"><p>OK, content of RefreshRateControl.txt:</p><p></p><p>2007-08-16 10:34:32: RefreshRateControl start. Def RR: 0</p><p>2007-08-16 10:34:45: Playback started. Playing file G:\movie\dvd\300\VIDEO_TS\VIDEO_TS.IFO</p><p>2007-08-16 10:34:45: Trying to connect to current MediaPortal's DirectShow graph</p><p>2007-08-16 10:34:45: Player is type DVDPlayer9</p><p>2007-08-16 10:34:45: Got IGraphBuilder field: _graphBuilder</p><p>2007-08-16 10:34:45: Got valid graph!</p><p>2007-08-16 10:34:45: Got frame time 0, frame rate is 0</p><p>2007-08-16 10:34:45: Finding best refresh rate for 0 fps</p><p>2007-08-16 10:34:45: Couldn't find good refresh rate, returning default 0 Hz)</p><p>2007-08-16 10:34:49: Playback stopped</p><p>2007-08-16 10:34:53: RefreshRateControl stop.</p><p></p><p>When I in plugin setup test the same file it correctly finds 25 fps and choose 75 Hz refreshrate. But for some reason it fails to do this during playback.</p><p></p><p>I am using MPV and MPA as codec</p><p></p><p>Since I never get a trace like: "Video has VideoInfoHeader...." in RefreshRateControl.txt it seems that somthing goes wrong somwhere in this code snippet (sorry for bad ident of code...):</p><p></p><p> foreach (IBaseFilter filter in new FilterEnumrerator((IFilterGraph)graphBuilder))</p><p> {</p><p> foreach (IPin pin in new PinEnumerator(filter))</p><p> {</p><p> /*</p><p> * try to find video</p><p> */</p><p></p><p> mediaType = new AMMediaType();</p><p> hr = pin.ConnectionMediaType(mediaType);</p><p> if (hr == 0)</p><p> {</p><p></p><p> if (mediaType.formatType == DirectShowLib.FormatType.VideoInfo &&</p><p> mediaType.formatSize == Marshal.SizeOf(typeof(DirectShowLib.VideoInfoHeader)))</p><p> {</p><p> WriteToLog("Video has VideoInfoHeader info, getting frame time");</p><p></p><p> VideoInfoHeader videoHeader = new VideoInfoHeader();</p><p> Marshal.PtrToStructure(mediaType.formatPtr, videoHeader);</p><p></p><p> if (videoHeader.AvgTimePerFrame != 0)</p><p> {</p><p> frameTime = videoHeader.AvgTimePerFrame;</p><p> }</p><p></p><p> WriteToLog("Frame time is {0}", videoHeader.AvgTimePerFrame);</p><p> }</p><p></p><p> if (mediaType.formatType == DirectShowLib.FormatType.VideoInfo2 &&</p><p> mediaType.formatSize == Marshal.SizeOf(typeof(DirectShowLib.VideoInfoHeader2)))</p><p> {</p><p> WriteToLog("Video has VideoInfoHeader2 info, getting frame time");</p><p></p><p> VideoInfoHeader2 videoHeader2 = new VideoInfoHeader2();</p><p> Marshal.PtrToStructure(mediaType.formatPtr, videoHeader2);</p><p></p><p> if (videoHeader2.AvgTimePerFrame != 0)</p><p> {</p><p> frameTime = videoHeader2.AvgTimePerFrame;</p><p> }</p><p></p><p> WriteToLog("Frame time is {0}", videoHeader2.AvgTimePerFrame);</p><p> }</p><p> }</p><p> hr = 0;</p><p> // /</p><p> }</p><p> }</p><p></p><p> if (frameTime != 0)</p><p> frameRate = (float)(10000000.0f / frameTime);</p><p></p><p> WriteToLog("Got frame time {0}, frame rate is {1}", frameTime, frameRate);</p></blockquote><p></p>
[QUOTE="poffe, post: 172422, member: 29769"] OK, content of RefreshRateControl.txt: 2007-08-16 10:34:32: RefreshRateControl start. Def RR: 0 2007-08-16 10:34:45: Playback started. Playing file G:\movie\dvd\300\VIDEO_TS\VIDEO_TS.IFO 2007-08-16 10:34:45: Trying to connect to current MediaPortal's DirectShow graph 2007-08-16 10:34:45: Player is type DVDPlayer9 2007-08-16 10:34:45: Got IGraphBuilder field: _graphBuilder 2007-08-16 10:34:45: Got valid graph! 2007-08-16 10:34:45: Got frame time 0, frame rate is 0 2007-08-16 10:34:45: Finding best refresh rate for 0 fps 2007-08-16 10:34:45: Couldn't find good refresh rate, returning default 0 Hz) 2007-08-16 10:34:49: Playback stopped 2007-08-16 10:34:53: RefreshRateControl stop. When I in plugin setup test the same file it correctly finds 25 fps and choose 75 Hz refreshrate. But for some reason it fails to do this during playback. I am using MPV and MPA as codec Since I never get a trace like: "Video has VideoInfoHeader...." in RefreshRateControl.txt it seems that somthing goes wrong somwhere in this code snippet (sorry for bad ident of code...): foreach (IBaseFilter filter in new FilterEnumrerator((IFilterGraph)graphBuilder)) { foreach (IPin pin in new PinEnumerator(filter)) { /* * try to find video */ mediaType = new AMMediaType(); hr = pin.ConnectionMediaType(mediaType); if (hr == 0) { if (mediaType.formatType == DirectShowLib.FormatType.VideoInfo && mediaType.formatSize == Marshal.SizeOf(typeof(DirectShowLib.VideoInfoHeader))) { WriteToLog("Video has VideoInfoHeader info, getting frame time"); VideoInfoHeader videoHeader = new VideoInfoHeader(); Marshal.PtrToStructure(mediaType.formatPtr, videoHeader); if (videoHeader.AvgTimePerFrame != 0) { frameTime = videoHeader.AvgTimePerFrame; } WriteToLog("Frame time is {0}", videoHeader.AvgTimePerFrame); } if (mediaType.formatType == DirectShowLib.FormatType.VideoInfo2 && mediaType.formatSize == Marshal.SizeOf(typeof(DirectShowLib.VideoInfoHeader2))) { WriteToLog("Video has VideoInfoHeader2 info, getting frame time"); VideoInfoHeader2 videoHeader2 = new VideoInfoHeader2(); Marshal.PtrToStructure(mediaType.formatPtr, videoHeader2); if (videoHeader2.AvgTimePerFrame != 0) { frameTime = videoHeader2.AvgTimePerFrame; } WriteToLog("Frame time is {0}", videoHeader2.AvgTimePerFrame); } } hr = 0; // / } } if (frameTime != 0) frameRate = (float)(10000000.0f / frameTime); WriteToLog("Got frame time {0}, frame rate is {1}", frameTime, frameRate); [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
MediaPortal 1
MediaPortal 1 Plugins
Refresh Rate Control Plugin
Contact us
RSS
Top
Bottom