c语言的printf总是出错,printf出现段错误

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

{

m_bSPSFound = 1;

}

/*if ( !m_bSPSFound)

{

return 0;

}*/

if(NALType == 0x07 ||NALType==0x08)

{

m_wSeq = m_RTP_Header.seq;

m_bPFrameEnd =1;

for(i=0;i

{pPayload[i+4]=pPayload[i];}

//pPayload+4=pPayload;

pPayload[0]=0x00;

pPayload[1]=0x00;

pPayload[2]=0x00;

pPayload[3]=0x01;

//pPayload -=4;

//*((DWORD*)(pPayload)) = 0x01000000 ;

//*((int *)pPayload)=0x01000000;

//outsize = PayloadSize+4;

//printf("%d\n",PayloadSize);

//printf("m_wSeq=%d\n",m_wSeq);

//printf("m_RTP_Header.seq=%d\n",m_RTP_Header.seq);

//printf("NALType=0x%x\n",NALType);

return pPayload;

//for(i=0;i<20;i++){

//printf("0x%x\n",pPayload[i]);}

}

if (m_bWKFrame)

{

if (m_RTP_Header.m) //frame end

{

m_bPFrameEnd = 1;

if (!m_bAssemblingFrame)

{

m_wSeq = m_RTP_Header.seq;

//return 0;

}

}

if ( !m_bPFrameEnd)

{

m_wSeq = m_RTP_Header.seq;

//return 0;

}

else

{

if ( NALType != 0x05) // KEY FRAME

{

m_wSeq = m_RTP_Header.seq ;

m_bPFrameEnd = 0 ;

//return 0 ;

}

}

}

//printf("m_wSeq=%d\n",m_wSeq);

printf("m_RTP_Header.seq=%d\n",m_RTP_Header.seq);

/*if ( m_RTP_Header.seq != (int)( m_wSeq + 1)) // 是否丢包lost packet

{

m_wSeq = m_RTP_Header.seq ;

SetLostPacket () ;

//return 0 ;

//printf("m_wSeq=%d\n",m_wSeq);

//printf("m_RTP_Header.seq=%d\n",m_RTP_Header.seq);

}*/

//m_pStart=(char *)malloc(BUF_SIZE);

if(m_RTP_Header.seq= m_wSeq)

{

// 码流正常 添加起始码前缀,长度加4 m_wSeq=m_RTP_Header.seq ;

m_bAssemblingFrame = 1 ;

//printf("m_pStart=%d\n",m_pStart[0]);

if ( PayloadType != 28 ) // whole NAL

{

//m_pStart += 4;

for(i=0;i

{m_pStart[i+4]=m_pStart[i];}

m_pStart[0] =0;//DWORD修改为int

m_pStart[1] =0;

m_pStart[2] =0;

m_pStart[3] =1;

m_dwSize += 4 ;

//printf("m_dwSize=%d\n",m_dwSize);

}

else // FU_A

{

if ( pPayload[1] & 0x80 ) // FU_A start

{

//m_pStart =m_pStart+4;

//*(m_pStart) =0;//DWORD修改为int

for(i=0;i

{m_pStart[i+4]=m_pStart[i];}

m_pStart[0]=0;

m_pStart[1]=0;

m_pStart[2]=0;

m_pStart[3]=1;

//printf("m_pStart=%d\n",m_pStart[3]);

m_dwSize +=4;

pPayload[1] = ( pPayload[0] & 0xE0 ) | NALType ;

pPayload += 1;

PayloadSize -=1;

//printf("pPayload=%d\n",pPayload[1]);

}

else

{

pPayload += 2;

PayloadSize -= 2;

}

}

//printf("m_pStart=0x%x\n",m_pStart);

//printf("PayloadSize=0x%x\n",PayloadSize);

//printf("m_pStart + PayloadSize=0x%x\n",(m_pStart + PayloadSize));

//printf("m_pEnd=0x%x\n",m_pEnd);

if (m_pStart + PayloadSize < m_pEnd)

{

//printf("m_pStart=0x%x\n",m_pStart);

//printf("m_pEnd=0x%x\n",m_pEnd);

//printf("pPayload[4]=%d\n",pPayload[4]);

memcpy( m_pStart, pPayload, PayloadSize ) ;

m_dwSize += PayloadSize;

//m_pStart += PayloadSize;

//printf("PayloadSize=%d\n",PayloadSize);

//for(i=0;i<10;i++){

//printf("m_pStart[i]=0x%x\n",m_pStart[i]);}

return m_pStart;

}

else // memory overflow

{

SetLostPacket () ;

return 0;

} if (m_RTP_Header.m) // frame end

{

outsize = m_dwSize;

printf("PayloadSize=%d\n",PayloadSize);

memcpy(m_pStart,m_pBuf,PayloadSize);

//m_pStart = m_pBuf;

m_dwSize = 0;

//printf("%d\n",m_dwSize);

if ( NALType == 0x05) // KEY FRAME

{

m_bWKFrame = 0;

}

//return m_pBuf; //输出数据

return m_pStart;

printf("m_pStart[0]=0x%x\n",m_pStart[0]);

//fwrite(m_pBuf,outsize,1,testfile);

}

else

{

return 0;

}

}

//fwrite(m_pBuf,outsize,1,testfile);

//printf("%s\n",&pPayload);

free(m_pBuf);

free(pBuf);

free(cp);

}

在main函数里调用了x264_rtp_unpackage函数,该函数是有返回值得,但是在main中调用后,想用printf看看之是否真确,但是执行时就出现printf段错误,请指点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值