📄 test.cpp
字号:
// test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "H264Codec.h"
int _tmain(int argc, _TCHAR* argv[])
{
FILE* fi;
FILE* fo;
// CH264Enc Enc;
// S_EncParam* pParam = new S_EncParam();
// pParam->codec_id=CODEC_ID_H264;
// pParam->in_pixFmt=PIX_FMT_YUV420P;
// pParam->nFrameRate=25;
// pParam->nHeight=288;
// pParam->nWidth=352;
// pParam->nBitRate=4000;
// Enc.Init(pParam);
// char infile[]="e:/test/news_cif.yuv";
// // char infile[]="e:/test/test.jpg";
// char outfile[]="e:/test/news_cif11.yuv";
//// char outfile[]="e:/test/news_cif.h264";
// int Len=(pParam->nHeight)*(pParam->nWidth)*3/2;
// int Ensize=20000;
// int Enlen;
// BYTE *Inbuffer=(BYTE*)malloc(Len);
// BYTE *Outbuffer=(BYTE*)malloc(Len);
// if((fi=fopen(infile, "rb"))==NULL)
// {
// printf("file open error");
// }
// if((fo=fopen(outfile, "wb"))==NULL)
// {
// printf("file open error");
// }
// for(int i=0;i<=100;i++)
// {
// fread(Inbuffer,Len,1,fi);
// Enlen=Enc.EncVideoFrame(Inbuffer,Len,Outbuffer);
// fwrite(Outbuffer,Len,1,fo);
// }
// free(Inbuffer);
// free(Outbuffer);
// fclose(fi);
// fclose(fo);
// delete pParam;
#if 0
/*test encoder*/
CH264Enc Enc;
S_EncParam* pParam = new S_EncParam();
pParam->codec_id=CODEC_ID_H264;
pParam->in_pixFmt=PIX_FMT_YUV420P;
pParam->nFrameRate=25;
pParam->nHeight=288;
pParam->nWidth=352;
pParam->nBitRate=100;
Enc.Init(pParam);
// Enc.Init();
char infile[]="e:/test/news_cif.yuv";
// char infile[]="e:/test/test.jpg";
char outfile[]="e:/test/news_cif.h264";
// char Outbuffer1[1000]={1,9,0};
FILE *fk;
char infile1[]="e:/test/news_cif1.yuv";
fk=fopen(infile1,"rb");
int Len=(pParam->nHeight)*(pParam->nWidth)*3/2;
int Ensize=20000;
int Enlen;
BYTE *Inbuffer=(BYTE*)malloc(Len);
BYTE *Outbuffer=(BYTE*)malloc(Len);
if((fi=fopen(infile, "rb"))==NULL)
{
printf("file open error");
}
if((fo=fopen(outfile, "wb"))==NULL)
{
printf("file open error");
}
for(int i=0;i<=100;i++)
{
/* if (i>=2&&i<=25)
{
fread(Inbuffer,Len,1,fk);
}
else*/
fread(Inbuffer,Len,1,fi);
Enlen=Enc.EncVideoFrame(Inbuffer,Len,Outbuffer);
fwrite(Outbuffer,Enlen,1,fo);
// fwrite(Outbuffer1,100,1,fo);
}
// fseek(fo,100,SEEK_SET);
// fwrite(Outbuffer1,100,1,fo);
free(Inbuffer);
free(Outbuffer);
fclose(fi);
fclose(fo);
delete pParam;
#else
/*test decoder*/
CH264Dec Dec;
int width=352;
int height=288;
char infile[]="e:/test/news_cif.h264";
// char infile[]="f:/test_haha.264";
// char outfile[]="f:/test_haha.yuv";
char outfile[]="e:/test/testji.yuv";
int DLen=width*height*3/2;
int count;
int n;
BYTE *Inbuffer=(BYTE*)malloc(1024);
BYTE *Outbuffer=(BYTE*)malloc(10*DLen);
if((fi=fopen(infile, "rb"))==NULL)
{
printf("file open error");
}
if((fo=fopen(outfile, "wb"))==NULL)
{
printf("file open error");
}
// fseek(fi,176*144*5,SEEK_SET);
for(;;)
{
int size=(int)fread(Inbuffer,1,100,fi);
if(size==0)
break;
count=Dec.DecVideoFrame(Inbuffer,size,Outbuffer);
fwrite(Outbuffer,count*DLen,1,fo);
}
free(Inbuffer);
free(Outbuffer);
fclose(fi);
fclose(fo);
#endif
system("pause");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -