Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

initial Markdown documentation #15

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 87 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
<!-- v4l2-request-test README.md -->
<!-- version: 0.0.1 -->

# v4l2-request-test

<p align="center">
<span>English</span> |
<a href="lang/french#v4l2-request-test">Français</a> | -->
<a href="lang/german#v4l2-request-test">Deutsch</a>
</p>

## About

`v4l2-request-test` was designed as a standalone tool to help with development
and testing of the `Cedrus driver`. The tool supports the Video Engine found on most
Allwinner SoCs. It implements the Linux [V4L2 Request API](https://www.linuxtv.org/downloads/v4l-dvb-apis-new/uapi/mediactl/request-api.html).
So it can help to test any driver being developed using that API.

It currently supports decoding MPEG2 and H264 frames from their slice data
(stored as files) and associated metadata, as well as displaying the decoded
frames through a dedicated DRM plane.

The behavior of the tool can be configured through command line arguments, that
are precised by its usage help.

## How does it work

TODO: summarize the functional structure of the code.

## Presets

### Preset Definition
To ease the testing of supported codecs, `v4l2-request-test` defines a preset structure.
This structure classifies its member as declarative or control fields.

* declarative fields

Declarative struct members document the source of the coded frames.

* name
* description
* license
* attribution
* control fields

Each `preset` stores attributes that correspond to the nature of decoded frames. This
infomation will be used to process with correct algorithms.

* codec type
* buffer_count,
* frames
* frames_count
* data path

The series of coded frames are stored as files in the `data subdirecotry`. The name of
the subdirectory correspond to the preset `name`.

### Preset Data

There are subdirectories with coded frames for the following presets:

* bbb-mpeg2
* bbb-happy-mpeg2
* ed-mpeg2
* bbb-h264-32
* bbb-h264-all-i-32
* bbb-h264-high-32
* caminandes-fall-h265
* caminandes-h265

## Contributing

Help is very welcome! Feel free to fork and issue a pull request to add
features or tackle open issues.

## License

<!-- License source -->
[Logo-CC_BY]: https://i.creativecommons.org/l/by/4.0/88x31.png "Creative Common Logo"
[License-CC_BY]: https://creativecommons.org/licenses/by/4.0/legalcode "Creative Common License"

This work is licensed under a [Creative Common License 4.0][License-CC_BY]

![Creative Common Logo][Logo-CC_BY]

© 2017 - 2019 Paul Kocialkowski (bootlin);
© 2019 Ralf Zerres (networkx)
87 changes: 87 additions & 0 deletions lang/french/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
<!-- v4l2-request-test README.md -->
<!-- version: 0.0.1 -->

# v4l2-request-test

<p align="center">
<span>English</span> |
<a href="lang/french#v4l2-request-test">Français</a> | -->
<a href="lang/german#v4l2-request-test">Deutsch</a>
</p>

## Sur

`v4l2-request-test` was designed as a standalone tool to help with development
and testing of the `Cedrus driver`. The tool supports the Video Engine found on most
Allwinner SoCs. It implements the Linux [V4L2 Request API](https://www.linuxtv.org/downloads/v4l-dvb-apis-new/uapi/mediactl/request-api.html).
So it can help to test any driver being developed using that API.

It currently supports decoding MPEG2 and H264 frames from their slice data
(stored as files) and associated metadata, as well as displaying the decoded
frames through a dedicated DRM plane.

The behavior of the tool can be configured through command line arguments, that
are precised by its usage help.

## How does it work

TODO: summarize the functional structure of the code.

## Presets

### Preset Definition
To ease the testing of supported codecs, `v4l2-request-test` defines a preset structure.
This structure classifies its member as declarative or control fields.

* declarative fields

Declarative struct members document the source of the coded frames.

* name
* description
* license
* attribution
* control fields

Each `preset` stores attributes that correspond to the nature of decoded frames. This
infomation will be used to process with correct algorithms.

* codec type
* buffer_count,
* frames
* frames_count
* data path

The series of coded frames are stored as files in the `data subdirecotry`. The name of
the subdirectory correspond to the preset `name`.

### Preset Data

There are subdirectories with coded frames for the following presets:

* bbb-mpeg2
* bbb-happy-mpeg2
* ed-mpeg2
* bbb-h264-32
* bbb-h264-all-i-32
* bbb-h264-high-32
* caminandes-fall-h265
* caminandes-h265

## Contributing

Help is very welcome! Feel free to fork and issue a pull request to add
features or tackle open issues.

## License

<!-- License source -->
[Logo-CC_BY]: https://i.creativecommons.org/l/by/4.0/88x31.png "Creative Common Logo"
[License-CC_BY]: https://creativecommons.org/licenses/by/4.0/legalcode "Creative Common License"

This work is licensed under a [Creative Common License 4.0][License-CC_BY]

![Creative Common Logo][Logo-CC_BY]

© 2017 - 2019 Paul Kocialkowski (bootlin);
© 2019 Ralf Zerres (networkx)
89 changes: 89 additions & 0 deletions lang/german/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
<!-- v4l2-request-test README.md -->
<!-- version: 0.0.1 -->

# v4l2-request-test

<p align="center">
<span>English</span> |
<a href="lang/french#v4l2-request-test">Français</a> | -->
<a href="lang/german#v4l2-request-test">Deutsch</a>
</p>

## Über

`v4l2-request-test` wurde als eigenständiges Tool entwickelt, das bei der Entwickung
und dem Test des Video Treibers `Cedrus` zum Einsatz kommt.
Das Tool unterstützt die Video Engine, wie sie in den meisten Allwinner SOCs verbaut ist.
Es implementiert die Linux [V4L2 Request API](https://www.linuxtv.org/downloads/v4l-dvb-apis-new/uapi/mediactl/request-api.html).
Dadurch kann es eingesetzt werden, um auch andere Treiber zu testen, die auf diesem API aufbauen.

Derzeit unterstützt `v4l2-request-test` die Decodierung von MPEG-2 und H264 Daten-Frames. Diese sind
als Dateien (slice data), inclusive zugehöriger Metadaten gespeichert. Die Dateien werden decodiert
und anschließend auf einem dedizierten DRM Plane ausgegeben.

Das Verhalten des Tools kann über Komandozeilen Argumente konfiguriert werden. Der Hilfetext
beschreibt mögliche Werte.

## Wie es funktioniert

TODO: summarize the functional structure of the code.

## Presets

### Preset Definitionen

Um den Test der unterstützen Codecs zu erleichtern definiert `v4l2-request-test` eine sogenannte
`Preset` Struktur. Diese Struktur ordnet ihre Attribute als Deklarative-, bzw. als Kontroll-Felder.

* declarative fields

Deklarative Strukturelemente beschreiben die Herkunft des kodierten Frame-Sets.

* name
* description
* license
* attribution
* control fields

Jedes `Preset` speichert Attribute, die der Natur des zu dekodierenden Frames entsprechen. Dies
Informationen werden für die Verarbeitung mit dem korrekten Algorithmus herangezogen.

* codec type
* buffer_count,
* frames
* frames_count
* data path

Eine Serie kodierter Frames wurden als Dateien im `data` Unterverzeichnes gespeichert. Die Namen
der Unterverzeichisse entsprechen dem Preset `name` Attribut.

### Preset Daten

Es existieren Unterverzeichnisse mit codierten Frames für die folgenden `Presets`:

* bbb-mpeg2
* bbb-happy-mpeg2
* ed-mpeg2
* bbb-h264-32
* bbb-h264-all-i-32
* bbb-h264-high-32
* caminandes-fall-h265
* caminandes-h265

## Mitarbeit

Hilfe ist sehr willkommen! Gerne könnt Ihr das Projekt forken und PR's einreichen,
um neue Funktion zu implementieren oder Fehler zu bereinigen.

## Lizenz

<!-- License source -->
[Logo-CC_BY]: https://i.creativecommons.org/l/by/4.0/88x31.png "Creative Common Logo"
[License-CC_BY]: https://creativecommons.org/licenses/by/4.0/legalcode "Creative Common License"

Diese Arbeit ist unter der [Creative Common License 4.0][License-CC_BY] lizensiert.

![Creative Common Logo][Logo-CC_BY]

© 2017 - 2019 Paul Kocialkowski (bootlin);
© 2019 Ralf Zerres (networkx)