Aufnahme wird überschrieben
-
- Neugieriger
- Beiträge: 5
- Registriert: Freitag 15. September 2006, 00:03
Aufnahme wird überschrieben
Hallo...
Bin mir nicht sicher ob ich hier richtig bin.. Aber ich habe hin und wieder ein Problem während der Aufnahme. Gestern wollte ich was bestimmtes aufnehmen. Er hat es auch wunderbar gemacht, nur leider hat er irgendwann wieder von vorne angefangen und das bereits Aufgenommene überschrieben.
Meine Vorgehensweise war folgende:
- Ich habe Blau, Rot (Aufnehmen) gedrückt.
- Anschliessend habe ich festgestellt, daß ich länger aufnehmen möchte als geplant. Deshalb bin ich in die Timerliste gegangen und habe den Timer korregiert (von 05h auf 03h runter)
- Kurz darauf TV ausgemacht und mich in die Heia gelegt.
Heute wollte ich das aufgenommene meiner Frau zeigen und was sehe ich? Er hatte die Aufnahme ungefähr eine Stunde später angefangen bzw. das bereits aufgenommene "überschrieben". Das das richtige vorher aufgenommen wird/wurde kann ich soweit bestätigen, da ich seit erkennen des Problems das mal geprüft habe. Das Phänomen ist mir aber auch schon öfter vorgekommen. Ist aber leider nicht reproduzierbar...
Gruß Dirk..
Bin mir nicht sicher ob ich hier richtig bin.. Aber ich habe hin und wieder ein Problem während der Aufnahme. Gestern wollte ich was bestimmtes aufnehmen. Er hat es auch wunderbar gemacht, nur leider hat er irgendwann wieder von vorne angefangen und das bereits Aufgenommene überschrieben.
Meine Vorgehensweise war folgende:
- Ich habe Blau, Rot (Aufnehmen) gedrückt.
- Anschliessend habe ich festgestellt, daß ich länger aufnehmen möchte als geplant. Deshalb bin ich in die Timerliste gegangen und habe den Timer korregiert (von 05h auf 03h runter)
- Kurz darauf TV ausgemacht und mich in die Heia gelegt.
Heute wollte ich das aufgenommene meiner Frau zeigen und was sehe ich? Er hatte die Aufnahme ungefähr eine Stunde später angefangen bzw. das bereits aufgenommene "überschrieben". Das das richtige vorher aufgenommen wird/wurde kann ich soweit bestätigen, da ich seit erkennen des Problems das mal geprüft habe. Das Phänomen ist mir aber auch schon öfter vorgekommen. Ist aber leider nicht reproduzierbar...
Gruß Dirk..
-
- Neugieriger
- Beiträge: 5
- Registriert: Freitag 15. September 2006, 00:03
Hallo..
Das Problem tritt leider noch immer auf, jedoch habe ich jetzt herausgefunden, warum dem so ist *froi*
Ich hatte nämlich die Dateinamen-Vorgabe geändert. Da mich die Länge der Files genervt hat, hatte ich einfach einige Vars entfernt. Dazu gehörte auch die Variable für die Uhrzeit. Immer wenn eine Aufnahme unterbrochen wurde (warum auch immer), hat er die alte Aufnahme überschrieben. Da die Filenamen eh schon ein 001 am Ende stehen haben, wäre es logisch gewesen, wenn eine Datei bereits existiert, daß er wenigstens eine 002 draus macht.
Habe jetzt erstmal wieder die Uhrzeit mit reingenommen und prompt hatte ich auch gestern wieder eine "stümperhafte" Aufnahme, jedoch bestehend aus 6 Teilen.
Wäre aber toll, wenn sich jemand nochmal an die entsprechenden Routinen ranmacht..
MFG
Das Problem tritt leider noch immer auf, jedoch habe ich jetzt herausgefunden, warum dem so ist *froi*
Ich hatte nämlich die Dateinamen-Vorgabe geändert. Da mich die Länge der Files genervt hat, hatte ich einfach einige Vars entfernt. Dazu gehörte auch die Variable für die Uhrzeit. Immer wenn eine Aufnahme unterbrochen wurde (warum auch immer), hat er die alte Aufnahme überschrieben. Da die Filenamen eh schon ein 001 am Ende stehen haben, wäre es logisch gewesen, wenn eine Datei bereits existiert, daß er wenigstens eine 002 draus macht.
Habe jetzt erstmal wieder die Uhrzeit mit reingenommen und prompt hatte ich auch gestern wieder eine "stümperhafte" Aufnahme, jedoch bestehend aus 6 Teilen.
Wäre aber toll, wenn sich jemand nochmal an die entsprechenden Routinen ranmacht..
MFG
-
- Interessierter
- Beiträge: 27
- Registriert: Donnerstag 29. Dezember 2005, 22:14
-
- Interessierter
- Beiträge: 28
- Registriert: Montag 30. Januar 2006, 18:51
Die "stümperhafte" Aufnahme in 6 Teilen kann ja auch einen anderen Grund haben.
Wenn manche Sender z.B. nach Mitternacht ihre Datenrate erhöhen, weil andere Programme auf dem gleichen Transponder Sendeschluß haben. Die dadurch frei gewordene Kapazität wird dann für die übrigen Sender des Transponders genutzt. Dein Netzwerk hat dann Probleme die Daten zu übetragen. ARD, ZDF ...
Wenn manche Sender z.B. nach Mitternacht ihre Datenrate erhöhen, weil andere Programme auf dem gleichen Transponder Sendeschluß haben. Die dadurch frei gewordene Kapazität wird dann für die übrigen Sender des Transponders genutzt. Dein Netzwerk hat dann Probleme die Daten zu übetragen. ARD, ZDF ...
-
- Neugieriger
- Beiträge: 5
- Registriert: Freitag 15. September 2006, 00:03
Hallo..
Vielen Dank erstmal für eure Antworten. Jedoch hat mein Problem nicht wirklich was mit der Filesize oder der überhöten Rate der Sender zu tun. Sondern eher damit, daß die bereits aufgenommene Datei einfach überschrieben wird, sobald die Aufnahme abbricht bzw. gestoppt wird. Es fällt wohl auch niemanden wirklich auf, da die meisten wohl den Musterstring für die Aufnahmen unangetastet lassen bzw. gelassen haben. Am besten lässt sich das reproduzieren, wenn man ein paar Sekunden aufnimmt, regulär stoppt und wenig später wieder die Aufnahme beginnt (vorher die Zeit-Var rausnehmen). Die erste Aufnahme ist dann verschwunden. Die Aufnahme wird ja als $filename.$zaehler.ts gespeichert. Nur der $zaehler zaehlt nicht, sondern bleibt auf 1...
@amiga4@ver
Sympatischer Nick, habe selbst noch einen 2K und einen 4KT stehen
Vielen Dank erstmal für eure Antworten. Jedoch hat mein Problem nicht wirklich was mit der Filesize oder der überhöten Rate der Sender zu tun. Sondern eher damit, daß die bereits aufgenommene Datei einfach überschrieben wird, sobald die Aufnahme abbricht bzw. gestoppt wird. Es fällt wohl auch niemanden wirklich auf, da die meisten wohl den Musterstring für die Aufnahmen unangetastet lassen bzw. gelassen haben. Am besten lässt sich das reproduzieren, wenn man ein paar Sekunden aufnimmt, regulär stoppt und wenig später wieder die Aufnahme beginnt (vorher die Zeit-Var rausnehmen). Die erste Aufnahme ist dann verschwunden. Die Aufnahme wird ja als $filename.$zaehler.ts gespeichert. Nur der $zaehler zaehlt nicht, sondern bleibt auf 1...
@amiga4@ver
Sympatischer Nick, habe selbst noch einen 2K und einen 4KT stehen
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Und da haben wir auch schon deinen Denkfehler. Der Zähler zählt schon, nur eben nicht so, wie du denkst. Soweit ich weiß, dient diese Nummerierung nur der automatischen Teilung der Aufnahme bei Angabe einer maximalen Dateigröße in den Aufnahmeeinstellungen. Dagegen wird ein Streamabbruch wie ein Stoppen und Neustarten einer Aufnahme gewertet. Folglich wird natürlich ohne Datum und Uhrzeit im Dateinamen der erste Teil der Aufnahme ganz knallhart überschrieben.LoB hat geschrieben:Die Aufnahme wird ja als $filename.$zaehler.ts gespeichert. Nur der $zaehler zaehlt nicht, sondern bleibt auf 1...
Was stört dich denn eigentlich so sehr an Datum und Uhrzeit im Dateinamen?
-
- Interessierter
- Beiträge: 28
- Registriert: Montag 30. Januar 2006, 18:51
-
- Developer
- Beiträge: 457
- Registriert: Sonntag 23. März 2003, 00:39
hi,
Als Workaround also mal lieber die Uhrzeit drinlassen
ciao,
ChakaZulu
IMHO war das tatsächlich mal so, daß beim Streamabbruch weitergezählt wurde. Ist ja auch schlecht, wenn das bisher aufgenommene überschrieben wird.Gaucho316 hat geschrieben:Und da haben wir auch schon deinen Denkfehler. Der Zähler zählt schon, nur eben nicht so, wie du denkst. Soweit ich weiß, dient diese Nummerierung nur der automatischen Teilung der Aufnahme bei Angabe einer maximalen Dateigröße in den Aufnahmeeinstellungen. Dagegen wird ein Streamabbruch wie ein Stoppen und Neustarten einer Aufnahme gewertet. Folglich wird natürlich ohne Datum und Uhrzeit im Dateinamen der erste Teil der Aufnahme ganz knallhart überschrieben.LoB hat geschrieben:Die Aufnahme wird ja als $filename.$zaehler.ts gespeichert. Nur der $zaehler zaehlt nicht, sondern bleibt auf 1...
Was stört dich denn eigentlich so sehr an Datum und Uhrzeit im Dateinamen?
Als Workaround also mal lieber die Uhrzeit drinlassen
ciao,
ChakaZulu
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Das habe ich doch auch überhaupt nicht bestritten. Ich wollte ihm doch nur eine Erklärung für seine Beobachtung liefern.amiga4@ver hat geschrieben:Wenn er die Uhrzeit mit drin hatte und 6 Teile bekommen hat, siehts aber nach Streamabbrüchen aus.
Nicht, dass ich wüßte ... aber ich lasse mich gerne eines besseren belehren.ChakaZulu hat geschrieben:IMHO war das tatsächlich mal so, daß beim Streamabbruch weitergezählt wurde. Ist ja auch schlecht, wenn das bisher aufgenommene überschrieben wird.
-
- Tuxboxer
- Beiträge: 2331
- Registriert: Donnerstag 24. März 2005, 21:52
-
- Erleuchteter
- Beiträge: 600
- Registriert: Samstag 14. Oktober 2006, 10:53
Re: Aufnahme wird überschrieben
Klar interessiert das. Mal neugierig gefragt: warum wird das nicht im CVS landen? Ist doch 'n Bugfix.mb405 hat geschrieben:wems intressiert
http://dbox2-neutrino.blogspot.com/2008 ... nahme.html
-
- Tuxboxer
- Beiträge: 2331
- Registriert: Donnerstag 24. März 2005, 21:52
Re: Aufnahme wird überschrieben
mal paar mehr leute testen, dann könnte einer das einchecken.
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: Aufnahme wird überschrieben
Mich würden mal die Umstände interessieren, unter denen das passiert. Mit einem ungepatchten Originalcode wird doch nach dem Abbruch eine komplett neue Aufnahme gestartet, inklusive neuem EPG-Titel und neuer Zeit.
Insofern kann das Problem da IMVHO nicht auftreten.
Vielleicht übersehe ich aber was...
Insofern kann das Problem da IMVHO nicht auftreten.
Vielleicht übersehe ich aber was...
-
- Tuxboxer
- Beiträge: 2331
- Registriert: Donnerstag 24. März 2005, 21:52
Re: Aufnahme wird überschrieben
eben nicht.
die zeit und der titel bleiben gleich. also wird der erste teil komplett überschrieben.
die zeit und der titel bleiben gleich. also wird der erste teil komplett überschrieben.
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: Aufnahme wird überschrieben
Bei einem neutrino "nackt" aus dem CVS, ohne patches?
-
- Tuxboxer
- Beiträge: 2331
- Registriert: Donnerstag 24. März 2005, 21:52
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: Aufnahme wird überschrieben
Ah. Jetzt fällts mir wieder ein - O_EXCL ist hier das Zauberwort:
Oder so ähnlich. Alles andere ist eh racy.
Mir ist immer noch nicht ganz klar, wie man in diesen Fall laufen kann (das xml-File wird dann ja auch überschrieben?), aber das sollte als hotfix erstmal genug sein.
Code: Alles auswählen
@@ -189,16 +192,22 @@ void * FileThread(void * v_arg)
if (remfile == 0)
{
char filename[FILENAMEBUFFERSIZE];
- int flags = O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE;
+ int flags = O_WRONLY|O_CREAT|O_EXCL|O_TRUNC|O_LARGEFILE;
if (use_o_sync)
flags |= O_SYNC;
+ retry:
sprintf(filename, "%s.%3.3d.%s", myfilename, ++filecount, ((struct filenames_t *)v_arg)->extension);
+printf("[stream2file] filename: '%s' myfilename: '%s'\n", filename, myfilename);
if (fd2 != -1)
close(fd2);
if ((fd2 = open(filename, flags, REC_FILE_PERMISSIONS)) < 0)
{
+ if (errno == EEXIST) {
+ printf("[stream2file] %s exists, retrying...\n", filename);
+ goto retry;
+ }
perror("[stream2file]: error opening outfile");
exit_flag = STREAM2FILE_STATUS_WRITE_OPEN_FAILURE;
pthread_exit(NULL);
Mir ist immer noch nicht ganz klar, wie man in diesen Fall laufen kann (das xml-File wird dann ja auch überschrieben?), aber das sollte als hotfix erstmal genug sein.