1*4882a593SmuzhiyunFrom 25140cf5b4e20cd6ddd3a1eef5adca46bda7cce5 Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Jeffy Chen <jeffy.chen@rock-chips.com> 3*4882a593SmuzhiyunDate: Tue, 6 Apr 2021 10:51:35 +0800 4*4882a593SmuzhiyunSubject: [PATCH 1/2] filesrc: Fix stopping race in pull-mode 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunWhen using qtmultimedia + playbin3, there's a chance that stop() been 7*4882a593Smuzhiyuncalled before fill(). 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunSetting uninitialized src fd to -1 instead of 0 to avoid reading the 10*4882a593Smuzhiyunstdin in that case. 11*4882a593Smuzhiyun 12*4882a593SmuzhiyunSigned-off-by: Jeffy Chen <jeffy.chen@rock-chips.com> 13*4882a593Smuzhiyun--- 14*4882a593Smuzhiyun plugins/elements/gstfilesrc.c | 4 ++-- 15*4882a593Smuzhiyun 1 file changed, 2 insertions(+), 2 deletions(-) 16*4882a593Smuzhiyun 17*4882a593Smuzhiyundiff --git a/plugins/elements/gstfilesrc.c b/plugins/elements/gstfilesrc.c 18*4882a593Smuzhiyunindex 62ffb20..2270c8d 100644 19*4882a593Smuzhiyun--- a/plugins/elements/gstfilesrc.c 20*4882a593Smuzhiyun+++ b/plugins/elements/gstfilesrc.c 21*4882a593Smuzhiyun@@ -188,7 +188,7 @@ static void 22*4882a593Smuzhiyun gst_file_src_init (GstFileSrc * src) 23*4882a593Smuzhiyun { 24*4882a593Smuzhiyun src->filename = NULL; 25*4882a593Smuzhiyun- src->fd = 0; 26*4882a593Smuzhiyun+ src->fd = -1; 27*4882a593Smuzhiyun src->uri = NULL; 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun src->is_regular = FALSE; 30*4882a593Smuzhiyun@@ -604,7 +604,7 @@ gst_file_src_stop (GstBaseSrc * basesrc) 31*4882a593Smuzhiyun g_close (src->fd, NULL); 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun /* zero out a lot of our state */ 34*4882a593Smuzhiyun- src->fd = 0; 35*4882a593Smuzhiyun+ src->fd = -1; 36*4882a593Smuzhiyun src->is_regular = FALSE; 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun return TRUE; 39*4882a593Smuzhiyun-- 40*4882a593Smuzhiyun2.20.1 41*4882a593Smuzhiyun 42