如何在iOS中显示PBFrame

时间:2013-08-26 07:28:18

标签: iphone p2p live-streaming

我目前正在开发一款使用来自IP摄像头的实时视频流(由V Star制造的PnP IP /网络摄像头)的应用程序。当使用提供的Api连接时,我将帧o / p作为PBFrames。我无法显示它们。任何通过它的人请帮忙。提前致谢

void *thread_ReceiveVideo(void *arg)
{
NSLog(@"[thread_ReceiveVideo] Starting...");

int avIndex = *(int *)arg;
char *buf = malloc(VIDEO_BUF_SIZE);
unsigned int frmNo;
int ret;
FRAMEINFO_t frameInfo;

while (1) 
{
    ret = avRecvFrameData(avIndex, buf, VIDEO_BUF_SIZE, (char *)&frameInfo, sizeof(FRAMEINFO_t), &frmNo);

    if(ret == AV_ER_DATA_NOREADY)
    {
        usleep(30000);
        continue;
    }
    else if(ret == AV_ER_LOSED_THIS_FRAME)
    {
        NSLog(@"Lost video frame NO[%d]", frmNo);
        continue;
    }
    else if(ret == AV_ER_INCOMPLETE_FRAME)
    {
        NSLog(@"Incomplete video frame NO[%d]", frmNo);
        NSLog(@" the biffer is : %lu",sizeof(buf));


        continue;
    }
    else if(ret == AV_ER_SESSION_CLOSE_BY_REMOTE)
    {
        NSLog(@"[thread_ReceiveVideo] AV_ER_SESSION_CLOSE_BY_REMOTE");
        break;
    }
    else if(ret == AV_ER_REMOTE_TIMEOUT_DISCONNECT)
    {
        NSLog(@"[thread_ReceiveVideo] AV_ER_REMOTE_TIMEOUT_DISCONNECT");
        break;
    }
    else if(ret == IOTC_ER_INVALID_SID)
    {
        NSLog(@"[thread_ReceiveVideo] Session cant be used anymore");
        break;
    }


    NSLog(@"FRAM INFO FLAG :%hhu ",frameInfo.flags);
if(frameInfo.flags == IPC_FRAME_FLAG_PBFRAME)
    {
        // got an PBFrame, draw it.
        NSLog(@"got a video iframe to display");
      //  NSString *iFramestring = [NSString stringWithUTF8String:buf];
        printf("correclty recieved frame  is %s",buf);
    //                        

                }
}
free(buf);
NSLog(@"[thread_ReceiveVideo] thread exit");    
return 0;
   }

0 个答案:

没有答案