def ReadAudio(self, nframes, time=None): if not time is None: self.audiocurtime = time flags = QuickTime.nextTimeStep | QuickTime.nextTimeEdgeOK if self.audiocurtime == None: ## flags = flags | QuickTime.nextTimeEdgeOK self.audiocurtime = 0 tv = self.audiomedia.GetMediaNextInterestingTimeOnly( flags, self.audiocurtime, 1.0) ## print 'time', self.audiocurtime, 'tv', tv if tv < 0 or (self.audiocurtime and tv < self.audiocurtime): return self._audiotime_to_ms(self.audiocurtime), None ## self.audiocurtime = tv h = Res.Handle('') desc_h = Res.Handle('') size, actualtime, sampleduration, desc_index, actualcount, flags = \ self.audiomedia.GetMediaSample(h, 0, tv, desc_h, nframes) ## print 'au', size, actualtime, sampleduration, desc_index, actualcount, flags, len(h.data) self.audiocurtime = actualtime + actualcount * sampleduration ## print 'after in ms', self._audiotime_to_ms(self.audiocurtime) ## moviecurtime = self._videotime_to_movietime(self.audiocurtime) ## self.movie.SetMovieTimeValue(moviecurtime) ## self.movie.MoviesTask(0) return self._audiotime_to_ms(actualtime), h.data
def ReadAudio(self, nframes, time = None): if time is not None: self.audiocurtime = time flags = QuickTime.nextTimeStep | QuickTime.nextTimeEdgeOK if self.audiocurtime is None: self.audiocurtime = 0 tv = self.audiomedia.GetMediaNextInterestingTimeOnly(flags, self.audiocurtime, 1.0) if tv < 0 or self.audiocurtime and tv < self.audiocurtime: return (self._audiotime_to_ms(self.audiocurtime), None) else: h = Res.Handle('') desc_h = Res.Handle('') size, actualtime, sampleduration, desc_index, actualcount, flags = self.audiomedia.GetMediaSample(h, 0, tv, desc_h, nframes) self.audiocurtime = actualtime + actualcount * sampleduration return (self._audiotime_to_ms(actualtime), h.data)
def __init__(self, path): fd = Qt.OpenMovieFile(path, 0) self.movie, d1, d2 = Qt.NewMovieFromFile(fd, 0, 0) self.movietimescale = self.movie.GetMovieTimeScale() try: self.audiotrack = self.movie.GetMovieIndTrackType(1, QuickTime.AudioMediaCharacteristic, QuickTime.movieTrackCharacteristic) self.audiomedia = self.audiotrack.GetTrackMedia() except Qt.Error: self.audiotrack = self.audiomedia = None self.audiodescr = {} else: handle = Res.Handle('') n = self.audiomedia.GetMediaSampleDescriptionCount() self.audiomedia.GetMediaSampleDescription(1, handle) self.audiodescr = _audiodescr(handle.data) self.audiotimescale = self.audiomedia.GetMediaTimeScale() del handle try: self.videotrack = self.movie.GetMovieIndTrackType(1, QuickTime.VisualMediaCharacteristic, QuickTime.movieTrackCharacteristic) self.videomedia = self.videotrack.GetTrackMedia() except Qt.Error: self.videotrack = self.videomedia = self.videotimescale = None if self.videotrack: self.videotimescale = self.videomedia.GetMediaTimeScale() x0, y0, x1, y1 = self.movie.GetMovieBox() self.videodescr = {'width': x1 - x0, 'height': y1 - y0} self._initgworld() self.videocurtime = None self.audiocurtime = None return
def _polyhandle(self, pointlist, conv=1, cliprgn=None): """Return polygon structure""" xscrolloffset, yscrolloffset = self._window._scrolloffset() # Find the bounding box minx = maxx = pointlist[0][0] miny = maxy = pointlist[0][1] for x, y in pointlist: if x < minx: minx = x if y < miny: miny = y if x > maxx: maxx = x if y > maxy: maxy = y if conv: minx, miny = self._convert_coordinates((minx, miny)) maxx, maxy = self._convert_coordinates((maxx, maxy)) if not self._render_overlaprgn((minx, miny, maxx, maxy)): return # Create structure head size = len(pointlist) * 4 + 10 data = struct.pack("hhhhh", size, miny, minx, maxy, maxx) ## self._update_bbox(minx, miny, maxx, maxy) for pt in pointlist: if conv: x, y = self._convert_coordinates(pt) else: x, y = pt data = data + struct.pack("hh", y, x) return Res.Handle(data)
def __init__(self, url): path = MMurl.urlretrieve(url)[0] fsspec = macfs.FSSpec(path) fd = Qt.OpenMovieFile(fsspec, 0) self.movie, d1, d2 = Qt.NewMovieFromFile(fd, 0, 0) self.movietimescale = self.movie.GetMovieTimeScale() try: self.audiotrack = self.movie.GetMovieIndTrackType( 1, QuickTime.AudioMediaCharacteristic, QuickTime.movieTrackCharacteristic) self.audiomedia = self.audiotrack.GetTrackMedia() except Qt.Error: self.audiotrack = self.audiomedia = None self.audiodescr = {} else: handle = Res.Handle('') n = self.audiomedia.GetMediaSampleDescriptionCount() self.audiomedia.GetMediaSampleDescription(1, handle) self.audiodescr = MediaDescr.SoundDescription.decode(handle.data) self.audiotimescale = self.audiomedia.GetMediaTimeScale() del handle try: self.videotrack = self.movie.GetMovieIndTrackType( 1, QuickTime.VisualMediaCharacteristic, QuickTime.movieTrackCharacteristic) self.videomedia = self.videotrack.GetTrackMedia() except Qt.Error: self.videotrack = self.videomedia = self.videotimescale = None if self.videotrack: self.videotimescale = self.videomedia.GetMediaTimeScale() x0, y0, x1, y1 = self.movie.GetMovieBox() self.videodescr = {'width': (x1 - x0), 'height': (y1 - y0)} self._initgworld() self.videocurtime = None self.audiocurtime = None
"""StandardFile compatability module: implement macfs StandardFile
# Video file reader, using QuickTime