void CSearchFileDlg::FileRead()
{
long srcLen;
long frame_rate;
long type;
if ( m_pFile->Read(&frame_rate,4) != 4 )
{
ReleaseAll();
return ;
}
m_pFile->Read(&m_nWidthSrc,4);
m_pFile->Read(&m_nHeightSrc,4);
m_pFile->Read(&srcLen,4);
m_pFile->Read(&type,4);
if ( m_nSrcLen < srcLen )
{
free(m_pSrc);
m_pSrc = (BYTE*)malloc(srcLen);
m_nSrcLen = srcLen;
}
m_pFile->ReadHuge(m_pSrc,srcLen);
long dstLen;
if ( type == MPEG4DATA || type == JPEGDATA )
{
m_stwPlayer1.DecodingVideo((long)m_pSrc, srcLen, 1, (long)m_pTar, &dstLen); //이부분
}
}
이게 C의 소스입니다...
이게 SDK의 DecodingVideo(long src, long srcLen, short DataHandling, long dst) 파라미터 형식이구요..
이걸 델파이로 변화해봤습니다.
procedure File_Read();
var
srcLen1 : LongInt;
frame_rate1 : LongInt;
type1 : LongInt;
dstLen1 : LongInt;
temp : LongInt;
temp1 : LongInt;
begin
if m_pFile.Read(frame_rate1,4) <> 4 then
begin
ShowMessage('Error');
Exit;
end;
m_pFile.Read(m_width,4);
m_pFile.Read(m_height,4);
m_pFile.Read(srcLen1,4);
m_pFile.Read(type1,4);
if m_nSrcLen < srcLen1 then
begin
FreeAndNil(m_pSrc);
m_pSrc := AllocMem(srcLen1);
m_nSrcLen := srcLen1;
end;
m_pFile.Read(m_pSrc^,srclen1);
temp := PByte(Longint(m_pSrc ))^;
STWPlayer1.DecodingVideo(LongInt(m_pSrc), srcLen1, 1, longint(m_pTar), dstLen1); // 이부분
end;
이렇게 변환을 했는데요... 흐음..
주석으로 이부분이라고 되어있는 부분이.. 뭔가 문제가 있는건지... 컴파일에는 이상이 없는데....
콤포넌트 호출부에서 에러가 생깁니다.. 아무래도 데이터형을 잘못 넘겨줘서 생기는 에러 같은데요..
어려워서 이렇게 물어봅니다..ㅠㅠ
요즘들어 질문을 너무 자주 하나봐요..ㅠㅠ