Aufnahme wird überschrieben

Anlaufschwierigkeiten? Was ist was? Worum geht's?
LoB
Neugieriger
Neugieriger
Beiträge: 5
Registriert: Freitag 15. September 2006, 00:03

Aufnahme wird überschrieben

Beitrag von LoB »

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..
LoB
Neugieriger
Neugieriger
Beiträge: 5
Registriert: Freitag 15. September 2006, 00:03

Beitrag von LoB »

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. :evil: 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
atzi
Interessierter
Interessierter
Beiträge: 27
Registriert: Donnerstag 29. Dezember 2005, 22:14

Beitrag von atzi »

Wenn du solch lange Filme aufzeichnen möchtest, dann achte bitte auch auf die Filesize unter den Aufnahmeeinstellungen.
Ich musste letztens auch feststellen, dass er mir zwei files erstellt hat, nur weil eben besagte Filsize zu niedrig eingestellt war.

Gruß atzi
amiga4@ver
Interessierter
Interessierter
Beiträge: 28
Registriert: Montag 30. Januar 2006, 18:51

Beitrag von amiga4@ver »

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 ...
LoB
Neugieriger
Neugieriger
Beiträge: 5
Registriert: Freitag 15. September 2006, 00:03

Beitrag von LoB »

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 :wink:
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Beitrag von Gaucho316 »

LoB hat geschrieben:Die Aufnahme wird ja als $filename.$zaehler.ts gespeichert. Nur der $zaehler zaehlt nicht, sondern bleibt auf 1...
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.
Was stört dich denn eigentlich so sehr an Datum und Uhrzeit im Dateinamen?
amiga4@ver
Interessierter
Interessierter
Beiträge: 28
Registriert: Montag 30. Januar 2006, 18:51

Beitrag von amiga4@ver »

Wenn er die Uhrzeit mit drin hatte und 6 Teile bekommen hat, siehts aber nach Streamabbrüchen aus.
ChakaZulu
Developer
Beiträge: 457
Registriert: Sonntag 23. März 2003, 00:39

Beitrag von ChakaZulu »

hi,
Gaucho316 hat geschrieben:
LoB hat geschrieben:Die Aufnahme wird ja als $filename.$zaehler.ts gespeichert. Nur der $zaehler zaehlt nicht, sondern bleibt auf 1...
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.
Was stört dich denn eigentlich so sehr an Datum und Uhrzeit im Dateinamen?
IMHO war das tatsächlich mal so, daß beim Streamabbruch weitergezählt wurde. Ist ja auch schlecht, wenn das bisher aufgenommene überschrieben wird.
Als Workaround also mal lieber die Uhrzeit drinlassen ;)

ciao,

ChakaZulu
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Beitrag von Gaucho316 »

amiga4@ver hat geschrieben:Wenn er die Uhrzeit mit drin hatte und 6 Teile bekommen hat, siehts aber nach Streamabbrüchen aus.
Das habe ich doch auch überhaupt nicht bestritten. Ich wollte ihm doch nur eine Erklärung für seine Beobachtung liefern.
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.
Nicht, dass ich wüßte ... aber ich lasse mich gerne eines besseren belehren.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Re: Aufnahme wird überschrieben

Beitrag von mb405 »

ingrid
Erleuchteter
Erleuchteter
Beiträge: 600
Registriert: Samstag 14. Oktober 2006, 10:53

Re: Aufnahme wird überschrieben

Beitrag von ingrid »

mb405 hat geschrieben:wems intressiert :)
http://dbox2-neutrino.blogspot.com/2008 ... nahme.html
Klar interessiert das. :) Mal neugierig gefragt: warum wird das nicht im CVS landen? Ist doch 'n Bugfix. :gruebel:
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Re: Aufnahme wird überschrieben

Beitrag von mb405 »

mal paar mehr leute testen, dann könnte einer das einchecken.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Aufnahme wird überschrieben

Beitrag von seife »

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...
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Re: Aufnahme wird überschrieben

Beitrag von mb405 »

eben nicht.
die zeit und der titel bleiben gleich. also wird der erste teil komplett überschrieben.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Aufnahme wird überschrieben

Beitrag von seife »

Bei einem neutrino "nackt" aus dem CVS, ohne patches?
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Re: Aufnahme wird überschrieben

Beitrag von mb405 »

jep
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Aufnahme wird überschrieben

Beitrag von seife »

Ah. Jetzt fällts mir wieder ein - O_EXCL ist hier das Zauberwort:

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);
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.