Ticket #2542: ticket_2542_prob2_fix.diff

File ticket_2542_prob2_fix.diff, 1.7 KB (added by skamithi, 14 years ago)

problem 2 fix. with libmpeg2 or ffmpeg, but discovered a new problem. problem 4: player crashes on displaydvdbutton when in the chapter menu and u select the back option. only crashes when you go from the main title to the chapter menu. going from the main menu -> chapter menu doesn't seem to cause a problem.

  • libs/libmythtv/avformatdecoder.cpp

     
    19381938                GetNVP()->SetVideoParams(awidth, aheight, seqFPS,
    19391939                                         keyframedist, aspect,
    19401940                                         kScan_Detect);
    1941 
    1942                 if (ringBuffer->InDVDMenuOrStillFrame())
    1943                 {
    1944                     ringBuffer->Seek(ringBuffer->DVD()->GetCellStartPos(),
    1945                                      SEEK_SET);
    1946                     av_read_frame_flush(ic);
    1947                 }
    1948 
    19491941                current_width  = width;
    19501942                current_height = height;
    19511943                current_aspect = aspect;
     
    26572649            {
    26582650                int current_width = curstream->codec->width;
    26592651                int video_width = GetNVP()->GetVideoWidth();
    2660                 if (video_width > 0 && video_width != current_width &&
    2661                         !ringBuffer->DVD()->InStillFrame())
     2652                if (video_width > 0 && video_width != current_width)
    26622653                {
    26632654                    av_free_packet(pkt);
    26642655                    CloseCodecs();
    26652656                    ScanStreams(false);
    26662657                    allowedquit = true;
     2658                    if (ringBuffer->DVD()->InStillFrame())
     2659                    {
     2660                        long long cellstartpos = ringBuffer->DVD()->GetCellStartPos();
     2661                        ringBuffer->DVD()->Seek(cellstartpos, SEEK_SET);
     2662                    }
    26672663                    continue;
    26682664                }
    26692665            }