Ticket #2426: endprompt_cutlists.diff

File endprompt_cutlists.diff, 2.3 KB (added by skamithi, 14 years ago)

end of prompt not shown if a cutlist causes the end of the recording to occur before the "real" end of recording. fixed issue where jumping ahead doesn't respect cutlists. this patch should resolve both issues. 1st issue depends on the 2nd.

  • NuppelVideoPlayer.cpp

     
    33883388        {
    33893389            ++deleteIter;
    33903390            if (deleteIter.key() == totalFrames)
    3391                 eof = true;
     3391            {
     3392                if (!(gContext->GetNumSetting("EndofRecordingExitPrompt") == 1 &&
     3393                    m_tv && m_tv->GetState() == kState_WatchingPreRecorded))
     3394                {
     3395                    eof = true;
     3396                }
     3397            }
    33923398            else
    33933399            {
    33943400                PauseVideo();
     
    40274033 
    40284034    if (m_tv && m_tv->GetState() == kState_WatchingPreRecorded)
    40294035    {
    4030         framesLeft = totalFrames - framesRead;
     4036        if (!editmode && hasdeletetable && IsInDelete(framesRead))
     4037        {
     4038            QMapConstIterator<long long, int> it = deleteMap.end();
     4039            --it;
     4040            if (it.key() == totalFrames)
     4041            {
     4042                --it;
     4043                if (framesRead >= it.key())
     4044                    return true;
     4045            }
     4046        }
     4047        else
     4048            framesLeft = totalFrames - framesRead;
    40314049        return (framesLeft < margin);
    40324050    }
    40334051   
     
    40544072    long long number = fftime - 1;
    40554073    long long desiredFrame = framesPlayed + number;
    40564074
     4075    if (!editmode && hasdeletetable && IsInDelete(desiredFrame))
     4076    {
     4077        QMap<long long, int>::Iterator it = deleteMap.end();
     4078        --it;
     4079        if ( it.key() == totalFrames)
     4080        {
     4081            --it;
     4082            if (desiredFrame > it.key())
     4083                desiredFrame = it.key();
     4084        }
     4085    }
    40574086    if (paused && !editmode)
    40584087        GetDecoder()->setExactSeeks(true);
    40594088    GetDecoder()->DoFastForward(desiredFrame);
  • tv_play.cpp

     
    17851799                ClearOSD();
    17861800
    17871801                requestDelete = false;
    1788                 if (activenvp->IsNearEnd())
    1789                 {
    1790                     exitPlayer  = true;
    1791                     wantsToQuit = true;
    1792                 }
     1802                exitPlayer  = true;
     1803                wantsToQuit = true;
    17931804            }
    17941805        }
    17951806