Begin basic improvements to fwcontrol in the area of handling

video streams from cameras.

This patch changes the displayed timer to a time stamp and corrects
one or two mishandled errors.

Submitted by:	imp
This commit is contained in:
Sean Bruno 2009-02-02 21:05:12 +00:00
parent 001944c3bd
commit e627b033dc
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=188029
2 changed files with 12 additions and 13 deletions

View file

@ -202,15 +202,20 @@ dvrecv(int d, const char *filename, char ich, int count)
(dv->payload[0] & DV_DSF_12) == 0)
dv->payload[0] |= DV_DSF_12;
nb = nblocks[system];
fprintf(stderr, "%d", k%10);
fprintf(stderr, "%d:%02d:%02d %d\r",
k / (3600 * frame_rate[system]),
(k / (60 * frame_rate[system])) % 60,
(k / frame_rate[system]) % 60,
k % frame_rate[system]);
#if FIX_FRAME
if (m > 0 && m != nb) {
/* padding bad frame */
npad = ((nb - m) % nb);
if (npad < 0)
npad += nb;
fprintf(stderr, "(%d blocks padded)",
npad);
fprintf(stderr, "\n%d blocks padded\n",
npad);
npad *= DSIZE;
wbuf[vec].iov_base = pad;
wbuf[vec++].iov_len = npad;
@ -221,10 +226,6 @@ dvrecv(int d, const char *filename, char ich, int count)
}
#endif
k++;
if (k % frame_rate[system] == 0) {
/* every second */
fprintf(stderr, "\n");
}
fflush(stderr);
m = 0;
}
@ -245,9 +246,8 @@ dvrecv(int d, const char *filename, char ich, int count)
if (vec > 0)
writev(fd, wbuf, vec);
}
if(fd != STDOUT_FILENO) {
if (fd != STDOUT_FILENO)
close(fd);
}
fprintf(stderr, "\n");
}

View file

@ -195,10 +195,9 @@ mpegtsrecv(int d, const char *filename, char ich, int count)
if (len < 0) {
if (errno == EAGAIN) {
fprintf(stderr, "(EAGAIN) - push 'Play'?\n");
if (len <= 0)
continue;
} else
err(1, "read failed");
continue;
}
err(1, "read failed");
}
ptr = (uint32_t *) buf;