Thanx for your quick answers, I really appreciate it.
I added the DTS/PTS values from m_Picture in VideoPlayerVideo:
rocessDecoderOutput() directly after GetPicture() and as you said the PTS are ordered.
But: I don't see the reason of:
>CalcDropRequirement - dropped in decoder, Sleeptime: -19.212250, Bufferlevel: 2, Gain: 0.043417
and (most important)
> CalcDropRequirement - dropped in decoder, Sleeptime: 0.137959, Bufferlevel: 2, Gain: 0.043417 (this leads to the freeze)
I have still the feeling that there is some other (simpler) reason for the freeze than the lack of unbuffered decoder output.
Code:
8:15:31:0482 T:10364 DEBUG: CVideoPlayerVideo::Flipping: 19978291.333333
08:15:31:0487 T:10364 DEBUG: DXVA::CDecoder::~CDecoder - destructing decoder, 10BA5AD8
08:15:31:0492 T:10364 DEBUG: DXVA::CSurfaceContext::~CSurfaceContext - destructing surface context
08:15:31:0494 T:10364 NOTICE: DXVA::CDecoder::Close - closing decoder
08:15:31:0496 T:10364 DEBUG: CVideoPlayerVideo::Decoding 20020000.000000 - 20103416.666667 - 2
08:15:31:0497 T:10364 DEBUG: CVideoPlayerVideo::Decoding 20061708.333333 - 20270250.000000 - 6
08:15:31:0498 T:10364 DEBUG: CVideoPlayerVideo::GetPicture 20061708.333333 - 20061708.000000
08:15:31:0499 T:10364 DEBUG: CRenderManager::Configure - change configuration. 512x288. display: 512x288. framerate: 0.00. format: DXVA
08:15:31:0500 T:10364 WARNING: CRenderManager::Configure - wait for unfinished start
08:15:31:0518 T:10364 WARNING: CRenderManager::Configure - wait for unfinished end
08:15:31:0520 T:20012 DEBUG: CRenderManager::DeleteRenderer - deleting renderer
08:15:31:0523 T:20012 DEBUG: CWinRenderer::SelectRenderMethod: Requested render method: 4
08:15:31:0524 T:20012 DEBUG: CWinShader::LoadEffect - loading shader special://xbmc/system/shaders/testshader.fx
08:15:31:0532 T:20012 DEBUG: CWinRenderer::SelectRenderMethod: Selected render method 1: Pixel Shaders
08:15:31:0535 T:20012 DEBUG: created video buffer 0
08:15:31:0538 T:20012 DEBUG: created video buffer 1
08:15:31:0540 T:20012 DEBUG: created video buffer 2
08:15:31:0541 T:20012 DEBUG: created video buffer 3
08:15:31:0542 T:20012 DEBUG: CRenderManager::Configure - 3
08:15:31:0551 T:10364 DEBUG: CPullupCorrection: pattern lost on diff 83417.000000, number of losses 1
08:15:31:0553 T:10364 DEBUG: CVideoPlayerVideo::CalcDropRequirement - hurry: 1
08:15:31:0556 T:10364 DEBUG: Previous line repeats 1 times.
08:15:31:0558 T:10364 DEBUG: CVideoPlayerVideo::Decoding 20103416.666667 - 20186833.333333 - 6
08:15:31:0560 T:10364 DEBUG: CVideoPlayerVideo::GetPicture 20103416.666667 - 20103416.000000
08:15:31:0561 T:20012 DEBUG: CWinShader::LoadEffect - loading shader special://xbmc/system/shaders/yuv2rgb_d3d.fx
08:15:31:0564 T:10364 DEBUG: CVideoPlayerVideo::Flipping: 20103416.000000
08:15:31:0566 T:10364 DEBUG: CVideoPlayerVideo::CalcDropRequirement - hurry: 1
08:15:31:0567 T:10364 DEBUG: Previous line repeats 1 times.
08:15:31:0568 T:10364 DEBUG: CVideoPlayerVideo::Decoding 20145125.000000 - 20145125.000000 - 2
08:15:31:0569 T:10364 DEBUG: CVideoPlayerVideo::CalcDropRequirement - hurry: 1
08:15:31:0570 T:10364 DEBUG: CVideoPlayerVideo::Decoding 20186833.333333 - 20228541.666667 - 2
08:15:31:0571 T:10364 DEBUG: CVideoPlayerVideo::CalcDropRequirement - hurry: 1
08:15:31:0573 T:10364 DEBUG: CVideoPlayerVideo::Decoding 20228541.666667 - 20437083.333333 - 6
08:15:31:0574 T:10364 DEBUG: CVideoPlayerVideo::GetPicture 20228541.666667 - 20186833.000000
08:15:31:0577 T:10364 DEBUG: CVideoPlayerVideo::Flipping: 20186833.000000
08:15:31:0578 T:10364 DEBUG: CVideoPlayerVideo::CalcDropRequirement - dropped in decoder, Sleeptime: -19.212250, Bufferlevel: 2, Gain: 0.043417
08:15:31:0580 T:10364 DEBUG: CVideoPlayerVideo::Decoding 20270250.000000 - 20353666.666667 - 6
08:15:31:0581 T:10364 DEBUG: CVideoPlayerVideo::GetPicture 20270250.000000 - 20270250.000000
08:15:31:0622 T:10364 DEBUG: CVideoPlayerVideo::Flipping: 20270250.000000
08:15:31:0623 T:10364 DEBUG: CVideoPlayerVideo::CalcDropRequirement - dropped in decoder, Sleeptime: 0.137959, Bufferlevel: 2, Gain: 0.043417
08:15:31:0624 T:10364 DEBUG: CVideoPlayerVideo::Decoding 20311958.333333 - 20311958.333333 - 6
08:15:31:0625 T:10364 DEBUG: CVideoPlayerVideo::GetPicture 20311958.333333 - 20311958.000000
08:15:31:0763 T:10364 DEBUG: CVideoPlayerVideo::Flipping: 20311958.000000
Edit: I think it was because I have resetted the pullupCorrection in OpenStream() when stream changes - I disabled this and now it looks much better.
Edit2: The CalcDropRequirement messages are gone but the freeze is still present :-(