Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Hardware & Software > Software players

Reply
 
Thread Tools Search this Thread Display Modes
Old 24th March 2012, 02:33   #81  |  Link
cb2000
Registered User
 
Join Date: Nov 2010
Posts: 91
I suggest to find out the max frame rate of all input stream.

but it still has a problem, there maybe a condition that, begin stream with no video in stream 0 and the frame
rate is 0, then it appear after some time that other stream had produce some frame.

Quote:
Originally Posted by dukey View Post
cb2000,
we should set the proper frame rate here .. instead of

Code:
if (SUCCEEDED(pDevice->GetDisplayMode(0, &mode)))
     uiFrameRate = mode.RefreshRate;

MFSetAttributeRatio(pOutputType, MF_MT_FRAME_RATE, uiFrameRate, 1)
The refresh rate might bare no relation to the video frame rate.

I want to set the

Code:
IMFMediaType *mt = NULL;

if(GetOutputCurrentType(0,&mt)==S_OK) 
{
    MFRatio fps;

    if (SUCCEEDED(GetFrameRate(mt, &fps)) && (fps.Numerator != 0) && (fps.Denominator != 0))
    {
    MFFrameRateToAverageTimePerFrame(fps.Numerator,fps.Denominator,(UINT64*)&m_hnsFrameInterval);

 }
 }
If i set the proper
SetSampleDuration()

My jerky problems in menus go away
cb2000 is offline   Reply With Quote
Old 24th March 2012, 10:13   #82  |  Link
dukey
Registered User
 
Join Date: Dec 2005
Posts: 560
In the example code for EVR presenter, if there is no frame rate, it just guesses 30fps. Trouble is when set to the refresh rate, or 75fps here, the menus are unusuably slow. Takes 1-2 seconds to respond to key presses. If i set to the correct 24fps, everything works fine.

How can we find the input frame rate?
dukey is offline   Reply With Quote
Old 25th March 2012, 07:28   #83  |  Link
cb2000
Registered User
 
Join Date: Nov 2010
Posts: 91
m_pInput[i]->GetMediaType(ppType)

Quote:
Originally Posted by dukey View Post
In the example code for EVR presenter, if there is no frame rate, it just guesses 30fps. Trouble is when set to the refresh rate, or 75fps here, the menus are unusuably slow. Takes 1-2 seconds to respond to key presses. If i set to the correct 24fps, everything works fine.

How can we find the input frame rate?
cb2000 is offline   Reply With Quote
Old 25th March 2012, 10:13   #84  |  Link
dukey
Registered User
 
Join Date: Dec 2005
Posts: 560
yeah I tried that, I just got attribute not found. My desktop refresh rate is set to 75, maybe that is too fast for DXVA or something. I tried capping it at 10010000 / 60; (59.57) fps at the problem went away totally. I'll do some more testing.

Last edited by dukey; 25th March 2012 at 11:36.
dukey is offline   Reply With Quote
Old 25th March 2012, 23:51   #85  |  Link
dukey
Registered User
 
Join Date: Dec 2005
Posts: 560
Done some more debugging of this problem. I think the issue is the time stamps are broken.
When I hit buttons on the keyboard for the menu, I can see them coming through the function
OnProcessInput()

at the right time. But the time stamps are 2~ seconds off the stream time of stream 0. So I have a menu delay of 2~ seconds.

Time stamps looks something like this

Code:
sample time 734290000 stream 0
sample time 734490000 stream 0
sample time 734690000 stream 0
sample time 734890000 stream 0
sample time 735090000 stream 0
sample time 735290000 stream 0
sample time 735490000 stream 0
sample time 750080834 stream 2           <---- stream 2
sample time 735690000 stream 0
sample time 735890000 stream 0
sample time 736090000 stream 0
sample time 736290000 stream 0
I see you are using
pFilter->GetStreamTime();
In a few places. I am not sure how accurate that is. In the documentation it says

