Hi,
I’m trying to mux an h264 and a KLV with mpegtsmux and receive the stream with tsdemux.
Actually it have to be compliant with the stanag MISB ST 0601.
I use an appsrc to inject the metadata buffer at 1Hz with this code found online (gstreamer-test-klv/klv-encode) by impleotv):
// For ASYNC_KLV, we need to remove timestamp and duration from the buffer
GST_BUFFER_PTS(buffer) = GST_CLOCK_TIME_NONE;
GST_BUFFER_DTS(buffer) = GST_CLOCK_TIME_NONE;
GST_BUFFER_DURATION(buffer) = GST_CLOCK_TIME_NONE;
GST_BUFFER_FLAG_SET(buffer, GST_STREAM_FLAG_SPARSE);
ret = gst_app_src_push_buffer((GstAppSrc*)m_appsrc, buffer);
The appsrc is configured this way:
appsrc name=klvappsrc is-live=1 do-timestamp=1 format=3 caps=\"meta/x-klv, stream-format=(string)klv, parsed=(bool)true, sparse=(bool)true\" ! videomuxer.sink_67
I want to send a KLV async so the video is not in sync with metadata.
The problem is that the tsdemux seems to sync the video with the metadata, so the video is stepping at 1Hz. If I send metadata at 30Hz the video stepping goes away.
Is this a well known problem/behavoir?
Thanks