ich hab grad festgestellt, wenn man direktaufnahme drückt, und bei der auswahl der verzeichnisse home drückt. also das abbricht, wird recording.start script geladen. kann man das unterbinden , oder wenigstens anschliessend das recording end bei home starten ?
ich nutze es leider nur zum "abschiessen" des sectionsd clienten, da er mir alle aufnahmen zunichte macht.
genialer wäre es mit der denke ich noch ungenutzten funktion von sectionsd.
g_Sectionsd->freeMemory();
nur leider kann ich es an der stelle nicht einbauen, da so kein epg bei aufnahme mehr da ist.
evtl kann sich das mal einer ansehen ?
neutrino recording.start scripte
-
- Tuxboxer
- Beiträge: 2331
- Registriert: Donnerstag 24. März 2005, 21:52
-
- Developer
- Beiträge: 587
- Registriert: Freitag 9. September 2005, 21:48
Bei Aufnahme würde ich kein freeMemory machen. Habe bei mir testhalber die angestaubte Funktion removeOldEvents() im sectionsd reaktiviert (war noch ein bug drinnen). Wenn die Cache-Time veringert wird, löscht diese Funktion alle Events, welche zu weit in der Zukunft liegen. Beim Aufnahmestart habe ich dann den Cache auf 6 Stunden eingestellt und bei Aufnahmeende wieder auf den alten Wert gestellt. So hat man auch während der Aufnahme einen EPG (auch für die Folgeaufnahme).
Beim Movieplayer und Audioplayer dagegen kann man ohne weiteres freeMemory machen. Und wenn man den sectionsd in der neutrino_start gleich mit 'nice -n 10 sectionsd' startet, gibt es auch kein Performance-Problem, da dann neutrino eine höhere Prio hat und damit trotz 100% sectionsd Auslastung bedienbar bleibt.
Für nice muß noch die busybox angepaßt werden, würde aber vorschlagen, die Befehle nice, renice und top gleich im cvs zu aktivieren. Die drei 'verbrauchen' nur ca. 6 KB und sind doch sehr nützlich ..
Das andere würde ich auch im cvs sehen ...
Beim Movieplayer und Audioplayer dagegen kann man ohne weiteres freeMemory machen. Und wenn man den sectionsd in der neutrino_start gleich mit 'nice -n 10 sectionsd' startet, gibt es auch kein Performance-Problem, da dann neutrino eine höhere Prio hat und damit trotz 100% sectionsd Auslastung bedienbar bleibt.
Für nice muß noch die busybox angepaßt werden, würde aber vorschlagen, die Befehle nice, renice und top gleich im cvs zu aktivieren. Die drei 'verbrauchen' nur ca. 6 KB und sind doch sehr nützlich ..
Das andere würde ich auch im cvs sehen ...
-
- Developer
- Beiträge: 587
- Registriert: Freitag 9. September 2005, 21:48
Also in etwa so (auf die schnelle aus einer alten Version extrahiert, kann sein das da noch Fehler drinnen sind).
Houdini hat inzwischen den sectionsd mit einer ConfigApi-Funktion erweitert, ev. läßt sich das auch darüber realisieren. So ist es aber 'einfacher'.
busybox.config.m4
start_neutrino
Houdini hat inzwischen den sectionsd mit einer ConfigApi-Funktion erweitert, ev. läßt sich das auch darüber realisieren. So ist es aber 'einfacher'.
busybox.config.m4
Code: Alles auswählen
option(`CONFIG_NICE', `y', `y')
option(`CONFIG_RENICE', `y', `y')
option(`CONFIG_TOP', `y', `y')
option(`CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE', `y', 'y')
Code: Alles auswählen
nice -n 10 sectionsd
pidof sectionsd >/dev/null || nice -n 10 sectionsd
Code: Alles auswählen
? .cdtproject
? .project
? .settings
? cdk
? cvs.log
? apps/tuxbox/neutrino/data/locale/locals.h
? apps/tuxbox/neutrino/data/locale/locals_intern.h
? apps/tuxbox/tools/kb2rcd/kb2rcd
? apps/tuxbox/tools/misc/avswitch
? driver/ide/.depend
Index: apps/tuxbox/neutrino/daemons/sectionsd/sectionsd.cpp
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/daemons/sectionsd/sectionsd.cpp,v
retrieving revision 1.235
diff -u -b -B -r1.235 sectionsd.cpp
--- apps/tuxbox/neutrino/daemons/sectionsd/sectionsd.cpp 23 Jan 2007 20:23:47 -0000 1.235
+++ apps/tuxbox/neutrino/daemons/sectionsd/sectionsd.cpp 2 Feb 2007 23:15:24 -0000
@@ -624,7 +624,7 @@
}
}
-#if 0
+#if 1
static void removeNewEvents(void)
{
// Alte events loeschen
@@ -1414,6 +1414,7 @@
return ;
}
+#endif
static void commandSetHoursToCache(int connfd, char *data, const unsigned dataLength)
{
@@ -1422,8 +1423,13 @@
dprintf("Set hours to cache: %hd\n", *((unsigned short*)data));
+ long oldsecondsToCache = secondsToCache;
+
secondsToCache = *((unsigned short*)data)*60L*60L;
+ if(oldsecondsToCache > oldsecondsToCache) // remove event from list, if cache time is reduced
+ removeNewEvents();
+
struct sectionsd::msgResponseHeader responseHeader;
responseHeader.dataLength = 0;
@@ -1432,7 +1438,6 @@
return ;
}
-#endif
static void sendAllEvents(int connfd, t_channel_id serviceUniqueKey, bool oldFormat = true, char search = 0, std::string search_text = "")
{
@@ -3925,7 +3930,7 @@
{ commandDumpStatusInformation, "commandDumpStatusInformation" },
//commandAllEventsChannelName,
{ commandAllEventsChannelIDSearch, "commandAllEventsChannelIDSearch" },
-{ commandDummy2, "commandSetHoursToCache" },
+{ commandSetHoursToCache, "commandSetHoursToCache" },
{ commandDummy2, "commandSetEventsAreOldInMinutes" },
{ commandDumpAllServices, "commandDumpAllServices" },
{ commandEventListRadio, "commandEventListRadio" },
Index: apps/tuxbox/neutrino/lib/sectionsdclient/sectionsdclient.cpp
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/lib/sectionsdclient/sectionsdclient.cpp,v
retrieving revision 1.53
diff -u -b -B -r1.53 sectionsdclient.cpp
--- apps/tuxbox/neutrino/lib/sectionsdclient/sectionsdclient.cpp 12 Jan 2007 22:57:57 -0000 1.53
+++ apps/tuxbox/neutrino/lib/sectionsdclient/sectionsdclient.cpp 2 Feb 2007 23:15:26 -0000
@@ -120,6 +120,13 @@
}
}
+void CSectionsdClient::setHoursToCache(const unsigned short hours)
+{
+ send(sectionsd::setHoursToCache, (char*)&hours, sizeof(hours));
+
+ readResponse();
+ close_connection();
+}
#if 0
void CSectionsdClient::setEventsAreOldInMinutes(const unsigned short minutes)
Index: apps/tuxbox/neutrino/lib/sectionsdclient/sectionsdclient.h
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/lib/sectionsdclient/sectionsdclient.h,v
retrieving revision 1.42
diff -u -b -B -r1.42 sectionsdclient.h
--- apps/tuxbox/neutrino/lib/sectionsdclient/sectionsdclient.h 12 Jan 2007 22:57:57 -0000 1.42
+++ apps/tuxbox/neutrino/lib/sectionsdclient/sectionsdclient.h 2 Feb 2007 23:15:26 -0000
@@ -172,6 +172,7 @@
bool getIsTimeSet();
+ void setHoursToCache(const unsigned short hours);
// void setEventsAreOldInMinutes(const unsigned short minutes);
void setPauseScanning(const bool doPause);
Index: apps/tuxbox/neutrino/src/driver/vcrcontrol.cpp
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/driver/vcrcontrol.cpp,v
retrieving revision 1.105
diff -u -b -B -r1.105 vcrcontrol.cpp
--- apps/tuxbox/neutrino/src/driver/vcrcontrol.cpp 13 Sep 2006 19:37:16 -0000 1.105
+++ apps/tuxbox/neutrino/src/driver/vcrcontrol.cpp 2 Feb 2007 23:15:28 -0000
@@ -335,7 +335,10 @@
if (!g_Zapit->isPlayBackActive() &&
CNeutrinoApp::getInstance()->getMode() != NeutrinoMessages::mode_standby)
g_Zapit->startPlayBack();
+
g_Sectionsd->setPauseScanning(false);
+ g_Sectionsd->setHoursToCache(atoi(g_settings.epg_cache.c_str()) * 24);
+
g_Zapit->setRecordMode( false );
// alten mode wieder herstellen (ausser wen zwischenzeitlich auf oder aus sb geschalten wurde)
if(CNeutrinoApp::getInstance()->getMode() != last_mode &&
@@ -400,6 +403,7 @@
if(StopSectionsd) // wenn sectionsd gestoppt werden soll
g_Sectionsd->setPauseScanning(true); // sectionsd stoppen
+ g_Sectionsd->setHoursToCache(12);
g_Zapit->setRecordMode( true ); // recordmode einschalten
}
Index: apps/tuxbox/neutrino/src/gui/audioplayer.cpp
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/gui/audioplayer.cpp,v
retrieving revision 1.43
diff -u -b -B -r1.43 audioplayer.cpp
--- apps/tuxbox/neutrino/src/gui/audioplayer.cpp 30 Nov 2005 05:24:32 -0000 1.43
+++ apps/tuxbox/neutrino/src/gui/audioplayer.cpp 2 Feb 2007 23:15:32 -0000
@@ -308,6 +308,7 @@
CLCD::getInstance()->setMode(CLCD::MODE_AUDIO);
paintLCD();
+ g_Sectionsd->freeMemory();
bool loop = true;
bool update = true;
Index: apps/tuxbox/neutrino/src/gui/movieplayer.cpp
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/gui/movieplayer.cpp,v
retrieving revision 1.138
diff -u -b -B -r1.138 movieplayer.cpp
--- apps/tuxbox/neutrino/src/gui/movieplayer.cpp 31 Dec 2006 13:51:16 -0000 1.138
+++ apps/tuxbox/neutrino/src/gui/movieplayer.cpp 2 Feb 2007 23:15:40 -0000
@@ -403,6 +403,7 @@
// Stop sectionsd
g_Sectionsd->setPauseScanning (true);
+ g_Sectionsd->freeMemory(); // ??? More Memory for playback
isBookmark=false;
startfilename = "";