         rate:Float=1.0)
         -> (reader:AVAssetReader, duration:CMTime, frameInterval:CMTime)!
     {
-        var error: NSError? = nil
         var endTime = endTime
 
         assert(rate>0.0, "Unable to set rate less than or equal to 0.0!!")

        output.alwaysCopiesSampleData = false

        // コンポジションからアセットリーダーを作成し、アウトプットを接続
        if let reader = AVAssetReader(asset: composition, error: &error) {
            if reader.canAddOutput(output) {
                reader.addOutput(output)
                return (reader, duration, displayDuration)
            }
        } else {
            NSLog("Failed to instantiate a reader for a composition:\(String(describing: error))")
        }
        

        // - このビデオトラックにはコンポジション上のビデオトラックを指定すること
        // - IOSurfaceで作成しなくても再生できるが、念のため付けておく
        let compoVideoTracks = composition.tracks(withMediaType: .video)
        let output = AVAssetReaderVideoCompositionOutput(videoTracks: compoVideoTracks,
            videoSettings: [String(describing: kCVPixelBufferPixelFormatTypeKey) : kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange,
                            String(describing: kCVPixelBufferIOSurfacePropertiesKey) : [:]])
        output.videoComposition = videoComposition
