mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-23 10:11:08 +00:00
56e636b60c
The aim of this example is to show how to make use of the accept-certificate signal from a GTK GUI, and prompt user in case of invalid certificate. There are two subtleties to be aware of: 1. the signal is emitted from the GStreamer streaming thread, therefore the caller can't modify the GUI straight away, instead they must do it from the main thread (eg. by using g_idle_add()) 2. in case of a redirection, then a TLS failure, the caller won't know about the redirection. Actually, it's possible to be notified of the redirection by watching "message:element" and inspecting http-headers, but even in that case, the signal will be received *after* the signal "accept-certificate" (even though the redirection happened *before*). This second point is tricky. It's not uncommon to have servers that redirect http requests to https. So errors of the type "HTTP -> HTTPS -> TLS error" happen, and if the caller doesn't care about redirection, they might prompt users with a message such as "TLS error for URL http://...", which wouldn't make much sense. This example shows how to handle that right, by connecting to the signal "message:element", inspecting the http-headers, and in case of redirection, updating the TLS error dialog to indicate that the request was redirected. Here are a few examples of streams that exhibit TLS failure (at the time of this commit, of course): * https://radiolive.sanjavier.es:8443/stream: unknown-ca * https://am981.ddns.net:9005/stream.ogg: unknown-ca * http://stream.diazol.hu:7092/zene.mp3: redir then bad-identity * https://streaming.fabrik.fm/izwi/echocast/audio/index.m3u8: unknown-ca (this one is a HLS stream) Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4925> |
||
---|---|---|
.. | ||
glliveshader.c | ||
gtkglsink.c | ||
gtkhttpsrc.c | ||
gtksink.c | ||
meson.build |