textoverlay stability issue
Tim Müller
tim at centricular.com
Wed May 12 11:34:30 UTC 2021
Hi Peter,
There's no way to set it up externally, it requires code in the
application.
> We only notice that the CPU load drops and the stream is stopped and
> as I guess I should call the gst_debug_ring_buffer_logger_get_logs
> from within the application and I dont really have a trigger point.
You could monitor cpu load in the application, or buffer flows.
But if streaming stops entirely there should usually be an error
message on the pipeline bus.
There's also a watchdog element that can post a message if it hasn't
seen data for a while, but I guess for that you need your bus handler
to work.
> I tried to add a callback on the pipeline to print status messages /
> state changes with:
>
>
> bus = gst_element_get_bus (pipeline);
> gst_bus_add_signal_watch (bus);
> g_signal_connect (bus, "message", G_CALLBACK (cb_message),
> pipeline);
That will only work if you run a glib/gtk main loop (or Qt main loop
also on Linux).
Alternatives are:
- set_sync_handler(), but then your callback gets called from random
gstreamer streaming threads, possibly in parallel. Can also be used to
wake up other event loops
- just pop messages every now and then from whatever event loop you're
using.
Cheers
Tim
More information about the gstreamer-devel
mailing list