C pipeline on embedded linux device lags after some time

Hi everyone,

i would like to setup a gstreamer pipeline on an embedded linux device and show a livestream from a ip MJPEG camera using the Qt Framework. I already wrote some code and setup the pipeline in C. Basically it works and the stream is shown on my display. The Problem is, that after some time (sometimes after 10 minutes but sometimes after days), the stream becomes very laggy (about 5 seconds delay).
My pipeline consists out of the following elements:
udpsrc, queue, rtpjpegdepay, jpegparse, v4l2jpegdec, glupload, glcolorconvert, qmlglsink

While further debugging, i noticed that the pipeline gives me some error and warning messages in the console output if i set GST_DEBUG.

  • Mesa: User error: GL_INVALID_ENUM in glCopyTexImage2D(internalFormat=GL_BGRA)

  • ERROR gldebug gstgldebug.c:307:_gst_gl_debug_callback: high: GL error from API id:2, GL_INVALID_VALUE in glTexImage2D(internalFormat=GL_R8)

  • WARN v4l2videodec gstv4l2videodec.c:813:gst_v4l2_video_dec_decide_allocation: Duration invalid, not setting latency

  • WARN rtpjpegdepay gstrtpjpegdepay.c:759:gst_rtp_jpeg_depay_process: discarding data packets received when we have no header

  • CRITICAL **: 10:53:06.111: gst_gl_memory_setup_buffer: assertion ‘!wrapped_data || n_mem * views == n_wrapped_pointers’ failed

  • WARN basesink gstbasesink.c:1218:gst_base_sink_query_latency: warning: Pipeline construction is invalid, please add queues.

  • WARN basesink gstbasesink.c:1218:gst_base_sink_query_latency: warning: Not enough buffering available for the processing deadline of 0:00:00.015000000, add enough queues to buffer 0:00:00.015000000 additional data. Shortening processing latency to 0:00:00.000000000.

Can somebody give me hints, how to solve these error and warning messages?
Thanks.