<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div><blockquote type="cite"><div style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">I would guess that this is so impressively slow because you get the data<br>from cairo into Python objects, and then copy the Python objects into<br>the GStreamer buffer. For every single buffer.<br></div></blockquote><div><br></div><div>Makes sense to me =)</div><br><blockquote type="cite"><div style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">One way to make this work faster is probably by using the cairooverlay<br>element and do the overlaying there with just using cairo API and never<br>getting the frame data into Python.<br></div></blockquote><div><br></div><div>Ah! I wasn’t aware of cairooverlay - that’s precisely what I need. Appears to act as a filter too, as opposed to a source, so it should make it much easier to use.</div><div><br></div><div>Unfortunately, the Python bindings appear to be stuffed with cairooverlay too (" 'gobject.GBoxed' object has no attribute ‘set_source_rgba’” from within the draw callback), so I’ll switch to C for the project and see how it goes.</div><div><br></div><div><br></div><blockquote type="cite"><div style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">You'll a) need to set appsrc into TIME format and b) either use<br>do-timestamp=true on it or explicitly set timestamps on each buffer.<br><br>You say you tried that, can you provide debug logs about the problems<br>that happen when you use this combination?<br></div></blockquote><div><br></div><div>Given that I’ll be using cairooverlay instead of appsrc, I’m happy to leave this one unsolved.</div><div><br></div><div>Cheers for the pointers!</div><div><br></div></div></body></html>