ud_daemon.log:
Fr Aug 4 21:09:23 2006 udrecemu: Found the following files
/home/movie/streams/RTL_Television_Die_10_peinlichsten_Fehltritte_2006-08-04_210756.001.ts:
/home/movie/streams/RTL_Television_Die_10_peinlichsten_Fehltritte_2006-08-04_210756.xml:
/usr/local/bin/udrecemu: line 19: 11503
Speicherzugriffsfehler /usr/local/bin/nfrec $*
Parsing xml-file
/home/movie/tmp/RTL_Television_Die_10_peinlichsten_Fehltritte_2006-08-04_210756.xml:
Couldn't open
/home/movie/tmp/RTL_Television_Die_10_peinlichsten_Fehltritte_2006-08-04_210756.xml::
Datei oder Verzeichnis nicht gefunden at
/usr/local/bin/functions.pl line 59
Version 0.4.1, mit --prefix=/usr/local kompiliert, SuSE 9.3
Logged In: YES
user_id=1332565
Das Problem liegt an dem Zeitformat meiner dBox, diese
erzeugt in den Dateinamen yy-mm-dd_hhmmss statt dem
erwarteten yymmdd-hhmmss, weswegen getDateString fehlschlägt
und als "Default" die aktuelle Zeit benutzt, was nicht gut
ist, da dann am Ende die XML-datei einen anderen als den
erwarteten Zeitstempel hat und das printf dort fehlschlägt.
Meine Lösung sieht so aus (src/nfrec/udrecemu.cpp):
QString UdrecEmu::getDateString(QString filename) {
QString date_time = QString::null;
// Beginn Änderung
QRegExp regex("\\d{0,2}(\\d{2}-?\\d{2}-?\\d{2}_\\d{6})");
if (regex.search(filename)) {
date_time = regex.cap(1);
date_time.replace("-","");
}// end if
// Ende Änderung, Originalcode bis auf die folgenden Zeilen
entfernt
if(date_time.isNull()) {
QDateTime td = QDateTime::currentDateTime();
date_time = td.toString("yyMMdd_hhmmss");
}
//printf("UdrecEmu::getDateString(%s): Got %s\n",
// filename.latin1(),date_time.latin1());
return date_time;
}