Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#8527 closed patch (fixed)

Unsigned overflow in IsNearEnd

Reported by: Jim Stichnoth <stichnot@…> Owned by: danielk
Priority: minor Milestone: unknown
Component: MythTV - General Version: Unspecified
Severity: medium Keywords:
Cc: Ticket locked: no

Description

Changeset [24694] (ProgramInfo? refactor) changed some signed variables to unsigned, so when the current frame appears to be past the last frame, the unsigned subtraction goes wrong. I have only experienced this with the patch in #7994 on some mkv files.

It would be nicer to figure out the root cause upstream, of why it looks like the current frame is greater than the last frame, but this one-line patch is good for now.

Attachments (1)

isnearend_overflow.patch (481 bytes) - added by Jim Stichnoth <stichnot@…> 10 years ago.

Download all attachments as: .zip

Change History (5)

Changed 10 years ago by Jim Stichnoth <stichnot@…>

Attachment: isnearend_overflow.patch added

comment:1 Changed 10 years ago by danielk

Owner: changed from Isaac Richards to danielk
Status: newassigned

comment:2 Changed 10 years ago by markk

(In [24973]) Fix NuppelVideoPlayer::IsNearEnd? prototype following the libmythui-osd merge.

This fixes the reported compilation issue but IsNearEnd? clearly needs a little more work following the ProgramInfo? refactor - there are definitely some sign issues (refs #8527).

Refs #7650

comment:3 Changed 10 years ago by danielk

Resolution: fixed
Status: assignedclosed

(In [25091]) Fixes #8527. Sometimes we play past the 'last frame' of a video when watching a recording currently being recorded, this allows IsNearEnd?() to return true in that case since we are most certainly near the end of the video in that case.

We should never actually get this close to the end of the video as there are safegards in place on skip, fast forward and timestretch to prevent this situation from occuring, but the failure of one or more of those mechanism is a separate bug.

comment:4 Changed 10 years ago by James Linder <jam@…>

Update to 25100 seemed to fix the problem, but today it is back. running -v all makes failure not happen from the ordinary trace, skipping to end, while recording ...

2010-06-14 17:24:25.335 SendReceiveStringList?(MESSAGE,SYSTEM_EVENT PLAY_UNPAUSED HOSTNAME haycorn CHANID 1010 STARTTIME 2010-06-14T17:00:00 SENDER haycorn) called from UI thread 2010-06-14 17:24:25.400 ScreenSaverX11Private: DPMS Deactivated 1 2010-06-14 17:24:30.261 [mpeg2video @ 0x7fefbdd104e0]ac-tex damaged at 21 23 2010-06-14 17:24:30.261 [mpeg2video @ 0x7fefbdd104e0]Warning MVs not available 2010-06-14 17:24:30.277 [mp2 @ 0x7fefbdd104e0]incomplete frame 2010-06-14 17:24:30.277 AFD Error: Unknown audio decoding error 2010-06-14 17:24:30.426 TV: Attempting to change from WatchingRecording? to None 2010-06-14 17:24:30.485 TV: Changing from WatchingRecording? to None 2010-06-14 17:24:30.508 ScreenSaverX11Private: DPMS Reactivated 1 2010-06-14 17:24:30.509 TV: Attempting to change from None to None 2010-06-14 17:24:30.580 SendReceiveStringList?(MESSAGE,SYSTEM_EVENT PLAY_STOPPED HOSTNAME haycorn CHANID 1010 STARTTIME 2010-06-14T17:00:00 SENDER haycorn) called from UI thread

Note: See TracTickets for help on using tickets.