Opened 18 years ago
Closed 18 years ago
#1013 closed defect (fixed)
livetv does not work (svn 8575) [DVB]
Reported by: | anonymous | Owned by: | cpinkham |
---|---|---|---|
Priority: | blocker | Milestone: | 0.19 |
Component: | dvb | Version: | head |
Severity: | medium | Keywords: | |
Cc: | Ticket locked: | no |
Description
when I try to watch TV, the osd comes up with the signal information (has signal and lock), and then the frontend freezes from a timeout waiting for prebuffer.
scheduling a recording and then watching that in quasi-live mode works fine. Livetv was working fine in 8553.
FE/BE logs attached.
Attachments (3)
Change History (14)
Changed 18 years ago by
Attachment: | frontend.txt added |
---|
Changed 18 years ago by
Attachment: | backend.txt added |
---|
comment:1 Changed 18 years ago by
Component: | mythtv → dvb |
---|---|
Milestone: | → 0.19 |
Owner: | changed from Isaac Richards to danielk |
Summary: | livetv does not work (svn 8575) → livetv does not work (svn 8575) [DVB] |
Version: | → head |
comment:2 Changed 18 years ago by
comment:4 Changed 18 years ago by
Owner: | changed from danielk to cpinkham |
---|
comment:5 Changed 18 years ago by
Reverts the AvFormatDecoder? part of [8573] until cpinkham gets a chance to look at the problem.
comment:6 Changed 18 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
(In [8590]) Because avcodec_open is called inside of ScanStreams?, and avcodeclock is locked and unlocked around ScanStreams?, then we need to not put locks around the call to avcodec_open. Instead, we add a second set of avcodeclock locks around the other call to ScanStreams? which was not protected before. The lock calls around avcodec_close have been uncommented again.
comment:7 Changed 18 years ago by
Resolution: | fixed |
---|---|
Status: | closed → reopened |
SVN: 8602 I'm still having this very same issue. FE log attached.
Changed 18 years ago by
Attachment: | felog.011306.rtf added |
---|
comment:8 Changed 18 years ago by
comment:9 Changed 18 years ago by
Priority: | minor → blocker |
---|
Mark, can you update to SVN head and verify things work correctly again, then apply the attached avcodeclock.diff patch and see if it still works correctly after applying the patch. We need to lock around avcodec_open and avcodec_close, otherwise we get failures when multiple threads are trying to call one of those such as when we have multiple recordings ending at the same time and multiple preview generators firing off. This was the reason for the initial added locks. With this patch, we convert the lock to a recursive lock, so we can lock it once inside HandleStreamChange? which calls ScanStreams?, then inside ScanStreams?, we can lock it again around avcodec_open. This way when we call ScanStreams? outside of HandleStreamChange?, we still correctly lock around avcodec_open.
If this doesn't fix the issue, I'll have to defer to someone with DVB. I'm unable to replicate the issue on my system with either patch revision. We need to get locks around this call to avcodec_open somehow since it is a documented issue that it is not thread-safe. It is thread-aware in that it prints a nasty error message if called twice at the same time, so it doesn't segfault or anything, but it can and does break functionality in certain parts of Myth. Otherwise we'll have lots of users with multiple tuners getting the error I noted in [8573].
comment:10 Changed 18 years ago by
FWIW, after 8590 I no longer experienced prebuffering pause problems (I am the original poster). I just tried 8604 with and without the avcodeclock.diff, and in both cases live tv worked fine.
comment:11 Changed 18 years ago by
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
just tried 8566 build, livetv worked fine (I am the original poster).