Re: Can't play file

Petri Hintukainen via xine-devel <[email protected]> Thu, 04 Jun 2020 14:17:13 +0300
Newsgroups gmane.comp.video.xine.devel
Message-ID <8605f17969f1a04343ab5de4a385806e75774c01.camel@users.sourceforge.net>
Hello,

ke, 2020-06-03 kello 23:36 +0200, Torsten Jager kirjoitti:
> Hi Alex,
> 
>  > How can I play this file using vaapi with 'video.driver:vaapi' and
>  > 'video.processing.ffmpeg_enable_vaapi:1'?
>  > Why are key frames not read in Xine and the video jerking?
> 
>  > All packages from official Ubuntu repositories. CPU Intel G3220.
> 
> Lets try an extended bug report first.
> 
>   - The bug can be reproduced with VDPAU wrapper (the only VAAPI
> device I got).
>   - Frame timestamps (--verbose=3) look OK.
>   - Applies to many h264 videos.
>   - Frames jump back and forth.
>   - Sometimes, screen flashes bright green before the actual image.
>   - Both is unaffected by playback speed. It happens even in single
> step
> mode.
>   - GLX rendering shows less jumping.
>   - Turning off guarded render fixes the issue here on my sys.
>
> 2 additional, unrelated video_out_vaapi bugs:
> 
>   - Turning on GLX on the fly segfaults. Maybe this setting should
> not be live changeable.

Yes. Also, OpenGL could be removed from vaapi plugin, and vaapi made
loadable sub-module so that it can be used by OpenGL2 video out. OpenGL
code is more or less duplicated in both plugins. I've been thinking to
do this for a long time, it could "fix" vaapi with Wayland.
(maintaining three different OpenGL plugins for N windowing systems
seems unnecessarily...).

>   - No redraw_needed notification when video window gets uncovered by
> another
>     window (does work with opengl2, though).
> 
> In other words: what do you think, Petri?

Sounds like frame recycling issue. I think I've seen similar issues ~
long time ago when there are frame drops (-> vaapi surfaces stay
"locked" in frames when frames are dropped in vout). But I don't
remember if it was guarded_mode or not.

I can't test this currently (vaapi doesnt work with XWayland), but if
it is only in guarded_mode, it could be triggered by commit
13100:d1659be4d7a1.

Limiting frames, something like

       if(!this->guarded_render)
         this->props[property].value = RENDER_SURFACES;
       else
         this->props[property].value = RENDER_SURFACES/2;

could make it disappear.

>
> Torsten
> 
> 
> 
> 
> _______________________________________________
> xine-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/xine-devel