IP カメラからの RTSP ストリームを表示しています。avcodec_decode_video2
このメソッドを VideoToolbox フレームワークに置き換えたいと考えています。私はビデオデータ処理に慣れていないので、少し迷っています...
こことここの両方のソリューションをテストしましたが、この方法では失敗に終わりVTDecompressionSessionDecodeFrame
ます。
Error Domain=NSOSStatusErrorDomain Code=-12909 "The operation couldn’t be completed. (OSStatus error -12909.)" - -12909
VTDecompressionSessionCanAcceptFormatDescription
セッションを作成した直後にこれを呼び出すと、結果がNO
.
これが私のセッションの作成方法です:
VTDecompressionOutputCallbackRecord callback;
callback.decompressionOutputCallback = decompressionSessionDecodeFrameCallback;
callback.decompressionOutputRefCon = (__bridge void *)self;
NSDictionary *destinationImageBufferAttributes =[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES],(id)kCVPixelBufferOpenGLESCompatibilityKey,[NSNumber numberWithInt:kCVPixelFormatType_32RGBA],(id)kCVPixelBufferPixelFormatTypeKey,nil];
OSStatus status = VTDecompressionSessionCreate(kCFAllocatorDefault, _formatDesc, NULL,
(__bridge CFDictionaryRef)destinationImageBufferAttributes,
&callback, &_decompressionSession);
また、使用するデータについてもわかりません。AVPacket.data、AVCodecContext.extradata、AVPacket.buf->data から選択できます。どちらを使用すればよいか教えてもらえますか(別のものがあるかもしれません)?
事前にthx、
PS .: これは私の最初の投稿です。正しく表示/説明されていない場合はお知らせください。