def isDisc(self, device): if DiscInfo.isDisc(self, device) != 2: return 0 # brute force reading of the device to find out if it is a DVD f = open(device, 'rb') f.seek(32768, 0) buffer = f.read(60000) if buffer.find('UDF') == -1: f.close() return 0 # seems to be a DVD, read a little bit more buffer += f.read(550000) f.close() if buffer.find('VIDEO_TS') == -1 and \ buffer.find('VIDEO_TS.IFO') == -1 and \ buffer.find('OSTA UDF Compliant') == -1: return 0 ret = self.lsdvd(device) if not ret: # we are very sure this is a DVD, maybe the drive was not # ready, let's try again return self.lsdvd(device) return 1
def isDisc(self, device): if DiscInfo.isDisc(self, device) != 2: return 0 # brute force reading of the device to find out if it is a DVD f = open(device,'rb') f.seek(32768, 0) buffer = f.read(60000) if buffer.find('UDF') == -1: f.close() return 0 # seems to be a DVD, read a little bit more buffer += f.read(550000) f.close() if buffer.find('VIDEO_TS') == -1 and buffer.find('VIDEO_TS.IFO') == -1 and \ buffer.find('OSTA UDF Compliant') == -1: return 0 # OK, try libdvdread title_num = ifoparser.open(device) if not title_num: return 0 for title in range(1, title_num+1): ti = DVDTitle(title) ti.trackno = title ti.trackof = title_num self.appendtrack(ti) ifoparser.close() return 1
def isDisc(self, device): if DiscInfo.isDisc(self, device) != 2: return 0 # brute force reading of the device to find out if it is a DVD f = open(device,'rb') f.seek(32768, 0) buffer = f.read(60000) if buffer.find('UDF') == -1: f.close() return 0 # seems to be a DVD, read a little bit more buffer += f.read(550000) f.close() if buffer.find('VIDEO_TS') == -1 and \ buffer.find('VIDEO_TS.IFO') == -1 and \ buffer.find('OSTA UDF Compliant') == -1: return 0 ret = self.lsdvd(device) if not ret: # we are very sure this is a DVD, maybe the drive was not # ready, let's try again return self.lsdvd(device) return 1
def isDisc(self, device): if DiscInfo.isDisc(self, device) != 2: return 0 # brute force reading of the device to find out if it is a DVD f = open(device, 'rb') f.seek(32768, 0) buffer = f.read(60000) if buffer.find('UDF') == -1: f.close() return 0 # seems to be a DVD, read a little bit more buffer += f.read(550000) f.close() if buffer.find('VIDEO_TS') == -1 and buffer.find('VIDEO_TS.IFO') == -1 and \ buffer.find('OSTA UDF Compliant') == -1: return 0 # OK, try libdvdread title_num = ifoparser.open(device) if not title_num: return 0 for title in range(1, title_num + 1): ti = DVDTitle(title) ti.trackno = title ti.trackof = title_num self.appendtrack(ti) ifoparser.close() return 1
def isDisc(self, device): type = None if DiscInfo.isDisc(self, device) != 2: return 0 # brute force reading of the device to find out if it is a VCD f = open(device,'rb') f.seek(32768, 0) buffer = f.read(60000) f.close() if buffer.find('SVCD') > 0 and buffer.find('TRACKS.SVD') > 0 and \ buffer.find('ENTRIES.SVD') > 0: type = 'SVCD' elif buffer.find('INFO.VCD') > 0 and buffer.find('ENTRIES.VCD') > 0: type = 'VCD' else: return 0 # read the tracks to generate the title list device = open(device) (first, last) = cdrom.toc_header(device) lmin = 0 lsec = 0 num = 0 for i in range(first, last + 2): if i == last + 1: min, sec, frames = cdrom.leadout(device) else: min, sec, frames = cdrom.toc_entry(device, i) if num: vi = mediainfo.VideoInfo() # XXX add more static information here, it's also possible # XXX to scan for more informations like fps # XXX Settings to MPEG1/2 is a wild guess, maybe the track # XXX isn't playable at all (e.g. the menu) if type == 'VCD': vi.codec = 'MPEG1' else: vi.codec = 'MPEG2' vi.length = (min-lmin) * 60 + (sec-lsec) self.tracks.append(vi) num += 1 lmin, lsec = min, sec device.close() return 1
def isDisc(self, device): type = None if DiscInfo.isDisc(self, device) != 2: return 0 # brute force reading of the device to find out if it is a VCD f = open(device, 'rb') f.seek(32768, 0) buffer = f.read(60000) f.close() if buffer.find('SVCD') > 0 and buffer.find('TRACKS.SVD') > 0 and \ buffer.find('ENTRIES.SVD') > 0: type = 'SVCD' elif buffer.find('INFO.VCD') > 0 and buffer.find('ENTRIES.VCD') > 0: type = 'VCD' else: return 0 # read the tracks to generate the title list device = open(device) (first, last) = cdrom.toc_header(device) lmin = 0 lsec = 0 num = 0 for i in range(first, last + 2): if i == last + 1: min, sec, frames = cdrom.leadout(device) else: min, sec, frames = cdrom.toc_entry(device, i) if num: vi = mediainfo.VideoInfo() # XXX add more static information here, it's also possible # XXX to scan for more informations like fps # XXX Settings to MPEG1/2 is a wild guess, maybe the track # XXX isn't playable at all (e.g. the menu) if type == 'VCD': vi.codec = 'MPEG1' else: vi.codec = 'MPEG2' vi.length = (min - lmin) * 60 + (sec - lsec) self.tracks.append(vi) num += 1 lmin, lsec = min, sec device.close() return 1
def isDisc(self, device): if DiscInfo.isDisc(self, device) != 2: return 0 return 1