Exemple #1
0
    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
Exemple #4
0
    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)
Exemple #5
0
    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
Exemple #6
0
"""StandardFile compatability module: implement macfs StandardFile
Exemple #7
0
# Video file reader, using QuickTime