Performance regressions in master against Intel Celeron J1900
Computer with Intel Celeron J1900, running Debian 11, using GStreamer 1.22.1 - 1.22.10, can handle tree RTSP H264 streams at the same time inside Qt application (using qmlglsink) in this configuration, for example:
2x1080p @ 25fps + 1x 720p @ 20fps
After trying main branch to see if #3317 (closed) was fixed (it was), I've discovered that performance on this machine is highly reduced.
Bisected two commits:
after 5bf85e75 "gl/colorconvert: use swizzle indices instead of chars" I get 20fps, no longer 25fps for two 1080p streams. 720p stayed the same.
after 6b1fba14 "vaallocator: remove runtime mapping selection" I get only maybe about 7fps for 1080p streams, 720p dropped to about 15fps.
This is "va*:7" output after 6b1fba14:
0:00:00.124427856 63145 0x55a46273b390 INFO vadisplay gstvadisplay_drm.c:155:gst_va_display_drm_create_va_display:<vadisplaydrm0> DRM render node with kernel driver i915
0:00:00.124595328 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:310:_va_info:<vadisplaydrm0> VA info: VA-API version 1.10.0
0:00:00.124637712 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:310:_va_info:<vadisplaydrm0> VA info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
0:00:00.129533664 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:310:_va_info:<vadisplaydrm0> VA info: Found init function __vaDriverInit_1_10
0:00:00.130176948 63145 0x55a46273b390 WARN vadisplay gstvadisplay.c:298:_va_warning:<vadisplaydrm0> VA error: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed
0:00:00.130212468 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:310:_va_info:<vadisplaydrm0> VA info: va_openDriver() returns 1
0:00:00.130245948 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:310:_va_info:<vadisplaydrm0> VA info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
0:00:00.131149620 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:310:_va_info:<vadisplaydrm0> VA info: Found init function __vaDriverInit_1_8
0:00:00.132913656 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:310:_va_info:<vadisplaydrm0> VA info: va_openDriver() returns 0
0:00:00.132951300 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:362:gst_va_display_initialize:<vadisplaydrm0> VA-API version 1.10
0:00:00.132970008 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:137:_gst_va_display_filter_driver: VA-API driver vendor: Intel i965 driver for Intel(R) Bay Trail - 2.4.1
0:00:00.132995028 63145 0x55a46273b390 INFO va gstvadevice_linux.c:130:gst_va_device_find_devices: Found VA-API device: /dev/dri/renderD128
0:00:00.133743468 63145 0x55a46273b390 LOG va plugin.c:103:plugin_register_decoders: 3 decoder codec: WMV3
0:00:00.133802556 63145 0x55a46273b390 LOG va plugin.c:105:plugin_register_decoders: sink caps: video/x-wmv, wmvversion=(int)3, format=(string)WVC1, profile=(string)advanced, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]; video/x-wmv, wmvversion=(int)3, profile=(string){ simple, main }, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]
0:00:00.133834476 63145 0x55a46273b390 LOG va plugin.c:106:plugin_register_decoders: src caps: video/x-raw(memory:VAMemory), width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ], format=(string)NV12; video/x-raw(memory:DMABuf), width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ], format=(string)DMA_DRM, drm-format=(string)NV12:0x0100000000000002; video/x-raw, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ], format=(string)NV12
0:00:00.133855092 63145 0x55a46273b390 DEBUG va plugin.c:159:plugin_register_decoders: No decoder implementation for WMV3
0:00:00.134106888 63145 0x55a46273b390 LOG va plugin.c:103:plugin_register_decoders: 2 decoder codec: MPEG
0:00:00.134137536 63145 0x55a46273b390 LOG va plugin.c:105:plugin_register_decoders: sink caps: video/mpeg, mpegversion=(int)2, profile=(string){ simple, main }, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]
0:00:00.134169768 63145 0x55a46273b390 LOG va plugin.c:106:plugin_register_decoders: src caps: video/x-raw(memory:VAMemory), width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ], format=(string)NV12; video/x-raw(memory:DMABuf), width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ], format=(string)DMA_DRM, drm-format=(string)NV12:0x0100000000000002; video/x-raw, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ], format=(string)NV12
0:00:00.134838384 63145 0x55a46273b390 LOG va plugin.c:103:plugin_register_decoders: 3 decoder codec: H264
0:00:00.134869536 63145 0x55a46273b390 LOG va plugin.c:105:plugin_register_decoders: sink caps: video/x-h264, profile=(string){ constrained-baseline, main, high }, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]
0:00:00.134907048 63145 0x55a46273b390 LOG va plugin.c:106:plugin_register_decoders: src caps: video/x-raw(memory:VAMemory), width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ], format=(string)NV12; video/x-raw(memory:DMABuf), width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ], format=(string)DMA_DRM, drm-format=(string)NV12:0x0100000000000002; video/x-raw, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ], format=(string)NV12
0:00:00.135087240 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:310:_va_info:<vadisplaydrm0> VA info: vaExportSurfaceHandle: fourcc 48323234 is not supported for export as separate planes.
0:00:00.135107388 63145 0x55a46273b390 INFO vadisplay vasurfaceimage.c:188:va_export_surface_to_dmabuf: vaExportSurfaceHandle: invalid VASurfaceID
0:00:00.135184416 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:310:_va_info:<vadisplaydrm0> VA info: vaExportSurfaceHandle: fourcc 50343434 is not supported for export as separate planes.
0:00:00.135202860 63145 0x55a46273b390 INFO vadisplay vasurfaceimage.c:188:va_export_surface_to_dmabuf: vaExportSurfaceHandle: invalid VASurfaceID
0:00:00.135298188 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:310:_va_info:<vadisplaydrm0> VA info: vaExportSurfaceHandle: fourcc 48323234 is not supported for export as separate planes.
0:00:00.135316608 63145 0x55a46273b390 INFO vadisplay vasurfaceimage.c:188:va_export_surface_to_dmabuf: vaExportSurfaceHandle: invalid VASurfaceID
0:00:00.135381312 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:310:_va_info:<vadisplaydrm0> VA info: vaExportSurfaceHandle: fourcc 50343434 is not supported for export as separate planes.
0:00:00.135399528 63145 0x55a46273b390 INFO vadisplay vasurfaceimage.c:188:va_export_surface_to_dmabuf: vaExportSurfaceHandle: invalid VASurfaceID
0:00:00.135494004 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:310:_va_info:<vadisplaydrm0> VA info: vaExportSurfaceHandle: fourcc 48323234 is not supported for export as separate planes.
0:00:00.135511872 63145 0x55a46273b390 INFO vadisplay vasurfaceimage.c:188:va_export_surface_to_dmabuf: vaExportSurfaceHandle: invalid VASurfaceID
0:00:00.135573492 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:310:_va_info:<vadisplaydrm0> VA info: vaExportSurfaceHandle: fourcc 50343434 is not supported for export as separate planes.
0:00:00.135591396 63145 0x55a46273b390 INFO vadisplay vasurfaceimage.c:188:va_export_surface_to_dmabuf: vaExportSurfaceHandle: invalid VASurfaceID
0:00:00.135685800 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:310:_va_info:<vadisplaydrm0> VA info: vaExportSurfaceHandle: fourcc 48323234 is not supported for export as separate planes.
0:00:00.135703488 63145 0x55a46273b390 INFO vadisplay vasurfaceimage.c:188:va_export_surface_to_dmabuf: vaExportSurfaceHandle: invalid VASurfaceID
0:00:00.135766716 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:310:_va_info:<vadisplaydrm0> VA info: vaExportSurfaceHandle: fourcc 50343434 is not supported for export as separate planes.
0:00:00.135784368 63145 0x55a46273b390 INFO vadisplay vasurfaceimage.c:188:va_export_surface_to_dmabuf: vaExportSurfaceHandle: invalid VASurfaceID
0:00:00.135875436 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:310:_va_info:<vadisplaydrm0> VA info: vaExportSurfaceHandle: fourcc 48323234 is not supported for export as separate planes.
0:00:00.135893112 63145 0x55a46273b390 INFO vadisplay vasurfaceimage.c:188:va_export_surface_to_dmabuf: vaExportSurfaceHandle: invalid VASurfaceID
0:00:00.135956340 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:310:_va_info:<vadisplaydrm0> VA info: vaExportSurfaceHandle: fourcc 50343434 is not supported for export as separate planes.
0:00:00.135977916 63145 0x55a46273b390 INFO vadisplay vasurfaceimage.c:188:va_export_surface_to_dmabuf: vaExportSurfaceHandle: invalid VASurfaceID
0:00:00.136045956 63145 0x55a46273b390 LOG va plugin.c:103:plugin_register_decoders: 1 decoder codec: JPEG
0:00:00.136079616 63145 0x55a46273b390 LOG va plugin.c:105:plugin_register_decoders: sink caps: image/jpeg, sof-marker=(int)0, colorspace=(string){ sYUV, GRAY }, sampling=(string){ YCbCr-4:2:2, YCbCr-4:4:4, GRAYSCALE }, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]
0:00:00.136110336 63145 0x55a46273b390 LOG va plugin.c:106:plugin_register_decoders: src caps: video/x-raw(memory:VAMemory), width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ], format=(string){ GRAY8, Y42B, Y444 }; video/x-raw, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ], format=(string){ GRAY8, Y42B, Y444 }
0:00:00.136592784 63145 0x55a46273b390 LOG va plugin.c:189:plugin_register_encoders: 2 encoder codec: MPEG
0:00:00.136631964 63145 0x55a46273b390 LOG va plugin.c:192:plugin_register_encoders: sink caps: video/x-raw(memory:VAMemory), width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ], format=(string){ NV12, I420, YV12 }; video/x-raw(memory:DMABuf), width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ], format=(string)DMA_DRM, drm-format=(string){ NV12:0x0100000000000002, YU12, YV12 }; video/x-raw, width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ], format=(string){ NV12, I420, YV12 }
0:00:00.136660248 63145 0x55a46273b390 LOG va plugin.c:193:plugin_register_encoders: src caps: video/mpeg, mpegversion=(int)2, profile=(string){ simple, main }, width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ]
0:00:00.136679748 63145 0x55a46273b390 DEBUG va plugin.c:211:plugin_register_encoders: No encoder implementation for MPEG
0:00:00.137027844 63145 0x55a46273b390 LOG va plugin.c:189:plugin_register_encoders: 3 encoder codec: H264
0:00:00.137062284 63145 0x55a46273b390 LOG va plugin.c:192:plugin_register_encoders: sink caps: video/x-raw(memory:VAMemory), width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ], format=(string)NV12; video/x-raw(memory:DMABuf), width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ], format=(string)DMA_DRM, drm-format=(string)NV12:0x0100000000000002; video/x-raw, width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ], format=(string)NV12
0:00:00.137088348 63145 0x55a46273b390 LOG va plugin.c:193:plugin_register_encoders: src caps: video/x-h264, profile=(string){ constrained-baseline, main, high }, width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ]
0:00:00.229909476 63145 0x55a46273b390 INFO vadisplay gstvadisplay_drm.c:155:gst_va_display_drm_create_va_display:<vadisplaydrm1> DRM render node with kernel driver i915
0:00:00.230022192 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:310:_va_info:<vadisplaydrm1> VA info: VA-API version 1.10.0
0:00:00.230054868 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:310:_va_info:<vadisplaydrm1> VA info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
0:00:00.230101944 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:310:_va_info:<vadisplaydrm1> VA info: Found init function __vaDriverInit_1_10
0:00:00.230358096 63145 0x55a46273b390 WARN vadisplay gstvadisplay.c:298:_va_warning:<vadisplaydrm1> VA error: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed
0:00:00.230379516 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:310:_va_info:<vadisplaydrm1> VA info: va_openDriver() returns 1
0:00:00.230405604 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:310:_va_info:<vadisplaydrm1> VA info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
0:00:00.230441208 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:310:_va_info:<vadisplaydrm1> VA info: Found init function __vaDriverInit_1_8
0:00:00.231917268 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:310:_va_info:<vadisplaydrm1> VA info: va_openDriver() returns 0
0:00:00.231957204 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:362:gst_va_display_initialize:<vadisplaydrm1> VA-API version 1.10
0:00:00.231973692 63145 0x55a46273b390 INFO vadisplay gstvadisplay.c:137:_gst_va_display_filter_driver: VA-API driver vendor: Intel i965 driver for Intel(R) Bay Trail - 2.4.1
0:00:00.421897212 63145 0x55a46252aaa0 INFO vah264dec gstvah264dec.c:693:gst_va_h264_dec_new_sequence:<vah264dec0> Format changed to VAProfileH264ConstrainedBaseline [1] (1920x1088)
0:00:00.421947684 63145 0x55a46252aaa0 INFO vah264dec gstvah264dec.c:703:gst_va_h264_dec_new_sequence:<vah264dec0> Resolution changed to 1920x1080
0:00:00.421966140 63145 0x55a46252aaa0 INFO vah264dec gstvah264dec.c:725:gst_va_h264_dec_new_sequence:<vah264dec0> crop rect changed to (0,0)-->(0,8)
0:00:00.426970068 63145 0x55a46252aaa0 LOG vah264dec gstvabasedec.c:199:gst_va_base_dec_src_query:<vah264dec0> Returning caps video/x-raw(memory:VAMemory), width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ], format=(string)NV12; video/x-raw(memory:DMABuf), width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ], format=(string)DMA_DRM, drm-format=(string)NV12:0x0100000000000002; video/x-raw, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ], format=(string)NV12
0:00:00.428651952 63145 0x55a46252aaa0 DEBUG vah264dec gstvabasedec.c:945:gst_va_base_dec_get_preferred_format_and_caps_features:<vah264dec0> Allowed caps video/x-raw, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ], format=(string)NV12, framerate=(fraction)[ 0/1, 2147483647/1 ]
0:00:00.428771340 63145 0x55a46252aaa0 INFO vah264dec gstvabasedec.c:1237:gst_va_base_dec_set_output_state:<vah264dec0> Negotiated caps video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)1:3:5:1, framerate=(fraction)0/1
0:00:00.434518284 63145 0x55a46252aaa0 DEBUG vah264dec gstvabasedec.c:560:gst_va_base_dec_decide_allocation:<vah264dec0> may need other pool for copy frames <glbufferpool2>
0:00:00.434698308 63145 0x55a46252aaa0 LOG vapool gstvapool.c:408:gst_va_pool_new:<vapool0> new va video buffer pool 0x7f0ae002b7d0
0:00:00.434835312 63145 0x55a46252aaa0 LOG vapool gstvapool.c:175:gst_va_pool_set_config:<vapool0> 1920x1080 | video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)1:3:5:1, framerate=(fraction)0/1
0:00:00.434909712 63145 0x55a46252aaa0 DEBUG vamemory gstvaallocator.c:1356:_update_image_info:<vaallocator0> Created surface 0x4000000 [1920x1088]
0:00:00.434987136 63145 0x55a46252aaa0 INFO vamemory gstvaallocator.c:1872:gst_va_allocator_try:<vaallocator0> va allocator info, surface format: NV12, image format: NV12, use derived: true, rt format: 0x1, fourcc: NV12
0:00:00.435003288 63145 0x55a46252aaa0 INFO vapool gstvapool.c:226:gst_va_pool_set_config:<vapool0> Video meta is required in buffer.
0:00:00.435116544 63145 0x55a46252aaa0 LOG vamemory gstvaallocator.c:1698:gst_va_allocator_alloc:<vaallocator0> Created surface 0x4000000 [1920x1088]
0:00:00.435197736 63145 0x55a46252aaa0 LOG vamemory gstvaallocator.c:1698:gst_va_allocator_alloc:<vaallocator0> Created surface 0x4000001 [1920x1088]
0:00:00.435237120 63145 0x55a46252aaa0 LOG vamemory gstvaallocator.c:1698:gst_va_allocator_alloc:<vaallocator0> Created surface 0x4000002 [1920x1088]
0:00:00.435288168 63145 0x55a46252aaa0 LOG vamemory gstvaallocator.c:1698:gst_va_allocator_alloc:<vaallocator0> Created surface 0x4000003 [1920x1088]
0:00:00.435330660 63145 0x55a46252aaa0 LOG vamemory gstvaallocator.c:1698:gst_va_allocator_alloc:<vaallocator0> Created surface 0x4000004 [1920x1088]
0:00:00.435372528 63145 0x55a46252aaa0 LOG vamemory gstvaallocator.c:1698:gst_va_allocator_alloc:<vaallocator0> Created surface 0x4000005 [1920x1088]
0:00:00.435414528 63145 0x55a46252aaa0 LOG vamemory gstvaallocator.c:1698:gst_va_allocator_alloc:<vaallocator0> Created surface 0x4000006 [1920x1088]
0:00:00.435456732 63145 0x55a46252aaa0 LOG vamemory gstvaallocator.c:1698:gst_va_allocator_alloc:<vaallocator0> Created surface 0x4000007 [1920x1088]
0:00:00.435498204 63145 0x55a46252aaa0 LOG vamemory gstvaallocator.c:1698:gst_va_allocator_alloc:<vaallocator0> Created surface 0x4000008 [1920x1088]
0:00:00.435550776 63145 0x55a46252aaa0 LOG vah264dec gstvah264dec.c:495:gst_va_h264_dec_new_picture:<vah264dec0> New va decode picture 0x7f0ae802a9f0 - 0x4000000
0:00:00.435701988 63145 0x55a46252aaa0 LOG vah264dec gstvah264dec.c:103:gst_va_h264_dec_end_picture:<vah264dec0> end picture 0x7f0ae8008620, (poc 0)
0:00:00.435723684 63145 0x55a46252aaa0 TRACE vadecoder gstvadecoder.c:632:gst_va_decoder_decode_with_aux_surface:<vadecoder0> Decode to surface 0x4000000
0:00:00.440149152 63145 0x55a46252aaa0 LOG vah264dec gstvah264dec.c:123:gst_va_h264_dec_output_picture:<vah264dec0> Outputting picture 0x7f0ae8008620 (poc 0)
0:00:00.682258692 63145 0x55a46252aaa0 LOG vah264dec gstvah264dec.c:495:gst_va_h264_dec_new_picture:<vah264dec0> New va decode picture 0x7f0ae800e9f0 - 0x4000001
0:00:00.682396320 63145 0x55a46252aaa0 LOG vah264dec gstvah264dec.c:103:gst_va_h264_dec_end_picture:<vah264dec0> end picture 0x7f0ae8010c20, (poc 2)
0:00:00.682416912 63145 0x55a46252aaa0 TRACE vadecoder gstvadecoder.c:632:gst_va_decoder_decode_with_aux_surface:<vadecoder0> Decode to surface 0x4000001
0:00:00.688245912 63145 0x55a46252aaa0 LOG vah264dec gstvah264dec.c:123:gst_va_h264_dec_output_picture:<vah264dec0> Outputting picture 0x7f0ae8010c20 (poc 2)
0:00:00.761617944 63145 0x55a46252aaa0 LOG vah264dec gstvah264dec.c:495:gst_va_h264_dec_new_picture:<vah264dec0> New va decode picture 0x7f0ae803bb60 - 0x4000002
0:00:00.761766552 63145 0x55a46252aaa0 LOG vah264dec gstvah264dec.c:103:gst_va_h264_dec_end_picture:<vah264dec0> end picture 0x7f0ae8038d90, (poc 4)
0:00:00.761794404 63145 0x55a46252aaa0 TRACE vadecoder gstvadecoder.c:632:gst_va_decoder_decode_with_aux_surface:<vadecoder0> Decode to surface 0x4000002
0:00:00.765499428 63145 0x55a46252aaa0 LOG vah264dec gstvah264dec.c:123:gst_va_h264_dec_output_picture:<vah264dec0> Outputting picture 0x7f0ae8038d90 (poc 4)
0:00:00.765952356 63145 0x55a46252aaa0 WARN videodecoder gstvideodecoder.c:3661:gst_video_decoder_clip_and_push_buf:<vah264dec0> Dropping frame due to QoS. start:0:00:00.106413596 deadline:0:00:00.106413596 earliest_time:0:00:00.574469524
0:00:00.766325160 63145 0x55a46252aaa0 LOG vah264dec gstvah264dec.c:495:gst_va_h264_dec_new_picture:<vah264dec0> New va decode picture 0x7f0ae803a060 - 0x4000003
0:00:00.766475208 63145 0x55a46252aaa0 LOG vah264dec gstvah264dec.c:103:gst_va_h264_dec_end_picture:<vah264dec0> end picture 0x7f0ae80390a0, (poc 6)
0:00:00.766499304 63145 0x55a46252aaa0 TRACE vadecoder gstvadecoder.c:632:gst_va_decoder_decode_with_aux_surface:<vadecoder0> Decode to surface 0x4000003
0:00:00.770761848 63145 0x55a46252aaa0 LOG vah264dec gstvah264dec.c:123:gst_va_h264_dec_output_picture:<vah264dec0> Outputting picture 0x7f0ae80390a0 (poc 6)
0:00:00.770849652 63145 0x55a46252aaa0 WARN videodecoder gstvideodecoder.c:3661:gst_video_decoder_clip_and_push_buf:<vah264dec0> Dropping frame due to QoS. start:0:00:00.146413596 deadline:0:00:00.146413596 earliest_time:0:00:00.574469524
I can see it struggling with single output using simplified pipeline (compared that we use in Qt software) using gst-launch-1.0
:
rtspsrc 'location=rtsp://...' protocols=tcp latency=100 buffer-mode=slave ! queue ! rtph264depay ! h264parse ! vah264dec ! glupload ! glcolorconvert ! glimagesink
Some more info:
vainfo: VA-API version: 1.10 (libva 2.10.0)
libgl1-mesa-dri:amd64 20.3.5-1