gst-vaapi crashes with the following error found no short_term_reference picture with PicNum
Hi There, GST_VAAPI version: 1.18.4.1
I am doing some benchmarking with Gstreamer pipelines and Intel GPU. I have created a test stream that loops through a ts segment to generate an rtsp stream.
for i in $(seq 1 16); do
ffmpeg -re -stream_loop -1 -i test.ts -c copy -f rtsp rtsp://localhost:8554/mystream$i > raw_logs/ffmpeg_$i.log 2>&1 &
sleep 1
done
I am running the following pipeline ingesting each fo the 16 streams
gst-launch-1.0 hlssink2 name=enc_ingest1 playlist-length=5 max-files=10 target-duration=2 send-keyframe-requests=true playlist-location="/spot-tmp/gst1/360/enc_stream1.m3u8" location="/spot-tmp/gst1/360/fa%05d.ts" async=false \
rtspsrc location="rtsp://:@10.0.0.206:8554/mystream$i" protocols=4 name=rtspsrc0 rtspsrc0. ! rtph264depay ! h264parse ! queue ! vaapih264dec ! videoscale ! "video/x-raw,width=640" ! videorate ! "video/x-raw,framerate=10/1" ! vaapih264enc ! enc_ingest1.video
The pipeline works fine for the first 5 streams after that I start getting the following errors on other pipelines and they stop ingesting.
0:00:10.646916697 215 0x55a537dfd760 ERROR vaapi gstvaapidecoder_h264.c:2757:find_short_term_reference: found no short-term reference picture with PicNum = 5
0:00:10.646972894 215 0x55a537dfd760 ERROR vaapi gstvaapidecoder_h264.c:2757:find_short_term_reference: found no short-term reference picture with PicNum = 5
0:00:10.646989200 215 0x55a537dfd760 ERROR vaapi gstvaapidecoder_h264.c:2757:find_short_term_reference: found no short-term reference picture with PicNum = 4
0:00:10.647001969 215 0x55a537dfd760 ERROR vaapi gstvaapidecoder_h264.c:2757:find_short_term_reference: found no short-term reference picture with PicNum = 3
0:00:10.647016914 215 0x55a537dfd760 ERROR vaapi gstvaapidecoder_h264.c:2963:exec_picture_refs_modification_1: list 0 entry 0 is empty
0:00:10.647030196 215 0x55a537dfd760 ERROR vaapi gstvaapidecoder_h264.c:2963:exec_picture_refs_modification_1: list 0 entry 1 is empty
0:00:10.647041867 215 0x55a537dfd760 ERROR vaapi gstvaapidecoder_h264.c:2963:exec_picture_refs_modification_1: list 0 entry 2 is empty
0:00:10.647053899 215 0x55a537dfd760 ERROR vaapi gstvaapidecoder_h264.c:2963:exec_picture_refs_modification_1: list 0 entry 3 is empty
0:00:10.778790111 215 0x55a537dfd760 WARN vaapidecode gstvaapidecode.c:780:gst_vaapidecode_handle_frame:<vaapidecode0> decode error -1
0:00:10.778795028 215 0x55a537dfd760 WARN videodecoder gstvideodecoder.c:4361:_gst_video_decoder_error:<vaapidecode0> error: Decoding error
0:00:10.778798718 215 0x55a537dfd760 WARN videodecoder gstvideodecoder.c:4363:_gst_video_decoder_error:<vaapidecode0> error: Decode error -1
0:00:10.780945866 215 0x55a537c65b00 FIXME basesink gstbasesink.c:3384:gst_base_sink_default_event:<giostreamsink0> stream-start event without group-id. Consider implementing group-id handling in the upstream elements
0:00:10.780974685 215 0x55a537c65b00 WARN gio_base_sink gstgiobasesink.c:218:gst_gio_base_sink_event:<giostreamsink0> ignored SEGMENT event in time format
Redistribute latency...
0:00:11.268396982 215 0x55a537dfce40 FIXME basesink gstbasesink.c:3384:gst_base_sink_default_event:<giostreamsink1> stream-start event without group-id. Consider implementing group-id handling in the upstream elements
0:00:11.268439473 215 0x55a537dfce40 WARN gio_base_sink gstgiobasesink.c:218:gst_gio_base_sink_event:<giostreamsink1> ignored SEGMENT event in time format
0:03:55.888237472 215 0x7f0c640058c0 WARN rtspsrc gstrtspsrc.c:3574:on_timeout_common:<rtspsrc0> source 95974fbf, stream 95974fbf in session 0 timed out
It works fine with software decoding. So I think it could be a problem with gst-vaapi. Is there any parameters in gst-vaapi decoder I should set so that it is happy?
Appreciate your help. Thanks!