Opened 10 years ago
Closed 10 years ago
Last modified 10 years ago
#12313 closed Patch - Bug Fix (fixed)
Fix 32 to 64 bit integer arithmetic for first PVR-150 recordedseek record
Reported by: | Owned by: | paulh | |
---|---|---|---|
Priority: | minor | Milestone: | 0.27.5 |
Component: | MythTV - Recording | Version: | 0.27.4 |
Severity: | medium | Keywords: | |
Cc: | Ticket locked: | no |
Description
Commercial flagging was broken for PVR-150/300/500 recordings. I think it may have been limited to 32 bit O/Ss due to a conversion from a 32 bit unsigned int to a 64 bit signed int, which caused the first recordedseek record to look like this:
chanid starttime mark offset type 2005 2014-11-02 07:00:00 0 4294967146 9
That offset=4294967146 caused mythcommflag's attempts to seek to the beginning of a recording to fail and caused numerous decoding errors. The offset in hex is 0xffffff6a, which happens to be the 32 bit value of -150 base 10. I tracked the root cause down to one line in libmythtv/recorders/dtvrecorder.cpp and fixed it with a typecast. See attached patch. After the patch, no recordedseek record is inserted for mark=0 and type=9.
Attachments (1)
Change History (6)
Changed 10 years ago by
Attachment: | pvr-150-integer.patch added |
---|
comment:1 Changed 10 years ago by
comment:2 Changed 10 years ago by
Owner: | changed from JYA to paulh |
---|---|
Status: | new → accepted |
comment:3 Changed 10 years ago by
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
comment:5 Changed 10 years ago by
Milestone: | unknown → 0.27.5 |
---|
There are reports on the user list this patch does fix the problem.