1 |
/******************************************************************************* |
/******************************************************************************* |
2 |
* This file is a example for how to use the xvid core to compress YUV file |
* This file is a example for how to use the xvid core to compress YUV file |
3 |
* |
* |
4 |
* |
* 0.01b 28.05.2002 chenm001<chenm001@163.com> |
5 |
|
* fix a little bug for encode only codec I frame |
6 |
* 0.01a 27.05.2002 chenm001<chenm001@163.com> |
* 0.01a 27.05.2002 chenm001<chenm001@163.com> |
7 |
* fix a little bug for BFRAMES define locate |
* fix a little bug for BFRAMES define locate |
8 |
* 0.01 23.05.2002 chenm001<chenm001@163.com> |
* 0.01 23.05.2002 chenm001<chenm001@163.com> |
55 |
param->max_quantizer = 31; |
param->max_quantizer = 31; |
56 |
param->max_key_interval = 100; |
param->max_key_interval = 100; |
57 |
|
|
58 |
|
#ifdef BFRAMES |
59 |
param->max_bframes = 0; // Disable B-frame |
param->max_bframes = 0; // Disable B-frame |
60 |
|
#endif |
61 |
} |
} |
62 |
|
|
63 |
void set_enc_frame(XVID_ENC_FRAME *frame) |
void set_enc_frame(XVID_ENC_FRAME *frame) |
121 |
// Encode Frame |
// Encode Frame |
122 |
temp=fread(inBuf, 1, width*height*3/2, fpi); // Read YUV data |
temp=fread(inBuf, 1, width*height*3/2, fpi); // Read YUV data |
123 |
while(temp == width*height*3/2){ |
while(temp == width*height*3/2){ |
124 |
|
//printf("Frames=%d\n",num); |
125 |
set_enc_frame(&frame); |
set_enc_frame(&frame); |
126 |
if (!(num%param.max_key_interval)) |
if (!(num%param.max_key_interval)) |
127 |
frame.intra = 1; // Encode as I-frame |
frame.intra = 1; // Encode as I-frame |
130 |
xvid_encore(param.handle, XVID_ENC_ENCODE, &frame, &stats); |
xvid_encore(param.handle, XVID_ENC_ENCODE, &frame, &stats); |
131 |
fwrite(outBuf, 1, frame.length, fpo); |
fwrite(outBuf, 1, frame.length, fpo); |
132 |
temp=fread(inBuf, 1, width*height*3/2, fpi); // Read next YUV data |
temp=fread(inBuf, 1, width*height*3/2, fpi); // Read next YUV data |
133 |
|
num++; |
134 |
} |
} |
135 |
|
|
136 |
// Free Encode Core |
// Free Encode Core |