Ticket #2455: ticket_2455.diff

File ticket_2455.diff, 3.2 KB (added by skamithi, 15 years ago)
  • libs/libmythdvdnav/vm.c

     
    757757    }
    758758  }
    759759
    760   if((vm->state).domain == VTS_DOMAIN && !((vm->state).SPST_REG & 0x40))
     760  if((vm->state).SPST_REG & 0x40)
    761761    /* Bit 7 set means hide, and only let Forced display show */
    762     return (streamN | 0x80);
     762    return (streamN & 0x1F);
    763763  else
    764     return streamN;
     764    return -1;
    765765}
    766766
    767767void vm_get_angle_info(vm_t *vm, int *current, int *num_avail) {
  • libs/libmythtv/DVDRingBuffer.h

     
    147147    /// menu pkt pts is not reliable
    148148    long long      menupktpts;
    149149    int            curAudioTrack;
    150     int            curSubtitleTrack;
     150    int8_t         curSubtitleTrack;
    151151    bool           autoselectaudio;
    152152    bool           autoselectsubtitle;
    153153    const char     *dvdname;
  • libs/libmythtv/DVDRingBuffer.cpp

     
    315315                ClearSubtitlesOSD();
    316316
    317317                if (autoselectsubtitle)
    318                     curSubtitleTrack = dvdnav_get_active_spu_stream(dvdnav) & 0x1F;
     318                    curSubtitleTrack = dvdnav_get_active_spu_stream(dvdnav);
    319319
    320320                if (parent)
    321321                {
  • libs/libmythtv/avformatdecoder.cpp

     
    15041504                trackNo = GetTrackCount(kTrackTypeAudio) - 1;
    15051505            SetTrack(kTrackTypeAudio, trackNo);
    15061506        }
    1507         if (tracks[kTrackTypeSubtitle].size() > 1)
     1507        if (tracks[kTrackTypeSubtitle].size() > 0)
    15081508        {
    15091509            qBubbleSort(tracks[kTrackTypeSubtitle]);
    15101510            int trackNo = ringBuffer->DVD()->GetTrack(kTrackTypeSubtitle);
    15111511            uint captionmode = GetNVP()->GetCaptionMode();
    1512             if (captionmode == kDisplayAVSubtitle) {
    1513                 if (trackNo < 0 || trackNo >= (int)GetTrackCount(kTrackTypeSubtitle))
     1512            if (captionmode == kDisplayAVSubtitle &&
     1513                (trackNo < 0 || trackNo >= (int)GetTrackCount(kTrackTypeSubtitle)))
     1514            {
     1515                GetNVP()->SetCaptionsEnabled(false, false);
     1516            }
     1517            else
     1518            {
     1519                if (!ringBuffer->InDVDMenuOrStillFrame() && trackNo >= 0)
    15141520                {
    1515                     GetNVP()->SetCaptionsEnabled(false, false);
     1521                    SetTrack(kTrackTypeSubtitle, trackNo);
     1522                    GetNVP()->SetCaptionsEnabled(true, false);
    15161523                }
    1517                 else
    1518                 {
    1519                     if (!ringBuffer->InDVDMenuOrStillFrame() && trackNo >= 0)
    1520                         GetNVP()->SetCaptionsEnabled(true, false);
    1521                 }
    15221524            }
    15231525        }
    15241526    }