v2.7.3 Cutting on non-keyframe leads to incomplete video

Started by Bugfragged, April 21, 2019, 07:01:29 PM

Previous topic - Next topic

eumagga0x2a

It is not required to pile up B-frames in order to deplete the pool of free surfaces with DXVA2. Just set the A marker to an I-frame != the first frame of the video, go to a later I-frame and framestep N times (N>24) while staying within the same GOP (i.e. the GOP length should be sufficient), set the B marker there and delete the selection. Rewind to a position before the start of the deletion and try to play the video. The playback stops at the cut point.

Evaluating options for a fix.

eumagga0x2a

For now, the decoding failure should not happen anymore as I've drowned it in resources, allocating up to 40 buffers/surfaces to hold decoded frames. This might result in a failure to use HW accelerated decoding on old PCs with integrated graphics as loading a 1080p video would require ~150 MiB of video memory, going up to ~700 MiB for 4k content.

Please try the 190502 VC++ nightly.

Bugfragged

Build 190502 works both on my script and in the situation you described in Reply #16.

eumagga0x2a

#19
Good, I tested the relevant patches with really nasty samples (720p H.264 with 16 ref frames and 16 consecutive B-frames, with the end of a deletion more than 60 frames past a keyframe, other samples 1080p HEVC and 2160p H.264) too. All worked so far on my system with Intel integrated graphics, but it had a plenty of shared memory available.

By the way, why do you use an non-accelerated video output (Qt) while DXVA2 is available? Using DXVA2 output should considerably reduce system load. Is there a problem with this video ouput with your setup?

Bugfragged

Which setting in Preferences is this? Is it in the Display tab? I don't remember touching this setting.

eumagga0x2a