Пример #1
0
 def open(self):
     MovieOutputStream.open(self)
     print >>stderr, 'Creating movie: %r: version=%d, size=%dx%d, framerate=%s, compression=%s' % \
           (self.info.filename, self.info.swf_version,
            self.info.width, self.info.height,
            self.info.framerate, self.info.compression)
     self.writer = SWFWriter(
         self.info.filename, self.swf_version,
         (0, self.info.width * 20, 0, self.info.height * 20),
         self.info.framerate, self.info.compression)
     # Write BGColor
     self.writer.start_tag()
     self.writer.writergb((255, 255, 255))
     self.writer.end_tag(9)
     # add mp3 header (if any)
     if self.info.mp3:
         # write SoundStreamHeader
         assert self.info.mp3.isstereo != None, 'mp3 isstereo is not set.'
         assert self.info.mp3.sample_rate != None, 'mp3 sample_rate is not set.'
         self.writer.start_tag()
         MP3_RATE = {11025: 1, 22050: 2, 44100: 3}
         rate = MP3_RATE[self.info.mp3.sample_rate]
         self.writer.writeui8(rate << 2 | 2 | int(self.info.mp3.isstereo))
         self.writer.writeui8(rate << 2 | (2 << 4) | 2
                              | int(self.info.mp3.isstereo))
         self.writer.writeui16(
             int(self.info.mp3.sample_rate / self.info.framerate))
         # the first seeksamples, mp3.seek_frame should be preformed in advance.
         self.writer.writeui16(self.info.mp3.seeksamples)
         self.writer.end_tag(18)
     self.othertags = []
     return
Пример #2
0
    def open(self):
        MovieOutputStream.open(self)
        print >>stderr, 'Creating movie: %r: version=%d, size=%dx%d, framerate=%s, compression=%s' % \
              (self.info.filename, self.info.swf_version,
               self.info.width, self.info.height,
               self.info.framerate, self.info.compression)
        self.writer = SWFWriter(
            self.info.filename, self.swf_version,
            (0, self.info.width * 20, 0, self.info.height * 20),
            self.info.framerate, self.info.compression)
        # Write BGColor
        self.writer.start_tag()
        self.writer.writergb((255, 255, 255))
        self.writer.end_tag(9)
        # add mp3 header (if any)
        if self.info.mp3:
            # write SoundStreamHeader
            assert self.info.mp3.isstereo != None, 'mp3 isstereo is not set.'
            assert self.info.mp3.sample_rate != None, 'mp3 sample_rate is not set.'
            self.writer.start_tag()
            MP3_RATE = {11025: 1, 22050: 2, 44100: 3}
            rate = MP3_RATE[self.info.mp3.sample_rate]
            self.writer.writeui8(rate << 2 | 2 | int(self.info.mp3.isstereo))
            self.writer.writeui8(rate << 2 | (2 << 4) | 2
                                 | int(self.info.mp3.isstereo))
            self.writer.writeui16(
                int(self.info.mp3.sample_rate / self.info.framerate))
            # the first seeksamples, mp3.seek_frame should be preformed in advance.
            self.writer.writeui16(self.info.mp3.seeksamples)
            self.writer.end_tag(18)
        # Make the movie unscalable.
        if not self.info.scalable:
            # add actionscript: Stage.scaleMode("noScale")
            self.writer.start_action()
            self.writer.do_action(
                0x96, 7)  # PushData, size= 1 (type) + len(data) + 1 (0x00)
            self.writer.writeui8(0x00)  # String
            self.writer.writestring('Stage')
            self.writer.do_action(0x1c)  # GetVariable
            self.writer.do_action(0x96, 11)  # Push
            self.writer.writeui8(0x00)  # String
            self.writer.writestring('scaleMode')
            self.writer.do_action(0x96, 9)  # Push
            self.writer.writeui8(0x00)  # String
            self.writer.writestring('noScale')
            self.writer.do_action(0x4f)  # setMember
            self.writer.end_action()

        self.othertags = []
        return