After biting the bullet and downloading the most recent Krypton nightly for windows, I have discovered several things:
1) The 'wait time' does not function as waiting the amount of time specified and then returning a frame.
2) If no video is playing and you call the function it returns immediately with a bytearray of length 0, regardless of the 'wait time'.
3) The highest achievable frame rate of getting frames from the buffer is around 83%.
For example for a 1920x1036 native resolution at 23.97 fps, requesting images at 640 x 435, it the actual rendercapture/getimage takes about 40ms and an effective framerate of about 21 averaged over 500 frames.
4) If have no way of telling if the 'wait time' might be performing a look-ahead in the buffer and retrieving that frame, but I doubt it.
So without the devs reading this and chiming in, I still have no real idea what is going on.
Other notes:
Code:
waitForCaptureStateChangeEvent()
is also gone, but not stated as such in the sticky post.
On windows, on my machine, while calling the rendercapture routine, kodi krypton FREQUENTLY hangs, requiring a hard kill.
Code:
15:33:52 T:26148 NOTICE: VideoPlayer: Opening: G:\Movies\Ant Man.mkv
15:33:52 T:26148 WARNING: CDVDMessageQueue(player)::Put MSGQ_NOT_INITIALIZED
15:33:52 T:26148 ERROR: DXVA::CProcessorHD::IsFormatSupported - Unsupported format 104 for 1.
15:33:52 T:26148 ERROR: DXVA::CProcessorHD::IsFormatSupported - Unsupported format 105 for 1.
15:33:52 T:38200 NOTICE: Creating InputStream
15:33:52 T:38200 NOTICE: Creating Demuxer
15:33:52 T:38200 NOTICE: Opening stream: 0 source: 256
15:33:52 T:38200 NOTICE: Creating video codec with codec id: 28
15:33:52 T:38200 NOTICE: CDVDVideoCodecFFmpeg::Open() Using codec: H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
15:33:52 T:38200 NOTICE: Creating video thread
15:33:52 T:38200 NOTICE: Opening stream: 1 source: 256
15:33:52 T:38200 NOTICE: Finding audio codec for: 86020
15:33:52 T:38200 NOTICE: Creating audio thread
15:33:52 T:38200 NOTICE: CDVDMessageQueue::GetLevel() - can't determine level
15:33:52 T:42856 NOTICE: Previous line repeats 2 times.
15:33:52 T:42856 NOTICE: running thread: video_thread
15:33:52 T:38200 NOTICE: CDVDMessageQueue::GetLevel() - can't determine level
15:33:52 T:43460 NOTICE: running thread: CVideoPlayerAudio::Process()
15:33:52 T:38200 NOTICE: CDVDMessageQueue::GetLevel() - can't determine level
15:33:52 T:42856 NOTICE: Previous line repeats 1 times.
15:33:52 T:42856 NOTICE: CDVDVideoCodecFFmpeg::GetFormat - Creating DXVA(1920x1036)
15:33:52 T:38200 NOTICE: CDVDMessageQueue::GetLevel() - can't determine level
15:33:52 T:43460 NOTICE: Previous line repeats 2 times.
15:33:52 T:43460 NOTICE: Creating audio stream (codec id: 86020, channels: 6, sample rate: 48000, no pass-through)
15:33:52 T:26148 NOTICE: D3D: rendering method forced to DXVA processor
15:33:52 T:26148 NOTICE: DXVA::CProcessorHD::InitProcessor - Supported deinterlace methods: Blend:yes, Bob:yes, Adaptive:yes, MoComp:no.
15:33:52 T:26148 WARNING: CWinRenderer::UpdateVideoFilter - chosen scaling method 1 is not supported by renderer
15:33:52 T:26148 WARNING: CRenderCaptureDX: D3D11_QUERY_OCCLUSION not supported, performance might suffer
15:34:08 T:42856 WARNING: Previous line repeats 240 times.
15:34:08 T:42856 WARNING: CRenderManager::WaitForBuffer - timeout waiting for buffer <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
15:34:16 T:43460 WARNING: Previous line repeats 2 times.
15:34:16 T:43460 NOTICE: CDVDMessageQueue::GetLevel() - can't determine level
15:34:16 T:43460 NOTICE: Previous line repeats 6 times.
15:34:16 T:43460 NOTICE: CVideoPlayerAudio::Process - stream stalled
15:34:16 T:42856 NOTICE: CDVDVideoCodecFFmpeg::GetFormat - Creating DXVA(1920x1036)
15:34:16 T:42856 ERROR: CDVDVideoCodecFFmpeg::Decode - avcodec_decode_video returned failure
15:34:16 T:42856 NOTICE: DXVA::CDecoder::Close - closing decoder
15:34:16 T:38200 NOTICE: CDVDMessageQueue::GetLevel() - can't determine level
15:34:16 T:42856 NOTICE: CDVDVideoCodecFFmpeg::GetFormat - Creating DXVA(1920x1036)
15:34:16 T:38200 NOTICE: CDVDMessageQueue::GetLevel() - can't determine level
15:34:16 T:42856 NOTICE: Previous line repeats 11 times.
15:34:16 T:42856 NOTICE: DXVA::CDecoder::Close - closing decoder
If you look at the log before force kill, it is hung on the marked line. The rest of the lines get written after the hard kill.