<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Apr 24, 2020, 12:15 AM Xiaojiba <<a href="mailto:erwan@caregame.com">erwan@caregame.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
I have been looking all around for one week now but no one seems to be<br>
needing a ximagesrc at more than 30 fps... I saw one at 60fps but it's all<br>
fine until 60 so, it was not related to my problem.<br>
<br>
I have a pipeline to capture my screen to a file : <br>
<br>
``<br>
gst-launch-1.0 -e ximagesrc ! \<br>
        "video/x-raw, framerate=144/1" ! \<br>
        jpegenc quality=5 ! avimux ! \<br>
        filesink location=file.avi<br>
``<br>
<br>
This compiles, but when I open the .avi with for example VLC,<br>
I have a framerate of 144, BUT it takes 60 frames of the first second, 60 of<br>
the second one and 24 if the third one<br>
<br>
Easier with 120 fps : It takes 2s at 60 fps to have one full second on VLC<br>
I believe ximagesrc is capped at 60 frame per second, am I correct ? Or my<br>
pipeline is wrong ? <br>
<br>
Thanks for help, <br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Ximagesrc is broken in a few ways, and once I understand how to write plugins better I want to rewrite it. One of the ways it's broken is by default it has use-damage on by default, and does non sensible stuff with that. What "damage" is used for on X is if say the only thing that changed is say an icon changed from play to pause it only propagates those changed pixels. Ximgsrc instead of sending through say a 400 pixel buffer for the new icon it sends a copy of the whole desktop. This would be fine if it did it at most once per screen update, but if multiple small changes happen in a single screen draw you get the whole desktop each time. So in your case it's probably getting 60 small changes in a single frame update and you get 60 frames of the same. Set use-damage=false and that might be enough.</div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
</blockquote></div></div></div>