gltransformation: Pipeline crashes after rotating stream for a certain time
I'm using simple pipeline which gets input from camera, processes it in GPU using gltransformation and sends it via udpsink. Pipeline is created within an application and it looks like this:
gst-launch-1.0 -v v4l2src device=/dev/video0 ! "video/x-raw, width=(int)320, height=(int)240, framerate=(fraction)30/1, format=(string)YUY2, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)bt709, interlace-mode=(string)progressive" ! imxvideoconvert_g2d ! glupload ! gltransformation ! gldownload ! rtpvrawpay pt=96 timestamp-offset=0 ! udpsink host=x.x.x.x port=yyyy
In that application, I have an additional thread which periodically sets gltransformation property using g_object_set. After some time, pipeline crashes with error:
gst_gl_filter_filter_texture: assertion 'gst_is_gl_memory (out_tex)' failed
I've noticed that lowering periodicity of change enables program to work longer; for example, changing property on every 10ms makes pipeline to crash after ~3 minutes, whilst 20ms makes application crash at least after double amount of time.
I should note that I'm working on DART-MX8M-MINI. I've tried to track memory usage and there's no increase in used RAM memory. Using iMX script gpuinfo.sh I've noticed that texture memory is constantly being filled with data:
This intrigued me. Is there some problem with releasing used buffers from GStreamer side or this problem is specific because of environment I'm using?