Beiträge von FireFly

    LordJaxom: Ja, ich weiß, ich habe mir mittlerweile beide Sourcen runtergeladen und die manpages verglichen. Ärgert mich nur, dass sich sowas grundlegend zwischen den Versionen ändert. Man könnte ja auch die Langversionen (z.B. --ignore-seqend-markers) nehmen, aber die versteht dann die jeweils andere Version wieder nicht. ;(
    Ich habe hier die mjpegtools 1.8.0 von Packman (SuSE 10.0). Bei mplex -h kommt

    Code
    vdr:~ # mplex -h
    mjpegtools mplex-2 version 1.8.0 (2.2.4)
    ...
    --ignore-seqend-markers|-M
      Don't switch to a new output file if a sequence end marker
      is encountered in the input video.

    ist also mit der manpage identisch.
    Ich sollte also das -M bei mir hinzufügen, gelle? ;D


    Bei Project X gibts übrigens zwei Schalter: "add sequence end code" (default: an) und "insert sequence end code on format change" (default: aus). Mit dieser (Default-)Einstellung sollte es ja dann diese Probleme nicht geben denke ich mal.

    Seufz, da hab ich ja wieder losgetreten X(


    ciax: ich habs nicht runtergeladen, sondern nur gepostet, da ich das Problem (bisher) nicht habe


    BTW: wie kommen solche Aufnahmen, die mplex splitten will, eigentlich zu Stande? Das müssten doch eigentlich zusammenkopierte Aufnahmen sein, oder?

    Was haltet ihr denn davon??

    Code
    man mplex 
           ....
           It is also capable of automatically splitting the output stream into chunks of a specified
           size either independently or at sequence end/start points in the input video stream.
           ...
           -M|--ignore-seqend-markers
                  This flag makes mplex ignore sequence end  markers  embedded  in  the  first  video
                  stream  instead of switching to a new output file.  This is sometimes useful split-
                  ting a long stream in files based on a -S limit that doesn't need a  run-in/run-out
                  like (S)VCD.


    Ich denke, das wäre mal ein Versuch wert :D


    oder auch mal ein -S 10000 um erst bei 10GB zu splitten

    Tja, das sieht ja eigentlich gut aus ...
    Hast Du mal versucht, die Aufnahme per Hand zu demultiplexen, also mit:

    Code
    cd <Ausgabeverzeichnis>
    /usr/local/bin/vdrsync-0.1.3.pl /video0/%%Mindhunters_(Mindhunters)/2006-02-19.22.00.50.99.rec/


    wobei das "/" am Ende wichtig ist. Ansonsten: hat der User Schreibrechte in die entsprechenden Verzeichnisse? Debug-Modus im Skript mal eingeschaltet? Mehr Ideen habe ich auch nicht :(

    ... jetzt findet er das config-File nicht. Im Script steht ein "$PROJECTX_HOME/VDR.ini" und das existiert vermutlich nicht. Auf was steht denn PROJECTX_HOME? Wenn es nicht gesetzt ist wird es ja auf /opt/ProjectX gesetzt.... (das 2. "if" ;) )

    Dolby Digital ist natürlich auch Surround Sound, aber bei 0x05 steht ja "MPEG-1 Layer 2 audio, surround sound" und DD wird ja nicht in mpeg 1 Layer 2 Pakete verpackt (0xC0-0xCF) sondern in 0xBD (private Stream), deshalb bin ich irritiert. "Dolby Surround" kodiert die 2 (glaube ich) zusätzlichen Kanäle in die beiden Stereo-Kanäle (Stichwort Matrixkodierung), so dass man bei der Wiedergabe das wieder herausrechnen und getrennt wiedergeben kann. Das könnte man natürlich auch in Mpeg 1 Layer 2 kodieren.

    LordJaxom: Schön daß Du dich dessen angenommen hast :bounce1


    Vielleicht helfen meine bisherigen Erkenntnisse ja noch etwas weiter.
    - In recording.c werden nur die Audiostream-Types 3 (mpa) und 5 (ac3) ausgewertet (aber "Mono/Hörfilm" steht mit 1 in der info.vdr !? :rolleyes: ).
    - in device.c wird DD wieder anders behandelt: seit VDR 1.3.19 wird offenbar der DD-Stream intern als 0x80 abgespeichert (entspricht wohl der offiziellen StreamID 0xBD, Substreamtype 0x80 für AC3&DTS) aber das dürfte für die Components keine Rolle spielen, weil das nur für das interne Abspielen gilt


    So, jetzt hab ich mit Dr. Google's Hilfe mal das ETSI 300 468 aufgespürt, das in der Manpage von vdr referenziert wird. Danach ist's folgendermaßen:

    Code
    Stream Type Description
    0x02   0x00 reserved for future use
    0x02   0x01 MPEG-1 Layer 2 audio, single mono channel
    0x02   0x02 MPEG-1 Layer 2 audio, dual mono channel
    0x02   0x03 MPEG-1 Layer 2 audio, stereo (2 channel)
    0x02   0x04 MPEG-1 Layer 2 audio, multi-lingual, multi-channel
    0x02   0x05 MPEG-1 Layer 2 audio, surround sound

    Von Dolby Digital steht da aber nirgendwo was, da wird wohl (von den Sendeanstalten?) das 0x05 etwas zweckentfremdet.


    FireFly

    Bert: Ich denke, die fw_send_cmd Fehler haben nichts mit dem sysinfo-Plugin zu tun, denn das sind ja Befehle, die der Kernel (Treiber) absetzt und das sollte ja immer duchkommen egal wie stark die Maschine durch Prozesse belastet ist. Evtl. war der AV7110 aber stark belastet, z.B. durch die Anzeige eines Sender mit ner hohen Bitrate?


    @ronnykornexl: Danke für die Info mit $PIPESTATUS - wieder was gelernt :] Allerdings muß ich Dich enttäuschen: der Returncode wird gar nicht ausgewertet:

    Code
    void cSysInfoOsd::ExecShellCmd(char *cCommand, char *cReturn) {
            for (int i=0; i<100; i++) cReturn[i]=' ';
            FILE *infile=popen(cCommand,"r");
            fread(cReturn, 1, 100, infile);
            fclose(infile);
            for (int i=0; i<100; i++) {
                    if ((cReturn[i]==' ')&&(cReturn[i+1]==' ')&&(cReturn[i+2]==' ')&&(cReturn[i+3]==' ')&&(cReturn[i+4]==' ')) cReturn[i]='\0';
            }
    }

    (Ok, an dem Stück Code kann man auch noch einiges optimieren ...:D )


    FireFly

    Ich hatte mir mal mit

    Code
    PSK-KONTAKTE  und z.B.
    PSK 254/5W

    von Reichelt geholfen. Das Kunststoffgehäuse ist zwar etwas größer, aber am Rand gehts. Sind zwar auch Crimpkontakte, aber mit ner feinen Zange gehts recht gut :)

    Bert: Wenn Du in deinem Skript einen Absatz mit

    Code
    cputime)
                    ps -eo%C | awk '/[.]/ { a=a+$1 } ; END { print a }'
                    exit $?
            ;;

    einfügst sollte es eigentlich gehen, mehr wird im sysifo.sh auch nicht geändert.


    foobar42: Mit nem backtrace könnte man das evtl. verfolgen, aber ohne habe ich keine Idee woran das liegen könnte. Hast Du schon ausprobiert, ob's mit dieser Version auch noch auftritt?

    Hallo,


    auch wenn ihr vielleicht schon nicht mehr damit gerechnet habt: hier ist meine erste Patch-Version mit folgenden Änderungen:

    • i18n überarbeitet, sämtliche Übersetzungen (deutsch) werden jetzt gefunden und erzeugen damit im Log keine Fehlermeldungen mehr
    • cputime-Berechung in sysinfo.sh ausgelagert (wie in diesem Thread vorgeschlagen)
    • Konstanten in sysinfo.sh ausgelagert (jetzt gibts nur noch eine Variable VERSION :))
    • height und width kommen jetzt über die Standard-VDR-Variablen (setup.conf wird nicht mehr ausgelesen)
    • "too many different colors used in palette" eliminiert
    • etliche potentielle Buffer Overflows mit asprintf eliminiert
    • DVBDIR im Makefile entfernt
    • Code an vielen Stellen vereinfacht/optimiert


    Was sich nicht geändert hat: das Aussehen
    Ich habe mich erst mal auf die "inneren Werte" konzentriert :)


    Ein nächster Schritt wäre die einzelnen Infos konfigurierbar zu machen, hddtemp einzubauen, mehrere Partitionen (auch graphisch) anzeigen zu lassen, ...
    Vielleicht gibts ja noch mehr Ideen ? ;)


    FireFly

    Ich habe die letzten Abende versucht, die Audio-Track-Beschreibung aus der info.vdr in das burn-plugin zu übernehmen, geb's aber auf! Ich blicke einfach bei dem ganzen C++ Kauderwelsch nicht durch! ;(
    Wenn's doch jemand implementieren will (LordJaxom? :D):
    über

    Code
    const cComponents *Components = recording_->Info()->Components();

    kommt man an die Infos zu den einzelnen Streams dran (language und description). Ich bekomme an der Stelle im burn-Plugin aber nirgendwo das recording_ her X(
    Aus ner ZDF-Aufnahme mit

    Code
    Videospur:                      ja
    Audio track (MPEG1 layer 2):    ja
    Audio track (MPEG1 layer 2):    ja
    Audio track (AC3):              ja

    könnte dann folgendes werden:

    Code
    Videospur (Breitwand):             ja
    Audio track (deu Stereo):          ja
    Audio track (deu mono/Hörfilm):    ja
    Audio track (deu Dolby Digital):   ja

    Die Sprache kann man dann auch in das <audio>-Tag von dvdauthor übernehmen, so dass am Player die Sprache richtig angezeigt wird, wobei da aber nur zwei Zeichen erlaubt sind.
    Voraussetzung ist natürlich, dass die info.vdr auch die Einträge enthält, diese also mitgesendet wurden und mit VDR >= 1.3.19 aufgezeichnet wurde ....


    FireFly

    zur jobs.c: für sich alleine genommen hast Du recht, aber da ist ne Schleife drumherum, die in Zeile 98 beginnt und jeden Stream durchgeht, so daß das der Block dann heißt: wenn der aktuelle Stream kein AC3-Stream ist dann muß es ein MPEG Audio-Stream sein.


    zur common.c: der Ausschnitt beschreibt die Erstellung des Bildschirmmenüs für die Trackauswahl, da steht dann nachher "Audio Track (AC3)", ist also so auch ok. Kannst ja mal aus Spaß "Audio Track" durch was eigenes ersetzen und neu kompileren ;D


    Meine Vermutung geht eher dahin, daß unter bestimmten Konstellationen die Reihenfolge vertauscht wird oder Stream A demultiplext wird und dann auf Stream B gewartet wird den es ja dann nicht gibt. Ich hatte auch schon mal sowas, kanns aber nicht mehr reproduzieren X(

    Hi,


    a52dec wird auch bei vdrconvert nicht benutzt (hab da auch schon mal länger dran rumgebastelt ;D), da die AC3-Spur ja nicht bearbeitet sondern nur in eine eigene Datei extrahiert wird; a52dec dekodiert den AC3-Stream.


    Das $MPEG_TMP_PATH wird bei jedem Burn-Job neu gesetzt und ist in einem Unterverzeichnis namens .vdr-burn.* in dem Verzeichnis, das Du als Parameter -t oder --tempdir dem burn-Plugin mitgegeben hast oder der Default /tmp, also z.B. /tmp/.vdr-burn.*
    Interessant ist da besonders die dvd.log, aber das gesamte Unterverzeichnis wird am Ende eines Jobs gelöscht.