def parse_frames(self):
        read = 0
        readframes = 0
        
        while read < self.tag["size"]:
            framedata = self.get_next_frame(self.tag["size"] - read)
            if framedata:
                try:
                    read += len(framedata)
                    if self.version == '2.2':
                        frame = ID3v2_2_Frame(frame=framedata)
                    elif self.version == '2.3':
                        frame = ID3v2_3_Frame(frame=framedata)
                    elif self.version == '2.4':
                        frame = ID3v2_4_Frame(frame=framedata)
                    readframes += 1
                    self.frames.append(frame)
                except ID3Exception:
                    pass # ignore unrecognised frames
            else:
                self.tag["padding"] = self._read_null_bytes()
                debug("NULL Padding: %d" % self.tag["padding"])
                break

        # do a sanity check on the size/padding
        if not self.tag.has_key("padding"):
            self.tag["padding"] = 0
            
        if self.tag["size"] != read + self.tag["padding"]:
            self.tag["size"] = read + self.tag["padding"]
            
        return len(self.frames)

    # ---------------------------------------------------------
Returns the compact project records for all projects in the team.
dataset/ETHPy150Open Ciantic/pytagger/tagger/id3v2.py/ID3v2.parse_frames--crossover with--dataset/ETHPy150Open Asana/python-asana/asana/resources/gen/projects.py/_Projects.find_by_team