Seek on running HW encoded pipeline gives errors but not on native video pipeline

marc lievens mark.lievens at
Fri Nov 5 08:27:18 UTC 2021


When seeking on  a running pipeline HW encode pipeline, then I get next

GStreamer-CRITICAL **: 08:30:20.042: gst_segment_do_seek: assertion
'segment->format == format' failed

GStreamer-CRITICAL **: 08:30:50.380: gst_buffer_get_size: assertion
'GST_IS_BUFFER (buffer)' failed

GStreamer-CRITICAL **: 08:30:50.382: gst_qt_mux_send_buffer: assertion 'buf
!= NULL' failed

Could not multiplex stream., debug : ../gst/isomp4/gstqtmux.c(5024):
gst_qt_mux_add_buffer (): /GstPipeline:pipeline0/GstQTMux:muxer: Failed to
push sample.

But when I remove all transcoding elements, then seeking on a running
pipeline is executed.

But only when gst_base_sink_set_last_sample_enabled is set to false,
otherwise seeking didn’t work either.

Seeking is done in  GST_FORMAT_TIME with options

pipeline :  filesrc ! qtdemux ! h264parse ! d3d11h264dec  ! mfh264enc !
h264parse ! qtmux  fragment-duration=100 ! multisocketsink

 Gstreamer version : 1.18.5

I already tried different options like :

Flushing/non flushing seeks

Sync and Async on multisocketsink

gst_base_src_set_format((GstBaseSrc*)filesrc), GST_FORMAT_TIME);

Different options on the mfh264enc and qtmux

Does anyone have  Idea what I'm doing wrong or I can get seeking working an
a running hardware encoded pipeline?

Cheers marc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the gstreamer-devel mailing list