mirror of
https://github.com/brunoherbelin/vimix.git
synced 2025-12-17 21:29:59 +01:00
BugFix Improved Stream close (async)
Unified mechanism for async close of pipeline for stream and mediaplayer
This commit is contained in:
@@ -490,6 +490,9 @@ void MediaPlayer::execute_open()
|
||||
|
||||
opened_ = true;
|
||||
|
||||
// keep name in pipeline
|
||||
gst_element_set_name(pipeline_, std::to_string(id_).c_str());
|
||||
|
||||
// register media player
|
||||
MediaPlayer::registered_.push_back(this);
|
||||
}
|
||||
@@ -658,6 +661,9 @@ void MediaPlayer::execute_open()
|
||||
|
||||
opened_ = true;
|
||||
|
||||
// keep name in pipeline
|
||||
gst_element_set_name(pipeline_, std::to_string(id_).c_str());
|
||||
|
||||
// register media player
|
||||
MediaPlayer::registered_.push_back(this);
|
||||
}
|
||||
@@ -707,8 +713,12 @@ void MediaPlayer::Frame::unmap()
|
||||
|
||||
void delayed_terminate( GstElement *p )
|
||||
{
|
||||
#ifdef MEDIA_PLAYER_DEBUG
|
||||
Log::Info("MediaPlayer %s closed", gst_element_get_name(p));
|
||||
#endif
|
||||
|
||||
// end pipeline
|
||||
gst_element_set_state ( p, GST_STATE_NULL);
|
||||
gst_element_set_state (p, GST_STATE_NULL);
|
||||
|
||||
// unref to free pipeline
|
||||
gst_object_unref ( p );
|
||||
@@ -755,11 +765,6 @@ void MediaPlayer::close()
|
||||
write_index_ = 0;
|
||||
last_index_ = 0;
|
||||
|
||||
|
||||
#ifdef MEDIA_PLAYER_DEBUG
|
||||
Log::Info("MediaPlayer %s closed", std::to_string(id_).c_str());
|
||||
#endif
|
||||
|
||||
// unregister media player
|
||||
MediaPlayer::registered_.remove(this);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user