Closed jamesjer closed 4 years ago
Regarding bglgst_thread.c, I wonder if something like this would work. Create a pthread_key_t with a destructor function. For each bigloo function that a gstreamer thread can call into (it must be possible to enumerate these), first check the value of that key for the current thread. If it is NULL, then call bglpth_thread_new and set its return value as the value of the key, then call bglpth_thread_env_create on it. When the key destructor function is called, that means the thread is exiting, so call bglpth_thread_cleanup on the value of the key.
Could you explain what's the problem with threads and what should be done? I'm no longer using gstreamer and I'm not willing to invest a lot in that library but if there is something simple I could do, I'm of course willing to help.
Gstreamer 1.0 was released in September 2012, and version 0.10 was deprecated in March 2013 (see https://gstreamer.freedesktop.org/news/). Linux distributions have started removing version 0.10, as it has many known security problems and no maintenance.
This commit updates bigloo's interface to use gstreamer 1.x instead of 0.10. I have deliberately not kept any backwards compatibility with versions older than 1.0.
Note that the changes to bglgst_thread.c are an abomination, but at least this version compiles. Some other approach should be figured out .