閲覧いただきありがとうございます。
Swift1.2にて動作していたコードをSwift2にコンバートしたところ、
以下のようなエラーメッセージを確認しました。
Cannot convert value of type 'Unmanaged<CMSampleBuffer>?' to expected argument type 'UnsafeMutablePointer<CMSampleBuffer?>' (aka 'UnsafeMutablePointer<Optional<CMSampleBuffer>>')
実際のコードは以下の通りになります。
swift
1func adjustTimeStamp(sample: CMSampleBufferRef, offset: CMTime) -> CMSampleBufferRef { 2 var count: CMItemCount = 0 3 CMSampleBufferGetSampleTimingInfoArray(sample, 0, nil, &count) 4 var info = [CMSampleTimingInfo](count: count, repeatedValue: CMSampleTimingInfo(duration: CMTimeMake(0, 0), presentationTimeStamp: CMTimeMake(0, 0), decodeTimeStamp: CMTimeMake(0, 0))) 5 CMSampleBufferGetSampleTimingInfoArray(sample, count, &info, &count) 6 7 for i in 0..<count { 8 info[i].decodeTimeStamp = CMTimeSubtract(info[i].decodeTimeStamp, offset) 9 info[i].presentationTimeStamp = CMTimeSubtract(info[i].presentationTimeStamp, offset) 10 } 11 12 let out: Unmanaged<CMSampleBuffer>? 13 CMSampleBufferCreateCopyWithNewTiming(nil, sample, count, &info, out) 14 return (out?.takeRetainedValue())! 15}
エラーメッセージの通り、
定数out
をUnsafeMutablePointer<CMSampleBuffer?>
に変更したところ、
上記のエラーメッセージは消えましたが、
Unmanaged
型からUnsafeMutablePointer
型に変更された影響か、
takeRetainedValue()
で返り値を返すことができなくなってしまいました。
上記の現象について対応策をご存知の方がいらっしゃいましたらご教授いただけますと幸いです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/18 07:57
2015/11/19 02:31
2015/11/19 12:17
2015/11/19 13:50
2015/11/19 14:52