BugFix improved complete close of session

Wait for all registered pipelines to end when clearing the mixer manager (closing is asynchronous).
This commit is contained in:
Bruno Herbelin
2024-02-28 18:47:54 +01:00
parent 05f593e40c
commit 03c68d1dc3
8 changed files with 41 additions and 39 deletions

View File

@@ -2,7 +2,6 @@
#define __GST_MEDIA_PLAYER_H_
#include <string>
#include <atomic>
#include <mutex>
#include <future>
@@ -101,7 +100,7 @@ public:
/**
* Close the Media
* */
void close(bool async = true);
void close();
/**
* Update texture with latest frame
* Must be called in rendering update loop
@@ -300,13 +299,13 @@ public:
* Accept visitors
* */
void accept(Visitor& v);
/**
* @brief registered
* @return list of media players currently registered
*/
static std::list<MediaPlayer*> registered() { return registered_; }
static std::list<MediaPlayer*>::const_iterator begin() { return registered_.cbegin(); }
static std::list<MediaPlayer*>::const_iterator end() { return registered_.cend(); }
static std::list<GstElement*> registered() { return registered_; }
/**
* Discoverer to check uri and get media info
* */
@@ -423,7 +422,8 @@ private:
static GstFlowReturn callback_new_sample (GstAppSink *, gpointer);
// global list of registered media player
static std::list<MediaPlayer*> registered_;
static void pipeline_terminate(GstElement *p);
static std::list<GstElement*> registered_;
};