Writing a plugin with 2 sources and 1 sink

Thomas Jammet jammetthomas at gmail.com
Thu May 25 17:56:35 UTC 2023


Hi GStreamer team!

I have the following need and I want to create a Gstreamer plugin that will
do this :
Read a Timed data track (GST_MATROSKA_TRACK_TYPE_COMPLEX type 3) and a
video track from MKV source and insert key frames in the video track at
specific timestamp received in the data track.

I have started to implement this in 2 part :
- Update of the MKV parser (
https://gstreamer.freedesktop.org/documentation/matroska/matroskademux.html?gi-language=c)
to read the timed data packets and create a gstreamer event with
"gst_event_new_custom".
- Write a plugin based on GstVideoFilter (
https://gstreamer.freedesktop.org/documentation/video/gstvideofilter.html?gi-language=c)
that takes the video track as source, read the events coming from the
matroska demuxer with GstBaseTransform "src_event" and use
GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME to set the keyframes when needed.

Does it makes sense for you? Let me know if there is some better way to
achieve this. Note that I need to keep the original keyframes rate AND add
the additional key frames at specific timestamps.

Thanks

Thomas JAMMET
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20230525/2f76755e/attachment.htm>


More information about the gstreamer-devel mailing list