Example #1
0
    def __init__(self,
                 preset=None,
                 verbose=False,
                 encParams={},
                 seqParams={},
                 allParams={}):
        """x.__init__(...) initializes x; see x.__class__.__doc__ for signature"""
        super(DiracEncoder, self).__init__()

        allParams.update(encParams)
        allParams.update(seqParams)

        if 'frame_rate' in allParams:
            allParams['frame_rate'] = rational(allParams['frame_rate'])
        if "pix_asr" in allParams:
            allParams['pix_asr'] = rational(allParams['pix_asr'])

        if _encoder_version == (0, 5, 4):
            self.encoder = EncoderWrapper(preset=preset,
                                          bufsize=1024 * 1024,
                                          verbose=verbose,
                                          encParams=allParams,
                                          seqParams=allParams)
        else:  # _encoder_version == (0,6,0):
            self.encoder = EncoderWrapper(preset=preset,
                                          bufsize=1024 * 1024,
                                          verbose=verbose,
                                          allParams=allParams)
Example #2
0
    def write_header(self, frame):
        """\
        Generator.
        
        Sends the YUV4MPEG format header to the "outbox" outbox, based on
        attributes of the supplied frame data structure.
        """
        format = "YUV4MPEG2 W%d H%d" % tuple(frame['size'])
        
        if   frame['pixformat']=="YUV420_planar":
            format += " C420mpeg2"
        elif frame['pixformat']=="YUV411_planar":
            format += " C411"
        elif frame['pixformat']=="YUV422_planar":
            format += " C422"
        elif frame['pixformat']=="YUV444_planar":
            format += " C444"
        elif frame['pixformat']=="YUV4444_planar":
            format += " C444alpha"
        elif frame['pixformat']=="Y_planar":
            format += " Cmono"

        interlace = frame.get("interlaced",False)
        topfieldfirst = frame.get("topfieldfirst",False)
        if   interlace and topfieldfirst:
            format += " It"
        elif interlace and not topfieldfirst:
            format += " Ib"
        elif not interlace:
            format += " Ip"

        rate = frame.get("frame_rate", 0)
        if rate > 0:
            num,denom = rational(rate)
            format += " F%d:%d" % (num,denom)
            
        rate = frame.get("pixel_aspect", 0)
        if rate > 0:
            num,denom = rational(rate)
            format += " A%d:%d" % (num,denom)
            
        if "sequence_meta" in frame:
            format += " X"+frame['sequence_meta']
            
        format += "\x0a"
        
        for _ in self.sendoutbox(format):
            yield _
Example #3
0
    def __init__(self, preset=None, verbose=False, encParams={}, seqParams={}, allParams={}):
        """x.__init__(...) initializes x; see x.__class__.__doc__ for signature"""
        super(DiracEncoder, self).__init__()

        allParams.update(encParams)
        allParams.update(seqParams)
        
        if 'frame_rate' in allParams:
            allParams['frame_rate'] = rational(allParams['frame_rate'])
        if "pix_asr" in allParams:
            allParams['pix_asr'] = rational(allParams['pix_asr'])
            
        if _encoder_version == (0,5,4):
            self.encoder = EncoderWrapper(preset=preset, bufsize=1024*1024, verbose=verbose, encParams=allParams, seqParams=allParams)
        else: # _encoder_version == (0,6,0):
            self.encoder = EncoderWrapper(preset=preset, bufsize=1024*1024, verbose=verbose, allParams=allParams)