Beiträge von Incazzato

    Wird das von Linux unterstützt? Ich habe hier einen Rechner mit SATA-controller (0000:00:1f.2 IDE interface: Intel Corporation 82801FB/FW (ICH6/ICH6W) SATA Controller (rev 05)), auf dem SuSE 9.3 läuft. Wenn ich im Betrieb eine SATA-Platte (Samsung SP2504C) einstecke, passiert nichts (jedenfalls keine kernel-Meldungen). Grundsätzlich funktioniert SATA auf diesem Rechner, das root-fs ist auf einer anderen SATA-Platte, die als device /dev/sda eingebunden ist. edit: möglicherweise kann der Controller auf meinem Mainboard das nicht, sieht jedenfalls laut dieser Seite so aus...

    Zitat von Kampi

    bist du dir sicher, dass du noch ein devfs hast? devfs ist eigentlich tot, und das ist auch gut so. udev ist angesagt.


    Ja, bin ich sicher. Ist ein 2.4er kernel.
    Aber egal, Problem hat sich gelöst, war nur ein Folgefehler.

    Zitat von MaxAuthority

    Dann probier mal das: http://onion.dynserv.net/%7Etimo/tconf.html

    Bash-basiert, und find ich sehr nett zum verwenden.


    Die Freiheit hab ich leider nicht. Das betreffende Projekt ist sehr eng an ein vorhandenes SDK (embedded system) geknüpft, das eine ganz eigene Makefile-Struktur hat. Meine Skripte sollen nur ein paar Sachen automatisieren (benötigtes Environment erstellen, make-targets aufrufen, die Version des SDK berücksichtigen, ein config-Fike in Compilerflags "übersetzen"...)

    danke für eure Hilfe

    Zitat von [fl]Quel`Tos

    mhh.. so auf die schnelle.. so ca. müsst das funktionieren denk ich:


    bes. beim sed-ausdruck bin ich mir aber nicht 100% sicher ;)


    hmm, woher kriegt "while read var" die Daten?
    Jensi: wäre schön, dabei werden die Variablen aber nicht exportiert.

    Ich krieg von den blöden Skriptsprachen Kopfschmerzen...

    Wo ich schon mal dabei bin:
    Wie kann ich einem Shell-Skript beibringen, jede Zeile eines config-Files als Environment-Variable zu exportieren, damit ich im conf-File kein "export" stehen habe (ausgenommen Kommentare, die mit '#' beginnen)?

    z.B. ein File z.conf
    VERSION=12
    PATH=/xy

    das Skript soll z.conf einlesen und daraus die Befehle
    "export VERSION=12"
    und
    "export PATH=/xy"
    generieren.

    Vermutlich müsste ich dazu nur wissen, wie ich zeilenweise lesen kann und wie ich einen substring-Vergleich machen kann (1. Zeichen). Wenn möglich nur mit Shell-Bordmitteln.

    Wo ich schon mal dabei bin:
    Wie kann ich einem Shell-Skript beibringen, jede Zeile eines config-Files als Environment-Variable zu exportieren, damit ich im conf-File kein "export" stehen habe (ausgenommen Kommentare, die mit '#' beginnen)?

    z.B. ein File z.conf
    VERSION=12
    PATH=/xy

    das Skript soll z.conf einlesen und daraus die Befehle
    "export VERSION=12"
    und
    "export PATH=/xy"
    generieren.

    Vermutlich müsste ich dazu nur wissen, wie ich zeilenweise lesen kann und wie ich einen substring-Vergleich machen kann (1. Zeichen). Wenn möglich nur mit Shell-Bordmitteln.

    Zitat von Wolfibolfi

    Hoppla, wusste nicht, dass er da den ganzen Rest durchgeht. Wieso eigentlich? Wenn ich sag 1000 Blöcke, soll er 1000 kopiern, und dann aufhörn, naja, wie gesagt, nicht getestet.

    Alternativ ein kleines Programm schreiben, seek->read->write, sollte schnell erledigt sein.


    Nein, so meinte ich das wiederum nicht.
    Ich will von einem file, das 16 GB groß ist, 15.5 GB behalten und die restlichen 0,5 GB verwerfen. Das geht sehr wohl mit dd. Dann werden aber die 15.5 GB dupliziert, und das dauert...

    Entweder ich habe mich zu unklar ausgedrückt oder du hast zu schnell gelesen ;)
    Wie es mit dd geht / gehen würde, ist mir schon klar. Allerdings ist das keine optimale Lösung, weil ich nicht den ganzen Rest kopieren will (was ich mit dd muss), sondern einfach nur "ein Stück" abschneiden.

    Problem: eine 16 GB große Datei, von der am Anfang einige hundert MB abgeschnitten werden sollen.

    Einzige Möglichkeit, die mir einfällt, wäre "dd" mit Parameter "skip". Allerdings wird dann das ganze restlich file kopiert. Da ich diesen Vorgang voraussichtlich noch öfter brauchen werde, ist ein solcher Aufwand nicht wirklich optimal.
    Hat jemand einen Tipp (von mir aus auch ein kleines C-Programm), wie man sowas bewerkstelligen kann?

    Zitat von hal

    Naja, wenn man einen Transponder tunt, kommen die Daten einfach mitten aus dem Strom rein, da kann man sich sowas nicht aussuchen. Die Decoder müssen auch damit klar kommen (mit ein Grund für die hohen Channelstep-Zeiten bei Digitalfernsehen).


    Das stimmt. Ich wusste aber nicht, inwiefern PC-Codecs damit klar kommen.

    Zitat


    Naja, dual core sollte es schon sein :)


    Das ist ein dual core :)

    Zitat von hal

    Ah ja stimmt. Das ist allerdings eine draft-Version, d.h. da is noch nix standardisiert. Ich hab bisher nur die Version 1.5.1 gekannt vom EN 300 468, da war dieser Bereich noch "reserved for future use" (habs grade verglichen), deswegen meine Verwirrung.


    Schon. In der Praxis wird aber schon seit Oktober nach diesem Standard gesendet (12441 V 27500 auf 19,2°O) und es sind schon 2 Receiver (von Pace und Humax) auf dem Markt, die diesen Standard sozusagen implementieren. Bekanntermaßen dauert es manchmal ein bisschen länger, bis so ein Standard wirklich offiziell steht.

    Zitat


    Naja, MPEG2-TS hat nicht wirklich Headerinformationen, nur die SI tables, und hier speziell die PMT. In der steht aber (für unverschlüsselte Streams) nur die Audio-, Video- und PCR-PID drin, und die rauszufinden ist ja nicht mehr das Problem.


    In den tables können aber wiederum Descriptoren drinstehen, und dort lässt sich im Grunde so ziemlich jede beliebige Information unterbringen.
    Ich glaube aber, das Problem bei meiner Aufnahme sind weniger die Header-Informationen selber, als ein "sauberer Beginn". Ich vermute mal, der Beginn eines Videostreams sollte mit einem neuen Frame (und nicht irgendwo mitten in einem Frame) beginnen, das wohl außerdem ein I-Frame sein sollte. Beides ist aber nicht erfüllt.
    Ich hab's jetzt geschafft, mit MPC und dem ffdshow MPEG-4 Video Filter das File abzuspielen. Zwar sind Audio und Video maßlos out of sync, weil selbst ein P4 mit 3,6 Ghz überfordert ist, aber immerhin spielt es. Man kann auch gut erkennen, dass am Anfang kein I-Frame ist, weil das Bild in den ersten 1-2 Sekunden "kaputt" ist.
    Welcher Teil in der Filterkette ist denn für die A/V-Synchronisation zuständig? Vermutlich der Splitter, oder?

    Zitat von hal

    Das ist eine sehr seltsame Datei. MPEG2 ist eigentlich kein Containerformat, also dürfte da gar kein H.264 reinkommen können. Ich nehm an, dass das am DVB-S2 liegt, das ja noch kaum jemand wirklich implementiert hat (inzwischen gibts sogar schon eine Karte, die das kann: http://www.knc1.com/d/produkte/digital_dvb_s2_plus.htm, aber der Standard is ja noch nichtmal ein Jahr alt).
    Ich denke, da wirst du noch warten müssen auf eine offene Lösung. Du müsstest irgendwie die Audio- und Video-Pakete rausbekommen und in einen MPEG4-Container reinbekommen, dann wär Abspielen kein Problem.


    Nunja, MPEG-2 definiert vieles, unter anderem auch 2 Containerformate (MPEG-2 PS/TS), definiert in ISO/IEC 13818-1 (MPEG-2 Part 1).
    An DVB-S2 liegt das nicht, über DVB-S wird genauso ein MPEG-2 TS geschickt. Falls dich das Thema interessiert, sieh dir mal folgendes an:
    DVB-SI Standard.
    In dieser Version sind auch schon DVB-S2 und H.264 berücksichtigt. Schau z.B. mal auf Seite 36, dort siehst du, welche Möglichkeiten, den Videostream zu codieren, festgelegt sind.

    Mittlerweile habe ich es mit MPC und einem xvid-h264 DShow-Filter immerhin geschafft, ein paar Frames abzuspielen. Leider habe ich aber nicht wirklich viel Ahnung, wie man z.B. zum Demuxen einen anderen Filter auswählen kann bzw. welche Filter dafür überhaupt geeignet sind.
    Ich glaub aber eigentlich nicht, dass der Container das Problem ist, eher die fehlenden Header-Informationen über den vorhandenen Video-Stream.

    Bin auf der Suche nach einem SW-Player für Linux oder Windows, der das hier wiedergeben kann:
    download-Link
    Kurze Info:
    Dauer: ca. 12 sek
    Auflösung: 1920x1080 interlaced
    Video-Codec: H.264
    Audio-Codec: AC-3 (weiß nicht, ob 2- oder 5.1-Kanal)
    Das Ganze ist als MPEG-2 TS gespeichert, allerdings ohne Meta-Informationen (keine SI-Sections), deshalb müssen dem Player die vorhandenen Streams möglicherweise manuell mitgeteilt werden (?)
    Für den Fall: Die Video-PID ist 511, die Audio-PID 515.
    Ich habe mit einem halbwegs aktuellen mplayer unter Linux und auf einem Windows-Rechner mit verschiedenen Playern und Codecs probiert, aber Erfolg hatte ich nirgends. Kenne mich aber auch nicht wirklich mit den Programmen aus, mit denen ich getestet habe...
    Am nächsten dran war ich mit mplayer, der gab mir folgendes aus:


    Anscheinend scheitert die Video-Wiedergabe an mangelnden "Properties".
    Wenn ich wüsste, mit welchen Parametern ich die angeben könnte, würde es vielleicht funktionieren. Das mplayer-manual ist aber nicht wirklich übersichtlich...

    Würde mich freuen, wenn mir jemand den entscheidenden Tipp geben könnte!

    Zitat von jeuneS2

    Ich weiß nicht wie du darauf kommst dass da nur Referenzen drinnen sein sollen. Dein Beispiel sieht aus wie die Ausgabe von nm, und da ist ja klar, dass nur Adressen zu sehen sind. Es sind in einer Library definitiv die gesamten Objectfiles enthalten.


    Tatsächlich. Interessanterweise gibt das "less" so schön leserlich aus, wie ich es reinkopiert habe, ohne vorher wg. binary file oder so zu warnen...

    Damit hätte sich die ganze Frage dann geklärt, danke

    Bsp. libstdc++.a:


    Da steht also drin, welche object-files welche Definitionen enthalten.
    Wo aber sind diese object-files? Ich verstehe nicht ganz, woher der Linker schlussendlich den einzufügenden Binärcode kriegt. Ich dachte immer, .a - libs enthalten komplette object-files, so wie in jar-Archiven .class-Dataien liegen, aber scheinbar sind da nur Referenzen drin. Aber wohin zeigen die? Oder unterliege ich einem Verständnisfehler des Ganzen?