int _tmain(int argc, _TCHAR* argv[])
{
int channels;
S819_CHAN s819chan;
HCNODE hcnode;
BUFFER buf;
int rc;
FILE *fin;
int i = 0;
char name[60];
int vtrack;
muxer_handle m;
sprintf(name, "c:\\temp\\test%d.264", i);
// for H264 file
fin = fopen(name, "wb");
m = mp4_writer_create();
mp4_file_name_ascii(m, "c:\\temp\\test.mp4");
vtrack = mp4_video_track_create(m, AVC1, 90000, 3600, 0, 352, 240, 100, 31);
rc = S819_Enumerate(&channels);
S819_SetMode(0, &s819chan);
s819chan.psMode.resolution = RES_CIF;
S819_SetMode(1, &s819chan);
hcnode = S819_CreateCnode();
S819_AttachStreams(hcnode, 1, SMASK(STREAM_H264_PRI));
S819_StartStreams(hcnode, 1, SMASK(STREAM_H264_PRI));
for (i = 0; i < 300; i++) {
unsigned char *pdata;
S819_WaitBuffer (hcnode, &buf);
pdata = (unsigned char *) buf.buf;
if (buf.stream == STREAM_AUDIO) {
S819_ReleaseBuffer(&buf);
continue;
}
if (buf.stream != STREAM_H264_PRI) {
S819_ReleaseBuffer(&buf);
continue;
}
fwrite(buf.buf, 1, buf.length, fin);
mp4_write_track(m, vtrack, (unsigned char *) buf.buf, buf.length, 3003);
S819_ReleaseBuffer(&buf);
}
mp4_write_movie(m); // write the header into overflow buffer
mp4_delete(m);
fclose(fin);
S819_StopStreams(hcnode, 2, SMASK(STREAM_H264_PRI));
S819_DetachStreams(hcnode);
S819_DeleteCnode(hcnode);
S819_Close();
return 0;
}
16
Commentaires sur ces manuels