Opened 13 years ago
Closed 13 years ago
Last modified 13 years ago
#9546 closed Patch - Bug Fix (fixed)
[patch] corrupted read buffer refs #9511
Reported by: | Owned by: | Janne Grunau | |
---|---|---|---|
Priority: | critical | Milestone: | 0.25 |
Component: | MythTV - Video Playback | Version: | Master Head |
Severity: | high | Keywords: | |
Cc: | stuartm | Ticket locked: | no |
Description
Replying to markk:
Jiri - I'm closing this ticket as fixed, though recognise that there are probably outstanding issues.
The RingBuffer? wait condition should have been resolved in c3e1879e0c284b3c2267 and I took a slightly different approach to the decoder eof problem in 679b668e3669a38bd08e
If you are still seeing issues with livetv hitting the end of the file during normal playback, please open another ticket as that is a separate issue that needs a proper root cause analysis.
Thanks for the time and effort taken in debugging the issue and producing the patches.
Mark
Mark, c3e1879e0c284b3c2267 introduced new problem and its stream corruption when you hit pause/play few times (sometimes leading in to playback crash), or during program switch/jump.
Your solution is wrong because when the buffer is paused and decoder trying to read from ringbuffer ReadDirect? is used instead and reading data from physical file without readahead buffer and read position adjustment. This will cause readahead buffer corruption when playback is resumed.
Attached patch reverting c3e1879e0c284b3c2267 and fixing wait condition by another way than in my previous patch.
Jiri
Attachments (1)
Change History (5)
Changed 13 years ago by
Attachment: | 104-corrupted_stream_fix.patch added |
---|
comment:1 Changed 13 years ago by
Cc: | stuartm added |
---|---|
Milestone: | unknown → 0.25 |
comment:3 Changed 13 years ago by
Resolution: | → Fixed |
---|---|
Status: | new → closed |
Fixed in commit e45da57be5cee702fe9d
comment:4 Changed 13 years ago by
Resolution: | Fixed → fixed |
---|
Faster pausing when switching programs in live tv.
See http://code.mythtv.org/trac/ticket/9511 and http://code.mythtv.org/trac/ticket/9546 for details.
In summary, if we are near the end of the buffer when in live tv, force the reload of the tv chain and return immediately from RingBuffer::WaitFroAvail? - before we hit the 'generalWait' condition.
Closes #9546
Changeset: e45da57be5cee702fe9d8bb4ba700bcc3f310848
the patch