Problem with Qt application and real-time Gstreamer video

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Problem with Qt application and real-time Gstreamer video

Václav Mach
I have a SW application running on Boundary Devices Nitrogen6xQP_MAX board with embedded Linux system (Yocto project, Morty branch). GUI is created in Qt and there is a Gstreamer pipeline like this (very simplified):

                          -> live video sink (imxeglvivsink)
rtsp input -> tee -> I. recording bin (imxvpuenc_h264 -> splitmuxsink)
                          -> II. recording bin (imxvpuenc_h264 -> filesink)

I'm able to dynamically connect and disconnect all the bins right from the tee element in HD resolution with no freeze or crash. However, I have a setting screen (fullscreen size) and when I open this screen and close it, the live video sink freezes, Gst_Debug outputs

0:02:18.821705683  1639 0x67e0a350 ERROR              imxvpuapi imxvpuapi_vpulib.c:514:default_dmabufalloc_allocate: allocating 1612801 bytes of physical memory failed
0:02:18.821983016  1639 0x67e0a350 WARN     imxphysmemallocator phys_mem_allocator.c:154:gst_imx_phys_mem_allocator_alloc:<imxvpuallocator2> could not allocate memory block with 1612801 bytes
0:02:18.822171016  1639 0x67e0a350 ERROR      imxvpuencoderbase encoder_base.c:466:gst_imx_vpu_encoder_base_set_format:<encRecPrest> could not create new framebuffer array
0:02:18.822334683  1639 0x67e0a350 WARN            videoencoder gstvideoencoder.c:623:gst_video_encoder_setcaps:<encRecPrest> rejected caps video/x-raw, width=(int)1280, height=(int)720, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)25/1, format=(string)NV12

and I have to restart the application to make Gstreamer run again. This happens incidentally without any regularity.
Could you please help me with avoiding of this problem? I'm thinking about prevent Qt graphics rendering from GPU acceleration but I don't know if this is the right way.


gstreamer-devel mailing list
[hidden email]