Quote:
samples with start timestamps of this time or before should be rendered by now
dukey is offline   Reply With Quote
Old 26th March 2012, 06:50   #86  |  Link
cb2000
Registered User
 
Join Date: Nov 2010
Posts: 91
when start streaming, no video yet, so no frame rate on stream 0,
after som time, video comes out, mixer will be notified by SetInputType with stream id 0, then should recheck the frame rate.
the frame rate of overlay is always not set in current dslibbluray.

Quote:
Originally Posted by dukey View Post
yeah I tried that, I just got attribute not found. My desktop refresh rate is set to 75, maybe that is too fast for DXVA or something. I tried capping it at 10010000 / 60; (59.57) fps at the problem went away totally. I'll do some more testing.
cb2000 is offline   Reply With Quote
Old 26th March 2012, 07:01   #87  |  Link
cb2000
Registered User
 
Join Date: Nov 2010
Posts: 91
Maybe cause by not optimized DXVA/D3D process and no frame drop process in the mixer now, so it cannot achieve so high frame rate.

Quote:
Originally Posted by dukey View Post
Done some more debugging of this problem. I think the issue is the time stamps are broken.
When I hit buttons on the keyboard for the menu, I can see them coming through the function
OnProcessInput()

at the right time. But the time stamps are 2~ seconds off the stream time of stream 0. So I have a menu delay of 2~ seconds.

Time stamps looks something like this

Code:
sample time 734290000 stream 0
sample time 734490000 stream 0
sample time 734690000 stream 0
sample time 734890000 stream 0
sample time 735090000 stream 0
sample time 735290000 stream 0
sample time 735490000 stream 0
sample time 750080834 stream 2           <---- stream 2
sample time 735690000 stream 0
sample time 735890000 stream 0
sample time 736090000 stream 0
sample time 736290000 stream 0
I see you are using
pFilter->GetStreamTime();
In a few places. I am not sure how accurate that is. In the documentation it says
cb2000 is offline   Reply With Quote
Old 26th March 2012, 10:22   #88  |  Link
dukey
Registered User
 
Join Date: Dec 2005
Posts: 560
I thought originally the problem was high frame rates too. But if i set the desktop refresh rate to 60hz, and the interval time to 60hz, then the problem comes back. I am guessing the issue is in the time stamp generation in the source filter, since the subimages render are rendered immediately, but don't display until the time catches up.
dukey is offline   Reply With Quote
Old 26th March 2012, 16:11   #89  |  Link
cb2000
Registered User
 
Join Date: Nov 2010
Posts: 91
the source filter lack quality-control process also. yes it may cause video time always in the past

Quote:
Originally Posted by dukey View Post
I thought originally the problem was high frame rates too. But if i set the desktop refresh rate to 60hz, and the interval time to 60hz, then the problem comes back. I am guessing the issue is in the time stamp generation in the source filter, since the subimages render are rendered immediately, but don't display until the time catches up.
cb2000 is offline   Reply With Quote
Old 27th March 2012, 00:20   #90  |  Link
dukey
Registered User
 
Join Date: Dec 2005
Posts: 560
Well, I fixed the issue. I rewrote the EVR scheduler to drop late frames. Problems has gone away, menus work beautifully. Can now get onto more productive testing
dukey is offline   Reply With Quote
Old 3rd April 2012, 08:20   #91  |  Link
Mercury_22
Registered User
 
Join Date: Dec 2007
Posts: 1,138
@dukey after your changes (rev98->101) I can't exit demo_player ! It stops responding after "stop" and it's crashing when trying to exit ! With rev 97 everything it's OK with the same BD
Please fix this
__________________
Intel UHD Graphics 750; Win 10 22H2
Mercury_22 is offline   Reply With Quote
Old 3rd April 2012, 11:22   #92  |  Link
dukey
Registered User
 
Join Date: Dec 2005
Posts: 560
alright i'll look into it. I haven't made any radical changes. By the way, make sure you rebuild the demo_player, as I changed the control interface.

