mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-24 02:31:03 +00:00
ab3fd36d64
Some devices only ever keep one buffer available in the GL queue resulting in multiple calls to release_output_buffer only causing one frame to be rendered. If there is a queue after amcvideodec (even playsink's small one), then multiple buffers are pushed but only a small fraction of them are actually rendered on time. The rest will either render some number of frames ahead of where they are meant to be or timeout waiting for a frame that's already been rendered. Solved by moving the release_output_buffer into the sync_meta the is pushed downstream. When downstream renders, the custom sync implementation attempts to release the current buffer (if not already released) and render. Once the frame has been rendered to the screen, the next frame is released and is hopefully available by the time the next frame is to be rendered. This fixes a perceived frame jitter in the output. |
||
---|---|---|
.. | ||
acmenc | ||
acmmp3dec | ||
androidmedia | ||
applemedia | ||
applemedia-nonpublic | ||
avc | ||
bluez | ||
cdrom | ||
d3dvideosink | ||
decklink | ||
directsound | ||
dshowdecwrapper | ||
dshowsrcwrapper | ||
dshowvideosink | ||
dvb | ||
dxr3 | ||
fbdev | ||
linsys | ||
nvenc | ||
opensles | ||
pvr2d | ||
qcam | ||
shm | ||
uvch264 | ||
vcd | ||
vdpau | ||
wasapi | ||
wininet | ||
winks | ||
winscreencap | ||
Makefile.am |