Click here to Skip to main content
15,889,859 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
is this right to use the new x264 api ,i want to get a frame ,and encode it with x264,then save it to a .264 file?
but i do not know is this is right ?
C++
picIn.img.plane[0] = pInBuffer ;
picIn.img.plane[1] = pInBuffer +m_VideoEncParam.nWidth*m_VideoEncParam.nHeight ;
picIn.img.plane[2] = pInBuffer +m_VideoEncParam.nWidth*m_VideoEncParam.nHeight*5/4 ;

picIn.img.i_stride[0] = m_VideoEncParam.nWidth ;
picIn.img.i_stride[1] = m_VideoEncParam.nWidth /2 ;
picIn.img.i_stride[2] = m_VideoEncParam.nWidth /2 ;

nRet = x264_encoder_encode(
    m_pX264Handle,
    &pNal,
    &nNalCount,
    &picIn,
    &picOut);
if (nRet<0)
{
    return -1 ;
}
	
for (int i = 0 ;i<nNalCount;i++);	
{
    
    x264_nal_encode(m_pX264Handle,pOutBuffer+nLenOut,&pNal[i]);
    nLenOut += pNal[i].i_payload ;
}
int nSize = 0 ;
FILE *pFile = fopen(pchFileName,"w") ;
if (!pFile)
{
    return -1 ;
}
nSize = fwrite(pOutBuffer,1,nLenOut,pFile) ;
fclose(pFile) ;


[EDIT: Added pre tags to format code and reduced indentation]
Posted
Updated 21-Apr-13 22:14pm
v3

1 solution

i have solve this problem thank you everyone
 
Share this answer
 
Comments
Maximilien 22-Apr-13 10:33am    
What was the problem and what did you do to fix it ?
chinahyin 22-Apr-13 10:35am    
the lastes x264 have maken the x264_nal_encode private so i do not have to use it
merano 22-Apr-13 11:41am    
Google says: You don't need to call x264_nal_encode because x264_encoder_encode return already encoded nals.
chinahyin 2-May-13 5:35am    
thank you very much that is the reasons

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900