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