Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Re: dvbdevice optimization



C.Y.M wrote:
Klaus Schmidinger wrote:

"C.Y.M" wrote:

The following optimization was discovered using valgrind on vdr-1.3.12.
Please let me know what you think of it. Maybe it can get into 1.3.13.


Maybe I'm missing something here, but I'm afraid I don't
quite see what difference that would make.

Can you enlighten me?

Klaus


--- vdr-1.3.12/dvbdevice.c.original 2004-10-11 09:50:03.000000000 -0700
+++ vdr-1.3.12/dvbdevice.c 2004-10-11 09:50:44.000000000 -0700
@@ -481,6 +481,7 @@
frontendType = feinfo.type;
ciHandler = cCiHandler::CreateCiHandler(DvbName(DEV_DVB_CA, n));
dvbTuner = new cDvbTuner(fd_frontend, CardIndex(), frontendType, ciHandler);
+ aPid1 = aPid2 = 0;
}
else
LOG_ERROR;
@@ -488,8 +489,6 @@
else
esyslog("ERROR: can't open DVB device %d", n);

- aPid1 = aPid2 = 0;
-
StartSectionHandler();
}




Klaus,

I have been looking at this change for a while as well. For some reason, valgrind does not like it the original way. By changing it, valgrind no long complains. I was just comparing sources today and thought I would mention this change to see what you thought. To be honest, I am not sure if it is necessary.

Now I remember why valgrind was complaining.. This has to deal with vdr-1.3.12 and the AC3overDVB patch. If you look at this small snip of the AC3overDVB code, the following "SetupPES()" function is inserted and wants the "aPid1 = aPid2 = 0" before it.

@@ -482,6 +484,8 @@
ciHandler = cCiHandler::CreateCiHandler(DvbName(DEV_DVB_CA, n));
dvbTuner = new cDvbTuner(fd_frontend, CardIndex(), frontendType, ciHandler);
aPid1 = aPid2 = 0;
+ // setup the PES analyser
+ SetupPES();
}
else
LOG_ERROR;




Home | Main Index | Thread Index