Freitag, 14. März 2008

Neutrino und Direktaufnahme

also ich hab immer mal wieder damit zu kämpfen, das bei der nfs direktaufnahme der stream abreist.
das passier zwar selten, aber wenn es passiert, dann meist bei ner sehr seltenen aufnahme.
besonders ärgerlich ist, das die aufnahme immer wieder eine 001.ts atei erstellt, und somit das vorherige file gnadenlos überschreibt. also hab ich mich durch die sourcen gewühlt und herausgefunden woran das liegt.
die stream2file.cpp datei ist dran schuld. hier mal ein patch der das behebt.
der diff liegt auch hier
[code]
--- stream2file.cpp_org 2008-03-14 19:33:01.000000000 +0100
+++ stream2file.cpp 2008-03-14 19:37:04.000000000 +0100
@@ -106,6 +106,7 @@

static int demuxfd[MAXPIDS];
static int dvrfd;
+unsigned int filecount=1;

static unsigned char demuxfd_count = 0;

@@ -174,7 +175,6 @@
{
ringbuffer_data_t vec[2];
size_t readsize;
- unsigned int filecount = 0;
const unsigned long long splitsize = (limit / TS_SIZE) * TS_SIZE;
unsigned long long remfile=0;
int fd2 = -1;
@@ -193,7 +193,7 @@
if (use_o_sync)
flags |= O_SYNC;

- sprintf(filename, "%s.%3.3d.%s", myfilename, ++filecount, ((struct filenames_t *)v_arg)->extension);
+ sprintf(filename, "%s.%3.3d.%s", myfilename, filecount++, ((struct filenames_t *)v_arg)->extension);
if (fd2 != -1)
close(fd2);

@@ -589,6 +589,7 @@
mi.loadMovieInfo(&movieinfo);
movieinfo.rec_length = record_end_time-record_start_time;
mi.saveMovieInfo(movieinfo);
+ filecount=1;

exit_flag = STREAM2FILE_STATUS_IDLE;
return STREAM2FILE_OK;
[/code]