How to make videomix-plugin not block when one or more datasource stop?

The videomixer-plugin have three appsrc-plugin to input data,it work fine when three appsrc working.But when one or more of the appsrc-plugin stop working,the videomix will stop output data,and the pipeline seems to have been suspended.What can I do to keep it running when one or more appsrc-plugin stop.

We don’t have much experience about videomixer plugin. Could you check if the behavior is the same in running the pipeline:

appsrc0/1/2 ! videomixer ! videoconvert ! x264enc ! appsink

If you see the same behavior, suggest go to gstreamer forum to get further help.

The nvcompositor-plugin has the same problem, do you know anything about this plugin?

If you use Jetpack 4.5.1(r32.5.1), the source code of nvcompositor plugin is public. You can download the package from

The implementation is based on GstVideoAggregator. And it shoudl be as you said, if either source does not provide buffers, it keeps waiting and once all sources have frames, the registered callback of videoaggregator_class->aggregate_frames is called.

Not sure how videomixer works, but for nvcompositor, it may not work as your expectation. There are public source code of gstreamer and we do not go through all. It may be possible to support this kind of use-case and we don’t know it. To avoid this condition, we would suggest go to gstreamer forum. Several users in the forum is developers of gstreamer frameworks, and may be able to provide further suggestion.

For more flexibility, you may consider to use jetson_multimedia_api. We have samples to demonstrate hardware functions in


You may refer to the samples to implement the use-case.

Thank you for your help,I have solve the problem by filling black data when one or more date-source was stop.

The solution looks good and smart. Thanks for the sharing.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.