When receiving a buffering message, do the pipeline state change in a different thread to avoid a deadlock with the main thread when the user is seeking.
Fixes issue 2709
This commit is contained in:
parent
5b888473aa
commit
96eccdfabf
@ -589,12 +589,12 @@ void GstEnginePipeline::BufferingMessageReceived(GstMessage* msg) {
|
|||||||
buffering_ = true;
|
buffering_ = true;
|
||||||
emit BufferingStarted();
|
emit BufferingStarted();
|
||||||
|
|
||||||
gst_element_set_state(pipeline_, GST_STATE_PAUSED);
|
SetState(GST_STATE_PAUSED);
|
||||||
} else if (percent == 100 && buffering_) {
|
} else if (percent == 100 && buffering_) {
|
||||||
buffering_ = false;
|
buffering_ = false;
|
||||||
emit BufferingFinished();
|
emit BufferingFinished();
|
||||||
|
|
||||||
gst_element_set_state(pipeline_, GST_STATE_PLAYING);
|
SetState(GST_STATE_PLAYING);
|
||||||
} else if (buffering_) {
|
} else if (buffering_) {
|
||||||
emit BufferingProgress(percent);
|
emit BufferingProgress(percent);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user