2011-05-13 107 views
0

我正在使用ffmpeg解碼來自服務器的H264流。iPhone - 使用ffmpeg解碼H264的問題

我引用DecoderWrapper從http://github.com/dropcam/dropcam_for_iphone

我編譯成功,但我不知道如何使用它。

這裏是有問題的功能。

- (id)initWithCodec:(enum VideoCodecType)codecType 
     colorSpace:(enum VideoColorSpace)colorSpace 
       width:(int)width 
      height:(int)height 
     privateData:(NSData*)privateData { 
    if(self = [super init]) { 

     codec = avcodec_find_decoder(CODEC_ID_H264); 
     codecCtx = avcodec_alloc_context(); 

     // Note: for H.264 RTSP streams, the width and height are usually not specified (width and height are 0). 
     // These fields will become filled in once the first frame is decoded and the SPS is processed. 
     codecCtx->width = width; 
     codecCtx->height = height; 

     codecCtx->extradata = av_malloc([privateData length]); 
     codecCtx->extradata_size = [privateData length]; 
     [privateData getBytes:codecCtx->extradata length:codecCtx->extradata_size]; 
     codecCtx->pix_fmt = PIX_FMT_YUV420P; 
#ifdef SHOW_DEBUG_MV 
     codecCtx->debug_mv = 0xFF; 
#endif 

     srcFrame = avcodec_alloc_frame(); 
     dstFrame = avcodec_alloc_frame(); 

     int res = avcodec_open(codecCtx, codec); 
     if (res < 0) 
     { 
      NSLog(@"Failed to initialize decoder"); 
     } 
    } 

    return self;  
} 

什麼是這個函數的privateData參數?我不知道如何設置參數...

現在avcodec_decode_video2返回-1;

框架成功。

如何解決這個問題。

非常感謝。

回答