Last edited by dukey; 3rd April 2012 at 11:24.
dukey is offline   Reply With Quote
Old 3rd April 2012, 11:46   #93  |  Link
Mercury_22
Registered User
 
Join Date: Dec 2007
Posts: 1,138
Quote:
Originally Posted by dukey View Post
alright i'll look into it. I haven't made any radical changes. By the way, make sure you rebuild the demo_player, as I changed the control interface.
Thanks
I've rebuild everything. Also on a new system (just windows ) I'm getting "ActiveMovie Window: demo_player.exe - System Error ...MSVCR71.dll is missing ..." which I don't know if it was there before, but can you also do a static linking please ?
__________________
Intel UHD Graphics 750; Win 10 22H2
Mercury_22 is offline   Reply With Quote
Old 3rd April 2012, 13:21   #94  |  Link
dukey
Registered User
 
Join Date: Dec 2005
Posts: 560
I checked all the dlls and none depend on that C run time library. Actually that's quite an old library, visual studio 2010 uses a much newer one. You can use
http://www.dependencywalker.com/
to find out which dll is using that dependency. It might be a codec you are using perhaps.
Since you can compile the code yourself.



Sets the run time lib. The dll ones are dynamically linked.
dukey is offline   Reply With Quote
Old 3rd April 2012, 14:04   #95  |  Link
Mercury_22
Registered User
 
Join Date: Dec 2007
Posts: 1,138
Quote:
Originally Posted by dukey View Post
I checked all the dlls and none depend on that C run time library. Actually that's quite an old library, visual studio 2010 uses a much newer one. You can use
http://www.dependencywalker.com/
to find out which dll is using that dependency. It might be a codec you are using perhaps.
Since you can compile the code yourself.



Sets the run time lib. The dll ones are dynamically linked.
Sorry you're right was a decoder problem

Also the "stops responding / can't exit" it's not decoder related (happens with FFD & LAV & arcsoft)
__________________
Intel UHD Graphics 750; Win 10 22H2
Mercury_22 is offline   Reply With Quote
Old 3rd April 2012, 14:16   #96  |  Link
dukey
Registered User
 
Join Date: Dec 2005
Posts: 560
I'll upload a binary you can test. I rebuilt the program and tried making it crash but can't replicate it.
dukey is offline   Reply With Quote
Old 3rd April 2012, 14:41   #97  |  Link
Mercury_22
Registered User
 
Join Date: Dec 2007
Posts: 1,138
Quote:
Originally Posted by dukey View Post
I'll upload a binary you can test. I rebuilt the program and tried making it crash but can't replicate it.
You need to wait for the main movie to start then -> stop -> Exit
__________________
Intel UHD Graphics 750; Win 10 22H2
Mercury_22 is offline   Reply With Quote
Old 3rd April 2012, 15:17   #98  |  Link
dukey
Registered User
 
Join Date: Dec 2005
Posts: 560
Okay will check it out.
You can try changing
while (true) to while(m_Exit)
and removing

if(m_Exit)
break;
dukey is offline   Reply With Quote
Old 3rd April 2012, 15:37   #99  |  Link
Mercury_22
Registered User
 
Join Date: Dec 2007
Posts: 1,138
Quote:
Originally Posted by dukey View Post
Okay will check it out.
You can try changing
while (true) to while(m_Exit)
and removing

if(m_Exit)
break;
Worst won't even start playing

(Just to be sure BDSource.cpp line 356 -> no?)
__________________
Intel UHD Graphics 750; Win 10 22H2
Mercury_22 is offline   Reply With Quote
Old 3rd April 2012, 18:05   #100  |  Link
dukey
Registered User
 
Join Date: Dec 2005
Posts: 560
does this happen with all your blurays ? Or just this particular frozen planet one.
I see it throws an exception when the frozen planet one starts to play the main title
dukey is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 20:57.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.