         }
 
         // リーダーとなるコンポジションを作成する
-        self.reader = buildComposition(asset, startTime:startTime, endTime:endTime)
-
-        if self.frameInterval == kCMTimeIndefinite {
-            NSLog("Not supported asset yet, which doesn't have video tracks.")
-            return nil
-        }
-
-        if self.reader == nil {
+        if let result = buildComposition(asset, startTime:startTime, endTime:endTime) {
+            (self.reader!, self.frameInterval) = result
+        } else {
             NSLog("Failed to build a composition for asset.")
             return nil
         }

            if reader.canAddOutput(output) {
                reader.addOutput(output)
            }
            return reader
        } else {
            NSLog("Failed to instantiate a reader for a composition:\(error)")
        }


        // フレームレート指定のためにビデオコンポジションを作成・利用(60fps)
        let videoComposition = AVMutableVideoComposition(propertiesOfAsset: asset)
        videoComposition.frameDuration = max(videoTrack.minFrameDuration, CMTime(value:1, kFrameRate))

        // 60fps以下の場合、60fpsで出力出来るようスケールしたいが、scaleTimeRange()は
        // frameDuration以下のfpsのときには、読み出そうとしてもエラーになってしまう模様。
