Skip to content
This repository has been archived by the owner on Apr 2, 2024. It is now read-only.

Commit

Permalink
* Updated documentation
Browse files Browse the repository at this point in the history
Signed-off-by: Christian Berger <christian.berger@gu.se>
  • Loading branch information
chrberger committed Aug 15, 2018
1 parent 3b347f1 commit 7a8f504
Showing 1 changed file with 20 additions and 18 deletions.
38 changes: 20 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
## OpenDLV Microservice to decode video frames from VP8 or VP9 into a shared memory
## Microservice to transform an input image in (A)RGB/(A)BGR format to I420

This repository provides source code to decode broadcasted video frames in
VP8 or VP9 format into a shared memory area for the OpenDLV software ecosystem.
This repository provides source code to transform an input image in (A)RGB/(A)BGR
format residing in a shared memory to an image in I420 residing in a new shared
memory suitable for subsequent video compression.

[![License: GPLv3](https://img.shields.io/badge/license-GPL--3-blue.svg
)](https://www.gnu.org/licenses/gpl-3.0.txt)
Expand All @@ -21,8 +22,7 @@ The following dependency is part of the source distribution:
* [libcluon](https://github.com/chrberger/libcluon) - [![License: GPLv3](https://img.shields.io/badge/license-GPL--3-blue.svg
)](https://www.gnu.org/licenses/gpl-3.0.txt)

The following dependencies are downloaded and installed during the Docker-ized build:
* [libvpx 1.7.0](https://github.com/webmproject/libvpx/releases/tag/v1.7.0) - [![License: BSD 3-Clause](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause) - [Google Patent License Conditions](https://raw.githubusercontent.com/webmproject/libvpx/f80be22a1099b2a431c2796f529bb261064ec6b4/PATENTS)
The following dependency is downloaded and installed during the Docker-ized build:
* [libyuv](https://chromium.googlesource.com/libyuv/libyuv/+/master) - [![License: BSD 3-Clause](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause) - [Google Patent License Conditions](https://chromium.googlesource.com/libyuv/libyuv/+/master/PATENTS)


Expand All @@ -33,29 +33,31 @@ section to your `docker-compose.yml`:
```yml
version: '2' # Must be present exactly once at the beginning of the docker-compose.yml file
services: # Must be present exactly once at the beginning of the docker-compose.yml file
video-vpx-decoder:
image: chalmersrevere/opendlv-video-vpx-decoder-multi:v0.0.5
argb2i420:
image: chalmersrevere/argb2i420-multi:v0.0.1
restart: on-failure
network_mode: "host"
ipc: "host"
volumes:
- /tmp:/tmp
environment:
- DISPLAY=${DISPLAY}
command: "--cid=111 --name=imageData"
command: "--in=img.argb --width=640 --height=480 --argb --out=imgout.i420"
```
As this microservice is connecting to an OD4Session to receive VP8 or VP9 frames
to decode them into a shared memory area using SysV IPC, the `docker-compose.yml`
file specifies the use of `ipc:host`. The parameter `network_mode: "host"` is
necessary to receive VP8 or VP9 frames broadcasted from other microservices running
in an `OD4Session` from OpenDLV. The folder `/tmp` is shared into the Docker
container to provide tokens describing the shared memory area.
As this microservice is connecting to an existing shared memory to read the (A)RGB/(A)BGR
image for transform it into a new shared memory area using SysV IPC, the `docker-compose.yml`
file specifies the use of `ipc:host`. The folder `/tmp` is shared into the Docker
container to provide tokens describing the shared memory areas.
The parameters to the application are:

* `--cid=111`: Identifier of the OD4Session to listen for VP8 or VP9 frames
* `--id=2`: Optional identifier to listen only for those VP8 or VP9 frames with the matching senderStamp of the OD4Session
* `--name=XYZ`: Name of the shared memory area to create for storing the ARGB image data
* `--in`: Name of the shared memory area containing the (A)RBG/(A)BGR image
* `--out`: Name of the shared memory area to be created for the I420 image
* `--width`: Width of the input image
* `--height`: Height of the input image
* `--argb`: Format of the input image (choose exactly one!)
* `--rgb`: Format of the input image (choose exactly one!)
* `--abgr`: Format of the input image (choose exactly one!)
* `--bgr`: Format of the input image (choose exactly one!)
* `--verbose`: Display decoding information and render the image to screen (requires X11; run `xhost +` to allow access to you X11 server)


Expand Down

0 comments on commit 7a8f504

Please sign in to comment.