GNOME Bugzilla – Bug 734392
dvbsrc: tuning block in playing state
Last modified: 2018-11-03 13:25:57 UTC
when failure to tune in playing state , task can't read data from dvr node and will be in a infinite loop. now tuning again, we will be in blocking.
Hello, thanks for reporting. Are you listening to the tuning-fail signal? Acting on it should help you temporarily overcome this situation. Anyhow, I reproduced this with gst-validate's new emit-signal (for tune) and confirmed. Looking at the code, the re-tuning error path in dvbsrc is indeed flawed. Will work on a fix.
For what is worth though, even if we fix this particular bug on dvbsrc there's still work to be done for the retuning in playing state use case to work properly (on dvbsrc and beyond). That should be discussed in another (enhancement) bug though, if there's not one already(?).
(In reply to comment #1) > [...] > Anyhow, I reproduced this with gst-validate's new emit-signal > (for tune) and confirmed. Looking at the code, the re-tuning > error path in dvbsrc is indeed flawed. Will work on a fix. lol, adding insult to injury, I haven't even pushed the new "tune" signal patch (pending some further investigation) so in the above comment, please interpret is as if I was referring to the "tune" property been set while playing, I guess that's what you did.
(In reply to comment #2) > For what is worth though, even if we fix this particular > bug on dvbsrc there's still work to be done for the retuning > in playing state use case to work properly (on dvbsrc and > beyond). That should be discussed in another (enhancement) > bug though, if there's not one already(?). if fix this bug, and we will provide a more perfect method that can be used anytime and anywhere when you want to tune. As i know changing state will spend much time. but it is not necessary sometimes, example scanning frequencies and fine tuning. they need frequent tuning and use the less time the better
Created attachment 282956 [details] [review] prevent tuning in blocking dvbsrc:Prevent from tuning blocked in playing state.
(In reply to comment #3) > lol, adding insult to injury, I haven't even pushed the new > "tune" signal patch (pending some further investigation) so in > the above comment, please interpret is as if I was referring > to the "tune" property been set while playing, I guess that's > what you did. what scruple does prevent pushing your new "tune" signal patch ? But i think , if we decide retuning and perpare set "tune" property, from then on , all data reading from dvr are not needful. if so , the task of reading data should stop until finish tuning. i pushed a new patch for this issue.
If no dvb signal suddenly in playing state, the task will be in a infinite loop also, and can 't automatically exit this reading . i think the reading task should automatically exit the loop when an accident happens. and also we should be add more code to check up real-time all dvb signal state .
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/168.