def __parse_tempo(self, atom, data):
     values = []
     for version, flags, data in self.__parse_data(atom, data):
         # version = 0, flags = 0 or 21
         if len(data) != 2:
             raise MP4MetadataValueError("invalid tempo")
         values.append(cdata.ushort_be(data))
     key = _name2key(atom.name)
     self.__add(key, values)
Esempio n. 2
0
 def __parse_tempo(self, atom, data):
     values = []
     for version, flags, data in self.__parse_data(atom, data):
         # version = 0, flags = 0 or 21
         if len(data) != 2:
             raise MP4MetadataValueError("invalid tempo")
         values.append(cdata.ushort_be(data))
     key = _name2key(atom.name)
     self.__add(key, values)
Esempio n. 3
0
 def __init__(self, fileobj):
     page = OggPage(fileobj)
     while not page.packets[0].startswith(b"\x80theora"):
         page = OggPage(fileobj)
     if not page.first:
         raise OggTheoraHeaderError("page has ID header, but doesn't start a stream")
     data = page.packets[0]
     vmaj, vmin = struct.unpack("2B", data[7:9])
     if (vmaj, vmin) != (3, 2):
         raise OggTheoraHeaderError("found Theora version %d.%d != 3.2" % (vmaj, vmin))
     fps_num, fps_den = struct.unpack(">2I", data[22:30])
     self.fps = fps_num / float(fps_den)
     self.bitrate = cdata.uint_be(b"\x00" + data[37:40])
     self.granule_shift = (cdata.ushort_be(data[40:42]) >> 5) & 0x1F
     self.serial = page.serial
 def __init__(self, fileobj):
     page = OggPage(fileobj)
     while not page.packets[0].startswith(b"\x80theora"):
         page = OggPage(fileobj)
     if not page.first:
         raise OggTheoraHeaderError(
             "page has ID header, but doesn't start a stream")
     data = page.packets[0]
     vmaj, vmin = struct.unpack("2B", data[7:9])
     if (vmaj, vmin) != (3, 2):
         raise OggTheoraHeaderError("found Theora version %d.%d != 3.2" %
                                    (vmaj, vmin))
     fps_num, fps_den = struct.unpack(">2I", data[22:30])
     self.fps = fps_num / float(fps_den)
     self.bitrate = cdata.uint_be(b"\x00" + data[37:40])
     self.granule_shift = (cdata.ushort_be(data[40:42]) >> 5) & 0x1F
     self.serial = page.serial