Sourcecode Fortschritt



  • Version 0.0.5.41:

    - devmgr: Deutlich erweitert: Ausgabe von ACPI-Informationen (--showacpi); Anzeige von PCI-Class-Informationen
    - readme: Ausgabe von Lizenz
    - USB: usb_destroyMSD nur bei unterstützten MSD-Typen ausgeführt; nur ein usb_video_t pro Gerät angelegt
    - documentation/PrettyOS.odt: Formulierungen verbessert
    - Bugfix: IPC forderte 1 Byte zuviel bei IPC_NOTENOUGHMEMORY
    - Bugfix: Auslesen von Nak-Counter bei EHCI korrigiert (Information liegt nicht im ersten qTD, sondern im transfer overlay des QH)


  • Mod

    0.0.5.42 - Rev: 1708

    usb_video.h/c: Ausführen von usb_vidProbeControl(device, VID_GET_CUR, selectorUnitID, vidControlInterfaceID, &vs_pb)

    Transfer wird fehlerlos ausgeführt, Daten erhält man gerätespezifisch (Test mit 2 Webcams). Nun sind die Grundlagen gelegt.


  • Mod

    0.0.5.43 - Rev: 1709

    usb_video.h/c: weiter ausgebaut

    Bisher werden am isochronous endpoint (es existieren mehrere alternative Interfaces) leider noch keine Daten erhalten.

    Das Format der erwarteten Dateien wird bei den getesteten Webcams YUY2 (4:2:2) sein.


  • Mod

    0.0.5.44 - Rev: 1710

    Isochronous transfers mit iTD bei ehci eingebaut. Status-Bits der 8 Transactions im iTD werden zur Kontrolle ausgelesen und angezeigt. Bisher wurden von den webcams noch keine speziell erkennbaren Streaming-Daten empfangen. Daher experimentelle Version.


  • Mod

    0.0.5.45 - Rev: 1711

    Fehler im Zusammenhang mit der Erstellung von ehci_iTD_t* (iTD für isochronous transfer) im Rahmen des usb-Transfers wurden behoben. Vielen Dank an MrX für seine Hinweise.

    Leider noch keine Daten von den webcams. Ein schwieriges Feld.


  • Mod

    0.0.5.46 - Rev: 1712
    Weitere schwerwiegende Fehler im Setzen der low bits der ersten drei iTD buffers beseitigt. In buffer[2] bis buffer[6], auf die das iTD zeigt, kommen nun erste Daten an. In buffer[0] und buffer[1] sind bisher Nullen. Format sollte YUY2 == YUYV (Y0 Cb Y1 Cr) sein. 4 Byte gehören jeweils zusammen und beschreiben zwei Pixel.

    Gelesen werden im Isochronous Transfer 3072 Byte:

    usb_IsochronousTransfer(device, video->endpointIsochronous[video->countIsoEP-1], 3*1024);
    

    `

    endpoint: 1 mps: 5116 interval: 1 packetsize: 5116

    Transact. 0: Active: 0 Data Buffer Err: 0 Babble: 0 TransactionError: 0

    Transact. 1: Active: 0 Data Buffer Err: 0 Babble: 0 TransactionError: 0

    Transact. 2: Active: 0 Data Buffer Err: 0 Babble: 0 TransactionError: 0

    Transact. 3: Active: 0 Data Buffer Err: 0 Babble: 0 TransactionError: 0

    Transact. 4: Active: 0 Data Buffer Err: 0 Babble: 0 TransactionError: 0

    Transact. 5: Active: 0 Data Buffer Err: 0 Babble: 0 TransactionError: 0

    Transact. 6: Active: 0 Data Buffer Err: 0 Babble: 0 TransactionError: 0

    Transact. 7: Active: 0 Data Buffer Err: 0 Babble: 0 TransactionError: 0

    Transfer successful.

    00 00 00 00 00 DC 2A D0 00 7F 07 2B 7B 2C 7F 2D

    7D 2E 7C 2D 7A 2D 7E 2E 78 30 7B 31 77 30 7B 30

    78 30 7D 31 7B 31 80 33 79 34 7E 34 78 35 7F 35

    7A 35 7B 35 7C 36 7C 36 7A 37 7D 38 77 3A 7E 3A

    78 3A 7E 3B 7A 3B 7E 3C 79 3D 7E 3E 77 3F 7D 40

    77 3F 7C 40 7D 42 7D 41 7B 44 7C 47 76 49 7B 48

    77 48 7D 4A 79 4B 7C 4D 78 4E 7F 4F 77 52 7C 52

    75 51 7F 55 75 59 80 5A 74 5C 80 5E 79 60 81 65

    79 68 7E 6C 7A 6E 7D 70 75 71 82 76 78 78 81 7A

    77 7C 80 7D 73 7E 80 80 78 84 84 83 71 87 82 89

    74 86 84 86 79 87 88 89 78 8B 81 8B 75 89 81 87

    79 88 81 87 7A 86 83 8C 79 8C 80 89 75 8B 80 8C

    75 8B 80 8C 76 8B 80 8F 7B 8B 80 8B 79 8E 80 00

    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    ...

    interface: 2 alternate endpoint: 11`

    Ein Anfang ist gemacht. USB Video Class, EHCI und Isochronous Transfer spielen erstmalig erfolgreich zusammen. Vielen Dank an MrX für das Code Review!


  • Mod

    0.0.5.47 - Rev: 1713

    Das Parsen des gesamten config desc. wurde nach usb_video.c verlegt. Dort werden Parameter in usb_video_t eingelesen.


  • Mod

    0.0.5.48 - Rev: 1714

    - buffer im iTD werden mit PG/offset durchgehend bestückt
    - daten aus buffer 0 kopiert
    - test mit speedlink webcam sind interessant
    `endpoint: 1 mps: 5116 interval: 1 packetsize: 5116

    Transact. 0: Active: 0 Data Buffer Err: 0 Babble: 0 TransactionError: 0

    Transact. 1: Active: 0 Data Buffer Err: 0 Babble: 0 TransactionError: 0

    Transact. 2: Active: 0 Data Buffer Err: 0 Babble: 0 TransactionError: 0

    Transact. 3: Active: 0 Data Buffer Err: 0 Babble: 0 TransactionError: 0

    Transact. 4: Active: 0 Data Buffer Err: 0 Babble: 0 TransactionError: 0

    Transact. 5: Active: 0 Data Buffer Err: 0 Babble: 0 TransactionError: 0

    Transact. 6: Active: 0 Data Buffer Err: 0 Babble: 0 TransactionError: 0

    Transact. 7: Active: 0 Data Buffer Err: 0 Babble: 0 TransactionError: 0

    0C 8C 1C 89 79 00 25 D6 79 00 07 07 96 79 A9 86

    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    53 FF 00 F0 53 FF 00 F0 53 FF 00 F0 53 FF 00 F0

    53 FF 00 F0 53 FF 00 F0 53 FF 00 F0 53 FF 00 F0

    53 FF 00 F0 53 FF 00 F0 53 FF 00 F0 53 FF 00 F0

    53 FF 00 F0 53 FF 00 F0 53 FF 00 F0 53 FF 00 F0

    53 FF 00 F0 53 FF 00 F0 53 FF 00 F0 53 FF 00 F0

    Broken free: E00388C0h

    Transfer successful.

    0C 8C 1C 89 79 00 25 D6 79 00 07 07 96 79 A9 86

    AC 7F AB 89 AA 81 AB 86 B0 7F AC 87 97 7F A6 84

    CA 89 C7 80 C6 87 C6 80 C5 8A C0 81 C2 89 C7 80

    A1 83 53 8F 69 7B 6A 93 6B 7C 6B 91 66 7B 5F 92

    65 80 65 90 63 7B 64 94 64 79 65 8E 63 7B 5F 93

    5D 7E 5F 91 5D 7C 5D 8F 5C 7D 5B 92 5B 7E 58 8C

    58 7E 55 8E 57 7C 55 8C 1B 91 6E 84 59 7F 90 86

    8D 7E 8F 84 8D 7F 8D 83 96 80 02 7E 1A 90 18 80

    17 8E 17 81 17 8D 1A 82 1B 91 1D 85 47 89 8C 7E

    B2 85 76 81 AA 87 A5 82 A7 85 A8 7F 96 8A 78 85

    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 `



  • Version 0.0.5.49:

    - EHCI: Broken free bei isochronous-Transfers behoben
    - Stacktrace bei Broken Free wieder angezeigt
    - Ramdisk: Verkürzte Pfadangaben (2:/ statt 2:0:/) ermöglicht
    - Bugfix: "dir" ohne Pfadangabe ging seit r1699 nicht mehr
    - Bugfix: Unterschiedliche Deklarationen von userHeap_create vereinheitlicht -> Heaps wurden mit undefinierten Größen initialisiert, behebt gelegentliche Freeze-Probleme bei Userprogrammen


  • Mod

    0.0.5.50 - Rev: 1716

    integer/render-Video-Funktionen für YUYV Daten (s.o. bei Rev: 1714) weiter ausgebaut.


  • Mod

    0.0.5.51 - Rev: 1717

    Empfangen und Speichern von YUV-Daten weiter entwickelt.

    Erste Bilddaten aus der gespeicherten YUYV-Raw-Datei (von Jidder dankenswerterweise mittels C#-Programm analysiert)
    http://i.imgur.com/MZb0chl.png?1



  • Version 0.0.5.52:

    - Dateien umstrukturiert, neue Unterverzeichnisse "hid" und "usb", Dateien entsprechend verschoben
    - Heap: HEAP_WITHIN_64K ergänzt, HEAP_CONTINUOUS vorbereitet (noch nicht implementiert)
    - VBE: Umgang mit 8-bit-Palette korrigiert, darf erst nach Betreten des Videomodes aktiviert werden; vbe_getPixel richtig implementiert
    - Funktion clamp() als Makro in util.h implementiert und verallgemeinert
    - prettyos.cfg: malloc ergänzt


  • Mod

    0.0.5.53 - Rev: 1719

    Webcam-Datenauslese weiter optimiert. Mehrere iso-Transfers (mehrere iTD) geben ihre Daten nun in einen großen Buffer. Dort kommen die Daten allerdings z.Z. nicht korrekt an. Finde den Fehler nicht. Bitte daher um Unterstützung.


  • Mod

    0.0.5.54 - Rev: 1720

    Datenübernahme von Webcam ins YUV-File funktioniert, aber nun müssen alle Parameter richtig eingestellt werden.


  • Mod

    0.0.5.55 - Rev: 1721

    Fehler beseitigt bei der Descriptoren-Definition. Nun kommen sinnvolle Daten dort an, die in usb_video_ t gespeichert und bei probe/commit für den parameterblock verwendet werden können.



  • Version 0.0.5.56:

    - OHCI: Implementation von Interrupt-Transfers (ungetestet); Behandlung von head/tail-Pointern an Spezifikation angepasst
    - Heap: HEAP_CONTINUOUS implementiert und in diversen Treibern eingesetzt
    - Heap: Optimierung: Speichern von erster freier Region
    - devmgr: Anzeige von Geräteklassen verbessert
    - prettyos.cfg erweitert


  • Mod

    0.0.5.57 - Rev: 1723

    webcam daten erfassung weiter optimiert. TODO: warum lücken? wieso so langsam?


  • Mod

    0.0.5.58 - Rev: 1724

    Webcam Datenerfassung weiter optimiert. Nun kommen schon recht gute Datenmengen an, die Lücken nehmen ab. Geschwindigkeit ist nach wie vor langsam. Es wird auf den USBINT und auf ACTIVE-Bit == 0 gewartet.


  • Mod

    0.0.5.59 - Rev: 1725

    - Webcam-Daten werden bereits rasch übertragen (30 iTD verteilt auf die periodic list im Abstand 34)
    - YUV-Rohdaten enthalten noch Lücken (Nullen), die über ein Cleaning-Programm entfernt werden (beide Dateien werden gespeichert)
    - Header werden gesucht und angezeigt (Sortierhilfen?)
    - Die Bilddaten kommen in Streifen an, die noch falsch geordnet sind ("Überrennen" von iTDs, die dann in einem späteren frame dran kommen, dadurch kommen die Datenpakete unzusammenhängend an)

    TODO: Sequentieller Empfang (wie?) oder Sortierung (SRC-Daten sind vorhanden, also innere Webcam-Uhr?)


  • Mod

    0.0.5.60 - Rev: 1726

    Webcam-Datenübertragung:
    - Fähigkeiten zur Auslösung eines Still Images eingefügt (STI Bit im Payload Header wird gesetzt).
    - Erster Ansatz zur Erfassung des Still Images (sondert noch zu viele Daten aus)

    TODO: Idealen Aufbau für die periodic list und optimale Video-Parameter finden


Anmelden zum Antworten