beautypg.com

Sensoray 819 Windows SDK User Manual

Page 16

background image

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